SAP ABAP BDC: Hva er batchdatakommunikasjon?

โšก Smart oppsummering

SAP ABAP BDC (Batch Data Communication) overfรธrer eldre data til R/3 ved รฅ kjรธre standardtransaksjoner automatisk. Denne siden forklarer batch-inndataรธkter, de klassiske og kalletransaksjonsmetodene, BDCDATA-strukturen, BDC_OPEN_GROUP-arbeidsflyten og batch-inndataopptakeren.

  • ๐Ÿ”„ Kjerneformรฅl: BDC mater datasett automatisk inn i skjermbildene for en transaksjon, og kjรธrer alle skjermbilder og forretningsvalideringer slik en bruker ville gjort.
  • ๐Ÿงพ Batch-inndataรธkt: En sesjon grupperer transaksjonskall med inndataene deres og lagres i databasen til den utfรธres.
  • ๐Ÿ› ๏ธ To metoder: Klassisk batch-input bruker BDC_OPEN_GROUP, BDC_INSERT og BDC_CLOSE_GROUP, mens kalltransaksjonsmetoden bruker CALL TRANSACTION USING.
  • ๐Ÿ‡ง๐Ÿ‡ท Metodevalg: Klassisk batch-input er synkron med en logg, og kalltransaksjonen er raskere, asynkron og hรฅndterer รฉn transaksjon.
  • ๐Ÿ—‚๏ธ BDCDATA-struktur: Feltene PROGRAM, DYNPRO, DYNBEGIN, FNAM og FVAL beskriver skjermbildet, feltet og verdien for hvert trinn.
  • โบ๏ธ Opptaker: Batch-inndataopptakeren registrerer en manuell transaksjon og genererer en รธkt eller et ferdiglaget BDC-program som kjรธrer senere i SM35.

SAP ABAP BDC batchdatakommunikasjon

Introduksjon til batch input

Batch-inngang brukes vanligvis til รฅ overfรธre data fra ikke-R/3-systemer til R/3-systemer eller for รฅ overfรธre data mellom R/3-systemer.

Det er en dataoverfรธringsteknikk som lar deg overfรธre datasett automatisk til skjermer som tilhรธrer transaksjoner, og dermed til en SAP system. Batch input styres av en batch input sesjon.

Batch-inndataรธkt

Grupperer en serie transaksjonsanrop sammen med inndata og brukerhandlinger. En batch-inndatasesjon kan brukes til รฅ utfรธre en dialogtransaksjon i batch-inndata, hvor noen eller alle skjermbildene behandles av sesjonen. Batch-inndataรธkter lagres i databasen som databasetabeller og kan brukes i et program som interne tabeller ved tilgang til transaksjoner.

Poeng รฅ merke seg

  • BDI fungerer ved รฅ utfรธre normal SAP transaksjoner akkurat som en bruker ville gjort, men den utfรธrer transaksjonen automatisk.Alle skjermvalideringer og forretningslogikkvalidering vil bli utfรธrt mens du bruker Batch Data Input.
  • Den er egnet for รฅ legge inn store mengder data.
  • Ingen manuell interaksjon er nรธdvendig

Metoder for batchinndata

SAP gi to grunnleggende metoder for รฅ overfรธre eldre data til R/3-systemet.

  1. Klassisk batchinndatametode.
  2. Anropstransaksjonsmetode.

Klassisk batchinndatametode

I denne metoden leser et ABAP/4-program de eksterne dataene til SAP System og lagrer i en batch-inndataรธkt.

Etter รฅ ha opprettet รธkten, kan du kjรธre รธkten for รฅ utfรธre SAP transaksjon i den.

Denne metoden bruker funksjonsmodulene BDC_ OPEN, BDC_INSERT og BDC_CLOSE

Batch Input Session kan behandles pรฅ 3 mรฅter

  1. i forgrunnen
  2. i bakgrunnen
  3. Under behandling, med feilvisning

Du bรธr behandle batch-inndataรธkter i forgrunnen eller bruke feilvisningen hvis du vil teste dataoverfรธringen.

Hvis du vil utfรธre dataoverfรธringen eller teste ytelsen, bรธr du behandle รธktene i bakgrunnen.

Punkter รฅ merke seg om klassisk batchinndatametode

  • Synchรธflig behandling
  • Overfรธr data for flere transaksjoner.
  • Syncรฆrlig databaseoppdatering.
  • En batch-inndataprosesslogg genereres for hver รธkt.
  • Sesjon kan ikke genereres parallelt.

Anropstransaksjonsmetode.

I denne metoden ABAP/4-programmet bruker CALL TRANSACTION USING-setningen til รฅ kjรธre en SAP transaksjon.

Hele batchinndataprosessen foregรฅr online i programmet

