SAP ABAP BDC: What is Batch Data Communication?

โšก Ringkasan Cerdas

SAP ABAP BDC (Batch Data Communication) transfers legacy data into R/3 by driving standard transactions automatically. This page explains batch input sessions, the classical and call transaction methods, the BDCDATA structure, the BDC_OPEN_GROUP workflow, and the batch input recorder.

  • ๐Ÿ”„ Tujuan Inti: BDC feeds datasets into the screens of a transaction automatically, running every screen and business validation as a user would.
  • ๐Ÿงพ Batch Input Session: A session groups transaction calls with their input data and is stored in the database until it is executed.
  • ๏ธ Dua Metode: Classical batch input uses BDC_OPEN_GROUP, BDC_INSERT, and BDC_CLOSE_GROUP, while the call transaction method uses CALL TRANSACTION USING.
  • ๏ธ Method Choice: Classical batch input is synchronous with a log, and call transaction is faster, asynchronous, and handles a single transaction.
  • ๏ธ BDCDATA Structure: The fields PROGRAM, DYNPRO, DYNBEGIN, FNAM, and FVAL describe the screen, the field, and the value for each step.
  • ๏ธ Perekam: The batch input recorder captures a manual transaction and generates a session or a ready made BDC program that runs later in SM35.

SAP ABAP BDC Batch Data Communication

Pengantar masukan Batch

Input batch biasanya digunakan untuk mentransfer data dari sistem non-R/3 ke sistem R/3 atau untuk mentransfer data antar sistem R/3.

Ini adalah teknik transfer data yang memungkinkan Anda mentransfer kumpulan data secara otomatis ke layar milik transaksi, dan juga ke SAP sistem. Input batch dikendalikan oleh sesi input batch.

Sesi masukan batch

Mengelompokkan serangkaian panggilan transaksi bersama dengan data masukan dan tindakan pengguna. Sesi input batch dapat digunakan untuk menjalankan transaksi dialog dalam input batch, di mana beberapa atau semua layar diproses oleh sesi tersebut. Sesi input batch disimpan dalam database sebagai tabel database dan dapat digunakan dalam program sebagai tabel internal saat mengakses transaksi.

Poin yang perlu diperhatikan

  • BDI bekerja dengan menjalankan normal SAP transaksi seperti yang dilakukan pengguna tetapi ia mengeksekusi transaksi secara otomatis.Semua validasi layar dan validasi logika bisnis akan dilakukan saat menggunakan Input Data Batch.
  • Cocok untuk memasukkan data dalam jumlah besar.
  • Tidak diperlukan interaksi manual

Metode Input Batch

SAP memberikan dua metode dasar untuk mentransfer data lama ke Sistem R/3.

  1. Metode Input Batch Klasik.
  2. Metode Transaksi Panggilan.

Metode Input Batch Klasik

Dalam metode ini program ABAP/4 membaca data eksternal ke SAP Sistem dan penyimpanan dalam sesi input batch.

Setelah membuat sesi, Anda dapat menjalankan sesi untuk mengeksekusi SAP transaksi di dalamnya.

Metode ini menggunakan modul fungsi BDC_ OPEN, BDC_INSERT dan BDC_CLOSE

Sesi Input Batch dapat diproses dalam 3 cara

  1. Di latar depan
  2. Di latar belakang
  3. Selama pemrosesan, dengan tampilan kesalahan

Anda harus memproses sesi input batch di latar depan atau menggunakan tampilan kesalahan jika Anda ingin menguji transfer data.

Jika Anda ingin menjalankan transfer data atau menguji kinerjanya, Anda harus memproses sesi di latar belakang.

Hal yang perlu diperhatikan tentang metode Input Batch Klasik

  • Syncpemrosesan yang mengerikan
  • Transfer data untuk beberapa transaksi.
  • Syncpembaruan basis data yang mengerikan.
  • Log proses input batch dihasilkan untuk setiap sesi.
  • Sesi tidak dapat dihasilkan secara paralel.

Metode Transaksi Panggilan.

Dalam metode ini ABAP/4 program menggunakan pernyataan CALL TRANSACTION USING untuk menjalankan SAP transaksi.

Seluruh proses input batch berlangsung online dalam program ini

Metode Transaksi Panggilan

Poin yang perlu diperhatikan:

  • Pemrosesan data lebih cepat
  • Pemrosesan asinkron
  • Transfer data untuk satu transaksi.
  • Tidak ada log pemrosesan input batch yang dihasilkan.

Classical Batch Input vs Call Transaction

