Tuesday, 8 June 2021

SAP ABAP - BAPI Posting Parked Invoice Document


 


FUNCTION Z_POST_PARKED_DOC.

*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     REFERENCE(I_BELNR) TYPE  RBKP_V-BELNR
*"     REFERENCE(I_GJAHR) TYPE  RBKP_V-GJAHR
*"  EXPORTING
*"     REFERENCE(OUTPUT)
*"----------------------------------------------------------------------


  DATA :
    E_RBKPV      TYPE MRM_RBKPV,
    I_RBKPV      TYPE MRM_RBKPV,
    T_DRSEG      TYPE MMCR_TDRSEG,
    TI_DRSEG     TYPE MMCR_TDRSEG,
    I_EDITOR     TYPE REF TO C_TEXTEDIT_CONTROL,
    E_MRM_ZLSPR  TYPE MRM_ZLSPR,
    I_DO_PRICING TYPE BOOLE-BOOLE,
    I_BOPF_CALL  TYPE BOOLE-BOOLE.

  DATA:
    EX_OBJECT_CX_ROOT TYPE REF TO CX_ROOT,
    EX_TEXT           TYPE STRING,
    EX_TEXT_LONG      TYPE STRING.

  CALL FUNCTION 'MRM_INVOICE_READ'
    EXPORTING
      I_BELNR         I_BELNR
      I_GJAHR         I_GJAHR
*     I_XSELK         = ' '
*     I_BUFFER_ON     = X
*     I_LOCK          = ' '
*     I_DISPL         = ' '
    IMPORTING
      E_RBKPV         E_RBKPV
    TABLES
      T_DRSEG         T_DRSEG
    EXCEPTIONS
      ENTRY_NOT_FOUND 1
      LOCK_ERROR      2
      OTHERS          3.

  IF SY-SUBRC 0.
    TI_DRSEG T_DRSEG.
    I_RBKPV  E_RBKPV.

    TRY .
        CALL FUNCTION 'MRM_PARKED_INVOICE_POST'
          EXPORTING
            I_RBKPV     I_RBKPV
            TI_DRSEG    TI_DRSEG
*           I_EDITOR    =
*           I_DO_PRICING       = ' '
*           I_BOPF_CALL =
          IMPORTING
            E_MRM_ZLSPR E_MRM_ZLSPR.

        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
          EXPORTING
            WAIT 'X'.

        CONCATENATE 'Invoice' I_BELNR 'posted' INTO OUTPUT SEPARATED BY SPACE.

      CATCH CX_ROOT INTO EX_OBJECT_CX_ROOT.
        EX_TEXT EX_OBJECT_CX_ROOT->GET_TEXT).
        EX_TEXT_LONG EX_OBJECT_CX_ROOT->GET_LONGTEXT).
    ENDTRY.



  ENDIF.
ENDFUNCTION.

Tuesday, 1 June 2021

Cara Sederhana Multi Insert Data Dengan PHP - MySQL

Pada postingan kali ini saya akan share cara melakukan insert lebih dari satu data dengan menggunaka PHP- Jquery dan MySQL.

Pertama buat database di MySQL dan table, disini saya membuat database dengan nama db_latihan dan table dengan nama t_barang dengan struktur table seperti berikut :



Setelah membuat database dan table selanjutnya membuat project PHP, project PHP nya saya buat dengan nama multi-insert, lalu didalam folder ini saya membuat dua file yaitu index.php dan insert.php.


Source code index.php seperti berikut :

<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous">

    <title>PHP - Jquery - MySql - Multi Record Insert</title>
  </head>
  <body>
    <div class="container">
        <h1>PHP - Jquery - MySql - Multi Record Insert</h1>
        <hr>
        <form action="insert.php" method="POST">
            <div class="row">
                <div class="col-lg-12">
                    <button type="button" class="btn btn-primary" id="btn-tambah">TAMBAH BARANG</button>    
                </div>
            </div>
            <div class="row">
                <div class="col-lg-12">
                    <table class="table" style="width:100%;">
                        <thead>
                            <th>No.</th>
                            <th>Nama Barang</th>
                            <th>Jumlah</th>
                            <th>Satuan</th>
                            <th></th>
                        </thead>
                        <tbody id="tbl-barang-body">
                        </tbody>
                    </table>
                </div>
            </div>
            <div class="row btnSave" style="display:none;">
                <div class="col-lg-12">
                    <button type="submit" class="btn btn-primary">SIMPAN BARANG</button>    
                </div>
            </div>
        </form>        
    </div>

    <script src="https://code.jquery.com/jquery-3.6.0.slim.js" integrity="sha256-HwWONEZrpuoh951cQD1ov2HUK5zA5DwJ1DNUXaM6FsY=" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-gtEjrD/SeCtmISkJkNUaaKMoLD0//ElJ19smozuHV6z3Iehds+3Ulb9Bn9Plx0x4" crossorigin="anonymous"></script>

    <script>
        $(function(){
            var count = 0;
            
            if(count == 0){
                $('.btnSave').hide();
            }
            $('#btn-tambah').on('click'function(){
                count +=1;
                $('#tbl-barang-body').append(`
                    <tr>
                        <td>`count +`</td>
                        <td>
                            <input type="text" name="namabarang[]" class="form-control">
                        </td>
                        <td>
                            <input type="number" name="jumlah[]" class="form-control">
                        </td>
                        <td>
                            <input type="text" name="satuan[]" class="form-control">
                        </td>
                        <td>
                            <button type="button" class="btn btn-danger removeItem">HAPUS</button>
                        </td>
                    </tr>
                `);

                if(count > 0){
                    $('.btnSave').show();
                }

                $('.removeItem').on('click'function(){
                    $(this).closest("tr").remove();
                    count -=1;
                    if(count == 0){
                        $('.btnSave').hide();
                    }
                })
            })
        })
    </script>
  </body>
</html>

Source code insert.php seperti berikut :

<?php

    $server   = "localhost";
    $username = "root";
    $password = "";
    $database = "db_latihan";

    $mysqli = new mysqli($server$username$password$database);

    // cek koneksi
    if ($mysqli->connect_error) {
        die('Koneksi Database Gagal : '.$mysqli->connect_error);
    }

    $namabarang = $_POST['namabarang'];
    $jumlah     = $_POST['jumlah'];
    $satuan     = $_POST['satuan'];

    for($i = 0$i < sizeof($namabarang); $i++){
        $insert = mysqli_query($mysqli,"INSERT INTO t_barang (`namabrg`, `jumlah`, `satuan`)
                                        VALUES ('$namabarang[$i]', '$jumlah[$i]', '$satuan[$i]')");

    }

    if($insert){
        echo "Insert Data Berhasil";
    }
?>


Lalu coba jalankan melalui browser localhose/multi-insert, akan muncul tampilan seperti berikut :



Lalu simpan barang, maka akan tersimpan 3 data kedalam table t_barang seperti berikut :




Sekian sharing cara sederhana melakukan multi insert data kedalam MySql database mengguanakan PHP - Jquery, semoga bermanfaat.

Belajar SAP ABAP RAP

  Belajar SAP ABAP RAP: Pengenalan dan Konsep Dasar Restful ABAP Programming Model Kalau kamu seorang ABAPer yang mulai terjun ke dunia SAP...