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

  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.

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?

  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ü) ve Kaydet gibi nitelikleri ayarlayın.
  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ı

ABAP'taki Modülerlik bu kadar.