SAP Tutorial IDOC în ABAP: Ghid pas cu pas
⚡ Rezumat inteligent
SAP IDoc (Document Intermediar) este un container de date standardizat care mută informații de afaceri între SAP și non-SAP sisteme prin ALE și EDI. Acest tutorial explică definiția, structura, tipurile, tabelele, profilurile partenerilor, porturile și procesele end-to-end de ieșire și intrare.

Ce este un IDoc?
IDoc este pur și simplu un container de date folosit pentru a face schimb de informații între oricare două procese care pot înțelege sintaxa și semantica datelor.
Cu alte cuvinte, un IDoc este ca un fișier de date cu un format specificat, care este schimbat între două sisteme care știu cum să interpreteze acele date.
IDoc înseamnă „Document intermediar".
Când executați o outbound În procesul ALE sau EDI, se creează un IDoc. În SAP Sistem și, IDoc-urile sunt stocate în baza de date și fiecare IDoc are un număr unic în cadrul unui client.
Caracteristici cheie
- IDoc-urile sunt independent de sistemele de expediere și recepție (SAP-la-SAP precum și non-SAP).
- IDoc-urile se bazează pe EDI standardele ANSI ASC X12 și EDIFACT. În cazul oricărui conflict în ceea ce privește dimensiunea datelor, IDoc îl adoptă pe cel cu lungimea mai mare.
- IDoc-urile sunt independent de direcția schimbului de date, de exemplu ORDERS01 din modulul Achiziții acceptă atât comenzi de intrare, cât și comenzi de ieșire.
- IDoc-urile pot fi vizualizate într-o editor de text deoarece datele sunt stocate în format de caractere în loc de format binar.
Structura unui IDoc
Structura IDoc este alcătuită din trei părți:
- Partea de administrare (Fișa de control) — conține tipul de IDoc, tipul de mesaj, starea curentă, expeditorul, destinatarul și metadate similare. Aceasta se numește Înregistrare de Control.
- Datele aplicației (Înregistrarea de date) — conține datele de afaceri. Acestea se numesc înregistrări de date sau segmente.
- Informațiile de stare (Înregistrare de stare) — oferă informații despre diferitele etape prin care a trecut IDoc-ul.
Puteți vizualiza un IDoc utilizând tranzacția WE02 or WE05.
După cum se vede în captura de ecran de mai sus, înregistrarea IDoc are trei părți - Control, Date și Stare. Fiecare parte este explorată în detaliu mai jos.
Înregistrare de control
- Toate datele înregistrării de control sunt stocate în EDIDC tabel. Cheia acestui tabel este numărul IDoc.
- Conține informații precum numărul IDoc, direcția (intrând/ieșind), expeditorul, informațiile despre destinatar, canalul utilizat și portul utilizat.
- Direcția „1” indică ieșire, iar „2” indică intrare.
Înregistrare de date
- Înregistrarea de date conține date ale aplicației, cum ar fi informații din antetul angajaților, detalii săptămânale, detalii despre clienți și așa mai departe.
- Toate datele din înregistrările de date sunt stocate în tabele EDID2 până la EDID4 și EDIDD este o structură din care se pot observa componentele.
- Conține date precum numărul IDoc, numele și numărul segmentului din IDoc, ierarhia și datele în sine.
- Sarcina utilă reală este stocată ca un șir de caractere într-un câmp numit SDATA, care este un câmp de 1000 de caractere.
Înregistrare de stare
- O înregistrare de stare este atașată la un IDoc la fiecare etapă importantă sau când întâlnește o eroare.
- Toate datele de înregistrare a stării sunt stocate în EDIDS tabel.
- Stările 1–42 sunt pentru mesaje de ieșire, în timp ce 50–75 sunt pentru mesaje de intrare.
Tipuri de IDoc-uri
Un tip IDoc (de bază) definește structura și formatul documentului de afaceri care va fi schimbat. Un IDoc este o instanță a unui tip IDoc, la fel ca și conceptul de variabile și tipuri de variabile din limbaje de programareTipurile IDoc pot fi definite folosind tranzacții WE30.
Ce este un segment?
Un Segment definește formatul și structura unui Înregistrare de date într-un IDoc. Segmentele sunt componente reutilizabile.
Pentru fiecare segment, SAP creează următoarele componente.
- Tip de segment (independent de versiune)
- Definiția segmentului (în funcție de versiune)
- Documentație de segment
Ultimele trei caractere reprezintă versiunea segmentului. Definițiile se pot schimba odată cu schimbarea versiunii, dar tipul de segment rămâne același. Tranzacție: WE31.
Ce este un tip de IDoc de extensie?
Un IDoc este de două tipuri:
- pachet de bază
- Extensie
SAP oferă multe tipuri de IDoc de bază predefinite care nu poate fi modificatDacă trebuie să adăugați mai multe date la un tip de bază restricționat, puteți utiliza un tip de extensie. De cele mai multe ori veți nu nevoie de extensii.
Documentație
Fiecare IDoc este documentat temeinic în tranzacție WE60.
Tipul mesajului
Un mesaj reprezintă un anumit tip de document care este transmitîntre doi parteneri, de exemplu Comenzi, Răspunsuri la Comandă și Facturi.
Un tip de IDoc poate fi asociat cu mai multe tipuri de mesaje. În schimb, un tip de mesaj poate fi asociat cu diferite tipuri de IDoc. Tranzacție: WE81.
Vizualizări IDoc
Un tip de IDoc poate fi utilizat pentru mai multe tipuri de mesaj, ceea ce duce la IDoc-uri care conțin mai multe câmpuri decât este necesar pentru un anumit tip de mesaj.
Vizualizările IDoc îmbunătățesc performanța în generarea IDoc-urilor asigurându-se că doar segmentele relevante sunt completate cu date. Vizualizările IDoc sunt importante doar pentru procesarea de ieșire.
Profiluri de parteneri
Un partener este un partener de afaceri cu care desfășurați afaceri și schimbați documente.
În profilul de partener al unui partener cu care se schimbă IDoc-uri, mențineți parametrii necesari pentru schimbul de date. Tranzacția utilizată este WE20.
Port
Portul definește caracteristicile tehnice ale conexiunii dintre dvs. SAP sistem și celălalt sistem cu care doriți să transferați date (subsistem). Portul definește mediul în care se face schimbul de date între cele două sisteme.
Există diferite tipuri de porturi. Cele două cele mai utilizate sunt porturi TRFC utilizat în ALE și Porturi de fișiere utilizat de EDI.
Pentru porturile TRFC, trebuie să specificați numele destinației logice create folosind SM59Când utilizați un port de fișiere, puteți specifica directorul în care ar trebui plasat fișierul IDoc. Celălalt sistem sau middleware preia apoi fișierul de acolo. Un modul de funcții poate fi utilizat pentru a genera un nume de fișier pentru IDoc. În timp ce de testare, puteți utiliza „Fișier de ieșire” pentru a specifica un nume de fișier constant. Fila „declanșator de ieșire„” poate fi folosit pentru a furniza informații dacă doriți să declanșați o anumită procesare în subsistem atunci când un IDoc este creat în această locație. Specificați numele fișierului de comenzi și directorul care trebuie executat.
Tranzacție IDoc comună Codes
| tranzacție Code | Scop |
|---|---|
| WE02 / WE05 | Afișarea și monitorizarea IDoc-urilor |
| WE30 | Creați sau modificați tipul IDoc |
| WE31 | Creați sau modificați segmentul |
| WE20 | Mențineți profilul de partener |
| WE21 | Mențineți porturile |
| WE42 | Definiți procesul de intrare Code |
| WE57 | Alocare modul funcție de intrare tipului de mesaj |
| WE60 | Documentație IDoc |
| WE81 / WE82 | Creați un tip de mesaj / asociați-l cu tipul IDoc |
| BD51 | Definirea caracteristicilor modulului funcțional |
| SM59 | Mențineți destinațiile RFC |
Procesul IDoc: Un exemplu din lumea reală
Luați în considerare exemplul trimiterii unei comenzi de achiziție către un furnizor prin IDoc.
- Ori de câte ori este creată o Comandă de Achiziție (PO), sistemul trebuie să trimită un IDoc furnizorului.
- Ordinul de achiziție este trimis sub forma unui IDoc către furnizor (partener). Partenerul respectiv trebuie să fie activat EDI în sistem. SAP recunoaște că poate trimite documentul acestui furnizor electronic.
- Oferta de achiziție trimisă ca IDoc de ieșire de către client devine un IDoc de intrare pentru furnizor. SAP Sistemul de partea furnizorului poate procesa acest lucru pentru a crea un document de aplicație (o Comandă de vânzare) în sistemul său.
- Ofertele de preț, cererile de ofertă, comenzile de achiziție, comenzile de achiziție, facturile și avizele de livrare sunt unele dintre documentele cel mai frecvent schimbate prin IDoc.
Procesul de transfer de date din dvs SAP sistemul se numește Proces de ieșire, în timp ce datele se deplasează în SAP sistemul se numește Proces de intrareÎn calitate de dezvoltator sau consultant care configurează aceste procese pentru organizația dvs., pașii pentru configurarea fiecăruia sunt detaliați mai jos.
Procesul de ieșire
Pași implicați:
- Creați segmente (WE31).
- Creați un tip IDoc (WE30).
- Creați un tip de mesaj (WE81).
- Asociați tipul de mesaj cu tipul de IDoc (WE82).
- Creați un port (WE21).
- Dacă utilizați metoda de control al mesajelor pentru a declanșa IDoc-uri, creați modulul de funcții care construiește IDoc-ul și legați-l la un proces de ieșire. Code.
- Altfel, creați un modul funcțional sau un program independent care creează direct IDoc-ul.
- Creați un Profil de Partener (WE20) cu informațiile necesare în parametrii de ieșire pentru partenerul cu care schimbați IDoc-ul și declanșați IDoc-ul.
Procesul de intrare
Pași implicați:
- Creați tipul de IDoc de bază (tranzacția WE30).
- Creați tipul de mesaj (tranzacția WE81).
- Asociați tipul de mesaj cu tipul de IDoc de bază (tranzacția WE82).
- Creați modulul funcțional pentru procesarea IDoc-ului.
- Definiți caracteristicile modulului funcțional (BD51).
- Alocați modulul funcției de intrare tipului de mesaj (WE57).
- Definiți procesul Code (Tranzacția WE42).
- Creați Profilul Partenerului (Tranzacția WE20).