The two methods reach the same transaction but differ in speed, logging, and error handling. The table below shows when each one is the right choice.

Kriteria Classical Batch Input Transaksi Panggilan
Teknik BDC_OPEN_GROUP, BDC_INSERT, BDC_CLOSE_GROUP CALL TRANSACTION USING
Pengolahan Synchronous, run later from SM35 Runs online, in the program
Transaksi Many transactions in one session A single transaction per call
Log A process log per session is generated automatically No log, the program collects the messages
Kecepatan Slower, but robust and restartable Lebih cepat
Terbaik untuk Large, one time legacy loads that must be auditable Interactive or high speed transfers of one document

With the methods compared, the next section lays out the overall procedure a project follows.

Prosedur Input Batch

Prosedur Input Batch

Anda biasanya akan mengamati urutan langkah-langkah berikut untuk mengembangkan Input Batch untuk organisasi Anda

  1. Analisis data warisan. Tentukan bagaimana data yang akan ditransfer akan dipetakan ke dalam SAP Struktur. Catat juga tipe data yang diperlukan atau konversi panjang data.
  2. Menghasilkan SAP struktur data untuk digunakan dalam program ekspor.
  3. Ekspor data ke file berurutan. Perhatikan bahwa format karakter diperlukan sesuai standar SAP program masukan batch.
  4. Jika SAP program BDC yang disediakan tidak digunakan, kodekan program input batch Anda sendiri. Pilih metode input batch yang sesuai dengan situasi.
  5. Proses data dan tambahkan ke SAP System.
  6. Analisis log proses. Untuk metode CALL TRANSACTION, dimana tidak ada log yang tepat dibuat, gunakan pesan yang dikumpulkan oleh program Anda.
  7. Dari hasil analisis proses, perbaiki dan proses ulang data yang salah.

Menulis program BDC

Anda dapat mengamati proses berikut untuk menulis program BDC Anda

  1. Analisis transaksi untuk memproses data input batch.
  2. Tentukan metode masukan batch yang akan digunakan.
  3. Membaca data dari file berurutan
  4. Lakukan konversi data atau pengecekan kesalahan.
  5. Menyimpan data dalam struktur input batch,BDCDATA.
  6. Hasilkan sesi input batch untuk input batch klasik, atau proses data secara langsung dengan pernyataan CALL TRANSACTION USING.

Struktur Data Masukan Batch

Deklarasi struktur data input batch

DATA : BEGIN OF < bdc table>

OCCURS <occurs parameters>.

INCLUDE STRUCTURE BDCDATA.

DATA:END OF <bdc table>.
Nama bidang Tipe Panjang Deskripsi
PROGRAM ARANG 8 Kumpulan modul
DINPRO NUMC 4 Nomor Dynpro
DYNBEGIN ARANG 1 Memulai dynpro
FNAM ARANG 35 Nama bidang
FVAL ARANG 80 Nilai bidang

Urutan bidang dalam data untuk layar tertentu tidak penting

Poin ke Catatan

  • Saat mengisi Data BDC, pastikan Anda mempertimbangkan pengaturan pengguna. Hal ini sangat relevan untuk mengisi kolom yang melibatkan angka (seperti kuantitas, jumlah). Pengaturan pengguna inilah yang menentukan kelompok mana yang akan diisi.ping Karakter untuk angka. Contoh: Angka lima puluh ribu dapat ditulis sebagai 50,000.00 atau 50.000,00 tergantung pada pengaturan pengguna.
  • Padatkan bidang FVAL untuk bidang jumlah dan kuantitas sehingga keduanya sejajar.
  • Perhatikan bahwa semua bidang yang Anda isi melalui BDC harus diperlakukan sebagai bidang tipe karakter saat mengisi tabel Data BDC.
  • Di beberapa layar saat Anda mengisi nilai dalam kontrol tabel menggunakan BDC, Anda harus mencatat berapa banyak jumlah baris yang ada pada ukuran default layar dan kode untuk banyak baris. Jika Anda harus mengisi lebih banyak baris maka Anda harus membuat kode untuk fungsionalitas "Page down" seperti yang Anda lakukan saat mengisi kontrol tabel secara manual.
  • Jumlah baris yang muncul pada skenario di atas akan berbeda berdasarkan ukuran layar yang digunakan pengguna. Jadi selalu kodekan untuk ukuran layar standar dan jadikan BDC Anda selalu berfungsi dalam ukuran layar standar, apa pun ukuran layar yang digunakan pengguna.

