SAP ABAP BDC (Batch Data Communication)-zelfstudie
Inleiding tot batchinvoer
Batchinvoer wordt doorgaans gebruikt om gegevens over te dragen van niet-R/3-systemen naar R/3-systemen of om gegevens over te dragen tussen R/3-systemen.
Het is een techniek voor gegevensoverdracht waarmee u gegevenssets automatisch kunt overbrengen naar schermen die bij transacties horen, en dus naar een SAP systeem. Batchinvoer wordt bestuurd door een batchinvoersessie.
Batch-invoersessie
Groepeert een reeks transactieoproepen samen met invoergegevens en gebruikersacties. Een batchinvoersessie kan worden gebruikt om een dialoogtransactie uit te voeren in batchinvoer, waarbij sommige of alle schermen door de sessie worden verwerkt. Batchinvoersessies worden in de database opgeslagen als databasetabellen en kunnen binnen een programma worden gebruikt als interne tabellen bij het openen van transacties.
Punten om op te merken
- BDI werkt door normaal uit te voeren SAP transacties uitvoeren zoals een gebruiker dat zou doen, maar de transactie automatisch uitvoeren.Alle schermvalidaties en bedrijfslogica-validatie worden uitgevoerd met behulp van batchgegevensinvoer.
- Het is geschikt voor het invoeren van grote hoeveelheden gegevens.
- Er is geen handmatige interactie vereist
Methoden voor batchinvoer
SAP bieden twee basismethoden voor het overbrengen van oudere gegevens naar het R/3-systeem.
- Klassieke batchinvoermethode.
- Transactiemethode oproepen.
Klassieke batchinvoermethode
Bij deze methode leest een ABAP/4-programma de externe gegevens naar de SAP Systeem en winkels in een batchinvoersessie.
Nadat u de sessie hebt gemaakt, kunt u de sessie uitvoeren om de SAP transactie daarin.
Deze methode maakt gebruik van de functiemodules BDC_OPEN, BDC_INSERT en BDC_CLOSE
Batchinvoersessie kan op 3 manieren worden verwerkt
- op de voorgrond
- op de achtergrond
- Tijdens de verwerking, met foutweergave
Als u de gegevensoverdracht wilt testen, moet u batch-invoersessies op de voorgrond verwerken of de foutweergave gebruiken.
Als u de gegevensoverdracht wilt uitvoeren of de prestaties ervan wilt testen, moet u de sessies op de achtergrond verwerken.
Aandachtspunten bij de klassieke batchinvoermethode
- Syncroneuze verwerking
- Gegevens overdragen voor meerdere transacties.
- Syncroneuze database-update.
- Voor elke sessie wordt een proceslogboek voor batchinvoer gegenereerd.
- Sessie kan niet parallel worden gegenereerd.
Transactiemethode oproepen.
Bij deze methode: ABAP/4 programma gebruikt de instructie CALL TRANSACTION USING om een SAP transactie.
Het gehele batch-invoerproces vindt online plaats in het programma
Aandachtspunten:
- Snellere verwerking van gegevens
- Asynchrone verwerking
- Gegevens overbrengen voor één enkele transactie.
- Er wordt geen verwerkingslogboek voor batchinvoer gegenereerd.
Batchinvoerprocedures
U zult doorgaans de volgende reeks stappen volgen om batchinvoer voor uw organisatie te ontwikkelen
- Analyse van de oude gegevens. Bepaal hoe de gegevens die moeten worden overgedragen, moeten worden toegewezen aan de SAP Structuur. Houd ook rekening met de noodzakelijke datatype- of datalengteconversies.
- Genereer een SAP datastructuren voor gebruik in exportprogramma's.
- Exporteer de gegevens naar een sequentieel bestand. Houd er rekening mee dat de tekenopmaak vereist is door vooraf gedefinieerd SAP batch-invoerprogramma's.
- Indien de SAP meegeleverde BDC-programma's worden niet gebruikt, codeer uw eigen batchinvoerprogramma. Kies een geschikte batchinvoermethode, afhankelijk van de situatie.
- Verwerk de gegevens en voeg deze toe aan het SAP Systeem.
- Analyseer het proceslogboek. Voor de CALL TRANSACTION-methode, waarbij geen goed logboek wordt gemaakt, gebruikt u de berichten die door uw programma zijn verzameld.
- Corrigeer en verwerk de foutieve gegevens opnieuw op basis van de resultaten van de procesanalyse.
BDC-programma schrijven
U kunt het volgende proces volgen om uw BDC-programma te schrijven
- Analyseer de transactie(s) om batchinvoergegevens te verwerken.
- Bepaal welke batchinvoermethode u wilt gebruiken.
- Gegevens uit een sequentieel bestand lezen
- Voer gegevensconversie of foutcontrole uit.
- Het opslaan van de gegevens in de batchinvoerstructuur, BDCDATA.
- Genereer een batchinvoersessie voor klassieke batchinvoer, of verwerk de gegevens rechtstreeks met de CALL TRANSACTION USING-instructie.
Batch-invoergegevensstructuur
Declaratie van batchinvoergegevensstructuur
DATA : BEGIN OF < bdc table> OCCURS <occurs parameters>. INCLUDE STRUCTURE BDCDATA. DATA:END OF <bdc table>.
Veldnaam | Type | Lengte | Technische Beschrijving |
---|---|---|---|
PROGRAMMA | CHAR | 8 | Modulepool |
DYNPRO | NUMC | 4 | Dynpro-nummer |
DYNBEGIN | CHAR | 1 | Een dynpro starten |
FNAM | CHAR | 35 | Veldnaam |
FVAL | CHAR | 80 | Veldwaarde |
De volgorde van de velden binnen de gegevens voor een bepaald scherm is niet van belang
Punten om op te letten
- Zorg ervoor dat u bij het vullen van de BDC-gegevens rekening houdt met de gebruikersinstellingen. Dit is met name relevant voor het invullen van velden met getallen (zoals hoeveelheid, bedrag). Het is de gebruikersinstelling die bepaalt wat het groeperingskarakter voor getallen is. Bijvoorbeeld: een getal vijftigduizend kan worden geschreven als 50,000.00 of 50.000,00 op basis van de gebruikersinstelling.
- Verklein het FVAL-veld voor bedrag- en hoeveelheidsvelden, zodat ze uitgelijnd blijven.
- Houd er rekening mee dat alle velden die u via BDC invult, moeten worden behandeld als velden voor het tekentype bij het invullen van de BDC-gegevenstabel.
- Wanneer u in sommige schermen waarden in een tabelbesturingselement invult met behulp van BDC, moet u noteren hoeveel rijen aanwezig zijn op een standaardgrootte van het scherm en coderen voor evenveel rijen. Als u meer rijen moet vullen, moet u coderen voor de “Page down”-functionaliteit, net zoals u zou doen wanneer u het tabelbesturingselement handmatig invult.
- Het aantal regels dat in het bovenstaande scenario zou verschijnen, zal verschillen op basis van de schermgrootte die de gebruiker gebruikt. Codeer dus altijd voor standaard schermgrootte en zorg ervoor dat uw BDC altijd in standaard schermgrootte werkt, ongeacht hoe de gebruiker zijn schermgrootte aanhoudt.
Batchinvoersessie maken
- Open de batchinvoersessiesessie met functiemodule BDC_OPEN_GROUP.
- Voor elke transactie in de sessie:
- Vul de BDCDATA met waarden voor alle schermen en velden die in de transactie worden verwerkt.
- Breng de transactie over naar de sessie met BDC_INSERT.
- Sluit de batchinvoersessie met BDC_CLOSE_GROUP
Batchinvoerrecorder
Met de batchinvoerrecorder (Systeem > Services > Batchinvoer > Recorder) worden handmatig ingevoerde transacties geregistreerd en wordt een batchinvoersessie gemaakt die later met SM35 kan worden uitgevoerd.
- Start de batchinvoerrecorder door de opnameknop te selecteren in het beginscherm van de batchinvoer.
- De opnamenaam is een door de gebruiker gedefinieerde naam en kan overeenkomen met de naam van de batchinvoersessie die op basis van de opname kan worden gemaakt.
- Voer een SAP transactie en begin met het boeken van de transactie.
- Nadat u klaar bent met het plaatsen van een SAP transactie, kiest u voor Transactie ophalen en opslaan om de opname te beëindigen, of voor Volgende transactie en een nieuwe transactie te boeken.
- Nadat u de opname heeft opgeslagen, kunt u van de opname een batchinvoersessie maken en/of een batchinvoerprogramma van de opname genereren.
- De batchinvoersessie die u hebt aangemaakt, kan nu net als elke andere batchinvoersessie worden geanalyseerd.
- Het programma dat wordt gegenereerd door de functie van de batchinvoerrecorder is een krachtig hulpmiddel voor de data-interfaceprogrammeur. Het biedt een solide basis die vervolgens kan worden aangepast aan de wensen van de klant.