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.

  • 🔄 Osnovna svrha: BDC automatski unosi skupove podataka na ekrane transakcije, pokrećući svaki ekran i poslovnu validaciju kao što bi to učinio korisnik.
  • 🧾 Sesija skupnog unosa: Sesija grupira transakcijske pozive s njihovim ulaznim podacima i pohranjuje se u bazi podataka dok se ne izvrši.
  • 🛠️ Dvije metode: Klasični batch unos koristi BDC_OPEN_GROUP, BDC_INSERT i BDC_CLOSE_GROUP, dok metoda call transakcije koristi CALL TRANSACTION USING.
  • ⚖️ Izbor metode: Klasični batch unos je sinkronizan s logom, a poziv transakcije je brži, asinkroni i obrađuje jednu transakciju.
  • 🗂️ Struktura BDCDATA: Polja PROGRAM, DYNPRO, DYNBEGIN, FNAM i FVAL opisuju ekran, polje i vrijednost za svaki korak.
  • ⏺️ Recorder: Snimač serijskog unosa bilježi ručnu transakciju i generira sesiju ili gotov BDC program koji se kasnije izvršava u SM35.

SAP ABAP BDC paketna komunikacija podataka

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.

  1. Klasična metoda skupnog unosa.
  2. 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

  1. U prvom planu
  2. U pozadini
  3. 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

Metoda transakcije poziva

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

Postupci grupnog unosa

Obično ćete promatrati sljedeći niz koraka za razvoj skupnog unosa za svoju organizaciju

  1. 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.
  2. Generirati SAP strukture podataka za korištenje u izvoznim programima.
  3. Izvezite podatke u sekvencijalnu datoteku. Imajte na umu da je format znakova predefiniran SAP programi skupnog unosa.
  4. Ako SAP isporučeni BDC programi se ne koriste, kodirajte vlastiti program skupnog unosa. Odaberite odgovarajuću metodu skupnog unosa prema situaciji.
  5. Obradite podatke i dodajte ih u SAP sistem.
  6. Analizirajte dnevnik procesa. Za metodu CALL TRANSACTION, gdje se ne stvara odgovarajući dnevnik, koristite poruke koje je prikupio vaš program.
  7. 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

  1. Analizirajte transakciju(e) za obradu skupnih ulaznih podataka.
  2. Odlučite se za metodu grupnog unosa.
  3. Čitanje podataka iz sekvencijalne datoteke
  4. Izvršite konverziju podataka ili provjeru pogrešaka.
  5. Pohranjivanje podataka u strukturi skupnog unosa, BDCDATA.
  6. 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

  1. Otvorite sesiju sesije skupnog unosa koristeći funkcijski modul BDC_OPEN_GROUP.
  2. Za svaku transakciju u sesiji:
  3. Ispunite BDCDATA vrijednostima za sve ekrane i polja obrađena u transakciji.
  4. Prenesite transakciju u sesiju s BDC_INSERT.
  5. 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.

Batch Input Recorder

  • 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.

Pitanja i odgovori

BDC_OKCODE nosi funkcijski kod koji bi korisnik pokrenuo tipkom ili tipkom, kao što je /00 za Enter ili =SAVE za Spremi. On govori zaslonu koju radnju treba izvršiti nakon što su polja popunjena.

SM35 je monitor batch unosa. Popisuje sesije stvorene klasičnim batch unosom, pokreće ih u prvom planu ili pozadini i prikazuje zapisnik procesa kako bi se neuspjele transakcije mogle analizirati i ponovno obraditi.

BDC se i dalje koristi tamo gdje ne postoji BAPI, jer ponovno koristi validacije ekrana transakcije. LSMW objedinjuje BDC, snimke i BAPI-je u jednom alatu za migraciju i... BAPI je poželjniji kada je dostupan stabilan API.

Da. AI asistenti u ABAP razvojnim alatima snimaju snimku ili popis zaslona i izrađuju BDCDATA populaciju, blok CALL TRANSACTION i rukovanje porukama. Programer mapira izvornu datoteku i testira učitavanje.

Alati umjetne inteligencije profiliraju naslijeđenu datoteku, označavaju nedostajuća obavezna polja i neusklađenosti formata prije učitavanja te nakon toga sažimaju zapisnik unosa serije kako bi se pogrešni zapisi mogli brže ispraviti i ponovno obraditi.

Sažmite ovu objavu uz: