Modularisasi dalam ABAP: Makro, Subrutin & Modul Fungsi
Saat Anda memodulasi kode sumber, Anda menempatkan urutan pernyataan ABAP dalam sebuah modul. Kemudian, alih-alih menempatkan semua pernyataan di program utama, Anda cukup memanggil modul. Ketika program dibuat, kode sumber di unit modularisasi diperlakukan seolah-olah kode sumber tersebut benar-benar ada di program utama.
Kebutuhan Modularisasi
- Memperbaiki struktur program.
- Mudah untuk membaca kodenya
- Mudah untuk memelihara kodenya
- Hindari redundansi dan promosikan penggunaan kembali kode
Berbagai Teknik Modularisasi
- Penggunaan Makro
- Penggunaan file sertakan
- Subrutin
- Modul Fungsi
Mari kita lihat masing-masing secara detail:
SAP- ABAP Makro
Jika Anda ingin menggunakan kembali kumpulan pernyataan yang sama lebih dari sekali dalam sebuah program, Anda bisa memasukkannya ke dalam makro.
Anda hanya dapat menggunakan makro di dalam program tempat makro itu didefinisikan, dan makro itu hanya dapat dipanggil dalam baris program setelah definisinya.
Makro dapat berguna untuk perhitungan panjang atau pernyataan WRITE yang rumit.
Sintaksis
DEFINE <macro_name> 'Macro Statements END-OF-DEFINITION
Makro dapat menggunakan Parameter &N dimana N = 1,2,3…
Contoh:-
DATA: number1 TYPE I VALUE 1. DEFINE increment. ADD 1 to &1. WRITE &1. END-OF-DEFINITION. Increment number1. WRITE number1.
Output: 2
Sertakan Program
Program Sertakan semata-mata untuk memodulasi kode sumber, dan tidak memiliki antarmuka parameter.
Sertakan program memungkinkan Anda menggunakan kode sumber yang sama dalam program berbeda. Mereka dapat berguna jika Anda memiliki deklarasi data panjang yang ingin Anda gunakan dalam program berbeda.
Sintaksis
Include <include program Name>
Poin ke Catatan
- Program yang disertakan tidak dapat menyebut dirinya sendiri.
- Program yang disertakan harus berisi pernyataan lengkap.
Contoh:
INCLUDE ZILX0004. WRITE: / 'User', SY-UNAME,/ 'Date', SY-DATUM. ================================ PROGRAM ZRPM0001. INCLUDE ZILX0004.
Subrutin
Subrutin adalah prosedur yang dapat Anda tentukan di mana saja program ABAP dan juga panggilan dari program apa pun. Subrutin biasanya dipanggil secara internal, yaitu berisi bagian kode atau algoritme yang sering digunakan secara lokal. Jika Anda ingin suatu fungsi dapat digunakan kembali di seluruh sistem, gunakan modul fungsi.
Sintaksis-
FORM <Subroutine> [<pass>]. <Statement block>. ENDFORM.
= Nama subrutin
= Parameter dilewatkan
Jenis Subrutin
- Intern
- Subrutin didefinisikan dalam program yang sama yang dipanggil.
- Dapat mengakses semua objek data yang dideklarasikan di program utama ABAP/4.
- Luar
- Subrutin didefinisikan di luar program yang dipanggil.
- Perlu menggunakan opsi atau deklarasikan objek data di bagian umum memori.
Memanggil Subrutin
Subrutin Internal
PERFORM <subroutine> [<pass>]
= Nama subrutin
= Parameter dilewatkan
Data yang dideklarasikan dalam program utama tersedia secara otomatis.
Subrutin Eksternal
PERFORM <subroutine>(<Program>) [<pass>]. PERFORM <subroutine> (<Program>) [<pass>] [IF FOUND]. PERFORM (<subroutine>) IN PROGRAM (<Program>) [<pass>] [IF FOUND]. PERFORM <index> OF <subroutine1> <subroutine2> <subroutine3> [<pass>].
Poin ke Catatan
- Panggilan bersarang diperbolehkan dalam subrutin (yaitu PERFORM dalam FORM … ENDFORM ).
- Panggilan rekursif juga dimungkinkan.
- Untuk mendefinisikan data lokal, gunakan pernyataan DATA setelah FORM . Setiap kali Anda memasukkan subrutin, data dibuat ulang (dengan nilai awal) dan dilepaskan di akhir (dari tumpukan).
- Untuk mendefinisikan data global yang digunakan dalam subrutin, gunakan pernyataan LOCAL setelah FORM . Nilai disimpan saat Anda memasukkan subrutin dan kemudian dilepaskan di akhir (dari tumpukan)
Modul Fungsi
Modul Fungsi adalah rutinitas ABAP/4 tujuan umum yang dapat digunakan siapa saja. Faktanya, ada sejumlah besar Modul fungsi standar yang tersedia.
Modul Fungsi disusun menjadi Grup Fungsi: Kumpulan fungsi yang terkait secara logis. Modul Fungsi selalu menjadi milik Grup Fungsi.
Sintaksis-
FUNCTION <function module> <Statements> ENDFUNCTION.
Informasi penting Terkait dengan Modul Fungsi
- Administrasi
- Parameter Impor/Mengubah/Ekspor.
- Parameter/Pengecualian Tabel.
- Dokumentasi
- Kode sumber – L U01. adalah Grup Fungsi
- Data Global – L TOP .Data global untuk grup fungsi- Dapat diakses di seluruh modul fungsi dalam grup fungsi.
- Program Utama – SAPL . Berisi daftar semua file yang disertakan untuk grup fungsi tersebut
Panggil Modul Fungsi
Untuk memanggil modul fungsi, gunakan pernyataan CALL FUNCTION:
CALL FUNCTION <module> [EXPORTING f1 = a 1.... f n = a n] [IMPORTING f1 = a 1.... f n = a n] [CHANGING f1 = a 1.... f n = a n] [TABLES f1 = a 1.... f n = a n] [EXCEPTIONS e1 = r 1.... e n = r n [ERROR_MESSAGE = r E] [OTHERS = ro]].
Grup Fungsi
Grup fungsi adalah wadah untuk modul fungsi. Faktanya, ada sejumlah besar Grup Fungsi standar.
Semua modul fungsi dalam grup fungsi dapat mengakses data global grup.
Seperti program yang dapat dieksekusi (tipe 1) dan kumpulan modul (tipe M), grup fungsi dapat berisi layar, layar pilihan, dan daftar.
Poin ke Catatan
- Grup Fungsi tidak dapat dijalankan.
- Panjang nama grup fungsi bisa mencapai 26 karakter.
- Saat Anda membuat grup fungsi atau modul fungsi, program utama dan program penyerta dibuat secara otomatis.
- Grup fungsi merangkum data.
Cara membuat Grup Fungsi
- Transaksi Goto SE80.
- Pilih Program di DropDown.
- Tuliskan nama Grup Fungsi yang ingin Anda buat. Umumnya grup Fungsi buatan pengguna dimulai dengan “Z”. misalnya – . Tekan Tombol Enter.
- Perhatikan bahwa Penyertaan TOP dibuat secara default jika pengguna mencentang opsi untuk membuat penyertaan TOP.
Cara membuat Modul Fungsi
- Buat Grup fungsi (ucapkan “ZCAL”).
- Buat modul fungsi, atur atribut seperti (Grup fungsi, Aplikasi, Teks Pendek dan Jenis Proses) dan Simpan.
- Sertakan file “LZCALU01” akan memiliki kode sumber modul fungsi pertama.
- Sertakan file "LZCALTOP" akan memiliki data global.
- Program utama “SAPLZCAL” berisi
- Data global Sertakan file “LZCALTOP”
- Modul fungsi termasuk file “LZCALUXX”
- Ditentukan pengguna Sertakan file “LZCALF..”, “LZCALO..” dan “LZCALI..”
- Tentukan parameter antarmuka dan Pengecualian
- Tulis kode sumbernya
- Aktifkan Modul Fungsi
- Menguji Modul Fungsi – Pengujian & Debugging Tunggal
- Mendokumentasikan dan Merilis Modul Fungsi
Itu saja tentang Modularitas di ABAP.
