SAP ABAP BDC: Co je dávková datová komunikace?

⚡ Chytré shrnutí

SAP ABAP BDC (dávková datová komunikace) přenáší starší data do R/3 automatickým řízením standardních transakcí. Tato stránka vysvětluje relace dávkového vstupu, klasické a volané transakční metody, strukturu BDCDATA, pracovní postup BDC_OPEN_GROUP a záznamník dávkového vstupu.

  • 🔄 Hlavní účel: BDC automaticky vkládá datové sady na obrazovky transakce a spouští každou obrazovku a obchodní ověření stejně jako uživatel.
  • 🧾 Relace dávkového vstupu: Relace seskupuje volání transakcí s jejich vstupními daty a je uložena v databázi, dokud není provedena.
  • 🛠️ Dvě metody: Klasický dávkový vstup používá BDC_OPEN_GROUP, BDC_INSERT a BDC_CLOSE_GROUP, zatímco metoda volání transakcí používá CALL TRANSACTION USING.
  • 🇧🇷 Volba metody: Klasický dávkový vstup je synchronní s protokolem a volání transakcí je rychlejší, asynchronní a zpracovává jednu transakci.
  • 🗂️ Struktura BDCDATA: Pole PROGRAM, DYNPRO, DYNBEGIN, FNAM a FVAL popisují obrazovku, pole a hodnotu pro každý krok.
  • ⏺️ Zapisovač: Dávkový vstupní záznamník zachytí manuální transakci a vygeneruje relaci nebo hotový BDC program, který se později spustí v SM35.

SAP Dávková datová komunikace ABAP BDC

Úvod do dávkového vstupu

Dávkový vstup se obvykle používá k přenosu dat ze systémů jiných než R/3 do systémů R/3 nebo k přenosu dat mezi systémy R/3.

Jedná se o techniku ​​přenosu dat, která vám umožňuje automaticky přenášet datové sady na obrazovky patřící k transakcím, a tím i k SAP systém. Dávkový vstup je řízen relací dávkového vstupu.

Relace dávkového zadávání

Seskupuje řadu transakčních volání spolu se vstupními daty a akcemi uživatele. Relaci dávkového vstupu lze použít k provedení dialogové transakce v dávkovém vstupu, kde jsou některé nebo všechny obrazovky zpracovány relací. Relace dávkového vstupu jsou uloženy v databázi jako databázové tabulky a lze je v programu použít jako interní tabulky při přístupu k transakcím.

Body k poznámce

  • BDI funguje tak, že provádí normální SAP transakce, stejně jako by to udělal uživatel, ale transakci provede automaticky.Všechna ověření obrazovky a ověření obchodní logiky se provedou při použití dávkového vstupu dat.
  • Je vhodný pro zadávání velkého množství dat.
  • Není vyžadována žádná ruční interakce

Metody dávkového vstupu

SAP poskytují dvě základní metody pro přenos starších dat do systému R/3.

  1. Klasická metoda dávkového vstupu.
  2. Způsob transakce volání.

Klasická metoda dávkového vstupu

Při této metodě čte program ABAP/4 externí data do SAP Systém a úložiště v relaci dávkového vstupu.

Po vytvoření relace můžete relaci spustit a spustit SAP transakce v něm.

Tato metoda používá funkční moduly BDC_ OPEN, BDC_INSERT a BDC_CLOSE

Batch Input Session lze zpracovat 3 způsoby

  1. V popředí
  2. V pozadí
  3. Během zpracování se zobrazením chyb

Pokud chcete otestovat přenos dat, měli byste zpracovávat relace dávkového vstupu na popředí nebo pomocí chybového zobrazení.

Pokud chcete provést přenos dat nebo otestovat jeho výkon, měli byste zpracovávat relace na pozadí.

Body k poznámce o klasické metodě dávkového vstupu

  • Synchronosné zpracování
  • Přenos dat pro více transakcí.
  • Synchronou aktualizaci databáze.
  • Pro každou relaci je generován protokol dávkového vstupu.
  • Relaci nelze generovat paralelně.

Způsob transakce volání.

V této metodě ABAPProgram /4 používá ke spuštění příkazu CALL TRANSACTION USING příkaz SAP transakce.

Celý proces dávkového zadávání probíhá online v programu

Způsob transakce volání

Body k poznámce:

  • Rychlejší zpracování dat
  • Asynchronní zpracování
  • Přenos dat pro jednu transakci.
  • Nevygeneruje se žádný protokol zpracování dávkového vstupu.

Klasický dávkový vstup vs. volání transakcí

Tyto dvě metody dosahují stejné transakce, ale liší se rychlostí, protokolováním a zpracováním chyb. Níže uvedená tabulka ukazuje, kdy je která z nich správnou volbou.

Kritéria Klasický dávkový vstup Call transakce
Technika SKUPINA_BDC_OTEVŘENO, SKUPINA_BDC_VLOŽENO, SKUPINA_BDC_ZAVŘENO VOLÁNÍ TRANSAKCE POUŽITÍM
Zpracování Syncchronózní, spustit později ze SM35 Běží online, v rámci programu
Transakce Mnoho transakcí v jedné relaci Jedna transakce na hovor
Log Protokol procesu se generuje automaticky pro každou relaci. Žádný log, program shromažďuje zprávy
Rychlost Pomalejší, ale robustní a restartovatelný Rychlejší
Nejlepší pro Velká, jednorázová starší načítání, která musí být auditovatelná Interaktivní nebo vysokorychlostní přenosy jednoho dokumentu

Po porovnání metod je v následující části uveden celkový postup, kterým projekt probíhá.

Postupy dávkového zadávání

Postupy dávkového zadávání

Při vývoji dávkového vstupu pro vaši organizaci obvykle dodržíte následující sekvenci kroků

  1. Analýza starších dat. Určete, jak mají být data, která mají být přenesena, mapována do SAP Struktura. Všimněte si také nezbytných převodů typu dat nebo délky dat.
  2. Generovat SAP datové struktury pro použití v exportních programech.
  3. Exportujte data do sekvenčního souboru. Všimněte si, že formát znaků je vyžadován předdefinovaným SAP programy pro dávkové zadávání.
  4. V případě, že SAP dodané programy BDC se nepoužívají, nakódujte si vlastní program pro dávkové zadávání. Vyberte vhodnou metodu dávkového zadávání podle situace.
  5. Zpracujte data a přidejte je do SAP Systém.
  6. Analyzujte protokol procesu. Pro metodu CALL TRANSACTION, kde není vytvořen žádný správný protokol, použijte zprávy shromážděné vaším programem.
  7. Z výsledků procesní analýzy opravte a znovu zpracujte chybná data.

Psaní programu BDC

Při psaní programu BDC můžete sledovat následující proces

  1. Analyzujte transakce a zpracujte dávková vstupní data.
  2. Rozhodněte se, jakou metodu hromadného zadávání použijete.
  3. Čtení dat ze sekvenčního souboru
  4. Proveďte konverzi dat nebo kontrolu chyb.
  5. Ukládání dat do struktury dávkového vstupu,BDCDATA.
  6. Vygenerujte relaci dávkového vstupu pro klasický dávkový vstup nebo zpracujte data přímo pomocí příkazu CALL TRANSACTION USING.

Struktura dat dávkového vstupu

Deklarace datové struktury dávkového vstupu

DATA : BEGIN OF < bdc table>

OCCURS <occurs parameters>.

INCLUDE STRUCTURE BDCDATA.

DATA:END OF <bdc table>.
název pole Typ Délka Description
PROGRAM CHAR 8 Modulový bazén
DYNPRO NUMC 4 Číslo Dynpro
DYNBEGIN CHAR 1 Spuštění dynpro
FNAM CHAR 35 název pole
FVAL CHAR 80 Hodnota pole

Pořadí polí v datech pro konkrétní obrazovku není důležité

Upozorňuje na poznámky

  • Při vyplňování dat BDC se ujistěte, že berete v úvahu uživatelská nastavení. To platí zejména pro vyplňování polí, která obsahují čísla (jako množství, částka). O skupině rozhoduje uživatelské nastavení.ping znak pro čísla Např.: Číslo padesát tisíc lze zapsat jako 50 000,00 nebo 50 000,00 v závislosti na uživatelském nastavení.
  • Zhuštěte pole FVAL pro pole množství a množství tak, aby byla zarovnána doleva.
  • Všimněte si, že všechna pole, která vyplňujete prostřednictvím BDC, by měla být při naplňování tabulky Data BDC považována za pole typu znaků.
  • Na některých obrazovkách, když naplňujete hodnoty v ovládacím prvku tabulky pomocí BDC, musíte si poznamenat, kolik řádků je přítomno na výchozí velikosti obrazovky a kód pro tolik řádků. Pokud musíte naplnit více řádků, musíte kódovat funkci „O stránku dolů“, jako byste to udělali, když ručně vyplňujete ovládací prvek tabulky.
  • Počet řádků, které by se objevily ve výše uvedeném scénáři, se bude lišit v závislosti na velikosti obrazovky, kterou uživatel používá. Vždy tedy kódujte standardní velikost obrazovky a zajistěte, aby vaše BDC fungovalo vždy ve standardní velikosti obrazovky bez ohledu na to, jakou velikost obrazovky uživatel zachovává.

