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.

  • 🧩 Temel İlke: Modülerleştirme birimi, kaynak kodu çağıran programda fiziksel olarak mevcutmuş gibi oluşturulur; bu sayede çalışma zamanı maliyeti olmadan yapı iyileştirilir.
  • ⚡ makro: DEFINE ve END-OF-DEFINITION ile tanımlanır, yalnızca onu tanımlayan programın içinde ve yalnızca tanımlama satırından sonra kullanılabilir.
  • 📄 Dahil Edilecek Program: Herhangi bir parametre arayüzü içermez ve yalnızca uzun veri bildirimleri gibi kaynak kodlarını çeşitli programlar arasında paylaşmak için mevcuttur.
  • 🔁 Alt program: FORM ve ENDFORM ile tanımlanır, PERFORM ile çağrılır ve bir program içinde yerel olarak yeniden kullanılan mantık için uygundur.
  • 🧱 Fonksiyon Modülü: İçe aktarma, dışa aktarma, değiştirme, tablo parametreleri ve istisnalar için tip tanımlı bir arayüze sahip sistem genelinde çalışan bir rutin.
  • ???? Fonksiyon Grubu: İçindeki her fonksiyon modülü tarafından paylaşılan global verileri içeren, TOP ve UXX include dosyalarıyla otomatik olarak oluşturulan bir konteyner.
  • 🧭 Seçim Kuralı: Yerel kısaltmalar için makro, yerel mantık için alt program ve sistem genelinde yeniden kullanılabilir olması gereken durumlarda fonksiyon modülü seçin.

ABAP'ta Modülerleştirme

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

  1. İç
    • Çağrılan aynı programda tanımlanan alt program.
    • Ana ABAP/4 programında bildirilen tüm veri nesnelerine erişebilir.
  2. 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?

  1. İşlem SE80'e gidin.
  2. Açılır Menüden Program'ı seçin.
  3. 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.
  4. 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

  1. Bir işlev Grubu oluşturun (“ZCAL” deyin).
  2. Bir fonksiyon modülü oluşturun, (Fonksiyon grubu, Uygulama, Kısa Metin ve İşlem Türü) gibi öznitelikleri ayarlayın ve kaydedin.
  3. “LZCALU01” dosyasını dahil edin, ilk işlev modülünün kaynak kodunu içerecektir.
  4. “LZCALTOP” dosyasını dahil et, genel verilere sahip olacaktır.
  5. 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
  6. Arayüz parametrelerini ve İstisnaları tanımlayın
  7. Kaynak kodunu yazın
  8. Fonksiyon Modülünü Etkinleştir
  9. Fonksiyon Modülünün Test Edilmesi – Tek Test ve Hata Ayıklama
  10. 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.

SSS

Makro, oluşturulma zamanında genişletilir ve yalnızca onu tanımlayan program içinde çalışır. Alt program ise, PERFORM komutuyla başka bir programdan da çağrılabilecek, tür belirtilmiş parametre arayüzüne sahip gerçek bir prosedürdür.

İşlem türü Uzaktan Etkinleştirilen Modül olarak ayarlanmış bir fonksiyon modülü, başka bir modülden çağrılabilir. SAP Sistemden veya harici bir uygulamadan alınabilir. Parametreleri değer olarak iletilmelidir ve istisnalar sistem arızası olarak ele alınır.

Makrolar oluşturulmadan önce genişletildiği için hata ayıklayıcıda adım adım incelenemez. Satır satır hata ayıklama gerektiğinde mantığı bir alt programa veya metoda taşıyın ve makroları kısa ifadelerle sınırlı tutun.

ABAP geliştirme araçlarındaki yapay zeka kod yardımcıları, basit bir açıklamadan bir fonksiyon modülünün iskeletini, parametre arayüzünü ve istisnalarını taslak haline getirebilir. Geliştirici yine de mantığı gözden geçirir, modülü etkinleştirir ve taşımadan önce test eder.

Yapay zekâ araçları bir programı tarar, tekrarlanan blokları tespit eder ve bir alt programın, metodun veya fonksiyon modülünün nerede çıkarılması gerektiğini önerir.tracBu öneri, yeniden düzenleme sürecini hızlandırıyor ancak aynı davranışın doğrulanması için birim testleri yine de gerekli.

Bu yazıyı şu şekilde özetleyin: