SAP ABAP BDC: Czym jest komunikacja danych wsadowych?

โšก Inteligentne podsumowanie

SAP ABAP BDC (Batch Data Communication) przesyล‚a starsze dane do R/3, automatycznie uruchamiajฤ…c standardowe transakcje. Ta strona wyjaล›nia sesje wsadowego wprowadzania danych, klasyczne i wywoล‚awcze metody transakcji, strukturฤ™ BDCDATA, przepล‚yw pracy BDC_OPEN_GROUP oraz rejestrator wsadowego wprowadzania danych.

  • ๐Ÿ”„ Gล‚รณwny cel: BDC automatycznie wprowadza zestawy danych do ekranรณw transakcji, uruchamiajฤ…c kaลผdy ekran i walidacjฤ™ biznesowฤ… tak, jak zrobiล‚by to uลผytkownik.
  • ๐Ÿงพ Sesja wprowadzania wsadowego: Sesja grupuje wywoล‚ania transakcji z danymi wejล›ciowymi i jest przechowywana w bazie danych do momentu jej wykonania.
  • ๐Ÿ› ๏ธ. Dwie metody: Klasyczne wprowadzanie wsadowe wykorzystuje BDC_OPEN_GROUP, BDC_INSERT i BDC_CLOSE_GROUP, podczas gdy metoda wywoล‚ania transakcji wykorzystuje CALL TRANSACTION USING.
  • โš–๏ธ. Wybรณr metody: Klasyczne wprowadzanie danych wsadowych jest synchroniczne z dziennikiem, a transakcja wywoล‚awcza jest szybsza, asynchroniczna i obsล‚uguje pojedynczฤ… transakcjฤ™.
  • ๐Ÿ—‚๏ธ. Struktura BDCDATA: Pola PROGRAM, DYNPRO, DYNBEGIN, FNAM i FVAL opisujฤ… ekran, pole i wartoล›ฤ‡ dla kaลผdego kroku.
  • โบ๏ธ. Rejestrator: Rejestrator danych wejล›ciowych wsadowych przechwytuje rฤ™cznฤ… transakcjฤ™ i generuje sesjฤ™ lub gotowy program BDC, ktรณry pรณลบniej uruchamia siฤ™ w SM35.

SAP Komunikacja danych wsadowych ABAP BDC

Wprowadzenie do wprowadzania wsadowego

Dane wejล›ciowe wsadowe sฤ… zwykle uลผywane do przesyล‚ania danych z systemรณw innych niลผ R/3 do systemรณw R/3 lub do przesyล‚ania danych miฤ™dzy systemami R/3.

Jest to technika przesyล‚ania danych, ktรณra pozwala na automatyczne przesyล‚anie zbiorรณw danych na ekrany naleลผฤ…ce do transakcji, a tym samym do SAP system. Wprowadzanie wsadowe jest kontrolowane przez sesjฤ™ wprowadzania wsadowego.

Sesja wprowadzania wsadowego

Grupuje seriฤ™ wywoล‚aล„ transakcji wraz z danymi wejล›ciowymi i dziaล‚aniami uลผytkownika. Sesjฤ™ wprowadzania wsadowego moลผna wykorzystaฤ‡ do wykonania transakcji dialogowej w trybie wsadowego wprowadzania danych, gdzie niektรณre lub wszystkie ekrany sฤ… przetwarzane przez sesjฤ™. Sesje wejล›ciowe wsadowe sฤ… przechowywane w bazie danych jako tabele bazy danych i mogฤ… byฤ‡ uลผywane w programie jako tabele wewnฤ™trzne podczas uzyskiwania dostฤ™pu do transakcji.

Punkty do zapamiฤ™tania

  • BDI dziaล‚a, wykonujฤ…c normalne czynnoล›ci SAP transakcje w taki sam sposรณb, jak zrobiล‚by to uลผytkownik, ale wykonuje transakcjฤ™ automatycznie.Wszystkie weryfikacje ekranรณw i logiki biznesowej zostanฤ… przeprowadzone podczas korzystania z wsadowego wprowadzania danych.
  • Nadaje siฤ™ do wprowadzania duลผej iloล›ci danych.
  • Nie jest wymagana ลผadna rฤ™czna interakcja

Metody wprowadzania wsadowego

SAP zapewniajฤ… dwie podstawowe metody przesyล‚ania dotychczasowych danych do systemu R/3.

  1. Klasyczna metoda wprowadzania wsadowego.
  2. Zadzwoล„ do metody transakcji.

Klasyczna metoda wprowadzania wsadowego

W tej metodzie program ABAP/4 odczytuje dane zewnฤ™trzne do SAP System i sklepy w sesji wprowadzania wsadowego.

Po utworzeniu sesji moลผesz jฤ… uruchomiฤ‡, aby wykonaฤ‡ SAP transakcja w nim.

W metodzie tej wykorzystywane sฤ… moduล‚y funkcyjne BDC_OPEN, BDC_INSERT i BDC_CLOSE

Sesjฤ™ wsadowฤ… moลผna przetwarzaฤ‡ na 3 sposoby

  1. Na pierwszym planie
  2. W tle
  3. Podczas przetwarzania, ze wskazaniem bล‚ฤ™du

Jeล›li chcesz przetestowaฤ‡ transfer danych, powinieneล› przetwarzaฤ‡ sesje wprowadzania wsadowego na pierwszym planie lub korzystajฤ…c z wyล›wietlania bล‚ฤ™dรณw.

Jeล›li chcesz wykonaฤ‡ transfer danych lub przetestowaฤ‡ jego wydajnoล›ฤ‡, powinieneล› przetwarzaฤ‡ sesje w tle.

Warto zwrรณciฤ‡ uwagฤ™ na klasycznฤ… metodฤ™ wprowadzania wsadowego

  • Syncokropne przetwarzanie
  • Przesyล‚aj dane dla wielu transakcji.
  • Syncstraszna aktualizacja bazy danych.
  • Dla kaลผdej sesji generowany jest dziennik procesu wprowadzania wsadowego.
  • Sesja nie moลผe byฤ‡ generowana rรณwnolegle.

Zadzwoล„ do metody transakcji.

W tej metodzie ABAPProgram /4 uลผywa instrukcji CALL TRANSACTION USING do uruchomienia SAP transakcji.

Caล‚y proces wprowadzania danych wsadowych odbywa siฤ™ online w programie

Metoda transakcji wywoล‚ania

Uwaga:

  • Szybsze przetwarzanie danych
  • Przetwarzanie asynchroniczne
  • Przeล›lij dane dla pojedynczej transakcji.
  • Nie jest generowany ลผaden dziennik przetwarzania danych wsadowych.

Klasyczne wprowadzanie danych wsadowych a transakcja wywoล‚awcza

Obie metody osiฤ…gajฤ… tฤ™ samฤ… transakcjฤ™, ale rรณลผniฤ… siฤ™ szybkoล›ciฤ…, rejestrowaniem i obsล‚ugฤ… bล‚ฤ™dรณw. Poniลผsza tabela pokazuje, kiedy kaลผda z nich jest wล‚aล›ciwym wyborem.

kryteria Klasyczne wprowadzanie wsadowe Transakcja poล‚ฤ…czeล„
Technika BDC_OPEN_GROUP, BDC_INSERT, BDC_CLOSE_GROUP TRANSAKCJA WYWOลAWCZA PRZY UลปYCIU
Przetwรณrstwo Syncchronous, biegnij pรณลบniej z SM35 Dziaล‚a online, w programie
Transakcje Wiele transakcji w jednej sesji Pojedyncza transakcja na poล‚ฤ…czenie
Zaloguj Dziennik procesรณw dla kaลผdej sesji jest generowany automatycznie Brak logรณw, program zbiera wiadomoล›ci
Prฤ™dkoล›ฤ‡ Wolniejszy, ale solidny i moลผliwy do ponownego uruchomienia Szybciej
Najlepszy dla Duลผe, jednorazowe obciฤ…ลผenia starszej generacji, ktรณre muszฤ… podlegaฤ‡ audytowi Interaktywne lub szybkie przesyล‚anie jednego dokumentu

Po porรณwnaniu metod, w nastฤ™pnej sekcji przedstawiona zostanie ogรณlna procedura, ktรณrฤ… realizuje siฤ™ w ramach projektu.

Procedury wprowadzania wsadowego

Procedury wprowadzania wsadowego

Podczas opracowywania danych wejล›ciowych wsadowych dla swojej organizacji zazwyczaj naleลผy przestrzegaฤ‡ nastฤ™pujฤ…cej sekwencji krokรณw

  1. Analiza danych historycznych. Okreล›l, w jaki sposรณb przesyล‚ane dane majฤ… byฤ‡ mapowane w pliku SAP Struktura. Zwrรณฤ‡ takลผe uwagฤ™ na niezbฤ™dne konwersje typu danych lub dล‚ugoล›ci danych.
  2. Wygeneruj SAP struktury danych do wykorzystania w programach eksportowych.
  3. Eksportuj dane do pliku sekwencyjnego. Naleลผy pamiฤ™taฤ‡, ลผe format znaku jest wymagany przez predefiniowany SAP programy do wprowadzania wsadowego.
  4. Jeล›li SAP dostarczone programy BDC nie sฤ… uลผywane, naleลผy zakodowaฤ‡ wล‚asny program do wprowadzania wsadowego. Wybierz odpowiedniฤ… metodฤ™ wprowadzania wsadowego w zaleลผnoล›ci od sytuacji.
  5. Przetwรณrz dane i dodaj je do pliku SAP Konfiguracja.
  6. Przeanalizuj dziennik procesu. Dla metody CALL TRANSACTION, gdzie nie jest tworzony odpowiedni log, wykorzystaj komunikaty zebrane przez Twรณj program.
  7. Na podstawie wynikรณw analizy procesu popraw i ponownie przetwรณrz bล‚ฤ™dne dane.

Pisanie programu BDC

Aby napisaฤ‡ program BDC, moลผesz zastosowaฤ‡ siฤ™ do nastฤ™pujฤ…cego procesu

  1. Analizuj transakcje, aby przetwarzaฤ‡ dane wejล›ciowe wsadowo.
  2. Wybierz metodฤ™ wprowadzania wsadowego, ktรณra ma zostaฤ‡ uลผyta.
  3. Odczytaj dane z pliku sekwencyjnego
  4. Wykonaj konwersjฤ™ danych lub sprawdลบ bล‚ฤ™dy.
  5. Przechowywanie danych w wsadowej strukturze wejล›ciowej,BDCDATA.
  6. Wygeneruj wsadowฤ… sesjฤ™ wejล›ciowฤ… dla klasycznego wsadowego wprowadzania danych lub przetwรณrz dane bezpoล›rednio za pomocฤ… instrukcji CALL TRANSACTION USING.

Struktura danych wejล›ciowych wsadowych

Deklaracja struktury danych wejล›ciowych wsadu

DATA : BEGIN OF < bdc table>

OCCURS <occurs parameters>.

INCLUDE STRUCTURE BDCDATA.

DATA:END OF <bdc table>.
Nazwa pola Typ Dล‚ugoล›ฤ‡ OPIS
PROGRAM ZWฤ˜GLAฤ† 8 Pula moduล‚รณw
DYNPRO NUMC 4 Numer Dynpro
DYNBEGIN ZWฤ˜GLAฤ† 1 Uruchamianie dynpro
FNAM ZWฤ˜GLAฤ† 35 Nazwa pola
FVAL ZWฤ˜GLAฤ† 80 Wartoล›ฤ‡ pola

Kolejnoล›ฤ‡ pรณl w danych dla konkretnego ekranu nie ma znaczenia

