Abap blog, dinamikus programozás abapban

Abap blog, dinamikus programozás abapban

Néhány nappal ezelőtt volt szerencsém meghallgatni BC402 Természetesen a program keretében „Este ABAP» szeretném kifejezni hálámat az SAP számára ezt a lehetőséget, és azt is beszélve a szakmaiság a tanár, akinek a szerepét Basil Kowalski. A tanfolyam maga elkötelezett a felülvizsgálatot egy elég széles témák, amelyek egyébként, hasznos lesz minden ABAP programozók a napi tevékenységet. Az egyik téma a tanfolyam lehetősége volt, dinamikus programozás ABAP, és amiről szeretnék beszélni tovább.

A szoftver legfontosabb jellemzője, hogy képes megváltoztatni és alkalmazkodni a változó körülményekhez. Az egyik eszköz, amely ilyen eszközt biztosít, dinamikus programozás.

Az ABAP-ban a dinamikus programozás a következőket jelentheti:

  • Dinamikus kiegészítéseket a szereplők amikor ahelyett, állandók, változók helyettesített: Hívás funkció gv_function, go_some => (gv_method), RENDEZÉS lt_tab BY (gv_column, SELECT (lv_fieldlist) AZ (gv_table) ... ahol (lv_where), stb
  • Programok létrehozása speciális operátorokkal: INSERT REPORT, GENERROY SUBROUTINE POOL.
  • Dinamika mezőszimbólumokkal.
  • Dinamika referenciaváltozók használatával, beleértve a futásidejű szolgáltatásokkal.

Ebben a cikkben az utolsó két módszert kell figyelembe venni, a többi információ a hivatalos hivatkozásból, valamint a BC402 tanfolyamból szerezhető be.

A dinamikus programozáshoz meg kell értenünk, hogy melyek a referenciaváltozók és a szimbólumok (terepi szimbólumok), és melyek azok a különbségek.

A fejlesztők számára, akik csak most kezdik megtanulni az ABAP tanulását, a mezőszimbólumok kifejezés gyakran zavart okozhat. Azok, akik a C / C ++ nyelvekkel dolgoztak, gyakran összetévesztik őket a mutató típusával (Pointer). A terepi szimbólumok azonban nem utalnak a memóriaterületre, hanem egy olyan változó vagy adatobjektum mutatói, amelyek az aktuális kódblokkban láthatók (az alias kifejezést használhatja).

Az alábbi ábra világosan mutatja a fő különbségeket.

Abap blog, dinamikus programozás abapban

Három tárgyunk van:

Általánosított típusok

Ezen kívül a szabványos adattípusok a ABAP ott is számos olyan általános típusú, amelyek használata csak akkor lehetséges, abban az esetben: a formális paraméterek a módszerek (eljárások beállításához), mező-szimbólumokat és hivatkozás változók. Gyakran a dinamikus programozás, meg kell foglalkozni korábban nem volt ismert adattípusok, tudnia kell, hogyan lehet ábrázolni, mint egy általános típus.

Az ilyen típusok listája az alábbiakban található:

Futásidejű szolgáltatások

Az előzőekben tárgyalt példák azt mutatták, hogyan használhatunk helyszíni szimbólumokat és referenciaváltozókat, de végül dolgoztunk olyan adattípusokkal, amelyeket valahogy valahol leírtunk. És mi van, ha egy futási időben létrehozott adattípus jött hozzánk? A leírás megszerzéséhez használhatunk egy RTTS nevű eszközt. Valójában ez egy bizonyos hierarchia (set) az osztályok, hívó módszerek, amelyek segítségével kap egy teljes leírást az adattípus. A leíró képesség mellett ez az eszköz dinamikusan létrehozhat adattípusokat a programfuttatás során.

Az RTTS osztályok hierarchiája így néz ki:

Abap blog, dinamikus programozás abapban

A hierarchia tetején az osztály CL_ABAP_TYPEDESCR van, amelynek absztrakt típusa van nem tudja létrehozni a példányát, de ennek az osztálynak a fontosságát a másikban, olyan gyári módszereket tartalmaz, amelyek lehetővé teszik, hogy az alárendelt osztályok példányait a végrehajtott paraméterek és módszerek függvényében kapja meg. Például kaphat leírást az adattípus nevéről:

Dinamikus programozás esetén a táblázat valóban dinamikus létrehozása.
Nekem volt egy feladata, hogy készítsen jelentést a pénzeszközök egyenlegéről a vállalat összes számláján a különböző országokban és különböző bankokban. Essno, a számlák lehetnek annyiak, amennyit csak akarsz, és számuk változhat.
A megoldás dinamikus (create_dynamic_table) elutasította a „tip”, és az osztály elrendelte, hogy hozzon létre egy szótár szerkezete 300 oszlop ( „ez legyen elég”), essno kezét. Az érvelés majdnem küzdött. Itt gondolom, ez a probléma a logika vagy a főnök zsarnoksága legyőzhetetlen?

Sajnos, a zsarnokságot nehéz meghódítani. Volt olyan eset, amikor nem tudta, mi az RFF, a hatóságokat nehezen tudták meggyőzni a használatában, jóllehet ez a kommunikációs rendszer meglehetősen szabványos

fiatal lelkesedés + vágy annak bizonyítására, hogy mindent rosszul csinál

Kapcsolódó cikkek