SAP ABAP BDC: Mi a kötegelt adatkommunikáció?

⚡ Okos összefoglaló

SAP Az ABAP BDC (Batch Data Communication) a hagyományos adatokat az R/3-ba automatikusan vezérli a szabványos tranzakciók végrehajtásával. Ez az oldal ismerteti a kötegelt beviteli munkameneteket, a klasszikus és a hívásos tranzakciós módszereket, a BDCDATA struktúrát, a BDC_OPEN_GROUP munkafolyamatot és a kötegelt beviteli rögzítőt.

  • 🔄 Fő cél: A BDC automatikusan betáplálja az adathalmazokat a tranzakciók képernyőibe, minden képernyőt és üzleti validációt lefuttatva, ahogyan azt egy felhasználó tenné.
  • 🧾 Kötegelt beviteli munkamenet: Egy munkamenet a tranzakcióhívásokat a bemeneti adataikkal csoportosítja, és az adatbázisban tárolja, amíg végrehajtásra nem kerül.
  • 🇧🇷 Két módszer: A klasszikus kötegelt bevitel a BDC_OPEN_GROUP, BDC_INSERT és BDC_CLOSE_GROUP metódusokat használja, míg a hívás tranzakciós metódus a CALL TRANSACTION USING metódust.
  • 🇧🇷 Módszerválasztás: A klasszikus kötegelt bemenet szinkronban van egy naplóval, míg a hívás tranzakció gyorsabb, aszinkron, és egyetlen tranzakciót kezel.
  • 🗂️ BDCDATA struktúra: A PROGRAM, DYNPRO, DYNBEGIN, FNAM és FVAL mezők leírják a képernyőt, a mezőt és az egyes lépések értékét.
  • ⏺️ Recorder: A kötegelt bemeneti rögzítő rögzíti a manuális tranzakciókat, és létrehoz egy munkamenetet vagy egy kész BDC programot, amely később az SM35-ben fut.

SAP ABAP BDC kötegelt adatkommunikáció

Bevezetés a kötegelt bevitelbe

A kötegelt bemenetet általában nem R/3 rendszerekről R/3 rendszerekre történő adatátvitelre vagy R/3 rendszerek közötti adatátvitelre használják.

Ez egy olyan adatátviteli technika, amely lehetővé teszi az adatkészletek automatikus átvitelét a tranzakciókhoz tartozó képernyőkre, így egy SAP rendszer. A kötegelt bevitelt kötegelt beviteli munkamenet vezérli.

Kötegelt beviteli munkamenet

Csoportosítja a tranzakciós hívások sorozatát a bemeneti adatokkal és felhasználói műveletekkel együtt. A kötegelt beviteli munkamenet felhasználható egy párbeszéd-tranzakció végrehajtására kötegelt bevitelben, ahol néhány vagy az összes képernyőt a munkamenet feldolgozza. A kötegelt bemeneti munkamenetek az adatbázisban adatbázistáblákként vannak tárolva, és a programon belül belső táblaként használhatók a tranzakciókhoz való hozzáféréskor.

Megjegyzendő pontok

  • A BDI normál módon működik SAP A tranzakciókat ugyanúgy hajtja végre, mint a felhasználó, de automatikusan végrehajtja a tranzakciót.Az összes képernyő-ellenőrzés és üzleti logikai ellenőrzés a Batch Data Input használata közben történik.
  • Nagy mennyiségű adat bevitelére alkalmas.
  • Nincs szükség kézi beavatkozásra

A kötegelt bevitel módszerei

SAP két alapvető módszert biztosít a régebbi adatok R/3 rendszerbe történő átviteléhez.

  1. Klasszikus kötegelt beviteli módszer.
  2. Hívás tranzakciós módszer.

Klasszikus kötegelt beviteli módszer

Ebben a módszerben egy ABAP/4 program beolvassa a külső adatokat a SAP A rendszer és a tárolás kötegelt beviteli munkamenetben történik.

A munkamenet létrehozása után futtathatja a munkamenetet a végrehajtásához SAP tranzakció benne.

Ez a módszer a BDC_ OPEN, BDC_INSERT és BDC_CLOSE függvénymodulokat használja

A kötegelt beviteli munkamenetet 3 módon lehet feldolgozni

  1. Az előtérben
  2. A háttérben
  3. Feldolgozás közben, hibakijelzéssel