Anropstransaksjonsmetode

Merknader:

  • Raskere behandling av data
  • Asynkron prosessering
  • Overfรธr data for en enkelt transaksjon.
  • Ingen batch-inndatabehandlingslogg genereres.

Klassisk batch-input vs. anropstransaksjon

De to metodene oppnรฅr samme transaksjon, men de varierer i hastighet, logging og feilhรฅndtering. Tabellen nedenfor viser nรฅr hver av dem er det riktige valget.

Kriterier Klassisk batchinndata Anropstransaksjon
Teknikk BDC_OPEN_GROUP, BDC_INSERT, BDC_CLOSE_GROUP ANROPTRANSAKSJON VED HJELP
i prosess Synckronisk, kjรธr senere fra SM35 Kjรธrer pรฅ nett, i programmet
Transaksjoner Mange transaksjoner i รฉn รธkt ร‰n transaksjon per samtale
Overnatting En prosesslogg per รธkt genereres automatisk Ingen logg, programmet samler meldingene
Speed Tregere, men robust og kan startes pรฅ nytt Raskere
Best for Store, engangs, eldre laster som mรฅ vรฆre reviderbare Interaktive eller hรธyhastighetsoverfรธringer av ett dokument

Med metodene sammenlignet, legger neste avsnitt frem den overordnede prosedyren et prosjekt fรธlger.

Batch-inndataprosedyrer

Batch-inndataprosedyrer

Du vil vanligvis observere fรธlgende sekvens med trinn for รฅ utvikle Batch Input for organisasjonen din

  1. Analyse av eldre data. Bestem hvordan dataene som skal overfรธres skal tilordnes til SAP Struktur. Vรฆr ogsรฅ oppmerksom pรฅ nรธdvendige konverteringer av datatype eller datalengde.
  2. Generere SAP datastrukturer for bruk i eksportprogrammer.
  3. Eksporter dataene til en sekvensiell fil. Merk at tegnformat kreves av forhรฅndsdefinert SAP batch-inndataprogrammer.
  4. Dersom SAP medfรธlgende BDC-programmer brukes ikke, kode ditt eget batch-inndataprogram. Velg en passende batch-inndatametode i henhold til situasjonen.
  5. Behandle dataene og legg dem til SAP System.
  6. Analyser prosessloggen. For CALL TRANSACTION-metoden, der det ikke opprettes en skikkelig logg, bruk meldingene som er samlet inn av programmet.
  7. Fra resultatene av prosessanalysen, korriger og bearbeid de feilaktige dataene.

Skrive BDC-program

Du kan observere fรธlgende prosess for รฅ skrive BDC-programmet ditt

  1. Analyser transaksjonen(e) for รฅ behandle batch-inndata.
  2. Bestem deg for batchinndatametoden du vil bruke.
  3. Les data fra en sekvensiell fil
  4. Utfรธr datakonvertering eller feilkontroll.
  5. Lagre dataene i batch-inndatastrukturen, BDCDATA.
  6. Generer en batch-inndataรธkt for klassisk batch-inndata, eller bearbeid dataene direkte med CALL TRANSACTION USING-setningen.

Batch input datastruktur

Erklรฆring om batch input datastruktur

DATA : BEGIN OF < bdc table>

OCCURS <occurs parameters>.

INCLUDE STRUCTURE BDCDATA.

DATA:END OF <bdc table>.
Feltnavn typen Lengde Tekniske beskrivelser
PROGRAM CHAR 8 Modulbasseng
DYNPRO NUMC 4 Dynpro nummer
DYNBEGIN CHAR 1 Starter en dynpro
FNAM CHAR 35 Feltnavn
FVAL CHAR 80 Feltverdi

Rekkefรธlgen pรฅ feltene i dataene for en bestemt skjerm er ikke av betydning

Peker pรฅ Note

  • Nรฅr du fyller ut BDC-dataene, mรฅ du ta hensyn til brukerinnstillingene. Dette er spesielt relevant for utfylling av felt som involverer tall (som antall, belรธp). Det er brukerinnstillingene som bestemmer hva som er gruppen.ping tegn for tall F.eks.: Et tall femti tusen kan skrives som 50 000,00 eller 50 000,00 basert pรฅ brukerinnstillingen.
  • Kondenser FVAL-feltet for mengde- og mengdefelt slik at de blir venstrejustert.
  • Merk at alle feltene du fyller ut gjennom BDC skal behandles som tegntypefelt mens du fyller ut BDC-datatabellen.
  • I noen skjermer nรฅr du fyller ut verdier i en tabellkontroll ved hjelp av BDC, mรฅ du merke hvor mange rader som er tilstede pรฅ en standardstรธrrelse pรฅ skjermen og kode for like mange rader. Hvis du mรฅ fylle ut flere rader, mรฅ du kode for "Page down"-funksjonalitet som du ville gjort nรฅr du fyller ut tabellkontrollen manuelt.
  • Antall linjer som vil vises i scenariet ovenfor vil variere basert pรฅ skjermstรธrrelsen som brukeren bruker. Sรฅ alltid kode for standard skjermstรธrrelse og fรฅ din BDC til รฅ fungere alltid i standard skjermstรธrrelse uavhengig av hva brukeren beholder skjermstรธrrelsen som.

