IDoc

Last updated

IDoc, short for Intermediate Document, is an SAP document format for business transaction data transfers. [1] Non SAP-systems can use IDocs as the standard interface (computing) for data transfer. [2] IDoc is similar to XML in purpose, but differs in syntax. Both serve the purpose of data exchange and automation in computer systems, but the IDoc-Technology takes a different approach.

Contents

While XML allows having some metadata about the document itself, an IDoc is obliged to have information at its header like its creator, creation time etc. While XML has a tag-like tree structure containing data and meta-data, IDocs use a table with the data and meta-data. IDocs also have a session that explains all the processes which the document passed or will pass, allowing one to debug and trace the status of the document.

Different IDoc types are available to handle different types of messages. For example, the IDoc format ORDERS01 may be used for both purchase orders and order confirmations.

IDoc technology offers many tools for automation, monitoring and error handling. For example, if the IDocs are customised that way on a particular server, then a user of SAP R/3 system creates a purchase order; this is automatically sent via an IDoc and a sales order is immediately created on the vendor's system.

When this order cannot be created because of an application error (for example: The price per piece is lower than allowed for this material), then the administrator on the vendor's system sees this IDoc among the erroneous ones and can solve the situation. If the error is in the master data at the vendor's system, he can correct them and order the IDoc to be processed again.

Because of the flexibility and transparency of IDoc technology, some non-SAP technologies use them as well.

Structure of the IDoc

An IDoc consists of

The IDoc itself is a structured Text-File, that means IDocs can be used on all platforms, there is no need to translate binary data. Each record is identified by the name of the record. The load (data) is stored in a 1000 byte long container. Use transaction WE60 in a SAP-System to get documentation for IDocs, like HTML files and C-header files.

ExampleORDERS01SegmentE1EDK01/* -------------------------------------------------------------------------------------------------------------------- *//* Automatically created data declarations                                                                              *//* Data declarations for IDoc segments                                                                                  *//* of IDoc type ORDERS01                                                                                                *//* Creation 20.09.2017 13:11:00                                                                                         *//* Client 100                                                                                                           *//* System F10                                                                                                           *//* Release 740                                                                                                          *//* Lang. EN                                                                                                             *//* Transaction WE60                                                                                                     *//* Output for Release 740                                                                                               *//* Version 3 of IDoc record types : IDoc record types for SAP Release 4.0                                               *//* -------------------------------------------------------------------------------------------------------------------- *//* Segment structures for IDoc type ORDERS01                                                                            *//* -------------------------------------------------------------------------------------------------------------------- */#ifndef E2EDK01005#define E2EDK01005typedefstructe2edk01005{/* IDoc: Document header general data                                 */Charaction[3];/* Action code for the whole EDI message                              */Charkzabs[1];/* Flag: order acknowledgment required                                */Charcurcy[3];/* Currency                                                           */Charhwaer[3];/* EDI local currency                                                 */Charwkurs[12];/* Exchange rate                                                      */Charzterm[17];/* Terms of payment key                                               */Charkundeuinr[20];/* VAT Registration Number                                            */Chareigenuinr[20];/* VAT Registration Number                                            */Charbsart[4];/* Document type                                                      */Charbelnr[35];/* IDOC document number                                               */Charntgew[18];/* Net weight                                                         */Charbrgew[18];/* Net weight                                                         */Chargewei[3];/* Weight unit                                                        */Charfkart_rl[4];/* Invoice list type                                                  */Charablad[25];/* Unloading Point                                                    */Charbstzd[4];/* Purchase order number supplement                                   */Charvsart[2];/* Shipping Conditions                                                */Charvsart_bez[20];/* Description of the Shipping Type                                   */Charrecipnt_no[10];/* Number of recipient (for control via the ALE model)                */Charkzazu[1];/* Order Combination Indicator                                        */Charautlf[1];/* Complete delivery defined for each sales order?                    */Charaugru[3];/* Order reason (reason for the business transaction)                 */Charaugru_bez[40];/* Description                                                        */Charabrvw[3];/* Usage Indicator                                                    */Charabrvw_bez[20];/* Description                                                        */Charfktyp[1];/* Billing category                                                   */Charlifsk[2];/* Delivery block (document header)                                   */Charlifsk_bez[20];/* Description                                                        */Charempst[25];/* Receiving point                                                    */Charabtnr[4];/* Department number                                                  */Chardelco[3];/* Agreed delivery time                                               */Charwkurs_m[12];/* Indirectly quoted exchange rate in an IDoc segment                 */}e2edk01005;#endif  E2EDK01005

IDoc Transactions in SAP

The following transactions can be used to create and process IDocs. The list does not include any transaction required for the development of new IDoc types. Please note that you get a comprehensive list of available transactions by using area menu WEDI.

NAST

NAST is a technique in SAP-Systems to create messages. Messages can be printed, sent or transferred into IDocs. SAP uses this for many applications e.g. Purchase Orders (PO ). The PO can create a message which might be printed, sent by FAX, or translated into an IDoc of type ORDERS. The IDoc ORDERS can be forwarded in an B2B-process to a vendor.

Error Handling

Transactions like WE02, WE05, WE09, WE19, and BD87 are used in traditional approaches to error handling in IDOC administration. Drill down through the idocs status data to find the actual root case. However, SAP S/4 HANA has rectified this and now provides an upgraded version of all of these with the WLF_ IDOC transaction. [3]

Related Research Articles