Membuat Sesi Input Batch

  1. Buka sesi sesi input batch menggunakan modul fungsi BDC_OPEN_GROUP.
  2. Untuk setiap transaksi dalam sesi:
  3. Isi BDCDATA dengan nilai untuk semua layar dan kolom yang diproses dalam transaksi.
  4. Transfer transaksi ke sesi dengan BDC_INSERT.
  5. Tutup sesi masukan batch dengan BDC_CLOSE_GROUP

Example: BDC using Call Transaction

The program below shows the call transaction method end to end. It builds the BDCDATA table for two screens of a transaction and runs it in mode N (no display) with an error table so that failures can be reported.

REPORT z_bdc_call_transaction.

DATA: lt_bdcdata TYPE STANDARD TABLE OF bdcdata,
      ls_bdcdata TYPE bdcdata,
      lt_messages TYPE STANDARD TABLE OF bdcmsgcoll.

* Helper that appends one BDCDATA line
FORM bdc_field USING p_fnam p_fval.
  CLEAR ls_bdcdata.
  ls_bdcdata-fnam = p_fnam.
  ls_bdcdata-fval = p_fval.
  APPEND ls_bdcdata TO lt_bdcdata.
ENDFORM.

* Screen 1: start the dynpro, then fill the fields
CLEAR ls_bdcdata.
ls_bdcdata-program  = 'SAPMV45A'.
ls_bdcdata-dynpro   = '0101'.
ls_bdcdata-dynbegin = 'X'.
APPEND ls_bdcdata TO lt_bdcdata.

PERFORM bdc_field USING 'VBAK-AUART' 'OR'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.

* Run the transaction: mode N = no display, update S = synchronous
CALL TRANSACTION 'VA01'
  USING         lt_bdcdata
  MODE          'N'
  UPDATE        'S'
  MESSAGES INTO lt_messages.

IF sy-subrc <> 0.
  * Read lt_messages to report the errors that occurred
ENDIF.

๐Ÿ’ก Kiat: The MODE parameter controls the display: A shows all screens, E stops only on an error, and N runs silently. Use E during testing and N for the production load.

Perekam Input Batch

Perekam masukan batch (Sistem > Layanan > Masukan batch > Perekam) mencatat transaksi yang dimasukkan secara manual dan membuat sesi masukan batch yang dapat dieksekusi kemudian menggunakan SM35.

Perekam Input Batch

  • Mulailah perekam masukan batch dengan memilih tombol Perekaman dari layar awal masukan batch.
  • Nama rekaman adalah nama yang ditentukan pengguna dan dapat cocok dengan nama sesi input batch yang dapat dibuat dari rekaman.
  • Masukkan SAP transaksi dan mulai memposting transaksi.
  • Setelah Anda selesai memposting a SAP transaksi Anda memilih Dapatkan Transaksi dan Simpan untuk mengakhiri pencatatan atau Transaksi Berikutnya dan memposting transaksi lain.
  • Setelah Anda menyimpan rekaman, Anda dapat membuat sesi masukan batch dari rekaman dan/atau membuat program masukan batch dari rekaman.
  • Sesi masukan batch yang Anda buat sekarang dapat dianalisis sama seperti sesi masukan batch lainnya.
  • Program yang dihasilkan oleh fungsi perekam masukan batch adalah alat yang ampuh untuk pemrogram antarmuka data. Ini memberikan dasar yang kokoh yang kemudian dapat diubah sesuai dengan kebutuhan pelanggan.

โš ๏ธ Peringatan: A recording captures the screen sequence exactly as it happened, so a screen that only appears for certain data, such as an incompletion popup, is not recorded. Always test the generated program with data that triggers every optional screen.

Pertanyaan Umum Demo Slot

BDC_OKCODE carries the function code that a user would trigger with a button or a key, such as /00 for Enter or =SAVE for Save. It tells the screen which action to perform after the fields are filled.

SM35 is the batch input monitor. It lists the sessions created by classical batch input, runs them in the foreground or background, and shows the process log so that failed transactions can be analysed and reprocessed.

BDC is still used where no BAPI exists, because it reuses the screen validations of a transaction. LSMW wraps BDC, recordings, and BAPIs in one migration tool, and a BAPI is preferred when a stable API is available.

Yes. AI assistants in ABAP development tools take a recording or a screen list and draft the BDCDATA population, the CALL TRANSACTION block, and the message handling. The developer maps the source file and tests the load.

AI tools profile the legacy file, flag missing mandatory fields and format mismatches before the load, and summarise the batch input log afterwards so the erroneous records can be corrected and reprocessed faster.

Ringkaslah postingan ini dengan: