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.

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.
- Klasyczna metoda wprowadzania wsadowego.
- 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
- Na pierwszym planie
- W tle
- 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
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
Podczas opracowywania danych wejลciowych wsadowych dla swojej organizacji zazwyczaj naleลผy przestrzegaฤ nastฤpujฤ cej sekwencji krokรณw
- 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.
- Wygeneruj SAP struktury danych do wykorzystania w programach eksportowych.
- Eksportuj dane do pliku sekwencyjnego. Naleลผy pamiฤtaฤ, ลผe format znaku jest wymagany przez predefiniowany SAP programy do wprowadzania wsadowego.
- 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.
- Przetwรณrz dane i dodaj je do pliku SAP Konfiguracja.
- Przeanalizuj dziennik procesu. Dla metody CALL TRANSACTION, gdzie nie jest tworzony odpowiedni log, wykorzystaj komunikaty zebrane przez Twรณj program.
- 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
- Analizuj transakcje, aby przetwarzaฤ dane wejลciowe wsadowo.
- Wybierz metodฤ wprowadzania wsadowego, ktรณra ma zostaฤ uลผyta.
- Odczytaj dane z pliku sekwencyjnego
- Wykonaj konwersjฤ danych lub sprawdลบ bลฤdy.
- Przechowywanie danych w wsadowej strukturze wejลciowej,BDCDATA.
- 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
- Otwรณrz sesjฤ sesji wsadowej za pomocฤ moduลu funkcyjnego BDC_OPEN_GROUP.
- Dla kaลผdej transakcji w sesji:
- Wypeลnij BDCDATA wartoลciami dla wszystkich ekranรณw i pรณl przetwarzanych w transakcji.
- Przenieล transakcjฤ do sesji z BDC_INSERT.
- 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.
- 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.



