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.

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.
- Metode Input Batch Klasik.
- 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
- Di latar depan
- Di latar belakang
- 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
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
Anda biasanya akan mengamati urutan langkah-langkah berikut untuk mengembangkan Input Batch untuk organisasi Anda
- 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.
- Menghasilkan SAP struktur data untuk digunakan dalam program ekspor.
- Ekspor data ke file berurutan. Perhatikan bahwa format karakter diperlukan sesuai standar SAP program masukan batch.
- Jika SAP program BDC yang disediakan tidak digunakan, kodekan program input batch Anda sendiri. Pilih metode input batch yang sesuai dengan situasi.
- Proses data dan tambahkan ke SAP System.
- Analisis log proses. Untuk metode CALL TRANSACTION, dimana tidak ada log yang tepat dibuat, gunakan pesan yang dikumpulkan oleh program Anda.
- Dari hasil analisis proses, perbaiki dan proses ulang data yang salah.
Menulis program BDC
Anda dapat mengamati proses berikut untuk menulis program BDC Anda
- Analisis transaksi untuk memproses data input batch.
- Tentukan metode masukan batch yang akan digunakan.
- Membaca data dari file berurutan
- Lakukan konversi data atau pengecekan kesalahan.
- Menyimpan data dalam struktur input batch,BDCDATA.
- 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
- Buka sesi sesi input batch menggunakan modul fungsi BDC_OPEN_GROUP.
- Untuk setiap transaksi dalam sesi:
- Isi BDCDATA dengan nilai untuk semua layar dan kolom yang diproses dalam transaksi.
- Transfer transaksi ke sesi dengan BDC_INSERT.
- 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.
- 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.