A kötegelt beviteli munkameneteket az előtérben vagy a hibakijelző használatával kell feldolgoznia, ha tesztelni szeretné az adatátvitelt.

Ha szeretné végrehajtani az adatátvitelt vagy tesztelni a teljesítményét, akkor a munkameneteket a háttérben kell feldolgoznia.

A klasszikus kötegelt beviteli módszerrel kapcsolatos megjegyzések

  • Synchronos feldolgozás
  • Adatátvitel több tranzakcióhoz.
  • Synchronous adatbázis frissítés.
  • Minden munkamenethez kötegelt beviteli folyamatnapló jön létre.
  • A munkamenet nem generálható párhuzamosan.

Hívás tranzakciós módszer.

Ebben a módszerben ABAP/4 program a CALL TRANSACTION USING utasítást használja egy SAP tranzakció.

A teljes kötegelt beviteli folyamat online zajlik a programban

Hívás tranzakciós módszer

Megjegyzendő pontok:

  • Gyorsabb adatfeldolgozás
  • Aszinkron feldolgozás
  • Adatátvitel egyetlen tranzakcióhoz.
  • Nem jön létre kötegelt beviteli feldolgozási napló.

Klasszikus kötegelt bemenet vs. hívás tranzakció

A két módszer ugyanahhoz a tranzakcióhoz vezet, de sebességükben, naplózásukban és hibakezelésükben különböznek. Az alábbi táblázat bemutatja, hogy mikor melyik a megfelelő választás.

Kritériumai Klasszikus kötegelt bemenet Hívás tranzakció
Technika BDC_NYITÁS_CSOPORT, BDC_BESZÚRÁS, BDC_CSOPORT BEZÁRÁSA HÍVÁS TRANZAKCIÓ HASZNÁLATÁVAL
Feldolgozás Synchronous, később fut az SM35-ről Online fut, a programban
Tranzakciók Sok tranzakció egyetlen munkamenetben Egyetlen tranzakció hívásonként
Bejelentkezés Munkamenetenként automatikusan létrejön egy folyamatnapló. Nincs napló, a program gyűjti az üzeneteket
Sebesség Lassabb, de robusztus és újraindítható Gyorsabb
A legjobb Nagyméretű, egyszeri, örökölt betöltések, amelyeknek auditálhatónak kell lenniük Egy dokumentum interaktív vagy nagy sebességű átvitele

A módszerek összehasonlítása után a következő szakasz ismerteti a projekt teljes folyamatát.

Kötegelt beviteli eljárások

Kötegelt beviteli eljárások

Általában a következő lépések sorozatát kell követnie a kötegelt bevitel fejlesztéséhez a szervezet számára

  1. Az örökölt adatok elemzése. Határozza meg, hogy az átvinni kívánt adatok hogyan legyenek leképezve a SAP Szerkezet. Vegye figyelembe a szükséges adattípus- vagy adathossz-konverziókat is.
  2. Generálása SAP adatszerkezetek export programokban való használatra.
  3. Exportálja az adatokat egy szekvenciális fájlba. Vegye figyelembe, hogy az előre meghatározott karakterformátum szükséges SAP kötegelt beviteli programok.
  4. Ha a SAP a mellékelt BDC programokat nem használja, kódolja saját kötegelt bemeneti programját. Válassza ki a megfelelő kötegelt beviteli módot a helyzetnek megfelelően.
  5. Feldolgozza az adatokat, és hozzáadja a SAP rendszer.
  6. Elemezze a folyamatnaplót. A CALL TRANSACTION metódushoz, ha nem jön létre megfelelő napló, használja a program által gyűjtött üzeneteket.
  7. A folyamatelemzés eredményeiből javítsa ki és dolgozza fel újra a hibás adatokat.

BDC program írása

A BDC program megírásához kövesse a következő folyamatot

  1. Elemezze a tranzakció(ka)t a kötegelt bemeneti adatok feldolgozásához.
  2. Döntse el a használni kívánt kötegelt beviteli módot.
  3. Adatok olvasása szekvenciális fájlból
  4. Végezzen adatkonverziót vagy hibaellenőrzést.
  5. Az adatok tárolása a kötegelt bemeneti struktúrában, BDCDATA.
  6. Hozzon létre kötegelt beviteli munkamenetet a klasszikus kötegelt bevitelhez, vagy dolgozza fel az adatokat közvetlenül a CALL TRANSACTION USING utasítással.

