SAP Idoc Steps by Step Config
SAP Idoc Steps by Step Config
SAP Idoc Steps by Step Config
This article will help you understand the basics of ALE and IDocs via a simple do-it-yourself example.
We will create a custom IDoc in one SAP system and then post some business data through it to
another SAP system. Business data will be picked up from custom data dictionary tables.
ALE – Application Link Enabling is a mechanism by which SAP systems communicate with each other
and with non-SAP EDI subsystems. Thus it helps integration of distributed systems. It supports fail-
safe delivery which implies that sender system does not have to worry about message not reaching
the source due to unavoidable situations. ALE can be used for migration and maintenance of master
data as well as for exchanging transactional data.
The messages that are exchanged are in the form of IDocs or Intermediate Documents. IDocs act like
a container or envelope for the application data. An IDOC is created as a result of execution of an
Outbound ALE. In an Inbound ALE an IDOC serves as an input to create application document. In the
SAP system IDocs are stored in the database tables. They can be used for SAP to SAP and SAP to non-
SAP process communication as long as the participating processes can understand the syntax and
semantics of the data. Complete documentation on IDOC is obtained by using transaction WE60.
Every IDoc has exactly one control record along with a number of data records and status records.
Control record has the details of sender/receiver and other control information. Data records
contain the actual business data to be exchanged while the status records are attached to IDoc
throughout the process as the IDoc moves from one step to other.
Now, let us understand the ALE Configuration by means of an example scenario below:
The Scenario
Go to WE81
Create a new Message type ZRZSO_MT
Save the object
Go to WE82 and create new entry
Assign the message type ZRZSO_MT to the basic type ZRZORDER
Also specify the Release Version
Save the object
Thus we have defined the IDoc structure which will hold the data to be transferred.
In the previous part we created an IDoc structure which can carry our data from source system to
target system(s). In this part we will understand how to setup the source system to be able to
generate and send an outbound IDoc.
Outbound Settings
Define Logical Systems and Assign Client to Logical System – Transaction SALE
Click on Change
Create a new model view
Provide a Short text and Technical name to the model view
Add message type
Specify sender and receiver systems
Also, specify the message type that we created previously
Save the Distribution model
Create an executable program ZRZ_ORDER_IDOC in SE38. Below, I have described the program logic:
Fetch the data from the DDic tables ZCUSTOMERS, ZSOHEADERS and ZSOITEMS as per the
selection criteria
Fill the control record structure of type EDIDC
Specify message type, Basic IDoc type, tRFC Port, Partner number and Partner type
of the receiver
Fill the data records
Define structures like the IDoc segments
Fill the structures with fetched data
Pass the segment name and the above structure to the appropriate fields of EDIDD
type structure
Append the EDIDD structure to the EDIDD type internal table
Now, call the function module MASTER_IDOC_DISTRIBUTE and pass the IDoc control record
structure and data record table
Commit work if return code is zero
Function module returns a table of type EDIDC to provide the details about generated IDoc
Display appropriate log
You can download sample code for the above program here.
Thus we have completed sender side configuration required for ALE. In the next part we will see how
to configure the receiving system to be able to receive and post the inbound IDoc.
In the previous parts we learned how to create a custom IDoc and set up the source system to send
an outbound IDoc. In this part we will learn how to configure the receiving SAP R/3 system to be able
to receive and post the inbound IDoc.
In the receiving system, create a function module Z_IDOC_INPUT_ZRZSO_MT using SE37. Below, I
have described the logic for the same.
You can download the sample ABAP code for the above function module here.
Inbound Settings
Define Logical Systems – Transaction SALE (Please refer to Outbound Settings discussed
in previous part)
Assign Client to Logical System – Transaction SALE (Please refer to Outbound Settings
discussed in previous part)
Maintain RFC Destinations – Transaction SM59 (Please refer to Outbound Settings discussed
in previous part)
Define Ports – Transaction WE21 (Please refer to Outbound Settings discussed in previous
part)
Generate/Create Partner Profile – Transactions BD82/WE20 (Please refer to Outbound
Settings discussed in previous part)
Assign Function Module to Logical message – Transaction WE57
Create a new entry
Specify name of the Function Module as Z_IDOC_INPUT_ZRZSO_MT
Also, specify Type as F, Basic IDoc type as ZRZORDER, Message type as ZRZSO_MT
and Direction as 2 (Inbound)
Save the entry
Define Input method for Inbound Function Module – Transaction BD51
Create a new entry
Provide Function Module name as Z_IDOC_INPUT_ZRZSO_MT
Specify the Input method as 2
Save the entry
Create a Process Code – Transaction WE42
Create a new Process Code ZPCRZ
Select Processing with ALE Service
Choose Processing type as Processing by function module
Save the entry
On the next screen, select your function module from the list
Save the changes
Now you will be taken to the next screen
Double-click on Logical message
In the Assignment to logical message, specify the message type ZRZSO_MT
Save the changes
On the sender system, execute the IDoc Generation Program. Check the status of IDoc using
transaction WE02.
Check the status of the IDoc in the receiver system using transaction WE02. You can also check the
contents of DDic tables to make sure that the records have been created in the receiver system.
Thus to summarize we have learned how to: