SAP IDOC-handledning i ABAP: Steg-för-steg-guide
⚡ Smart sammanfattning
SAP IDoc (Intermediate Document) är en standardiserad databehållare som flyttar affärsinformation mellan SAP och icke-SAP system via ALE och EDI. Den här handledningen förklarar dess definition, struktur, typer, tabeller, partnerprofiler, portar och de kompletta utgående och inkommande processerna.

Vad är ett IDoc?
IDoc är helt enkelt en databehållare används för att utbyta information mellan två valfria processer som kan förstå syntaxen och semantiken för datan.
Med andra ord är ett IDoc som en datafil med ett specificerat format som utväxlas mellan två system som vet hur man tolkar informationen.
IDoc står för "Mellandokument".
När du utför en utgående ALE- eller EDI-processen skapas ett IDoc. I SAP Systemkrav, IDocs lagras i databasen, och varje IDoc har en unikt nummer inom en klient.
VIKTIGA FUNKTIONER
- ID-dokument är oberoende av de sändande och mottagande systemen (SAP-Till-SAP såväl som icke-SAP).
- IDocs är baserade på EDI standarder, ANSI ASC X12 och EDIFACT. Vid eventuella konflikter i datastorlek antar IDoc den med längre längd.
- ID-dokument är oberoende av riktningen för datautbytet, t.ex. ORDERS01 i inköpsmodulen stöder både inkommande och utgående.
- IDocs kan ses i en textredigerare eftersom data lagras i teckenformat istället för binärt format.
Strukturen för ett IDoc
IDoc-strukturen består av tre delar:
- Administrationsdelen (kontrollregister) — innehåller IDoc-typ, meddelandetyp, aktuell status, avsändare, mottagare och liknande metadata. Detta kallas kontrollposten.
- Applikationsdata (datapost) — innehåller affärsdata. Dessa kallas dataposter eller segment.
- Statusinformationen (statuspost) — ger information om de olika steg som IDoc har gått igenom.
Du kan visa ett IDoc med hjälp av transaktion WE02 or WE05.
Som framgår av skärmbilden ovan har IDoc-posten tre delar – Kontroll, Data och Status. Varje del utforskas i detalj nedan.
Kontrollpost
- All kontrollpostdata lagras i EDIDC tabell. Nyckeln till den här tabellen är IDoc-numret.
- Den innehåller information som IDoc-nummer, riktning (inkommande/utgående), avsändare, mottagarinformation, kanal som används och port som används.
- Riktning "1" indikerar utgående och "2" indikerar ingående.
Datapost
- Dataposten innehåller applikationsdata såsom information om anställdas rubrik, veckovisa detaljer, klientuppgifter och så vidare.
- All datapostdata lagras i tabeller EDID2 till EDID4och EDIDD är en struktur där du kan se dess komponenter.
- Den innehåller data som IDoc-numret, namnet och numret på segmentet i IDoc, hierarkin och själva informationen.
- Den faktiska nyttolasten lagras som en sträng i ett fält som heter SDATA, vilket är ett fält med 1000 tecken.
Statuspost
- En statuspost bifogas ett IDoc vid varje milstolpe eller när ett fel påträffas.
- All statuspostdata lagras i EDIDS tabell.
- Status 1–42 är för utgående medan 50–75 är för inkommande.
IDoc-typer
En IDoc-typ (grundläggande) definierar strukturen och formatet för det affärsdokument som ska utväxlas. Ett IDoc är en instans av en IDoc-typ, precis som konceptet med variabler och variabeltyper i programmeringsspråkIDoc-typer kan definieras med hjälp av transaktioner WE30.
Vad är ett segment?
Ett segment definierar formatet och strukturen för en Datapost i ett IDoc. Segment är återanvändbara komponenter.
För varje segment, SAP skapar följande komponenter.
- Segmenttyp (versionsoberoende)
- Segmentdefinition (versionsberoende)
- Segmentdokumentation
De tre sista tecknen representerar segmentets version. Definitioner kan ändras allt eftersom versionen ändras, men segmenttypen förblir densamma. Transaktion: WE31.
Vad är en extension IDoc-typ?
Ett IDoc finns av två typer:
- Grundläggande
- Förlängning
SAP tillhandahåller många fördefinierade grundläggande IDoc-typer som kan inte ändrasOm du behöver lägga till mer data till en begränsad grundläggande typ kan du använda en tilläggstyp. För det mesta kommer du att inte behöver förlängningar.
Dokumentation
Varje IDoc dokumenteras noggrant i transaktionen WE60.
Meddelandetyp
Ett meddelande representerar en specifik typ av dokument som är transmitmellan två partners, till exempel order, ordersvar och fakturor.
En IDoc-typ kan associeras med många meddelandetyper. Omvänt kan en meddelandetyp associeras med olika IDoc-typer. Transaktion: WE81.
IDoc-vyer
En IDoc-typ kan användas för mer än en meddelandetyp, vilket resulterar i att IDoc-filer innehåller fler fält än vad som krävs för en viss meddelandetyp.
IDoc-vyer förbättrar prestandan vid generering av IDoc genom att säkerställa att endast relevanta segment fylls med data. IDoc-vyer är endast viktiga för utgående bearbetning.
Partnerprofiler
En partner är en affärspartner som du gör affärer med och utbyter dokument med.
I partnerprofilen för en partner med vilken IDocs utbyts hanterar du de parametrar som är nödvändiga för att utbyta data. Transaktionen som används är WE20.
Port
Porten definierar de tekniska egenskaperna för anslutningen mellan din SAP system och det andra systemet du vill överföra data med (delsystem). Porten definierar mediet i vilket data utbyts mellan de två systemen.
Det finns olika typer av portar. De två vanligaste är TRFC-portar används i ALE och Filportar används av EDI.
För TRFC-portar måste du ange namnet på den logiska destinationen som skapats med hjälp av SM59När du använder en filport kan du ange katalogen där IDoc-filen ska placeras. Det andra systemet eller mellanprogrammet hämtar sedan filen därifrån. En funktionsmodul kan användas för att generera ett filnamn för IDoc. Medan testning, kan du använda ”Utgående fil” för att ange ett konstant filnamn. Fliken ”utgående trigger” kan användas för att tillhandahålla information om du vill utlösa någon bearbetning på delsystemet när en IDoc skapas på den här platsen. Ange kommandofilnamnet och katalogen som måste köras.
Vanlig IDoc-transaktion Codes
| transaktion Code | Syfte |
|---|---|
| WE02 / WE05 | Visa och övervaka IDocs |
| WE30 | Skapa eller ändra IDoc-typ |
| WE31 | Skapa eller ändra segment |
| WE20 | Underhåll partnerprofil |
| WE21 | Underhålla hamnar |
| WE42 | Definiera inkommande process Code |
| WE57 | Allokera inkommande funktionsmodul till meddelandetyp |
| WE60 | IDoc-dokumentation |
| WE81 / WE82 | Skapa meddelandetyp / koppla till IDoc-typ |
| BD51 | Definiera funktionsmodulens egenskaper |
| SM59 | Underhåll RFC-destinationer |
IDoc-processen: Ett exempel från verkligheten
Tänk på exemplet att skicka en inköpsorder till en leverantör via IDoc.
- Varje gång en inköpsorder (PO) skapas måste systemet skicka ett IDoc till leverantören.
- Inköpsordern skickas i form av ett IDoc till leverantören (partnern). Partnern måste vara EDI-aktiverad i systemet. SAP inser att den kan skicka dokumentet till denna leverantör elektroniskt.
- Inköpsordern som skickas som ett utgående ID-dokument av kunden blir ett inkommande ID-dokument för leverantören. SAP Systemet på leverantörssidan kan bearbeta detta för att skapa ett applikationsdokument (en försäljningsorder) i sitt system.
- Offerter, offerter, inköpsorder, orderbeställning, fakturor och följesedlar är några av de vanligaste dokumenten som utbyts via IDoc.
Processen för dataöverföring från din SAP systemet kallas Utgående process, medan data flyttas in i din SAP systemet kallas Inkommande processSom utvecklare eller konsult som konfigurerar dessa processer för din organisation beskrivs stegen för att konfigurera var och en nedan.
Den utgående processen
Inblandade steg:
- Skapa segment (WE31).
- Skapa en IDoc-typ (WE30).
- Skapa en meddelandetyp (WE81).
- Associera meddelandetypen med IDoc-typen (WE82).
- Skapa en port (WE21).
- Om du använder message-control-metoden för att utlösa IDoc, skapa funktionsmodulen som bygger IDoc och länka den till en utgående process. Code.
- Annars skapar du en funktionsmodul eller ett fristående program som skapar IDoc direkt.
- Skapa en partnerprofil (WE20) med nödvändig information i de utgående parametrarna för den partner du utbyter IDoc med och utlös IDoc.
Den inkommande processen
Inblandade steg:
- Skapa den grundläggande IDoc-typen (transaktion WE30).
- Skapa meddelandetypen (transaktion WE81).
- Associera meddelandetypen med den grundläggande IDoc-typen (transaktion WE82).
- Skapa funktionsmodulen för att bearbeta IDoc.
- Definiera funktionsmodulens egenskaper (BD51).
- Allokera den inkommande funktionsmodulen till meddelandetypen (WE57).
- Definiera processen Code (Transaktion WE42).
- Skapa partnerprofilen (transaktion WE20).