Punkty do uwagi

  • Podczas wypeล‚niania danych BDC naleลผy pamiฤ™taฤ‡ o uwzglฤ™dnieniu ustawieล„ uลผytkownika. Jest to szczegรณlnie istotne w przypadku wypeล‚niania pรณl zawierajฤ…cych liczby (np. iloล›ฤ‡, kwota). To ustawienia uลผytkownika decydujฤ… o tym, jaka grupa zostanie wyล›wietlona.ping znak dla liczb Np.: Liczbฤ™ piฤ™ฤ‡dziesiฤ…t tysiฤ™cy moลผna zapisaฤ‡ jako 50,000.00 lub 50.000,00 w zaleลผnoล›ci od ustawieล„ uลผytkownika.
  • Skondensuj pole FVAL dla pรณl kwoty i iloล›ci, tak aby byล‚y wyrรณwnane do lewej strony.
  • Naleลผy pamiฤ™taฤ‡, ลผe podczas wypeล‚niania tabeli danych BDC wszystkie pola wypeล‚niane za poล›rednictwem usล‚ugi BDC powinny byฤ‡ traktowane jako pola znakowe.
  • Na niektรณrych ekranach, gdy wypeล‚niasz wartoล›ci w kontrolce tabeli za pomocฤ… BDC, musisz zanotowaฤ‡, ile wierszy jest obecnych na ekranie o domyล›lnym rozmiarze i zakodowaฤ‡ odpowiedniฤ… liczbฤ™ wierszy. Jeล›li musisz wypeล‚niฤ‡ wiฤ™cej wierszy, musisz zakodowaฤ‡ funkcjฤ™ โ€žPage downโ€, tak jak w przypadku rฤ™cznego wypeล‚niania kontrolki tabeli.
  • Liczba linii, ktรณre pojawiฤ… siฤ™ w powyลผszym scenariuszu, bฤ™dzie siฤ™ rรณลผniฤ‡ w zaleลผnoล›ci od rozmiaru ekranu uลผywanego przez uลผytkownika. Dlatego zawsze koduj standardowy rozmiar ekranu i spraw, aby Twรณj BDC dziaล‚aล‚ zawsze w standardowym rozmiarze ekranu, niezaleลผnie od tego, jaki rozmiar ekranu uลผytkownik utrzymuje.

Tworzenie wsadowej sesji wejล›ciowej

  1. Otwรณrz sesjฤ™ sesji wsadowej za pomocฤ… moduล‚u funkcyjnego BDC_OPEN_GROUP.
  2. Dla kaลผdej transakcji w sesji:
  3. Wypeล‚nij BDCDATA wartoล›ciami dla wszystkich ekranรณw i pรณl przetwarzanych w transakcji.
  4. Przenieล› transakcjฤ™ do sesji z BDC_INSERT.
  5. Zamknij sesjฤ™ wprowadzania wsadowego za pomocฤ… BDC_CLOSE_GROUP

Przykล‚ad: BDC uลผywajฤ…cy transakcji wywoล‚ania

Poniลผszy program pokazuje metodฤ™ wywoล‚ania transakcji od poczฤ…tku do koล„ca. Buduje on tabelฤ™ BDCDATA dla dwรณch ekranรณw transakcji i uruchamia jฤ… w trybie N (bez wyล›wietlania) z tabelฤ… bล‚ฤ™dรณw, co umoลผliwia zgล‚aszanie bล‚ฤ™dรณw.

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.

๐Ÿ’ก Wskazรณwka: Parametr MODE steruje wyล›wietlaniem: A wyล›wietla wszystkie ekrany, E zatrzymuje siฤ™ tylko w przypadku bล‚ฤ™du, a N dziaล‚a bezgล‚oล›nie. Uลผyj E podczas testowania, a N podczas obciฤ…ลผenia produkcyjnego.

Rejestrator wejล›ciowy wsadowy

Rejestrator danych wejล›ciowych wsadowych (System > Usล‚ugi > Dane wejล›ciowe wsadowe > Rejestrator) rejestruje transakcje wprowadzane rฤ™cznie i tworzy sesjฤ™ danych wejล›ciowych wsadowych, ktรณrฤ… moลผna pรณลบniej wykonaฤ‡ przy uลผyciu SM35.

