SAP ABAP BDC: Što je paketna komunikacija podataka?
⚡ Pametni sažetak
SAP ABAP BDC (Batch Data Communication) prenosi naslijeđene podatke u R/3 automatskim pokretanjem standardnih transakcija. Ova stranica objašnjava sesije serijskog unosa, klasične i pozivne metode transakcija, strukturu BDCDATA, tijek rada BDC_OPEN_GROUP i snimač serijskog unosa.
Uvod u skupni unos
Skupni unos obično se koristi za prijenos podataka sa sustava koji nisu R/3 na R/3 sustave ili za prijenos podataka između R/3 sustava.
To je tehnika prijenosa podataka koja vam omogućuje automatski prijenos skupova podataka na zaslone koji pripadaju transakcijama, a time i na SAP sustav. Skupnim unosom upravlja sesija skupnog unosa.
Sesija skupnog unosa
Grupira niz transakcijskih poziva zajedno s ulaznim podacima i radnjama korisnika. Sesija skupnog unosa može se koristiti za izvršavanje dijaloške transakcije u skupnom unosu, gdje se neki ili svi ekrani obrađuju u sesiji. Sesije skupnog unosa pohranjuju se u bazu podataka kao tablice baze podataka i mogu se koristiti unutar programa kao interne tablice prilikom pristupa transakcijama.
Točke na koje treba obratiti pažnju
- BDI radi tako da obavlja normalan rad SAP transakcije kao što bi to učinio korisnik, ali transakciju izvršava automatski.Sve provjere valjanosti zaslona i poslovne logike izvršit će se korištenjem skupnog unosa podataka.
- Pogodan je za unos velike količine podataka.
- Nije potrebna ručna interakcija
Metode skupnog unosa
SAP pružaju dvije osnovne metode za prijenos naslijeđenih podataka u sustav R/3.
- Klasična metoda skupnog unosa.
- Metoda transakcije poziva.
Klasična metoda skupnog unosa
U ovoj metodi program ABAP/4 čita vanjske podatke u SAP Sustav i pohranjuje u sesiji skupnog unosa.
Nakon stvaranja sesije, možete pokrenuti sesiju da biste izvršili SAP transakcija u njemu.
Ova metoda koristi funkcijske module BDC_ OPEN, BDC_INSERT i BDC_CLOSE
Sesija skupnog unosa može se obraditi na 3 načina
- U prvom planu
- U pozadini
- Tijekom obrade, s prikazom greške
Trebali biste obraditi sesije skupnog unosa u prvom planu ili pomoću prikaza pogreške ako želite testirati prijenos podataka.
Ako želite izvršiti prijenos podataka ili testirati njegovu izvedbu, trebali biste obraditi sesije u pozadini.
Napomene o klasičnoj metodi skupnog unosa
- Synchronska obrada
- Prijenos podataka za više transakcija.
- Synchronous ažuriranje baze podataka.
- Dnevnik procesa skupnog unosa generira se za svaku sesiju.
- Sesija se ne može generirati paralelno.
Metoda transakcije poziva.
U ovoj metodi ABAP/4 program koristi naredbu CALL TRANSACTION USING za pokretanje SAP transakcija.
Cijeli proces skupnog unosa odvija se online u programu
Bilješke:
- Brža obrada podataka
- Asinkrona obrada
- Prijenos podataka za jednu transakciju.
- Ne generira se dnevnik obrade skupnog unosa.
Klasični serijski unos u odnosu na transakciju poziva
Dvije metode dosežu istu transakciju, ali se razlikuju u brzini, zapisivanju i rukovanju greškama. Tablica u nastavku prikazuje kada je koja od njih pravi izbor.
| Kriteriji | Klasični skupni unos | Transakcija poziva |
|---|---|---|
| Tehnika | BDC_OTVARENA_GRUPA, BDC_UMETANJE, BDC_ZATVARANJE_GRUPE | POZIV TRANSAKCIJA KORIŠTENJEM |
| Obrada | Synckronično, pokrenuto kasnije od SM35 | Radi online, u programu |
| Transakcije | Mnogo transakcija u jednoj sesiji | Jedna transakcija po pozivu |
| Dnevnik | Zapisnik procesa po sesiji generira se automatski | Nema zapisnika, program prikuplja poruke |
| Brzina | Sporiji, ali robustan i s mogućnošću ponovnog pokretanja | Brže |
| Najbolje za | Velika, jednokratna naslijeđena učitavanja koja moraju biti podložna reviziji | Interaktivni ili brzi prijenosi jednog dokumenta |
Nakon usporedbe metoda, u sljedećem odjeljku je opisan cjelokupni postupak koji projekt slijedi.
Postupci grupnog unosa
Obično ćete promatrati sljedeći niz koraka za razvoj skupnog unosa za svoju organizaciju
- Analiza naslijeđenih podataka. Odredite kako će se podaci koji se prenose mapirati u SAP Struktura. Također uzmite u obzir potrebne vrste podataka ili pretvorbe duljine podataka.
- Generirati SAP strukture podataka za korištenje u izvoznim programima.
- Izvezite podatke u sekvencijalnu datoteku. Imajte na umu da je format znakova predefiniran SAP programi skupnog unosa.
- Ako SAP isporučeni BDC programi se ne koriste, kodirajte vlastiti program skupnog unosa. Odaberite odgovarajuću metodu skupnog unosa prema situaciji.
- Obradite podatke i dodajte ih u SAP sistem.
- Analizirajte dnevnik procesa. Za metodu CALL TRANSACTION, gdje se ne stvara odgovarajući dnevnik, koristite poruke koje je prikupio vaš program.
- Iz rezultata analize procesa ispravite i ponovno obradite pogrešne podatke.
Pisanje BDC programa
Možete promatrati sljedeći postupak za pisanje vašeg BDC programa
- Analizirajte transakciju(e) za obradu skupnih ulaznih podataka.
- Odlučite se za metodu grupnog unosa.
- Čitanje podataka iz sekvencijalne datoteke
- Izvršite konverziju podataka ili provjeru pogrešaka.
- Pohranjivanje podataka u strukturi skupnog unosa, BDCDATA.
- Generirajte sesiju skupnog unosa za klasičan skupni unos ili obradite podatke izravno pomoću izjave CALL TRANSACTION USING.
Struktura skupnih ulaznih podataka
Deklaracija strukture skupnih ulaznih podataka
DATA : BEGIN OF < bdc table> OCCURS <occurs parameters>. INCLUDE STRUCTURE BDCDATA. DATA:END OF <bdc table>.
| naziv polja | Tip | Dužina | Description |
|---|---|---|---|
| PROGRAM | TENK | 8 | Modul bazen |
| DYNPRO | NUMC | 4 | Dynpro broj |
| DYNBEGIN | TENK | 1 | Pokretanje dynproa |
| FNAM | TENK | 35 | naziv polja |
| FVAL | TENK | 80 | Vrijednost polja |
Redoslijed polja unutar podataka za određeni zaslon nije od značaja
Bodovi na bilješku
- Prilikom popunjavanja BDC podataka obavezno uzmite u obzir korisničke postavke. To je posebno važno za popunjavanje polja koja uključuju brojeve (kao što su količina, iznos). Korisničke postavke određuju što je grupa.ping znak za brojeve Npr.: Broj pedeset tisuća može se zapisati kao 50,000.00 ili 50.000,00 ovisno o korisničkim postavkama.
- Sažmite polje FVAL za polja iznosa i količine tako da budu poravnata lijevo.
- Imajte na umu da se sva polja koja popunjavate putem BDC-a trebaju tretirati kao polja tipa znakova tijekom popunjavanja tablice BDC podataka.
- Na nekim zaslonima kada popunjavate vrijednosti u kontroli tablice pomoću BDC-a, morate zabilježiti koliko je redaka prisutno na zadanoj veličini zaslona i kodirati za toliko redaka. Ako morate popuniti više redaka, tada morate kodirati funkciju "Page down" kao što biste učinili kada ručno popunjavate kontrolu tablice.
- Broj redaka koji bi se pojavio u gornjem scenariju razlikovat će se ovisno o veličini zaslona koji korisnik koristi. Stoga uvijek kodirajte standardnu veličinu zaslona i neka vaš BDC uvijek radi u standardnoj veličini zaslona bez obzira na to koju veličinu zaslona korisnik koristi.
Stvaranje sesije skupnog unosa
- Otvorite sesiju sesije skupnog unosa koristeći funkcijski modul BDC_OPEN_GROUP.
- Za svaku transakciju u sesiji:
- Ispunite BDCDATA vrijednostima za sve ekrane i polja obrađena u transakciji.
- Prenesite transakciju u sesiju s BDC_INSERT.
- Zatvorite sesiju skupnog unosa s BDC_CLOSE_GROUP
Primjer: BDC korištenjem transakcije poziva
Program u nastavku prikazuje metodu pozivanja transakcije od početka do kraja. Izrađuje BDCDATA tablicu za dva zaslona transakcije i pokreće je u načinu rada N (bez prikaza) s tablicom pogrešaka kako bi se mogli prijaviti kvarovi.
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.
💡 Savjet: Parametar MODE kontrolira prikaz: A prikazuje sve zaslone, E se zaustavlja samo u slučaju greške, a N radi tiho. Koristite E tijekom testiranja, a N za produkcijsko opterećenje.
Batch Input Recorder
Snimač skupnog unosa (Sustav > Usluge > Skupni unos > Snimač) bilježi transakcije koje su ručno unesene i stvara sesiju skupnog unosa koja se kasnije može izvršiti pomoću SM35.
- Pokrenite snimač skupnog unosa odabirom gumba Snimanje na početnom zaslonu skupnog unosa.
- Naziv snimke korisnički je definiran naziv i može odgovarati nazivu sesije skupnog unosa koji se može stvoriti iz snimke.
- Unesite SAP transakciju i počnite knjižiti transakciju.
- Nakon što ste dovršili objavu a SAP transakciju odaberite Dohvati transakciju i spremi za završetak snimanja ili Sljedeća transakcija i objavite drugu transakciju.
- Nakon što ste spremili snimku, možete stvoriti sesiju skupnog unosa iz snimke i/ili generirati program skupnog unosa iz snimke.
- Sesija skupnog unosa koju ste stvorili sada se može analizirati kao i bilo koja druga sesija skupnog unosa.
- Program koji je generiran funkcijom snimača batch inputa moćan je alat za programer podatkovnog sučelja. Osigurava čvrstu osnovu koja se zatim može mijenjati prema zahtjevima kupaca.
⚠️ Upozorenje: Snimka bilježi slijed prikaza zaslona točno onako kako se dogodio, tako da se zaslon koji se pojavljuje samo za određene podatke, poput skočnog prozora o nedovršenosti, ne snima. Uvijek testirajte generirani program s podacima koji pokreću svaki opcionalni zaslon.




