ABAP'ta Modülerleştirme: Makro, Alt Programlar ve Fonksiyon Modülleri
Kaynak kodunu modülerleştirdiğinizde, bir modüle bir dizi ABAP ifadesi yerleştirirsiniz. Daha sonra, tüm ifadeleri ana programınıza yerleştirmek yerine sadece modülü çağırırsınız. Program oluşturulduğunda, modülerleştirme ünitesindeki kaynak kodu, sanki fiziksel olarak ana programda varmış gibi ele alınır.
Modülerleştirme İhtiyacı
- Programın yapısını iyileştirin.
- Kodu okumak kolay
- Kodun bakımı kolay
- Tekrarları önler ve kodun yeniden kullanımını teşvik eder
Çeşitli Modülerleştirme Teknikleri
- Makroların Kullanımı
- Dahil etme dosyalarının kullanımı
- Altyordamlar
- Fonksiyon Modülleri
Her birine ayrıntılı olarak bakalım:
SAP- ABAP Makrosu
Aynı ifade kümesini bir programda birden çok kez yeniden kullanmak istiyorsanız, bunları bir makroya dahil edebilirsiniz.
Bir makroyu yalnızca tanımlandığı program içerisinde kullanabilirsiniz ve yalnızca tanımından sonraki program satırlarında çağrılabilir.
Makrolar uzun hesaplamalar veya karmaşık WRITE ifadeleri için yararlı olabilir.
Sözdizimi
DEFINE <macro_name> 'Macro Statements END-OF-DEFINITION
Makrolar Parametreleri kullanabilir &N burada N = 1,2,3…
Örnek:-
DATA: number1 TYPE I VALUE 1. DEFINE increment. ADD 1 to &1. WRITE &1. END-OF-DEFINITION. Increment number1. WRITE number1.
Çıktı: 2
Programları Dahil Et
Programları Dahil Etme yalnızca kaynak kodunu modülerleştirmeye yöneliktir ve hiçbir parametre arayüzüne sahip değildir.
Programları dahil etme, aynı kaynak kodunu farklı programlarda kullanmanıza olanak tanır. Farklı programlarda kullanmak istediğiniz uzun veri bildirimleriniz varsa faydalı olabilirler.
Sözdizimi
Include <include program Name>
Nota Puan
- Dahil edilen programlar kendilerini arayamaz.
- Dahil etme programları tam ifadeler içermelidir.
Örnek:
INCLUDE ZILX0004. WRITE: / 'User', SY-UNAME,/ 'Date', SY-DATUM. ================================ PROGRAM ZRPM0001. INCLUDE ZILX0004.
Altyordamlar
Alt programlar herhangi bir programda tanımlayabileceğiniz prosedürlerdir. ABAP programı ve ayrıca herhangi bir programdan arayın. Altprogramlar normalde dahili olarak çağrılır, yani yerel olarak sıklıkla kullanılan kod veya algoritma bölümlerini içerirler. Bir işlevin sistem genelinde yeniden kullanılabilir olmasını istiyorsanız bir işlev modülü kullanın.
Sözdizimi-
FORM <Subroutine> [<pass>]. <Statement block>. ENDFORM.
= Alt programın adı
= Parametreler aktarılıyor
Alt Program Türleri
- İç
- Çağrılan aynı programda tanımlanan alt program.
- Ana ABAP/4 programında bildirilen tüm veri nesnelerine erişebilir.
- dış
- Çağrılan programın dışında tanımlanan alt program.
- Kullanmanız gerekiyor Belleğin ortak kısımlarındaki veri nesnelerini seçin veya bildirin.
Altyordam çağırma
Dahili Alt Programlar
PERFORM <subroutine> [<pass>]
= Alt programın adı
= Parametreler aktarılıyor
Ana programda bildirilen veriler otomatik olarak kullanılabilir.
Harici Alt Programlar
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>].
Nota Puan
- Alt programlarda iç içe çağrılara izin verilir (yani bir FORM … ENDFORM içinde PERFORM).
- Yinelenen aramalar da mümkündür.
- Yerel verileri tanımlamak için FORM'dan sonra DATA ifadesini kullanın. Alt programa her girdiğinizde veriler yeniden oluşturulur (bir başlangıç değeriyle) ve sonunda (yığından) serbest bırakılır.
- Bir alt programda kullanılan genel verileri tanımlamak için FORM'dan sonra LOCAL ifadesini kullanın. Alt programa girdiğinizde değerler kaydedilir ve sonunda (yığından) serbest bırakılır.
Fonksiyon Modülleri
Fonksiyon Modülleri herkesin kullanabileceği genel amaçlı ABAP/4 rutinleridir. Aslında çok sayıda standart fonksiyon Modülü mevcuttur.
Fonksiyon Modülleri Fonksiyon Grupları halinde düzenlenmiştir: Mantıksal olarak ilişkili fonksiyonların koleksiyonları. Bir İşlev modülü her zaman bir İşlev Grubuna aittir.
Sözdizimi-
FUNCTION <function module> <Statements> ENDFUNCTION.
Fonksiyon Modülüyle İlgili Önemli Bilgiler
- Yönetim
- Parametreleri İçe Aktarma/Değiştirme/Dışa Aktarma.
- Tablo Parametreleri/İstisnalar.
- Dökümanlar
- Kaynak kodu – L U01. İşlev Grubudur
- Küresel Veriler – L ÜST .Fonksiyon grubu için genel veriler - Fonksiyon grubundaki fonksiyon modülleri üzerinden erişilebilir.
- Ana Program – SAPL . Söz konusu işlev grubuna ilişkin tüm içerme dosyalarının listesini içerir
Fonksiyon Modülünü Çağırın
Bir işlev modülünü çağırmak için CALL FUNCTION ifadesini kullanın:
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]].
Fonksiyon Grupları
İşlev grupları, işlev modülleri için kaplardır. Aslında çok sayıda standart Fonksiyon Grubu vardır.
Bir işlev grubundaki tüm işlev modülleri, grubun genel verilerine erişebilir.
Yürütülebilir programlar gibi (tip 1) ve modül havuzları (M tipi), fonksiyon grupları ekranlar, seçim ekranları ve listeler içerebilir.
Nota Puan
- İşlev Grupları yürütülemez.
- Bir işlev grubunun adı en fazla 26 karakter uzunluğunda olabilir.
- Bir fonksiyon grubu veya fonksiyon modülü oluşturduğunuzda, ana program ve dahil edilen programlar otomatik olarak oluşturulur.
- İşlev grupları verileri kapsüller.
İşlev Grubu nasıl oluşturulur?
- İşlem SE80'e gidin.
- Açılır Menüden Program'ı seçin.
- Oluşturmak istediğiniz Fonksiyon Grubunun adını yazın. Genellikle Kullanıcı yapımı Fonksiyon grupları “Z” ile başlar. Örneğin - . Enter Tuşuna basın.
- Kullanıcı bir TOP içermesi oluşturma seçeneğini işaretlerse, TOP Dahil Etmenin varsayılan olarak oluşturulduğunu unutmayın.
Fonksiyon Modülü nasıl oluşturulur
- Bir işlev Grubu oluşturun (“ZCAL” deyin).
- Bir fonksiyon modülü oluşturun, (Fonksiyon grubu, Uygulama, Kısa Metin ve İşlem Türü) ve Kaydet gibi nitelikleri ayarlayın.
- “LZCALU01” dosyasını dahil edin, ilk işlev modülünün kaynak kodunu içerecektir.
- “LZCALTOP” dosyasını dahil et, genel verilere sahip olacaktır.
- Ana program “SAPLZCAL” şunları içerir:
- Küresel veriler “LZCALTOP” dosyasını ekleyin
- Fonksiyon modülleri “LZCALUXX” dosyasını içerir
- Kullanıcı tanımlı “LZCALF..”, “LZCALO..” ve “LZCALI..” dosyalarını içerir
- Arayüz parametrelerini ve İstisnaları tanımlayın
- Kaynak kodunu yazın
- Fonksiyon Modülünü Etkinleştir
- Fonksiyon Modülünün Test Edilmesi – Tek Test ve Hata Ayıklama
- Bir İşlev Modülünün Belgelenmesi ve Yayınlanması
ABAP'taki Modülerlik bu kadar.