Rejestrator wejล›ciowy wsadowy

  • Rozpocznij rejestracjฤ™ wejล›cia wsadowego, wybierajฤ…c przycisk Nagrywanie na ekranie poczฤ…tkowym wejล›cia wsadowego.
  • Nazwa nagrania jest nazwฤ… zdefiniowanฤ… przez uลผytkownika i moลผe odpowiadaฤ‡ nazwie sesji wprowadzania wsadowego, ktรณrฤ… moลผna utworzyฤ‡ na podstawie nagrania.
  • Wpisz SAP transakcjฤ™ i rozpocznij ksiฤ™gowanie transakcji.
  • Po zakoล„czeniu wysyล‚ania a SAP transakcji, wybierz opcjฤ™ Uzyskaj transakcjฤ™ i zapisz, aby zakoล„czyฤ‡ rejestracjฤ™, lub opcjฤ™ Nastฤ™pna transakcja i zaksiฤ™guj kolejnฤ… transakcjฤ™.
  • Po zapisaniu nagrania moลผesz utworzyฤ‡ sesjฤ™ wprowadzania wsadowego na podstawie nagrania i/lub wygenerowaฤ‡ program wprowadzania wsadowego na podstawie nagrania.
  • Utworzonฤ… sesjฤ™ wsadowฤ… moลผna teraz analizowaฤ‡ tak samo, jak kaลผdฤ… innฤ… sesjฤ™ wsadowฤ….
  • Program generowany przez funkcjฤ™ wsadowego rejestratora wejล›ciowego jest potฤ™ลผnym narzฤ™dziem dla programisty interfejsu danych. Zapewnia solidnฤ… podstawฤ™, ktรณrฤ… moลผna nastฤ™pnie modyfikowaฤ‡ zgodnie z wymaganiami klienta.

โš ๏ธ Ostrzeลผenie: Nagranie rejestruje sekwencjฤ™ ekranรณw dokล‚adnie tak, jak siฤ™ wydarzyล‚a, wiฤ™c ekran, ktรณry pojawia siฤ™ tylko dla okreล›lonych danych, takich jak wyskakujฤ…ce okienko z informacjฤ… o niekompletnoล›ci, nie jest rejestrowany. Zawsze testuj wygenerowany program z danymi, ktรณre wyzwalajฤ… kaลผdy opcjonalny ekran.

FAQ

BDC_OKCODE zawiera kod funkcji, ktรณrฤ… uลผytkownik moลผe aktywowaฤ‡ przyciskiem lub klawiszem, na przykล‚ad /00 dla Enter lub =SAVE dla Save. Informuje on ekran, jakฤ… akcjฤ™ wykonaฤ‡ po wypeล‚nieniu pรณl.

SM35 to monitor wprowadzania danych wsadowych. Wyล›wietla listฤ™ sesji utworzonych przez klasyczne wprowadzanie danych wsadowych, uruchamia je na pierwszym planie lub w tle oraz wyล›wietla dziennik procesรณw, umoลผliwiajฤ…c analizฤ™ i ponowne przetwarzanie nieudanych transakcji.

BDC jest nadal uลผywany tam, gdzie nie istnieje BAPI, poniewaลผ ponownie wykorzystuje walidacje ekranowe transakcji. LSMW ล‚ฤ…czy BDC, nagrania i BAPI w jednym narzฤ™dziu do migracji, a BAPI jest preferowane, gdy dostฤ™pne jest stabilne API.

Tak. Asystenci AI w narzฤ™dziach programistycznych ABAP pobierajฤ… nagranie lub listฤ™ ekranรณw i tworzฤ… szkic populacji BDCDATA, bloku CALL TRANSACTION oraz obsล‚ugi komunikatรณw. Programista mapuje plik ลบrรณdล‚owy i testuje obciฤ…ลผenie.

Narzฤ™dzia AI profilujฤ… starszy plik, sygnalizujฤ… brakujฤ…ce obowiฤ…zkowe pola i niezgodnoล›ci formatรณw przed zaล‚adowaniem, a nastฤ™pnie podsumowujฤ… dziennik wprowadzania wsadowego, dziฤ™ki czemu bล‚ฤ™dne rekordy moลผna szybciej poprawiฤ‡ i ponownie przetworzyฤ‡.

Podsumuj ten post nastฤ™pujฤ…co: