Beginner’s Guide to ALE and IDocs – a step-by-step approach

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

ALE ScenarioData from custom tables (created in customer namespace) is to be formatted into an IDoc and sent from one SAP R/3 system to another using ALE service. We need to have two instances of SAP R/3 systems or we can simulate this on two clients of the same SAP R/3 system.

Create three tables as shown below.

Custom or Z-Tables

Creating Custom IDoc type and Message type
All the objects created should be present on both source as well as target system(s).

1. Create segments – Transaction WE31

  • Create a segment ZRZSEG1
  • Add all fields of table ZCUSTOMERS to it
  • Save the segment and go back
  • Release it using the menu path Edit -> Set Release
  • Similarly create two more segments given below
  • Seg. ZRZSEG2 – to hold all fields of table ZSOHEADERS
  • Seg. ZRZSEG3 – to hold all fields of table ZSOITEMS

2. Create Basic IDoc type – Transaction WE30Transaction WE30

  • Create a Basic type ZRZORDER
  • Add the created segments in the hierarchy shown
  • Maintain attributes for each of the segments
  • Save the object and go back
  • Release the object using the menu path Edit -> Set Release

3. Create/Assign Message type – Transactions WE81/WE82

  • 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 next part of the article we will understand the outbound settings, i.e. the settings to be done in the source system.


  1. sameer says


    I found this very useful but I have few doubts

    I am creating IDOC in CRM-IDES and sending it to Solution Manager IDES. I have defined two logical systems CRMCLNT800 and SMCLNT800. The problem is on both the systems the client no is 800. How to assign client 800 (already present in the list of clients) to both the logical systems. OR Is it that these clients which we are assigning to the logical systems have no relation with the SAP system client.

    Please help.


  2. says

    Hi Sameer,

    You need to assign client to logical system in their respective systems only (see the next part of this article series).

    In your case, in CRM system, create entries for both logical systems (CRMCLNT800 and SMCLNT800), but assign client 800 to CRMCLNT800 only. Similarly, in SM system, create entries for both logical systems (CRMCLNT800 and SMCLNT800), but assign client 800 only to SMCLNT800.

    Assigning a client to a logical system simply tells SAP that this particular client will be referred to while communicating using this logical system name.

    I hope this answers your query. If not, please revert. I will be more than happy to help you out.



    • says

      Hi Riyaz,

      The link is very useful.Thanks..

      I am new to idoc area but this link really helps me in understanding concepts..Thanks Once again .

      I have come across the new requirement regarding inbound idoc.Please help me in this regard.

      My requirement is to generate the idoc after reading data from a flat file. The file is passed to the application server by a middleware . The SAP interface program reads the file from the application server and then starts processing the data. Please help me how to create the inbound IDoc and which FM needs to be used.

      Please provide a sample Program .

      This will really help..

      Waiting fr ur early response.



      • says

        When you have the flat file already with you and wish to create an IDoc, it will always be an outbound IDoc. Inbound IDoc is something that comes into your system from outside.

        To generate an IDoc from flat file or any data, you need to use the function module MASTER_IDOC_DISTRIBUTE. For more details and sample program, see the part II of this article.

        • says

          Hi Riyaz,

          Thanks for your reply.

          Actually in my requirement the file which is being uploaded on application server by middle ware team having the material master data which needs to be updated in Database by using idoc type MATMAS05.
          So its a inbound idoc as data is coming in to SAP system.

          Kindly advise on the same..

          I am in real need,


          • says

            Try creating an inbound file port using transaction WE21. You can place the flat file at this location. File ports which are typically used in EDI. I havent tried this though. Use transaction WE16 to test inbound files.

            Other option is to pass the data from the flat file to appropriate Inbound processing function module e.g. IDOC_INPUT_MATMAS01 through some scheduled report/program or if you are using PI as middleware, you can send the data as IDoc XML to RFC port instead of flat file.

        • Sahil says

          Hi Riyaz,

          I am a complete beginner to SAP SD, i am very interested in also to learn about IDOCs.
          How to create IDOCS? How to send invoices etc

          Can please provide some assistance on how to go about the learning process

  3. Krishna says

    HI Riyaz,
    you are the BEST. KEEP IT UP.

    thanks very much for the SOAP ADAPTER ARTICLE.

    Please try to explain other concepts of SAP like BAPI, WEBSERVICES, SAP XI JMS ADAPTER, etc…

    we have so many material for these but dont know getting much knowledge from your blogs.

    there is some magic in your blogs. they are simple and easy to implement. very well explained and formatted.

    thank you very much for your time.

  4. sudheerraja says

    Hi Riaz,
    I am from a java background recently moved to XI. I found out your site while searching for blogs for good Xi stuff. I found it is the best blog, I have ever seen. it is very simple and more meaningful. I would be happy if you can post more posts regarding the part of java role in realtime projects. like mapping java mapping , xslt mapping . I found many articles explaining bits and pieces, I could not find any article which gives clear idea of parsers like SAX AND DOM and thier participation while doing complex Idoc scenarios. It would be greate if you can write some article covering with screenshots and coding.

    Ultimately i want to tell you. You are the best blogger….. Keep it up.


  5. says

    Hi Sudheer,

    Thanks a ton for your compliments. I will soon be adding articles on mappings including Java mapping.

    Its good to know that articles are useful to you :)


  6. says

    Hi Srinivas,

    For sales order you can use ORDERS or ORDCHG IDoc and for Invoice/Billing document you can use INVOIC01 or INVOIC02 IDoc.

    Hope this helps.


  7. Ray says

    Hi experts,

    I need to convert data from legacy system to SAP CRM 6.0 using a txt file as input. I need to convert data of “opportunity”.
    My concern is: Looking to the transaction, I know what fields are required, in the screen. Nevertheless I’m don’t know what tables are internaly filled out.

    If I create a segment, I will map just the fields I can see through the screen. Does the process of loading fill all tables that are used when I enter data through the screen?

    Ps: I intend to use LSMW to call the IDOC.

    Tks in advance,

  8. says

    Hi Ray,

    This very much depends on the IDoc posting program that you use in LSMW. May be going thru the program documentation or code would help.

    Hope this helps.


  9. Vamshi says

    Hi Riyaz,

    You have any kind of documentation for creating a IDoc for SAP HR Benefits. As we are implementing EDI 834 for the new health carrier.

    Thanks & Regards,

  10. Julie says

    Hi Riyaz,

    i have a question
    am i have to creat the 3 new tables ZCUSTOMERS etc.
    how about using the transp.table KNA1 ?

    Thank u
    best wishes:)

  11. says

    Hi Julie,

    This is just an example. You can use any tables you wish. I have described using custom tables so that you dont change any standard table data inadvertently.


  12. Venkat says

    Hi Riyaz,

    Our client is using both SAP 4.7 and SAP ECC 6.0, and the Corporate account is in SAP ECC 6.0, so the Liability on SAP 4.7 is to be posted in SAP ECC 6.0 Corporate Account. We are using BizTalk as our middleware tool which is converting flat file into an IDOC, FIDCCP01 for SAP 4.7 and FIDCCP02 for SAP 6.0.

    Now the Liability on SAP 4.7 system needs to be posted on SAP 6.0 Corporate account, for that our initial thought was to use ALE between SAP 4.7 and SAP ECC 6.0, but the business is now saying we dont want to use ALE, we want the IDOC to be posted into SAP 4.7 and SAP ECC 6.0 as well for posting the Affiliate Corporate J/E into SAP 6.0.

  13. Adnan Maqbool says

    Dear Riyaz

    It was really a very nice tutorial which I have ever read on IDOCs. All steps were clearly defined and self explanatory..

    I need a little more help from your end , I had made all configurations and IDOC is creating and sending successfully at sender end. But I am not able to read them at receiver end. I have made correct entry for sender and receiver port and partners number but Idoc are not receiving at receiver end.

    Will you please give some tips to troubleshoot the receiver end. Will be regretful to you.


  14. says

    Hi Adnan,

    Try using transaction SM58 and check if the IDoc is stuck there. You can use this transaction in both the systems. You will find the error details/network connection failure details there.


  15. Sri says

    Hi Riaz,

    Thank u very much for ur deep explanation on the idocs.It very easy to understand and implement. u have done a grate job.Thank u once again for providing this on the website.

    thanks & regrds,

  16. Tarun says

    Hi Riaz,
    I want to configure an Outbound IDOC for Creation of material master. I dont have any logical system to which this IDOC can be transmitted to. I want to set up the system to use an RFC call to itself.
    Please advice, it is urgent requirement for us. Also share code which we need to change so that IDOC gets triggered when we save material master.

    Tarun Jain

  17. Atulya says

    Hi Riaz,
    we use a Java (JCo connection) application to receive CREMAS IDocs from SAP. After upgrading SAP from 4.7 to ECC 6.0 the documentList delivered to the handleRequest-Handler remains empty. I have checked all relevant entries in the upgraded system (Distribution Model, Ports, Partner profiles) but I can’t find any incosistences. The sender side seems to be ok (Status 03 in WE02, no entry in SM58).

    Our java application is able to receive IDOCs from 4.7 system, but with ECC 6.0 we are getting an empty list.

    can you please help me in this.

  18. says

    Respected riaz …i need some help from u .
    i need a program code for the inbound process when any four fields comes out in xml file comes out pos into sap , then the data which comes from pos , i need a idoc no for a single xml file. and now wen i processed the idoc by bd20 , then the xml file data gets updated into ztables during bd20 .

    pls let me ur mail id or ur mob no , i rely sir need help to implement idoc for inbound .

    varun walia ,
    nahar group.

  19. Naveed Ansari says

    Hello Riyaz,

    I want to know difference between ALE & EDI. I will be good if you explain me with example.

    Naveed Ansari

  20. says

    ALE is meant for communication between SAP systems while EDI is a global standard for electronic data interchange. ALE works by means of IDoc which is a messaging format specific to SAP systems, whereas EDI uses predefined message formats like EDIFACT and messages are sent in the form of text files. SAP also supports EDI message interchange for SAP to non-SAP communication.

  21. Naveed Ansari says

    Hi Riyaz,

    I have seen there are some numbers in EDI processingl ike 850, 810, 865. what is the significance of these numbers & where are I will get all these numbers.

    Naveed Ansari.

  22. Sun says

    Hi Riyaz,
    thanks a lot for your information.
    when i create a custermized outbound program,the WE05 status is :29 Entry in outbound table not found,How to solve it?

  23. says

    Hi RiYaz,

    Your answers provide a lot of support for people like us, thanks for taking time and providing the answer,

    Here is my Scenaario, with the same client i have two different company codes and i am seding a billing document from one company code to other Company code so that out bound idoc uses INVOIC01 IDOC type and incoming idoc is INVOIC Receipt FI, iam using INVF in the process code at receiving end. I have configured the Inboound and outbound parameters for LS (as i am using ALE to move this idoc) out going IDOC has no issues but i am getting an error in the incoming IDOC which says as ” Conventional invoice verification no longer maintained as of Release 4.6C” not sure what is Wrong. Please help me on this.

    Appreciate your help.
    Thanks & Regards,
    Mohammed Riaz.

  24. Michael says

    Dear Gurus,

    How can I create a ALE between two client in different system? Your advice will be appreciated.


  25. Jagan says

    Hi Riyaz,

    The steps which you gave for craeting an IDOC was really very very useful for me.I followed these steps and succeeded in creating an ALE IDOC with regards to R/3 side.

    Now i got a requirement of creating an IDOC in CRM side.[ I am a beginner in CRM ]

    Could you please help me out with any material – about creating an ALE IDOC in CRM side?

    With Regards,

  26. Silvia says

    I’ve the same problem described by Atulya on the 13th of november.
    The documentList delivered to the handleRequest-Handler remains empty for me, too.
    Can you help me?
    Thanks and regards


    Atulya says:

    November 13th, 2008 at 9:38 pm

    Hi Riaz,
    we use a Java (JCo connection) application to receive CREMAS IDocs from SAP. After upgrading SAP from 4.7 to ECC 6.0 the documentList delivered to the handleRequest-Handler remains empty. I have checked all relevant entries in the upgraded system (Distribution Model, Ports, Partner profiles) but I can’t find any incosistences. The sender side seems to be ok (Status 03 in WE02, no entry in SM58).

    Our java application is able to receive IDOCs from 4.7 system, but with ECC 6.0 we are getting an empty list.

    can you please help me in this.


  27. Tanveer Zahack says

    This tutorial really helped me get the precise concept of ALE/ IDocs.
    I could understand the whole concept and could get good marks in the performance test.
    Hats-off to RIYAZ.NET.


  28. Vishal says

    Hi Riyaz

    I am new to ABAP.
    Pls help me to learn ALE IDOC and WorkFlow.

    Best Regards
    Vishal P

  29. Srinivas R says

    Hi Riyaz,

    I’ve a requirement to extract Special ledger dtaa from ECC to another ECC system.
    As you know, Special ledger is specific to a client defined as configuration step in ECC and system generated one, I would like to know if the creation of customer IDoc type is the only solution here.

    Can you please share if you have any experice with Special Ledger extractions?

    Srini R.

  30. narendra says

    Hi Riyaz ,
    this is very useful for new learners about IDoc’s .

  31. says

    Hi everybody,
    I have 2 questions about FIDCCP02 Idoc type and posting financial document.

    First, do you know how I can transfer the “Text in Accounting Document” with ALE ? The “Text in Accounting Document” is the text which you see in the FB01, FB02 or FB03 transactions by “Extra>Text…”.

    And the last question, do you know if we can use the “RESERVE” field in the FIDCCP02 Idoc and how I can do provide it ?

    Thank’s for your reply,
    Best regards,

  32. sachin says

    Hi Riyaz,

    I am configuring INVRPT messge type basic type – WMMBIDO2. The external warehouse is sending these messges to SAP. once posted it will perform the goods receipt in SAP for plant -XYZ.

    now i would like to know for whom partner profile needs to be setup? I mean – creating new partner profile as KU /LI OR as LS- logical system?

    Thanks in advance

  33. says

    Hi Riyaz,

    scenerio : whenever delivery created/changed Idoc should triggered .
    Message type : DESADV.

    i have done all the setting in NACE.

    now when i create/change the idoc triggered perfectly.

    i wnt to add custom segment in DESADV idoc and also i want to fill data to those custom segment from VBAP, VBAK table.

    for this i tried user exit -EXIT_SAPLV56K_002 .
    BADI -badi_v56k_ibs.

    but the problem is the controls does not comes to this badi.

    My nace config.

    Custom message type : ZDL0.
    application : v2.
    access sequence : 0004.
    transmission medium = ALE
    partner function = sh ( in bd64 i configured all the things )
    processing rountin :
    Program : RSNASTED
    rountin : EDI_PROCESSING.

    please suggest to me wht is the problem why the controls does not go to this BADI/USER-EXIT.

  34. Venky says


    Is there any SAP table that stores the IDoc numbers and the Accounting document nos after the IDocs are processed?

  35. says

    EDIDS table will have statuses of IDocs. Choose the record corrreponding to your IDoc number and status = 53 (or any successful status). The fields STAPA1, STAPA2, STAPA3, STAPA4 will carry the details of the documents posted. STAPA1 would have the accounting document number.

  36. Sushil says

    Hi Riyaz,

    Please suggest,
    I am able to transfer sales order related data to non-sap system…….but not header long text……please suggest how can I transfer bunch of header long texts to non-sap corresponding to one sales order in an effecient way……..

  37. inder says

    riyaz i m new to ale idoc i have seen ur example .. n did that outbound idoc is posted perfectly 03 , 30 , 01 , 12
    but the problem is with inbound idoc .. i m getting idoc number wrong and second thing
    status 51 62 64 74
    status 51 says wrong function call i configured all again but still getting same error what should be done .. to that .. we57 we42 bd64 all are ok
    status 62 says direct call stated
    status 51 says ale service error
    i executed standard report to manually change the status but same error

  38. says





  39. says

    Hello Kevat,
    What I feel is your problem is with the configuration of Partner Profile; once partner profiles are made, generation of distribution model should be done; normally when BD64 is run; partner profiles are to be generated before distribution. First of, configure WE20 and then create model view in BD64, go to ‘Environment’ and select ‘Generate Partner Profiles’ and finally distribute the model.
    Moreover, outbound parameters should be rightly checked in Partner System and a try out giving SYNCH in outbound parameters – ALE:Dummy Message Type for Determination of RFC Destinations. And a proper checking of port should be done. Many a time, issue lies within the configuration itself.

  40. says


    I am new to ALE-IDOC-XI scenario. We have done all ALE config settings in development server i.e. logical system, port , partner profile etc. Can I get info. about what settings should be done for each client/environment and what setting can be transported? For example : logical systems should be created for each environment i.e. each client and each server (development/quality/production) whereas idoc types/message types can be transported.

    2) Is it true that we cannot write COMMIT or ROLLBACK in inbound FMs?

    3) Also are there any naming conventions to be followed for logical systems/ports etc.

    Thanks a lot !

  41. says


    Wherever a transport is necessary, a popup message will ask you to add objects to the transport. For other configuraiton objects like logical systems (as these differ from system to system), objects need to be created for each environment. Naming conventions may be formulated as per your company standards.

  42. RJ says

    Hi Riyaz

    Please help me out

    I have two SAP System : ex SAP A client 100 and SAP B clint 200.

    My Sender system is SAP A(100) and Reciver SAP B(200)

    I have to do ALE configuration. I got stuck in SALE Transaction in Client assignment.

    As i have to define Logical system for Both SAP A and SAP B.

    But in client Assignement part what should i do

    *In SAP A*

    Should i assign Logical system of SAP A to client 100 or 200?and what should i do for Logical System of B?

    I hope i need to assign the Logical system of both system in SAP A to some client.


  43. says

    First create a logical system for System A in System A and for System B in System B. Now, you have to assign its own client to each logical system. i.e. System A’s client to System A’s Logical system in System A and System B’s client to System B’s Logical system in System B. Apart from this, also create logical system name for partner system i.e. Define a logical system for System A in System B and a logical system for System B in System A.

    For more information, have a look at Outbound settings section in:

    and Inbound Settings section in:

  44. ved thakur says

    Hi All,
    Please i am in need with your help guys as i am totally new to ale/idoc concept thing is i am working on is-retail and passing the idoc’s for pos and connectivity with external system ivend is retail server i have to transfer from sap to non sap system
    through ale/idoc concept can you guys please mail me the relevant doc for transferring data from sap to non sap

    and at present i have to create customised idoc’s so in order to execute what are the steps required.

    Please help.
    mail id is
    thanks in advance

  45. ved thakur says

    Hi Riyaz,
    Friends, i would be highly obliged if you can please provide me the solution to this problem.

    Thing is i am working on pos interface .
    i have created Customised idocs as per requirement and then developed zproframs for those idocs for populating segments of those idocs when i am executing that program its running fine and all relevant data which is to be filled is getting there

    we are using connector for integration all the relevant things like BOR, functions etc i am able to see but friends how to call those zprograms which will execute the idoc.
    pls help and any other alternative i should work on
    and suggest me how to call the zprogram of sap in .net connector
    very urgent pls help

  46. says

    Dear Riyaz

    it is nice one , but i m facing a problem at one point . i make all the thinks as you suggested . but at sender point it giving error ” Error in ALE Serivies ” ” Entry in outbound table not found ” . what it menas ?
    or what i can do to resolve this ?
    one of my friend suggested that you didn’t assign process code in outbound setting so it is giving this error .but i don’t hope that this is a perfect reason.

    please suggest .

  47. says

    Dear Riyaz

    i checked we20 . that is ok , but is there any basis setting for the same ?
    , bcoze , i m working on development server as sender and other development server as reciver .In my office there is some restriction for test server so , i m working on development server .

    kindly suggest i m too confused .

  48. Saranya VS says

    Hi Riyaz,

    I need some help from you.Idoc was successfully generated in sender side and it shows the status as 3(Data passed to port OK).But I could not see any Idocs passed in XI.As you mentioned earlier I tried with SM58 transaction in both sides, it was clear.

    How can I rectify this.Waiting for your reply.


  49. says


    Check if the IDoc metadata for the IDoc is present in XI system. Use transaction IDX2 to check this. If not present, you can use the same transaction to create new metadata for the IDoc using create button. You need to specify the port and the IDoc type. The port is the port pointing to sender SAP system, the port you created in transaction IDX1.

  50. madhu says

    Dear Riyaz,

    I am new to this concept like Ale, Idoc, Websevices. I want to learn Idoc first. I know bapi part. Can you guide me how to start the learning the basic Idoc. From where i can get a nice material for this. I hope you will help me in this.


  51. Manish says

    Hi Riyaz,
    I have configured a scenairo following the same steps mentioned in your blog. I see that the status of the IDOC in sender system is 03. But I do not this IDOC in WE02 of thereceiver.

    I tried trace on BD87 in sender system and I see that the target status is 00 and target idoc number is 0000000000.

    Could you please guide me here.

    Thanks and Regards

  52. Manish says

    Hey Riyaz,
    I had to push it manually using the report – RSEOUT00.

    Now on the sender side the status is 12. :)

    But on the receiever, I do not see the Idoc in WE02.

    Actually my receiver is a XI system. I did the Inbound config as you had mentioned. DId some investigation but could not go forward much. I did some settings in IDX1 and IDX2 as well.

    But irrespective of these settings, I see the message in SXMB_MONI as an errored out one. The error being, “No receiver found”.

    Do we have to do anything special to handle idocs in a XI system?

    Pls advise.

    Thanks and Regards

  53. says


    XI acts as a intermidiary or a message broker and not the receiver system. You need to configure a receiver to whom the incoming IDoc data may be sent. To understand this better have a look at following:

    Using IDoc Adapter:

    Configuring receiver:

    Set up mapping:

    Simple XI Scenario:

    Hope this helps.

  54. Karunakar says

    Hi Riyaz,

    Your document is very helpful, really you are helping bignners.I have a quich question. Interface with Idoc will be done by techanical or functioanl. What will be the role of functional consultant?


  55. says

    It really depends on the conventions the project teams follow. Generally configuration activities like SALE, WE20, BD64 may be performed by functional team. Also IDoc specific IMG configuration to trigger a particular outbound IDoc or to post an inbound IDoc is done by functional consultants.

  56. says

    Hi Riyaz,

    Thanks fr feedback.
    Do u have any idea about these FM’s IDOC_CREATE_ON_DATABASE and Application_IDOC_post_immediat.

    Do you have any sample program in which you have used these FM’s.
    If Yes please share the same..

    Thanks a ton for your help and quick response.

    Take care,

  57. cLN says


    I am having issues while triggering ASN from delivery created with reference to STO ( Stock Transport order ). I see that in the outbound ASN E1EDL41 is not getting filled. In debug, i see that E1EDL41 is filled from VBKD. In case of STO’s there will not be VBKD. I also checked a OSS note 795584 related to this. In our SAP system, corrections related to this OSS note are already available. Please let me know in case if there are any OSS notes which can help me.

    Thanks & Regards,

  58. Mohinder says

    Hi Riyaz,

    Blogs are very informative,thanks. DELVRY05 IDOC given.
    Kindly, tell me where can I write code or extend idoc,EXIT_SAPLV56K_002 or MV50AFZ1

    PARTNER_ID SAP Customer code CHAR 17 M SapCustomerId:
    İf there is a data available for ZH then take code from ZH, if ZH is not filled then take code from AG partner function.
    PARTNER_ID SAP Ship-to nimber CHAR 17 M
    NAME1 PS&D Customer code CHAR 40 O SapCustomerName
    PARTNER_ID SAP Ship-to nimber CHAR 17 M SapWarehouseCode
    E1EDL20 VBELN Document number CHAR 10 M SapOrderNumber
    E1EDL24 VGBEL Sales Document number CHAR 10 M SapDocumentNumber
    E1EDL24 MATNR SAP Material number CHAR 18 M SapItemNo
    E1EDL24 LFIMG Quantity NUM 15 M SapShippedQuantity

    E1EDL24 VRKME Sales Unit of Measure CHAR 3 M SapUom
    E1EDT13 QUALF: 006 ( Goods Issue)
    NTANF Goods Issue date CHAR 8 M SapShipmentDate

    E1EDT13 QUALF: 019 ( Goods receipt date)
    NTANF Requested delivery date CHAR 8 M SapDocumentDate

    It will be trigered through VL02n


  59. Jeevitha says

    Hi Riyaz!

    Pls clarify my doubt..

    1 idoc is in the status of 3. i found that idoc got stucked in trfc layer. i pushed it from there. but still the idoc is in same status, it is not visible in receipient side also. whether the status will change if we push the idoc . what to proceed now for this case .
    pls help me..


  60. Chakravarthy Narasim says

    Hi Riyaz,

    Currently our client is upgrading from SAP 4.7 Version to ECC 6.0. Do you see any changes need to be carried out on EDI IDOC mapping. Also, do you see any backward compatibility issues of ECC 6.0 with low end version of middle which is connected to current SAP 4.7. Please suggest what should be the approach taken to ensure that after ECC 6.0 upgrade, all the EDI Idoc transmission happens to middleware without any hassles.

    Your response will be highly appreciated.

  61. karthick says

    hai riyaz,

    karthick here , i had read ur article on idocs ,its very useful for me ,keep up the good work, and in one interview i got one question ,in sales order creation ,what is the idoc u are using and what the idoc no he asked ,can u answer my question

  62. patrick says

    Hi Riyaz
    Thank you for the very useful steps.

    But I still not sure on how to process inbound IDOC.
    I have a trading partner that send IDOC to our unix directory.
    How do I read this inbound IDOC ot the R3, so that I can view this in WE02/WE05?
    If you have already provide the steps, appreciate if you can point me to it.

    Thank you

  63. patrick says

    Hi Riyaz
    Also, like add that, the inbound IDOC file is send to a unix directory.
    How do I configure to read this IDOC, so that it can be display in WE02/WE05?


  64. Filippo says

    Hi Riyaz,

    Your post helped me to solve the problems I’m facing while trying to send Purchase Orders Idoc (ORDERS or ORDCHG) to an external warehouse system but if possible i would implement this with the standard messaging tools.

    I’ve spent many time trying to configure NACE to send IDocs after the creation or change of the PO but I couldn’t be able to complete the task with the standard.
    After I’ve configured a logical system, a RFC destination, a distribution model I can succesfully send ARTMAS, CREMAS and INFREC IDoc (or the corrensponding Z reduction IDocs) to the logical system and receiving the STATUS Idoc in reply from the other communication partner but any attempt to manage automatic generation of IDoc Orders was unsuccessful.
    Every time I create a new PO if i check the message log I see a message which says that the only partner allowed are KU and LI while LS is not (In the NAST table i can find an entry for the logical system which maps the external warehouse but the Idoc generation is not triggered at all).

    Have you any hints or suggestion to complete this task with the standard message tools for Purchase Orders?

    Thanks in advance



  65. Imran says

    Hi Riyaz,

    First of all I want to thank you for such a descriptive article on ALE/IDOC.

    I am stuck on a requirement, We have a scenario were the Business Partner is created in CRM system
    which creates a BDOC and is passed to R/3 system through an Inbound IDOC which triggers the Outbound IDOC to PI system. All this works fine .

    The scenario we are getting stuck is when a Business partner is changed in CRM an IDOC triggered in R/3 system but this being a change the Change pointers are not called hence the IDOC which is supposed to be triggered for the PI system is not getting triggered.

    Can you please tell me what steps should I take to trigger this Outbound IDOC from R/3 system?

    I did some anlyasis and found a table which COM_BUPA_CALL_FU which contains a set of function module which is triggered in the sequence. Is this the solution or if you have any different do let me know.


  66. sama says

    I define a z segment to cutom field of infotype 0002, I can’t transfer data of these custom fields in inbound direction in SAP clients.
    how can Implement BADI HRALE00OUTBOUND_IDOC for the enhancement?

    • says

      Yes. These objects should be present on both systems. Next two parts of the article discuss about settings in the source and target system.

  67. fpeiqin says

    Every IDoc has exactly one control record along with a number of data records and status records?

      • srikanth thalapalli says

        Hi Riyaz

        I was going through this site and got a lot of useful information.

        I have one doubt,if want to create a new segment with new fields like partner id for each contact person person for customer master in the idol ,what is the procedure do i need to follow and what changes i have to make.Could you please let me know the process.

        Thanks in Advance.


        • says

          You can use the same procedure as described in this article to create segments. Then create an extension to the existing IDoc and add the new segments to the extended IDoc.

          • srikanth thalapalli says

            thanks Riyaz

            Made the changes to idoc with extension.Initially got syntax error due wrong alignment.But now it is working fine.

  68. ANISH says


  69. praveen says

    Hi Riyaz ,

    i create the IDOC to File case. with standard idoc type MATMA05 . But it showing the error with status record 37
    idoc added incorrectly ( entry in outbound table not found ).
    pleease suggest me where is the problem.


  70. Alan says

    Hi. I tried to download IDOC from IDES in a Retail system from WPMI or WPMA. The related idocs for a store is generated but it has message:
    Trigger file for status ID: 00000000000285
    does not have to be created No messages needed

    Does anyone know what does that mean? I can use WE19 to check the generated idoc.

    Best regars,

  71. Brian says

    Riyaz, I am having a discusion with our BASIS person and I hope you can help shed some light on IDOC looping. I am using an edi translator and sending an IDOC into SAP. When we log into SAP the segements are in the correct order but not showing parents vs. children. All records are equal, no hierarchy. What on the IDOC controls hierarchy psgnum? Could this be controlled outside the IDOC? The IDOC segments in SAP are in reverse order but it seems to read ok.

  72. Jaya Lakshmi says

    Hi Riyaz,

    When iam trying to process the output type at header level iam getting the belwo error.
    “Field DIRECT in control is ‘ ‘ which is invalid”

    Can u plz help me out.

  73. Anton Dsa says

    Hi Riaz
    Your site is truely great for newbes like myself, thank you.
    Please could you help with following error?
    With reference to the tutorial , I have the following in WE20 already saved
    Partner number: Yes
    Partner type LS
    Partner role LS
    Message type : ZRZSO_MT
    Receiver port : Yes
    Packet size : 5
    Basic type : ZRZORDER
    Cancel processing \after sysntax error = X

    However WE02 shows status 29 (Entry in outbound table not found
    , pointing to table EDP13.) and 01 (IDOC generated) But there are entries in EDP13.
    When I simulate with WE19, I get message :
    IDoc saved but can not be or should not be sent
    Also there is status 37 (Entry in outbound table not found) but the traffic light is green. I also get status 42.
    Thanks in advance, I really appreciate your help

  74. Sameer says

    Hi Riyaz,
    Appreciate your time for the well explained ALE and IDOC process.
    I had quick question about the ongoing issue with the two idoc generation for the same message type.
    Created a new ZBA0 copying the BA00.
    Maintained the condition records for medium 6.
    when i check the processing log at the order it shows only one idoc#. where as in we05 i see the two idocs for the same Sales Order# and status 30.
    if i manually add output type with the medium6 it generates only 1 idoc with a status 03
    in fact did try to search for the solution over the web and try deleting the condition record.

    can you please help and make me understand the reason why it is doing so.

    Thank you

  75. Jose Jorrin says

    Hi Riyaz,
    I would like to get some help from you.
    what is the sequence of events after transmitting the schedule lines, to getting acknowledgements (through EDI), IDOC creation? I have set up the partner profile with DELFOR but I dont see any idocs populating.
    Is there a step I am missing??

  76. Ganesh k pal says

    Please let me know what is the difference between Feeder system in SAP and What is legacy system

    as I work with SAP EDi Configuration

    Would like to know the flow of invoices From supplier entering the invoice to SAP

    Which are all the Routing tables involved in this and so on ……

  77. Tushar Mankar says

    Hi Riyaz,

    I need to create and send outbound Idoc immediately after creation of customer. When the customer is created and saved it should immediately should release the outbound Idoc which would then hit the PI system for further process. I am new to this thing. Can you help me out ???

  78. Jaydeep says

    Hi Riyaz !

    Indeed an excellent work for the beginners in IDOC…

    Thanks for posting ! Keep up the good work !

  79. manuel says

    Good evening I write for the next issue I encountered in the CREAMS IDOC when creating partners do not let me append the data
    within the transaction XK02, I’m sending values ​​are within E1WYT3M segment are:
    LIFNR =
    VKORG =
    PARVW =
    These are all the data that I send, my question is, you know if I need to send you more information that I’m sending?
    When I reviewed the program and proper standard VENDOR_BDCDATA function, I noticed that not save the values ​​that I send via idoc, will I need to check the settings for storing these data? or there is a note that I do need to apply?
    Best Regards/Mexico.

  80. Mudasir says

    thanks My friend its very very help full being an Sap FI consultant is it f9 to understand all 3 parts or which is my area at times in interviews facing difficulty like tell idoc settings? or ALE please guide me lil more

  81. Pablo Ghosh Roy says

    Hi Riyaz,
    I hope you can help me out with an issue I am facing, I need to create a Plant Maintenance Order via IDOC from data that will be coming into SAP via a 3rd Party System (Using XI). These PM Orders are the ones that would usually be created using IW31, but we would like to achieve this functionality using IDOCs.

    So basically the incoming IDOCS after being processed must create the Plant Maintenance Orders.

    Please advise me with the following information?

    Standard IDOC Type to Create Plant Maintenance Orders.
    Standard Message Type (Inbound) for the above IDOC.