SAP Урок за IDOC в ABAP: Ръководство стъпка по стъпка
⚡ Умно обобщение
SAP IDoc (междинен документ) е стандартизиран контейнер за данни, който премества бизнес информация между SAP и не-SAP системи чрез ALE и EDI. Този урок обяснява неговото определение, структура, типове, таблици, профили на партньори, портове и цялостните изходящи и входящи процеси.

Какво е IDoc?
IDoc е просто контейнер за данни използвани за обмен на информация между всеки два процеса, които могат да разберат синтаксиса и семантиката на данните.
С други думи, IDoc е като файл с данни с определен формат, който се обменя между две системи, които знаят как да интерпретират тези данни.
IDoc означава „Междинен документ".
Когато изпълнявате изходяща В процеса ALE или EDI се създава IDoc. В SAP Система, IDoc-ите се съхраняват в базата данни и всеки IDoc има уникален номер в рамките на клиент.
Основни функции
- IDocs са независимо от изпращащата и получаващата системи (SAP-да се-SAP както и не-SAP).
- IDoc-ите са базирани на EDI стандарти, ANSI ASC X12 и EDIFACT. В случай на конфликт в размера на данните, IDoc приема този с по-голяма дължина.
- IDocs са независимо от посоката на обмен на данни, напр. ORDERS01 в модула „Покупки“ поддържа както входящи, така и изходящи поръчки.
- IDocs могат да се видят в текстов редактор защото данните се съхраняват в символен, а не в двоичен формат.
Структура на IDoc
Структурата на IDoc се състои от три части:
- Административната част (контролен запис) — съдържа типа на IDoc, типа на съобщението, текущото състояние, подателя, получателя и подобни метаданни. Това се нарича контролен запис.
- Данните от приложението (Запис на данни) — съдържа бизнес данните. Те се наричат записи с данни или сегменти.
- Информация за състоянието (Запис на състоянието) — предоставя информация за различните етапи, през които е преминал IDoc.
Можете да видите IDoc, използвайки транзакция WE02 or WE05.
Както се вижда на екранната снимка по-горе, IDoc записът има три части – Контрол, Данни и Статус. Всяка част е разгледана подробно по-долу.
Контролен запис
- Всички данни от контролния запис се съхраняват в EDIDC таблица. Ключът към тази таблица е IDoc номерът.
- Съдържа информация като IDoc номер, посока (входяща/изходяща), информация за подателя, получателя, използван канал и използван порт.
- Посока „1“ показва изходяща, а „2“ показва входяща.
Запис на данни
- Записът с данни съдържа данни за приложението, като например информация за заглавката на служителя, седмични подробности, данни за клиента и т.н.
- Всички данни от записите на данни се съхраняват в таблици EDID2 до EDID4, и EDIDD е структура, където можете да видите нейните компоненти.
- Той съдържа данни като IDoc номера, името и номера на сегмента в IDoc, йерархията и самите данни.
- Действителният полезен товар се съхранява като низ в поле, наречено SDATA, което е поле от 1000 знака.
Запис на състоянието
- Запис за състояние се прикачва към IDoc на всеки етап или когато възникне грешка.
- Всички данни за записа на състоянието се съхраняват в EDIDS масата.
- Статуси 1–42 са за изходящи, докато 50–75 са за входящи.
Типове IDoc
Типът IDoc (основен) определя структурата и формата на бизнес документа, който ще се обменя. IDoc е екземпляр на тип IDoc, точно както концепцията за променливи и типове променливи в програмни езициТиповете IDoc могат да бъдат дефинирани чрез транзакция. WE30.
Какво е сегмент?
Сегментът определя формата и структурата на a Запис на данни в IDoc. Сегментите са компоненти за многократна употреба.
За всеки сегмент, SAP създава следните компоненти.
- Тип сегмент (независим от версията)
- Дефиниция на сегмент (в зависимост от версията)
- Документация на сегмента
Последните три знака представляват версията на сегмента. Дефинициите могат да се променят с промяната на версията, но типът на сегмента остава същият. Транзакция: WE31.
Какво е тип IDoc на разширение?
IDoc е от два вида:
- Basic
- Разширение
SAP предоставя много предварително дефинирани основни IDoc типове, които не може да бъде промененоАко трябва да добавите още данни към ограничен основен тип, можете да използвате разширен тип. В повечето случаи ще не нуждаят се от разширения.
документация
Всеки IDoc е щателно документиран в транзакцията WE60.
Тип съобщение
Съобщението представлява специфичен тип документ, който е transmitмежду двама партньори, например Поръчки, Отговори на Поръчки и Фактури.
Един IDoc тип може да бъде свързан с много типове съобщения. Обратно, един тип съобщение може да бъде свързан с различни IDoc типове. Транзакция: WE81.
Изгледи на IDoc
Един IDoc тип може да се използва за повече от един тип съобщение, което води до IDoc, съдържащи повече полета, отколкото се изисква за даден тип съобщение.
IDoc изгледите подобряват производителността при генериране на IDoc документи, като гарантират, че само съответните сегменти са запълнени с данни. IDoc изгледите са важни само за обработка на изходящи документи.
Партньорски профили
Партньорът е бизнес партньор, с когото осъществявате бизнес дейност и обменяте документи.
В профила на партньор, с когото се обменят IDoc документите, се поддържат параметрите, необходими за обмен на данни. Използваната транзакция е WE20.
порт
Портът определя техническите характеристики на връзката между вашия SAP системата и другата система, с която искате да прехвърляте данни (подсистема). Портът определя средата, в която се обменят данни между двете системи.
Има различни видове портове. Два от най-често използваните са TRFC портове използва се в ALE и Файлови портове използван от EDI.
За TRFC портове трябва да зададете името на логическата дестинация, създадена с помощта на SM59Когато използвате файлов порт, можете да укажете директорията, където трябва да се постави IDoc файлът. Другата система или мидълуер след това взема файла оттам. Функционален модул може да се използва за генериране на име на файл за IDoc. Докато тестване, можете да използвате „Изходящ файл“, за да зададете постоянно име на файл. Разделът „изходящ тригер„“ може да се използва за предоставяне на информация, ако искате да задействате някаква обработка в подсистемата, когато IDoc се създаде на това място. Посочете името на командния файл и директорията, която трябва да се изпълни.
Обща IDoc транзакция Codes
| Транзакция Code | Цел |
|---|---|
| WE02 / WE05 | Показване и наблюдение на IDoc-и |
| WE30 | Създаване или промяна на тип IDoc |
| WE31 | Създаване или промяна на сегмент |
| WE20 | Поддържане на профил на партньор |
| WE21 | Поддържане на портове |
| WE42 | Дефиниране на входящ процес Code |
| WE57 | Разпределете входящия функционален модул към тип съобщение |
| WE60 | IDoc документация |
| WE81 / WE82 | Създаване на тип съобщение / свързване с тип IDoc |
| BD51 | Дефиниране на характеристиките на функционалния модул |
| SM59 | Поддържане на RFC дестинации |
IDoc процес: Пример от реалния свят
Да разгледаме примера за изпращане на поръчка до доставчик чрез IDoc.
- Всеки път, когато се създава поръчка за покупка (ПО), системата трябва да изпрати IDoc до доставчика.
- Поръчката се изпраща под формата на IDoc до доставчика (партньора). Този партньор трябва да има активиран EDI в системата. SAP признава, че може да изпрати документа на този доставчик по електронен път.
- Поръчката, изпратена като изходящ IDoc от клиента, става входящ IDoc за доставчика. SAP Системата от страна на доставчика може да обработи това, за да създаде документ за кандидатстване (поръчка за продажба) в своята система.
- Оферти, заявки за поръчка (RFQ), поръчки за поръчки (PO), заявки за доставка (SO), фактури и бележки за доставка са едни от най-често обменяните документи чрез IDoc.
Процесът на прехвърляне на данни от вашия SAP системата се нарича Изходящ процес, докато данните се преместват във вашия SAP системата се нарича Входящ процесКато разработчик или консултант, който настройва тези процеси за вашата организация, стъпките за конфигуриране на всеки от тях са описани подробно по-долу.
Изходящият процес
Включени стъпки:
- Създаване на сегменти (WE31).
- Създайте IDoc тип (WE30).
- Създайте тип съобщение (WE81).
- Свържете типа на съобщението с типа на IDoc (WE82).
- Създайте порт (WE21).
- Ако използвате метода за управление на съобщенията, за да задействате IDoc-и, създайте функционален модул, който изгражда IDoc-а и го свържете с изходящ процес. Code.
- В противен случай създайте функционален модул или самостоятелна програма, която създава IDoc директно.
- Създайте профил на партньор (WE20) с необходимата информация в изходящите параметри за партньора, с когото обменяте IDoc, и задействайте IDoc.
Входящият процес
Включени стъпки:
- Създайте основния тип IDoc (транзакция WE30).
- Създайте типа съобщение (транзакция WE81).
- Свържете типа на съобщението с основния тип IDoc (транзакция WE82).
- Създайте функционалния модул за обработка на IDoc.
- Дефинирайте характеристиките на функционалния модул (BD51).
- Разпределете входящия функционален модул към типа съобщение (WE57).
- Дефинирайте процеса Code (Транзакция WE42).
- Създайте профила на партньора (транзакция WE20).