Kötegelt bemeneti adatstruktúra

A kötegelt bemeneti adatstruktúra deklarációja

DATA : BEGIN OF < bdc table>

OCCURS <occurs parameters>.

INCLUDE STRUCTURE BDCDATA.

DATA:END OF <bdc table>.
Mező neve típus Hossz Leírás
PROGRAM CHAR 8 Modul medence
DYNPRO NUMC 4 Dynpro szám
DYNBEGIN CHAR 1 Dynpro indítása
FNAM CHAR 35 Mező neve
FVAL CHAR 80 Mező értéke

A mezők sorrendje az adatokon belül egy adott képernyőnél nem számít

Megjegyzendő pontok

  • A BDC adatok kitöltésekor vegye figyelembe a felhasználói beállításokat. Ez különösen fontos a számokat tartalmazó mezők kitöltésekor (például mennyiség, összeg). A felhasználói beállítás határozza meg, hogy mi legyen a csoport.ping számok karaktere Pl.: Egy ötvenezer szám a felhasználói beállítástól függően 50 000,00 vagy 50 000,00 formátumban írható.
  • Sűrítse az FVAL mezőt az összeg és a mennyiség mezőkhöz úgy, hogy balra igazodjanak.
  • Vegye figyelembe, hogy a BDC-n keresztül kitöltött összes mezőt karaktertípusú mezőként kell kezelni a BDC adattábla feltöltésekor.
  • Egyes képernyőkön, amikor értékeket tölt fel egy táblázatvezérlőben BDC használatával, meg kell jegyeznie, hogy hány sor van jelen a képernyő alapértelmezett méretén, és annyi sort kell kódolnia. Ha több sort kell kitöltenie, akkor kódolnia kell a „Page down” funkciót, ahogyan azt tenné, amikor a táblázatvezérlőt kézzel tölti fel.
  • A fenti forgatókönyvben megjelenő sorok száma a felhasználó által használt képernyőmérettől függően változik. Tehát mindig szabványos képernyőméretet kódoljon, és a BDC mindig szabványos képernyőméretben működjön, függetlenül attól, hogy a felhasználó milyen méretben tartja a képernyőjét.

Kötegelt beviteli munkamenet létrehozása

  1. Nyissa meg a kötegelt beviteli munkamenetet a BDC_OPEN_GROUP funkciómodul segítségével.
  2. A munkamenetben minden egyes tranzakcióhoz:
  3. Töltse ki a BDCDATA-t a tranzakcióban feldolgozott összes képernyő és mező értékeivel.
  4. Vigye át a tranzakciót a munkamenetbe a BDC_INSERT segítségével.
  5. Zárja be a kötegelt beviteli munkamenetet a BDC_CLOSE_GROUP segítségével

Példa: BDC hívástranzakció használatával

Az alábbi program a tranzakciós metódus hívása folyamatát mutatja be teljes folyamatban. Két képernyős tranzakcióhoz létrehozza a BDCDATA táblát, és N módban (nincs megjelenítés) futtatja egy hibatáblával, hogy a hibákról jelentést lehessen készíteni.

REPORT z_bdc_call_transaction.

DATA: lt_bdcdata TYPE STANDARD TABLE OF bdcdata,
      ls_bdcdata TYPE bdcdata,
      lt_messages TYPE STANDARD TABLE OF bdcmsgcoll.

* Helper that appends one BDCDATA line
FORM bdc_field USING p_fnam p_fval.
  CLEAR ls_bdcdata.
  ls_bdcdata-fnam = p_fnam.
  ls_bdcdata-fval = p_fval.
  APPEND ls_bdcdata TO lt_bdcdata.
ENDFORM.

* Screen 1: start the dynpro, then fill the fields
CLEAR ls_bdcdata.
ls_bdcdata-program  = 'SAPMV45A'.
ls_bdcdata-dynpro   = '0101'.
ls_bdcdata-dynbegin = 'X'.
APPEND ls_bdcdata TO lt_bdcdata.

PERFORM bdc_field USING 'VBAK-AUART' 'OR'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.

* Run the transaction: mode N = no display, update S = synchronous
CALL TRANSACTION 'VA01'
  USING         lt_bdcdata
  MODE          'N'
  UPDATE        'S'
  MESSAGES INTO lt_messages.

IF sy-subrc <> 0.
  * Read lt_messages to report the errors that occurred
ENDIF.

💡 Tipp: A MODE paraméter vezérli a megjelenítést: Az A az összes képernyőt megjeleníti, az E csak hiba esetén áll le, az N pedig csendben fut. Az E paramétert tesztelés közben, az N paramétert pedig éles terhelés esetén használja.

Batch Input Recorder

A kötegelt beviteli rögzítő (Rendszer > Szolgáltatások > Kötegelt bevitel > Rögzítő) rögzíti a kézzel bevitt tranzakciókat, és kötegelt beviteli munkamenetet hoz létre, amely később végrehajtható az SM35 használatával.

Batch Input Recorder

  • Indítsa el a kötegelt beviteli rögzítőt a Rögzítés nyomógomb kiválasztásával a kötegbevitel kezdeti képernyőjén.
  • A felvétel neve egy felhasználó által meghatározott név, és megegyezhet a rögzítésből létrehozható kötegelt bemeneti munkamenet nevével.
  • Írjon be egy SAP tranzakciót, és kezdje el a tranzakció könyvelését.
  • Miután befejezte a közzétételt a SAP Tranzakció, vagy válassza a Tranzakció lekérése és a Mentés lehetőséget a rögzítés befejezéséhez, vagy a Következő tranzakciót és egy másik tranzakciót.
  • Miután elmentette a felvételt, kötegelt beviteli munkamenetet hozhat létre a felvételből és/vagy kötegelt beviteli programot generálhat a felvételből.
  • A létrehozott kötegelt beviteli munkamenet most ugyanúgy elemezhető, mint bármely más kötegelt beviteli munkamenet.
  • A kötegelt bemeneti rögzítő funkciója által generált program hatékony eszköz az adatinterfész programozó számára. Szilárd alapot biztosít, amely azután az ügyfelek igényei szerint módosítható.

⚠️ Figyelmeztetés: A felvétel pontosan úgy rögzíti a képernyőszekvenciát, ahogyan az történt, így a csak bizonyos adatoknál megjelenő képernyők, például a befejezetlenség esetén megjelenő felugró ablakok nem kerülnek rögzítésre. A generált programot mindig olyan adatokkal tesztelje, amelyek minden opcionális képernyőt kiváltanak.

GYIK

A BDC_OKCODE tartalmazza azt a funkciókódot, amelyet a felhasználó egy gombbal vagy billentyűvel aktiválhat, például /00 az Enterhez vagy =SAVE a mentéshez. Ez jelzi a képernyőnek, hogy milyen műveletet kell végrehajtani a mezők kitöltése után.

Az SM35 a kötegelt bevitel monitorja. Felsorolja a klasszikus kötegelt bevitel által létrehozott munkameneteket, lefuttatja azokat az előtérben vagy a háttérben, és megjeleníti a folyamatnaplót, hogy a sikertelen tranzakciók elemezhetők és újra feldolgozhatók legyenek.

A BDC-t továbbra is használják ott, ahol nincs BAPI, mivel újrahasznosítja a tranzakció képernyő-ellenőrzéseit. Az LSMW egyetlen migrációs eszközbe csomagolja a BDC-t, a felvételeket és a BAPI-kat, és egy BAPI akkor előnyös, ha stabil API áll rendelkezésre.

Igen. Az ABAP fejlesztőeszközökben a mesterséges intelligencia asszisztensek egy felvétel vagy képernyőlista alapján elkészítik a BDCDATA populációt, a CALL TRANSACTION blokkot és az üzenetkezelést. A fejlesztő leképezi a forrásfájlt és teszteli a betöltést.

A mesterséges intelligencia eszközei profilt készítenek a korábbi fájlról, a betöltés előtt megjelölik a hiányzó kötelező mezőket és a formátumbeli eltéréseket, majd utólag összegzik a kötegelt beviteli naplót, így a hibás rekordok gyorsabban javíthatók és újra feldolgozhatók.

Foglald össze ezt a bejegyzést a következőképpen: