SAP ABAP - Makro

Jika kita ingin menggunakan kembali set pernyataan yang sama lebih dari sekali dalam sebuah program, kita perlu memasukkannya ke dalam makro. Misalnya, makro dapat berguna untuk kalkulasi panjang atau untuk menulis pernyataan TULIS yang kompleks. Kami hanya dapat menggunakan makro dalam program yang telah ditentukan. Definisi makro harus muncul sebelum makro digunakan dalam program.

Makro dirancang berdasarkan placeholder. Placeholder berfungsi seperti pointer dalam bahasa C. Anda dapat menentukan makro dalam pernyataan DEFINE ... END-OF-DEFINITION.

Berikut ini adalah sintaks dasar dari definisi makro -

DEFINE <macro_name>. <statements> 
END-OF-DEFINITION. 
   ...... 
  
   <macro_name> [<param1> <param2>....].

Makro harus didefinisikan terlebih dahulu sebelum menjalankannya. <param1>…. menggantikan placeholder & 1 ... dalam pernyataan ABAP yang terdapat dalam definisi makro.

Jumlah maksimum tempat penampung dalam definisi makro adalah sembilan. Yaitu, ketika program dijalankan, sistem SAP menggantikan makro dengan pernyataan yang sesuai dan placeholder & 1, & 2,…. & 9 diganti dengan parameter param1, param2, .... param9. Kami mungkin menjalankan makro dalam makro lain, tetapi tidak makro yang sama.

Contoh

Masuk ke transaksi SE38. Buat program baru ZMACRO_TEST bersama dengan deskripsi di kolom teks singkat, dan juga dengan atribut yang sesuai seperti Jenis dan Status seperti yang ditunjukkan pada tangkapan layar berikut -

Berikut adalah kodenya -

REPORT ZMACRO_TEST. 
DEFINE mac_test. 
WRITE: 'This is Macro &1'. 
END-OF-DEFINITION. 

PARAMETERS: s1 type C as checkbox. 
PARAMETERS: s2 type C as checkbox. 
PARAMETERS: s3 type C as checkbox default 'X'. 

START-OF-SELECTION. 
IF s1 = 'X'. 
   mac_test 1. ENDIF. 
IF s2 = 'X'. 
   mac_test 2. 
ENDIF.
 
IF s3 = 'X'. 
   mac_test 3. 
ENDIF.

Kami memiliki 3 kotak centang. Saat menjalankan program, pilih kotak centang S2.

Kode di atas menghasilkan keluaran sebagai berikut -

A Macro Program 
 
This is Macro 2

Jika semua kotak centang dipilih, kode menghasilkan keluaran berikut -

A Macro Program 
 
This is Macro 1 This is Macro 2 This is Macro 3