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.

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.
- Klassisk batchinndatametode.
- 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
- i forgrunnen
- i bakgrunnen
- 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
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
Du vil vanligvis observere fรธlgende sekvens med trinn for รฅ utvikle Batch Input for organisasjonen din
- 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.
- Generere SAP datastrukturer for bruk i eksportprogrammer.
- Eksporter dataene til en sekvensiell fil. Merk at tegnformat kreves av forhรฅndsdefinert SAP batch-inndataprogrammer.
- Dersom SAP medfรธlgende BDC-programmer brukes ikke, kode ditt eget batch-inndataprogram. Velg en passende batch-inndatametode i henhold til situasjonen.
- Behandle dataene og legg dem til SAP System.
- Analyser prosessloggen. For CALL TRANSACTION-metoden, der det ikke opprettes en skikkelig logg, bruk meldingene som er samlet inn av programmet.
- Fra resultatene av prosessanalysen, korriger og bearbeid de feilaktige dataene.
Skrive BDC-program
Du kan observere fรธlgende prosess for รฅ skrive BDC-programmet ditt
- Analyser transaksjonen(e) for รฅ behandle batch-inndata.
- Bestem deg for batchinndatametoden du vil bruke.
- Les data fra en sekvensiell fil
- Utfรธr datakonvertering eller feilkontroll.
- Lagre dataene i batch-inndatastrukturen, BDCDATA.
- 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
- ร pne sesjonen for batchinndata ved รฅ bruke funksjonsmodulen BDC_OPEN_GROUP.
- For hver transaksjon i รธkten:
- Fyll BDCDATA med verdier for alle skjermbilder og felt behandlet i transaksjonen.
- Overfรธr transaksjonen til รธkten med BDC_INSERT.
- 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.
- 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.



