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

  1. Intern
    • Subrutin didefinisikan dalam program yang sama yang dipanggil.
    • Dapat mengakses semua objek data yang dideklarasikan di program utama ABAP/4.
  2. 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

  1. Transaksi Goto SE80.
  2. Pilih Program di DropDown.
  3. Tuliskan nama Grup Fungsi yang ingin Anda buat. Umumnya grup Fungsi buatan pengguna dimulai dengan “Z”. misalnya – . Tekan Tombol Enter.
  4. Perhatikan bahwa Penyertaan TOP dibuat secara default jika pengguna mencentang opsi untuk membuat penyertaan TOP.

Cara membuat Modul Fungsi

  1. Buat Grup fungsi (ucapkan “ZCAL”).
  2. Buat modul fungsi, atur atribut seperti (Grup fungsi, Aplikasi, Teks Pendek dan Jenis Proses) dan Simpan.
  3. Sertakan file “LZCALU01” akan memiliki kode sumber modul fungsi pertama.
  4. Sertakan file "LZCALTOP" akan memiliki data global.
  5. Program utama “SAPLZCAL” berisi
    • Data global Sertakan file “LZCALTOP”
    • Modul fungsi termasuk file “LZCALUXX”
    • Ditentukan pengguna Sertakan file “LZCALF..”, “LZCALO..” dan “LZCALI..”
  6. Tentukan parameter antarmuka dan Pengecualian
  7. Tulis kode sumbernya
  8. Aktifkan Modul Fungsi
  9. Menguji Modul Fungsi – Pengujian & Debugging Tunggal
  10. Mendokumentasikan dan Merilis Modul Fungsi

Itu saja tentang Modularitas di ABAP.

Ringkaslah postingan ini dengan: