Tutorial Pemrograman Dialog: Kumpulan Modul di SAP ABAP
⚡ Ringkasan Cerdas
Pemrograman Dialog dalam SAP ABAP membangun program-program dalam module pool yang berinteraksi dengan pengguna melalui layar dan mengubah isi database. Halaman ini menjelaskan kode transaksi, layar, status GUI, logika alur layar, dynpro, dan struktur module pool.

Apa itu Pemrograman Dialog?
SAP-ABAP mendukung dua jenis program – Program Laporan dan Program Dialog.
Jika program ABAP Anda memerlukan input pengguna, pemrograman Dialog digunakan.
Dialog pengguna adalah segala bentuk interaksi antara pengguna dan program dan dapat berupa salah satu dari hal-hal berikut:
- Memasukkan data
- Memilih item menu
- Mengklik tombol
- Mengklik atau mengklik dua kali entri
Program dialog juga digunakan ketika kita perlu bernavigasi bolak-balik antar layar
Program dialog dibuat dengan tipe 'M' – Module Pool. Mereka tidak dapat dieksekusi secara independen dan harus dilampirkan ke setidaknya satu kode transaksi yang Anda tentukan pada layar awal.
Perbedaan antara Program Laporan dan Dialog
Program Laporan:
Laporan adalah program yang biasanya membaca dan menganalisis data dalam tabel database tanpa mengubah Database.
Program Dialog:
Program dialog memungkinkan Anda bekerja secara interaktif dengan sistem dan mengubah konten tabel database. Setiap program dialog memiliki urutan layar tertentu yang diproses oleh sistem satu demi satu.
| Kriteria | Laporan Program | Program Dialog |
|---|---|---|
| Jenis program | Tipe 1, dapat dieksekusi | Tipe M, kumpulan modul |
| Akses basis data | Membaca dan menganalisis data | Membaca dan mengubah data |
| Execution | Berjalan dengan sendirinya | Hanya berjalan melalui kode transaksi. |
| kontrol | Peristiwa-peristiwa dalam laporan tersebut | Logika alur layar dari setiap dynpro |
Urutan tampilan layar dalam transaksi dialog lebih mudah dipahami dengan sebuah contoh.
Contoh pemrosesan transaksi dalam Pemrograman Dialog
Diagram ini mengikuti satu transaksi dari layar pertama hingga pembaruan basis data. Pengguna memasukkan data di layar 100, PAI memvalidasi entri dan menentukan layar berikutnya, layar 200 mengumpulkan data yang tersisa, dan tugas pembaruan akhirnya menulis catatan. Setiap langkah tersebut dihasilkan oleh komponen-komponen yang tercantum di bawah ini.
Komponen Program Dialog
Berbeda melaporkan yang secara umum memerlukan pembuatan satu program otonom yang dapat dijalankan secara independen dari objek lain, pengembangan program dialog memerlukan pengembangan beberapa objek yang tidak satupun dapat dijalankan sendiri. Sebaliknya semua objek dihubungkan secara hierarkis ke program utama dan dieksekusi dalam urutan yang ditentukan oleh Program Utama Dialog.
Komponen program dialog adalah:
Kode transaksi
- Kode transaksi memulai urutan layar.
- Anda membuat kode transaksi di Repository Browser di ABAP Workbench atau menggunakan Transaction SE93.
- Kode transaksi ditautkan ke program ABAP dan layar awal.
- Anda dapat memulai urutan layar dari program ABAP mana pun menggunakan pernyataan CALL SCREEN.
Layar
- Setiap dialog dalam sebuah SAP sistem dikendalikan oleh satu atau lebih layar.
- Anda membuat layar menggunakan Layar Painter di ABAP Workbench melalui transaksi SE51
- Setiap layar milik an program ABAP.
- Layar ini terdiri dari "screen mask" atau "layout" dan logika alirannya. Layar memiliki tata letak yang menentukan posisi bidang input/output dan elemen grafis lainnya seperti kotak centang dan tombol radio. Logika aliran menentukan pemrosesan logis dalam layar.
Status GUI
- Setiap layar memiliki status GUI yang merupakan komponen independen dari suatu program.
- Ini mengontrol bilah menu, toolbar standar, toolbar aplikasi, yang dengannya pengguna dapat memilih fungsi dalam aplikasi.
- Anda membuatnya di ABAP Workbench menggunakan Menu Painter.
Program ABAP
- Setiap layar dan status GUI di Sistem R/3 dimiliki oleh satu program ABAP.
- Program ABAP berisi modul dialog yang dipanggil oleh logika aliran layar, dan juga memproses input pengguna dari status GUI.
- Program ABAP yang menggunakan layar disebut juga program dialog.
- Dalam kumpulan modul (program tipe M); blok pemrosesan pertama yang dipanggil selalu berupa modul dialog. Namun, Anda juga dapat menggunakan layar di program ABAP lainnya, seperti program yang dapat dijalankan atau modul fungsi. Blok pemrosesan pertama kemudian dipanggil secara berbeda; misalnya, oleh lingkungan runtime atau panggilan prosedur. Urutan layar kemudian dimulai menggunakan pernyataan CALL SCREEN.
Logika Aliran Layar
Logika Screen Flow pada dasarnya dibagi menjadi empat komponen.
- Proses Sebelum Keluaran (PBO) event: yang diproses sebelum layar ditampilkan
- Proses Setelah Masukan (PAI) acara: yang diproses setelah tindakan pengguna di layar
- Proses berdasarkan permintaan bantuan (P.O.H.): yang diproses ketika F1 ditekan
- Proses berdasarkan permintaan nilai (POV):yang diproses ketika F4 ditekan
POH dan POV dijelaskan secara detail di halaman tentang proses pada permintaan nilai dan proses pada permintaan bantuan.
Dynpro
- Sebuah layar beserta logika alurnya disebut Dynpro (“Program Dinamis” karena logika alur layar memengaruhi alur program).
- Setiap dynpro mengontrol tepat satu langkah Program Dialog Anda.
- Layar milik suatu program adalah bernomorAlur proses layar dapat berupa linear atau siklik. Dari dalam rantai layar, Anda bahkan dapat memanggil rantai layar lain dan, setelah memprosesnya, kembali ke rantai semula. Anda juga dapat menimpa layar berikutnya yang didefinisikan secara statis dari dalam modul dialog program ABAP.
Kumpulan Modul ABAP
- Pada suatu kejadian PBO atau PAI, Dynpro memanggil program dialog ABAP. Kumpulan program-program tersebut disebut kumpulan modul ABAP.
- Misalnya modul yang dipanggil pada acara PAI digunakan untuk memeriksa input pengguna dan memicu langkah-langkah dialog yang sesuai, seperti tugas pembaruan.
- Semua dynpro dipanggil dari dalam satu transaksi mengacu pada kumpulan modul umum.
Struktur Program Dialog
Diagram struktur menunjukkan bagaimana kode transaksi, layar, status GUI, dan kumpulan modul terhubung ke program utama yang sama.
Alur Proses untuk Program Dialog
Diagram alur proses menunjukkan pergantian antara layar dan program ABAP: PBO mengisi kolom layar, pengguna melakukan tindakan, dan PAI memproses input sebelum layar berikutnya dipanggil.
Cara Membuat Program Kumpulan Modul
Komponen-komponen di atas dibuat dalam urutan tetap. Langkah-langkah di bawah ini membangun transaksi yang berfungsi dari kumpulan modul kosong.
- Buat kumpulan modul: Di SE80, atau di SE38, buat program yang namanya diawali dengan SAPMZ dan atur tipe program ke M – Kumpulan modulTipe tersebut tidak dapat diubah kemudian tanpa menghapus objek tersebut.
- Nyatakan data global: Letakkan pernyataan TABLES dan variabel global di dalam include TOP, yang dapat dibaca oleh setiap modul dialog dalam pool tersebut.
- Rancang layarnya: Buat layar 100 dengan Layar Painter (SE51), tempatkan kolom input pada tata letak, dan masukkan nomor layar berikutnya di atribut layar.
- Tuliskan logika alurnya: Pada tab Logika Alur, panggil satu modul untuk PBO dan satu untuk PAI, seperti yang ditunjukkan di bawah ini.
- Buat status GUI: Buat status dengan Menu Painter (SE41) dan atur di modul PBO dengan pernyataan SET PF-STATUS, sehingga Save, Back, dan Exit mencapai program sebagai kode fungsi.
- Tautkan kode transaksi: Di SE93, buat transaksi dialog, beri nama module pool, dan masukkan 100 sebagai layar awal.
* Screen 100, flow logic PROCESS BEFORE OUTPUT. MODULE status_0100. PROCESS AFTER INPUT. MODULE user_command_0100. * Module pool SAPMZDEMO MODULE status_0100 OUTPUT. SET PF-STATUS 'STATUS_100'. SET TITLEBAR 'TITLE_100'. ENDMODULE. MODULE user_command_0100 INPUT. CASE sy-ucomm. WHEN 'SAVE'. PERFORM save_data. WHEN 'BACK' OR 'EXIT'. LEAVE TO SCREEN 0. ENDCASE. ENDMODULE.
💡 Kiat: LEAVE TO SCREEN 0 mengakhiri layar saat ini dan kembali ke titik pemanggilan, yang merupakan cara standar untuk meninggalkan transaksi dialog dengan bersih.




