Flat files voorbereiden en inladen in SAP? Dat gaan we dus niet meer doen. Verschillende ETL tools bieden de mogelijkheid om een database voor te bereiden en direct  data te migreren naar SAP. Dit maakt laadprogramma’s als LSMW overbodig. SAP BusinessObjects Data Services 4 (verder BODS) beschikt hiervoor over twee SAP interfaces; IDoc en RFC BAPI.

IDoc (Intermediate Document)

Deze zorgt voor gegevensuitwisseling tussen SAP R/3 en non-SAP systemen en lijkt op XML. Het bevat een header, één of meer (geneste) data segmenten en een status record. Honderden IDocs zijn beschikbaar in SAP voor verschillende business transacties. BODS kan data schrijven naar SAP (IDoc Target, Inbound IDoc) en data lezen vanuit SAP (IDoc Source, Outbound IDoc).

De configuratie van een IDoc Target in BODS werkt volgens ‘Nested Relational Data Model’ (NRDM). Een “kolom” kan een hele tabel bevatten en op zijn beurt weer tabellen, zodat de geneste structuur van de IDoc. Helaas zijn IDocs matig gedocumenteerd, zodat de configuratie zeer uitdagend kan zijn.

image

Met de FROM clause op root niveau kan worden bepaald hoeveel IDocs worden verstuurd. Een dummy rij (Row Generation Transform) beperkt dit tot 1 IDoc voor alle data. Het is maar net hoe SAP de IDoc wil verwerken en dat geldt ook voor de hoeveelheid onderliggende segmenten. De relaties (WHERE clauses) die segmenten met elkaar hebben zijn daarbij ook zeer belangrijk. Een Sales Order mag enkel bijbehorende Sales Items krijgen en niet alle Sales Items die voor alle orders aanwezig zijn.

RFC-BAPI

Dit is een andere techniek waarmee via Remote Function Calls (RFC) connectie wordt gelegd met SAP, gebruik makend van de Business Application Programming Interface (BAPI). Als IDoc gezien wordt als transactional RFC, dan is BAPI object oriented RFC. Iedere BAPI is een representatie van een business object, zoals een werknemer of een grootboekrekening.

De configuratie van een BAPI functie gebeurt in BODS met een function call. Een wizard kan worden doorlopen om te bepalen welke tabellen geladen zullen worden. Dezelfde geneste structuur als bij een IDoc wordt verwacht, waarbij ook de FROM en WHERE from clauses in de gaten moeten worden gehouden. Moet de functie 1 keer worden aangeroepen, meerdere keren in x aantal batches, of zoveel keer als dat er header records zijn?

image

IDoc vs RFC-BAPI

Niet elk business object in SAP kan door beide technieken (even goed) worden geladen. Enkele handvatten om te bepalen wat te gebruiken:

image

Conclusie

Voor de geoefende BODS ontwikkelaar zijn de interfaces een uitstekende manier om met SAP structuren bekend te raken. NRDM is even wennen en niet geheel intuïtief. Daarnaast blijft goed overleg met de functionele SAP expert nodig om het laadmechanisme passend te maken. Het is zelfs ten zeerste aan te raden om het laadmechanisme dat de voorkeur heeft, eerst eens samen uit te proberen, nog voordat men begint aan het mappen van legacy data naar SAP.

Ensior B.V. 2024 All rights reserved
Deze website maakt gebruik van cookies: meer informatie