Electronic data interchange (EDI) is the concept of businesses electronically communicating information that was traditionally communicated on paper, such as purchase orders, advance ship notices, and invoices. Technical standards for EDI exist to facilitate parties transacting such instruments without having to make special arrangements.

The Internet Control Message Protocol (ICMP) is a supporting protocol in the Internet protocol suite. It is used by network devices, including routers, to send error messages and operational information indicating success or failure when communicating with another IP address, for example, an error is indicated when a requested service is not available or that a host or router could not be reached. ICMP differs from transport protocols such as TCP and UDP in that it is not typically used to exchange data between systems, nor is it regularly employed by end-user network applications.

Web pages authored using HyperText Markup Language (HTML) may contain multilingual text represented with the Unicode universal character set. Key to the relationship between Unicode and HTML is the relationship between the "document character set", which defines the set of characters that may be present in an HTML document and assigns numbers to them, and the "external character encoding", or "charset", used to encode a given document as a sequence of bytes.

<span class="mw-page-title-main">XML</span> Markup language by the W3C for encoding of data

Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. The World Wide Web Consortium's XML 1.0 Specification of 1998 and several other related specifications—all of them free open standards—define XML.

A web service (WS) is either:

The C preprocessor is the macro preprocessor for several computer programming languages, such as C, Objective-C, C++, and a variety of Fortran languages. The preprocessor provides inclusion of header files, macro expansions, conditional compilation, and line control.

The Web Services Business Process Execution Language (WS-BPEL), commonly known as BPEL, is an OASIS standard executable language for specifying actions within business processes with web services. Processes in BPEL export and import information by using web service interfaces exclusively.

Health Level Seven or HL7 is a range of global standards for the transfer of clinical and administrative health data between applications. The HL7 standards focus on the application layer, which is "layer 7" in the Open Systems Interconnection model. The standards are produced by Health Level Seven International, an international standards organization, and are adopted by other standards issuing bodies such as American National Standards Institute and International Organization for Standardization. There are a range of primary standards that are commonly used across the industry, as well as secondary standards which are less frequently adopted.

An invoice, bill or tab is a commercial document issued by a seller to a buyer relating to a sale transaction and indicating the products, quantities, and agreed-upon prices for products or services the seller had provided the buyer.

Enterprise application integration (EAI) is the use of software and computer systems' architectural principles to integrate a set of enterprise computer applications.

MMDF, the Multichannel Memorandum Distribution Facility, is a message transfer agent (MTA), a computer program designed to transmit email.

The Legal Electronic Data Exchange Standard is a set of file format specifications intended to facilitate electronic data transmission in the legal industry. The phrase is abbreviated LEDES and is usually pronounced as "leeds". The LEDES specifications are maintained by the LEDES Oversight Committee (LOC), which started informally as an industry-wide project led by the Law Firm and Law Department Services Group within PricewaterhouseCoopers in 1995. In 2001, the LEDES Oversight Committee was incorporated as a California mutual-benefit nonprofit corporation and is now led by a seven-member Board of Directors.

Email filtering is the processing of email to organize it according to specified criteria. The term can apply to the intervention of human intelligence, but most often refers to the automatic processing of messages at an SMTP server, possibly applying anti-spam techniques. Filtering can be applied to incoming emails as well as to outgoing ones.

A database trigger is procedural code that is automatically executed in response to certain events on a particular table or view in a database. The trigger is mostly used for maintaining the integrity of the information on the database. For example, when a new record is added to the employees table, new records should also be created in the tables of the taxes, vacations and salaries. Triggers can also be used to log historical data, for example to keep track of employees' previous salaries.

Real-Time Messaging Protocol (RTMP) is a communication protocol for streaming audio, video, and data over the Internet. Originally developed as a proprietary protocol by Macromedia for streaming between Flash Player and the Flash Communication Server, Adobe has released an incomplete version of the specification of the protocol for public use.

cXML (commerce eXtensible Markup Language) is a protocol, created by Ariba in 1999, intended for communication of business documents between procurement applications, e-commerce hubs and suppliers. cXML is based on XML and provides formal XML schemas for standard business transactions, allowing programs to modify and validate documents without prior knowledge of their form.

SAP Business Connector is a re-branded version/restricted licence version of webMethods Integration Server provided by SAP as a middleware solution for their R/3 product. It was developed jointly by webMethods and SAP in a partnership which lasted from March 1999 to March 2002. webMethods contributed the Integration Server platform, while SAP contributed the components for RFC/tRFC, BAPI and IDoc communication and processing. These SAP components were bundled into an add-on package that can be installed on top of the core Integration Server.

Invoice Processing : involves the handling of incoming invoices from arrival to payment. Invoices have many variations and types. In general, invoices are grouped into two types:

A T-code is a transaction code used whenever executing particular task. Each function in SAP ERP has an SAP transaction code associated with it.

gSOAP is a C and C++ software development toolkit for SOAP/XML web services and generic XML data bindings. Given a set of C/C++ type declarations, the compiler-based gSOAP tools generate serialization routines in source code for efficient XML serialization of the specified C and C++ data structures. Serialization takes zero-copy overhead.

References

  1. "SAP Help IDoc Types". Archived from the original on 2014-05-15. Retrieved 2014-09-16.
  2. "SAP Library: IDocs" . Retrieved 2017-01-30.
  3. "SAP IDOC Configuration - Saptutorials.in". 7 February 2021. Retrieved 2021-11-16.