Vytvoření relace dávkového vstupu

  1. Otevřete relaci dávkového vstupu pomocí funkčního modulu BDC_OPEN_GROUP.
  2. Pro každou transakci v relaci:
  3. Vyplňte BDCDATA hodnotami pro všechny obrazovky a pole zpracované v transakci.
  4. Přeneste transakci do relace pomocí BDC_INSERT.
  5. Zavřete relaci dávkového vstupu pomocí BDC_CLOSE_GROUP

Příklad: BDC s využitím transakce volání

Následující program ukazuje metodu volání transakce od začátku do konce. Vytvoří tabulku BDCDATA pro dvě obrazovky transakce a spustí ji v režimu N (bez zobrazení) s tabulkou chyb, aby bylo možné hlásit chyby.

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.

💡 Tip: Parametr MODE řídí zobrazení: A zobrazuje všechny obrazovky, E se zastaví pouze při chybě a N běží tiše. E použijte během testování a N pro produkční zátěž.

Záznamník dávkového vstupu

Záznamník dávkového vstupu (Systém > Služby > Dávkový vstup > Záznamník) zaznamenává transakce, které jsou ručně zadávány, a vytváří relaci dávkového vstupu, kterou lze provést později pomocí SM35.

Záznamník dávkového vstupu

  • Spusťte záznamník dávkového vstupu výběrem tlačítka Záznam z úvodní obrazovky dávkového vstupu.
  • Název nahrávky je uživatelsky definovaný název a může se shodovat s názvem relace dávkového vstupu, který lze vytvořit ze záznamu.
  • Zadejte SAP transakci a začněte transakci zaúčtovat.
  • Po dokončení odesílání a SAP transakce, můžete buď zvolit Získat transakci a Uložit pro ukončení záznamu, nebo Další transakci a zaúčtovat další transakci.
  • Jakmile záznam uložíte, můžete vytvořit relaci dávkového vstupu ze záznamu a/nebo vygenerovat program dávkového vstupu ze záznamu.
  • Relace dávkového vstupu, kterou jste vytvořili, může být nyní analyzována stejně jako jakákoli jiná relace dávkového vstupu.
  • Program, který je generován funkcí dávkového vstupního zapisovače, je mocným nástrojem pro programátor datového rozhraní. Poskytuje pevný základ, který lze následně měnit podle požadavků zákazníka.

Warning️ Varování: Záznam zachycuje sekvenci obrazovek přesně tak, jak se odehrála, takže se nezaznamenává obrazovka, která se zobrazí pouze pro určitá data, například vyskakovací okno s nedokončeným zobrazením. Vygenerovaný program vždy otestujte s daty, která spouštějí každou volitelnou obrazovku.

Nejčastější dotazy

BDC_OKCODE obsahuje funkční kód, který by uživatel spustil stisknutím tlačítka nebo klávesy, například /00 pro Enter nebo =SAVE pro Uložení. Říká obrazovce, jakou akci má provést po vyplnění polí.

SM35 je monitor dávkového vstupu. Vypisuje relace vytvořené klasickým dávkovým vstupem, spouští je v popředí nebo na pozadí a zobrazuje protokol procesů, aby bylo možné analyzovat a znovu zpracovat neúspěšné transakce.

BDC se stále používá tam, kde neexistuje BAPI, protože znovu používá validace transakce na obrazovce. LSMW zabaluje BDC, záznamy a BAPI do jednoho migračního nástroje a... BAPI je preferováno, pokud je k dispozici stabilní API.

Ano. Asistenti umělé inteligence ve vývojových nástrojích ABAP pořídí záznam nebo seznam obrazovek a vytvoří návrh populace BDCDATA, bloku CALL TRANSACTION a zpracování zpráv. Vývojář namapuje zdrojový soubor a otestuje zátěž.

Nástroje umělé inteligence profilují starší soubor, před načtením označují chybějící povinná pole a neshody formátů a následně shrnují protokol dávkového vstupu, aby bylo možné chybné záznamy rychleji opravit a znovu zpracovat.

Shrňte tento příspěvek takto: