ABAP Modülerleştirme: Makro, Alt Program ve Fonksiyon Modülü
⚡ Akıllı Özet
ABAP'ta modülerleştirme, bir dizi ifadeyi ana programın çağırdığı yeniden kullanılabilir bir birime yerleştirir. Bu sayfa, makroları, include programlarını, alt programları, fonksiyon modüllerini ve fonksiyon gruplarını, her bir teknik için sözdizimi, örnekler ve seçim kriterleriyle birlikte açıklamaktadır.

ABAP'ta Modülerleştirme Nedir?
Kaynak kodu modüler hale getirdiğinizde, bir dizi ABAP ifadesini bir modüle yerleştirirsiniz. Ardından, 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 birimindeki kaynak kod, ana programda fiziksel olarak mevcutmuş gibi işlem görü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.
Makroları yalnızca tanımlandıkları program içinde kullanabilir ve yalnızca tanımlandıktan sonraki program satırlarında çağırabilirsiniz.
Makrolar, uzun hesaplamalar veya karmaşık WRITE ifadeleri için faydalı 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
Bir makro, yalnızca tek bir program içinde derleme zamanında genişletilir. Aynı kodun programlar arasında paylaşılması gerektiğinde, bunun yerine bir include programı kullanılır.
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 etmek, 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.
Dahil edilen programlar kod paylaşır ancak parametre alamaz. Alt programlar bu eksik parametre arayüzünü ekler.
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.
💡 İpucu: ABAP nesnelerinde alt programlar artık kullanılmamaktadır. Yeni geliştirmelerde yeniden kullanılabilir mantık, sınıfın metotlarına yerleştirilmeli ve uzaktan erişim veya sistem genelinde arayüz gerektiğinde fonksiyon modülleri kullanılmalıdı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]].
Her fonksiyon modülü bir fonksiyon grubunun içinde yer alır, bu nedenle sonraki bölümde bu kapsayıcının nasıl çalıştığı açıklanacaktır.
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ü) gibi öznitelikleri ayarlayın ve kaydedin.
- “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ı
Doğru Modülerleştirme Tekniğini Nasıl Seçersiniz?
Dört teknik birbiriyle örtüşüyor, bu nedenle karar, yeniden kullanım kapsamına ve bir parametre arayüzüne ihtiyaç duyulup duyulmadığına bağlıdır.
| Teknik | Yeniden kullanım kapsamı | parametre arayüzü | En iyi kullanım için |
|---|---|---|---|
| Makro | Tanım satırından sonra bir program | Konumsal yer tutucular &1 ila &9 | Kısa, tekrarlanan ifadeler, uzun hesaplamalar, karmaşık YAZMA çıktısı |
| Programı dahil et | include dosyasını adlandıran herhangi bir program | Hayır | Paylaşılan veri bildirimleri ve paylaşılan kaynak kod |
| Alt program (FORM) | Yerel veya harici, PROGRAMDA GERÇEKLEŞTİR ile… | TABLOLARI KULLANMA, DEĞİŞTİRME | Bir program içinde sıklıkla yeniden kullanılan mantık |
| fonksiyon modülü | Uzaktan aramalar da dahil olmak üzere tüm sistem. | İTHALAT, İHRACAT, DEĞİŞTİRME, TABLOLAR, İSTİSNALAR | Uygulamalar arasında paylaşılan ve bir fonksiyon grubunda kapsüllenmiş rutinler. |
Çoğu durumu kapsayan kısa bir kural: Bir program içindeki kısaltmalar için makro, paylaşılan bildirimler için include, yerel mantık için alt program ve sistemin herhangi bir yerinden çağrılabilmesi gereken durumlarda fonksiyon modülü kullanın. ABAP'ta modülerlik işte bu kadar.
