Wat is een IDOC?
IDOC is gewoon een gegevenscontainer die wordt gebruikt om informatie uit te wisselen tussen twee processen die de syntaxis en semantiek van de gegevens kunnen begrijpen.
Met andere woorden, een IDOC is als een gegevensbestand met een gespecificeerd formaat dat wordt uitgewisseld tussen 2 systemen die weten hoe ze die gegevens moeten interpreteren.
IDOC staat voor " Intermediate Document".
Wanneer we een uitgaand ALE- of EDI-proces uitvoeren, wordt een IDOC aangemaakt.
In het SAP-systeem worden I DOC's opgeslagen in een database. Elke IDOC heeft een uniek nummer (binnen een klant).
In deze tutorial leer je:
- Wat is een IDOC?
- Structuur van een IDOC
- IDOC-typen
- Wat is een segment?
- Wat is het extensie-IDOC-type?
- IDOC-weergaven
- Partnerprofielen
- Haven
- Het uitgaande proces
- Het inkomende proces
- IDOC's zijn onafhankelijk van de verzendende en ontvangende systemen. (Zowel SAP-naar-SAP als niet-SAP)
- IDOC's zijn gebaseerd op EDI-standaarden, ANSI ASC X12 en EDIFACT. In het geval van een conflict in de gegevensgrootte, wordt er een aangenomen met een grotere lengte.
- IDOC's zijn onafhankelijk van de richting van de gegevensuitwisseling, bijvoorbeeld ORDERS01: Inkoopmodule: inkomend en uitgaand
- IDOC's kunnen worden bekeken in een teksteditor . Gegevens worden opgeslagen in tekenformaat in plaats van in binair formaat.
Structuur van een IDOC
De I doc-structuur bestaat uit 3 delen -
- Het beheergedeelte ( Control Record ) - met het type idoc, berichttype, de huidige status, de afzender, ontvanger enz. Dit wordt het controlerecord genoemd.
- De toepassingsgegevens ( gegevensrecord ) - die de gegevens bevatten. Dit worden de datarecords / segmenten genoemd .
- De informatie Status ( Status Record ) - Deze geven u informatie over de verschillende fases van de IDOC heeft doorlopen.
U kunt een I-DOC bekijken met transactie WE02 of WE05
Zoals te zien is in de bovenstaande schermafbeelding, heeft IDOC-record drie delen Controle, Gegevens en Status. Laten we ze in detail bekijken - Control Record
- Alle controleregistratiegegevens worden opgeslagen in EDIDC-tabel. De sleutel tot deze tabel is het IDOC-nummer
- Het bevat informatie zoals het IDOC-nummer, de richting (inkomend / uitgaand), afzender, ontvangerinformatie, kanaal dat het gebruikt, welke poort het gebruikt, enz.
- Richting '1' geeft uitgaand aan, '2' geeft inkomend aan.
Gegevensrecord
- Het gegevensrecord bevat toepassingsgegevens zoals info over de koptekst van de werknemer, wekelijkse gegevens, klantgegevens enz
- Alle gegevensrecordgegevens worden opgeslagen in EDID2 tot EDID4-tabellen en EDIDD is een structuur waarin u de componenten ervan kunt zien.
- Het bevat gegevens zoals het idoc-nummer, de naam en het nummer van het segment in de idoc, de hiërarchie en de gegevens
- De feitelijke gegevens worden opgeslagen als een tekenreeks in een veld met de naam SDATA, dat een veld van 1000 tekens lang is.
Statusrecord
- Statusrecord wordt bij elke mijlpaal of wanneer er fouten optreden, aan een I-DOC toegevoegd.
- Alle statusrecordgegevens worden opgeslagen in de EDIDS-tabel.
- Statussen 1-42 zijn voor uitgaand en 50-75 voor inkomend
IDOC-typen
Een I DOC Type, (Basic) definieert de structuur en het formaat van het bedrijfsdocument dat moet worden uitgewisseld. Een IDOC is een instantie van een IDOC-type , net als het concept van variabelen en typen variabelen in programmeertalen. U kunt IDOC-typen definiëren met WE30
Wat is een segment?
Een segment definieert het formaat en de structuur van een gegevensrecord in I-DOC. Segmenten zijn herbruikbare componenten.
Voor elk segment creëert SAP
- Segmenttype (versie-onafhankelijk)
- Segmentdefinitie (afhankelijk van versie)
- Segment documentatie
De laatste 3 tekens is de versie van het segment.
Definities blijven veranderen volgens de versie, maar het segmenttype blijft hetzelfde.
Transactie: WE31
Wat is het extensie-IDOC-type?
Een IDOC bestaat uit 2 soorten: -
- Basic
- Uitbreiding
SAP provides many a pre-defined Basic IDOC Types which can not be modified. In case you want to add more data to these restricted basic type you may use an extension type. Most of the times you will NOT use extension.
Documentation
Each IDOC are thoroughly documented in transaction WE60
Message Type
A message represents a specific type of document that is transmitted between two partners Ex. Orders, orders responses, invoices etc
An idoc type can be associated with many message types
Also, a message type can be associated with different idoc types. Transaction WE81
IDOC Views
An IDOC type can be used for more than one message type, which results in IDOCs containing more fields than required for a particular message type.
Partnerprofielen
Een partner wordt gedefinieerd als een zakenpartner met wie u zaken doet en documenten uitwisselt.
In het partnerprofiel van een partner waarmee we Idocs uitwisselen, onderhouden we de parameters die nodig zijn voor het uitwisselen van de gegevens. De gebruikte transactie is WE20 .
Haven
The port defines the technical characteristics of the connection between your SAP system and the other system you want to transfer data with (subsystem). The port defines the medium in which data is exchanged between the 2 systems.
There are different types of ports. The 2 most commonly used are the TRFC ports used in ALE and File ports which EDI uses.
For TRFC ports we have to give the name of the logical destination created using SM59.
When using file port you can specify the directory where the IDOC file should be placed. The other system or the middleware will pick up the file from here. The Function module can be used to generate a file name for the idoc. While Testing you can use "Outbound file" to specify a constant file name. The tab "outbound trigger" can be used to supply information if we want to trigger some processing on the subsystem when an idoc is created at this location. We have to specify the command file name and the directory which has to be run.
This is so CONFUSING!
Let's understand the process of creating an IDOC with an example -
- Whenever a Purchase Order (PO) is created we want to send the IDOC to a vendor.
- The PO is sent in the form of an IDOC to the vendor (partner). That partner has to be EDI enabled in that system. SAP should realize that it could send doc to this vendor electronically.
- The PO sent as an outbound idoc by the customer will be inbound idoc for the vendor. The SAP system on the vendor's side can process this to create an application document (a sales order) on their system.
- Quotation, RFQ, PO, SO, Invoice, delivery note etc are some of the commonly exchanged documents through IDOC
The process of data transfer out of your SAP system is called the Outbound process, while that of data moving into you SAP system is called Inbound process. As a developer or a consultant who will be involved in setting up theses process for your organization. Here are the steps how to set them up-
The Outbound Process
Steps Involved -
- Create segments(WE31)
- Create an idoc type(WE30)
- Create a message type (WE81)
- Associate a message type to idoc type(WE82)
- Create a port(WE21)
- If you are going to use the message control method to trigger idocs then create the function module for creating the idoc and associate the function module to an outbound process code
- Otherwise, create the function module or stand-alone program which will create the idoc
- Create a partner profile(WE20) with the necessary information in the outbound parameters for the partner you want to exchange the idoc with.Trigger the idoc.
The Inbound Process
Steps Involved-
- Creation of basic Idoc type (Transaction WE30)
- Creating message type (Transaction WE81)
- Associating the Message type to basic Idoc type (Transaction WE82)
- Create the function module for processing the idoc
- Definieer de kenmerken van het functieblok (BD51)
- Wijs de inkomende functiemodule toe aan het berichttype (WE57)
- Procescode definiëren (transactie WE42)
- Aanmaken van een partnerprofiel (Transactie WE20)