Opprette batchinndataรธkt

  1. ร…pne sesjonen for batchinndata ved รฅ bruke funksjonsmodulen BDC_OPEN_GROUP.
  2. For hver transaksjon i รธkten:
  3. Fyll BDCDATA med verdier for alle skjermbilder og felt behandlet i transaksjonen.
  4. Overfรธr transaksjonen til รธkten med BDC_INSERT.
  5. Lukk batchinndataรธkten med BDC_CLOSE_GROUP

Eksempel: BDC ved bruk av anropstransaksjon

Programmet nedenfor viser metoden for kalletransaksjoner fra ende til ende. Det bygger BDCDATA-tabellen for to skjermbilder av en transaksjon og kjรธrer den i modus N (ingen visning) med en feiltabell slik at feil kan rapporteres.

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.

๐Ÿ’ก Tips: MODE-parameteren styrer visningen: A viser alle skjermbilder, E stopper bare ved en feil, og N kjรธrer stille. Bruk E under testing og N for produksjonsbelastningen.

Batch Input Recorder

Batch input recorder (System > Services > Batch input > Recorder) registrerer transaksjoner som legges inn manuelt og oppretter en batch input sesjon som kan utfรธres senere ved hjelp av SM35.

Batch Input Recorder

  • Start batchinndataopptakeren ved รฅ velge opptaksknappen fra startskjermbildet for batchinndata.
  • Opptaksnavnet er et brukerdefinert navn og kan samsvare med sesjonsnavnet for batchinndata som kan opprettes fra opptaket.
  • Skriv inn et SAP transaksjonen og begynn รฅ bokfรธre transaksjonen.
  • Etter at du har fullfรธrt innlegget SAP transaksjon velger du enten Hent transaksjon og lagre for รฅ avslutte registreringen eller Neste transaksjon og bokfรธre en ny transaksjon.
  • Nรฅr du har lagret opptaket, kan du opprette en batch-inndataรธkt fra opptaket og/eller generere et batch-inndataprogram fra opptaket.
  • Batch-inndataรธkten du opprettet kan nรฅ analyseres akkurat som alle andre batch-inndataรธkter.
  • Programmet som genereres av funksjonen til batch-inndataopptakeren er et kraftig verktรธy for datagrensesnittprogrammereren. Det gir en solid base som deretter kan endres i henhold til kundens behov.

โš ๏ธ Advarsel: Et opptak fanger opp skjermsekvensen nรธyaktig slik den skjedde, sรฅ et skjermbilde som bare vises for bestemte data, for eksempel en popup-melding om ufullstendigheter, blir ikke tatt opp. Test alltid det genererte programmet med data som utlรธser alle valgfrie skjermbilder.

Spรธrsmรฅl og svar

BDC_OKCODE inneholder funksjonskoden som en bruker ville utlรธst med en knapp eller en tast, for eksempel /00 for Enter eller =LAGRE for Lagre. Den forteller skjermen hvilken handling som skal utfรธres etter at feltene er fylt ut.

SM35 er batch-input-monitoren. Den viser รธktene som er opprettet av klassisk batch-input, kjรธrer dem i forgrunnen eller bakgrunnen, og viser prosessloggen slik at mislykkede transaksjoner kan analyseres og behandles pรฅ nytt.

BDC brukes fortsatt der det ikke finnes noen BAPI, fordi den bruker skjermvalideringene av en transaksjon pรฅ nytt. LSMW pakker BDC, opptak og BAPI-er inn i ett migreringsverktรธy, og en BAPI er รฅ foretrekke nรฅr et stabilt API er tilgjengelig.

Ja. AI-assistenter i ABAP-utviklingsverktรธy tar et opptak eller en skjermliste og lager et utkast til BDCDATA-populasjonen, CALL TRANSACTION-blokken og meldingshรฅndteringen. Utvikleren kartlegger kildefilen og tester lasten.

AI-verktรธy profilerer den eldre filen, flagger manglende obligatoriske felt og formatavvik fรธr innlasting, og oppsummerer batch-inndataloggen etterpรฅ slik at de feilaktige postene kan korrigeres og behandles pรฅ nytt raskere.

Oppsummer dette innlegget med: