Beginner’s Guide to ALE and IDocs – Part III

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.

Inbound IDoc Posting Function Module

In the receiving system, create a function module Z_IDOC_INPUT_ZRZSO_MT using SE37. Below, I have described the logic for the same.

Add Include MBDCONWF. This include contains predefined ALE constants.
Loop at EDIDC table

  • Check if the message type is ZRZORDER. Otherwise raise WRONG_FUNCTION_CALLED exception
  • Loop at EDIDD table
    • Append data from the segments to appropriate internal tables
    • For example: append data from ZRZSEG1 segment to the internal table of type ZCUSTOMERS
  • Update the DDic tables from internal tables
  • Depending on the result of the update, fill the IDoc status record (type BDIDOCSTAT) and append it to the corresponding table.
    • Status 53 => Success
    • Status 51 => Error

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

Send and receive data

On the sender system, execute the IDoc Generation Program. Check the status of IDoc using transaction WE02.

IDoc Generation Program

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.

Transaction WE02

Thus to summarize we have learned how to:


  1. Mkhan says


    I came across your wonderful site. It is quite impressive to see what you have acheived in your young life.
    I do want to test your knowledge and expertise :-)

    We use iDOC quite heavily and i personally feel it is not the most efficient way to do things, although i must also admit that i do not have any alternatives to it.

    Are there any benefits/other alternatives in the latest release of SAP (ERP 6.0 .. specifically ECC 6.0) in the area of iDOC’s?

    To put to plainly, are there any business benefits in ECC 6.0 with regards to iDOC creation/processing/storing.

    Thanks for your feedback.

  2. says

    Hi MK,

    Thanks for the compliments.

    If you are speaking in terms of EAI, there certainly are alternatives to IDocs. You can design proxy-based interfaces using SAP XI in conjunction with SPROXY transaction on WAS 640 compliant system.

    ECC also provides you with ability to create Web Services out of function modules which can be exposed and consumed in order to interface different systems. In fact this is the way forward as SAP is strongly promoting Enterprise SOA architecture.

    If you look at the error handling, monitoring and reprocessing capabilities, in my opinion, IDocs score over proxies. In terms of ease of setting up interfaces, certainly proxies are better.

    Do provide your further inputs on this so that everyone is mutually benefited.


    Riyaz | The Best of Everything

    • KK says

      Hi Riyaz,

      I was just searching for some materials for loopback idocs and fortunately found the great blog..
      Its stunning..!!
      I have a query, I am stuck up with a requirement, wherein I have same client as Source & Destination Systems. (Creating PO and want to transfer it to SO automatically).
      Trying to use ALE as message type for PO, could you please guide me in this.
      Please note that Source and Destination Client is the same.
      Thanks in Advance

  3. Mkhan says

    The second option (WS) seems more plausible for replacing iDOCS, but is this feature only available in ECC or was it there in R/3 as well.
    I’m trying to justify technical benefits of ECC over R/3, hence the question.

    If there are other technical benefits that you can think of, i will appreciate your sharing for everyone.
    I have tried to research it on SDN, however i find there definitions of benefits very vague & marketing focussed… not for a technologist.


  4. says

    Option of converting function modules to Web Services is available only in ECC. I am not sure of the exact version. Its certainly there in WAS 640, I am not sure of WAS 620. It is not available with SAP R/3 (470).

    ECC brings in a combination of Java stack and ABAP stack. ITS has been replaced by more versatile Web Dynpro, making it easier to create and run Web Applications. On the ABAP side, there is more emphasis on object oriented approach. In R/3 very few transactions (like e.g. MM transactions) use OOP ABAP.


    Riyaz Blog | The Best of Everything

  5. says

    Hello Riyaz

    How are you sir, and i am an aspiring XI learner, yesterday i read through your blog article on Netweaver XI it was very informative, the greatest thing in your articles is that
    you have kept it so simple and straight that anyone who is not even technically brilliant
    but knows how to find the information on the internet can actually learn XI from your
    articles. I did not have a clear view on certain aspects of XI, but your information helped
    me a lot. keep on doing the great work i will be following your articles.


  6. says

    Thanks a lot Josh for your compliments.

    Appreciation from the readers like you is an encouragement to improve the blog further. I would be adding more articles to the site and hope to benefit the entire community.


  7. JYOTI says

    Hi Riyaz,
    its a very good stuff on ALE IDOC.really help full. Give me your email address. I will contact.

  8. RAJESH says



  9. says

    Hi Rajesh,

    Thanks for the compliments. This article describes system to system (B2B) communication. However, if you want, you can configure client to client communication within a single SAP system. In that case, SALE configuration i.e. adding logical system name and assigning client to logical system and all other configuration on sender as well as receiver side will have to be done on the same system. All steps will remain the same. Check out Part I and Part II for a step-by-step walkthrough.


  10. Krishna says

    Hi Riyaz,
    I was find difficult to understand RFC adapters. I tried to SDN Blogs and others but then i found your article. Only thing i want to say is you are the BEST.

    Thank you very much for your time spending writing these blogs which are not only informative but well presented.

    Please keep posting more…


  11. says

    Hi Krish,

    Thanks a lot for your compliments. Its good to know that the article helped you.

    This gives me encouragement to put up more and more articles.


  12. Atul says

    Dear Riyaz

    Your articles on ALE/IDOC are excellent. As I am beginner in SAP PI, it will help lot.

    Thanks for sharing your knowledge. I hope that more articles are onway !!!


  13. says

    Thanks a lot Atul for your compliments :) Its good to know that you found the content useful.
    Yes, I will be adding more articles on SAP PI regularly.


  14. Jyothipriya says

    Hi Riyaz,
    Your article abt ale/idoc is simply superb……as your title suggests, it is easy to understand for beginners, same time covers every small thing needed to accomplish the job…..Keep up the good job…..

  15. Ravi Shankarnarayana says

    Hello Riyaz,
    Thanks for the step by step guide on ALE / IDOCS.
    Will sure try to configure.

    Please let me know if there are any tables where we can check for the idocs created against an order / delivery or invoice?
    Like we check Sales order on VBAK, Delivery on LIKP and link them up in VBFA… do we have a table where I can list the idocs created against various sap documents?

    Thanks for your help.


  16. says

    Hi Ravi,

    You can view inbound/outbound IDocs using transactions like WE02/WE05.

    All the IDocs (irrespective of its business content) are stored in following tables –

    EDIDC – Control Records
    EDIDS – Status Records
    EDID4 – Data Records (Actual Business Data)

    SDATA field of EDID4 will hold your business data.


  17. says

    Hi Riyaz,

    I want your help. i am a new bee to SAP.Previously i was working on Vb6,Sqlserver200 and crystal report ,asp and sahrepoint services.

    I would like to learn SAP as my company going to implement SAP ecc 6.0

    i have 12 years experinece in IT.

    So where from i start learning SAP mean what i should learn first.

    Please help me to explain or link for the tutorial

    i will be very greatful to you.

    Thanks and regards,
    Ghazi Anwer

  18. says

    Hi Riyaz,
    Your Blogs are one of the best that i ever come acroos, the best part is the simplicity, its amazing, i would like to learn more on ALE IDOC and XI from you, are ther any other professional methods by which you share knowledge on the above topics.

  19. Smita A. says

    Hi Riyaz,

    Your article on IDOC is really very good. I have read so many documents regarding Idoc but understood very little.
    But when i read your article and followed the steps for Idoc in that, I find it very simple. really your way of explaining is very very good.

    Keep adding new docs.

  20. Vinod kumar Sunke says

    Dear Riyaz,

    This site is very very useful and it is very easy to understand the concepts of the ALE -idocs for the beginers like me…

    Apreciate ur effort..


  21. Pablo says

    Hi Riyaz,

    I had a small doubt, I saw you mentioning about creating a Process Code for the Receiving Side, but not for the sending.

    Can you please throw some light as to why have you done that, does it mean that we dont create Process Codes for the sender Side, or are there any particular scenarios, if any, could please share them.

    Thanks & Regards

  22. says

    Hi Pablo,

    Process code specifies how any received message should be processed, e.g. by a function module. In general, received IDocs would get processed automatically and update the database.

    On the outbound side, we do not require this as the sending program/process generates the desired IDoc type. On the inbound side, we may have many different IDoc types received and there is need to identify the correct processing method for each IDoc type. The way an IDoc is processed would depend on the type of IDoc, hence we have process codes which identify the correct way to process the particular IDoc.

    Hope this answers your query.


  23. Mohammed Anwar says

    Dear Riyaz….
    I have gone through your blogs on ALE/Idocs and also on ABAP WebDynpro…
    Excellent piece of work done from your side…
    May God help you increase in knowledge… Ameen..

    Mohammed Anwar..

  24. Siva says

    HI Riyaz,

    Your blog has been very helpful. Thanks for your efforts.

    I have created everything required for outboud process and inbound process in two different clients with in the same server. However, After running the outbound program the idoc status is showing 30(Ready for dispatch).I could not see the idoc in the recipient system. Can you please let me know how to dispatch the idoc or the possible cause of not dispatching the idoc to recipient system after running the out bound program.

    I have tried running the program RBDOUTPU for processing the outbound idoc that got created but couldn’t get the required status. Can you please help.

  25. javed says

    hi riyaz,
    This is javed, sap trainee,i still have a lot to learn in sap and my doubt is with idocs in the inbound configuration steps, well we can say the steps are same but the way we go through the steps for we57 or we42 (one of these) the steps are a bit different in 4.6 and 4.7 versions,
    can u please provide the step by step approcah for the above transactions with poper snapshots.i would be really greatful if u can do that for me.
    And not to forget u r doing a great job man. keep the good work going.
    Thanks anyways,
    it would be very kind of u, if u can send them to my mail id

  26. Markus says

    Hello Riyaz

    I would like to create a RFC destination of type ABAP pointing to nowhere. IDocs sent to a transactional RFC port using this RFC destination shall be listed as processed successful but they shall disappear and not be transported to the target system.

    Do you have an idea?

    Thanks and regards

  27. Madhava says

    Hi Riyaz,

    Really it’s very good.

    I am functional consultant. Now-a-days, company’s are asking Techno – Funcitonal knowledge.

    Really it helps me a lot.

    Also, I want to know something about Debugging. Pl. post the article on this.

    All the best for you Good and Hard work.


  28. Faisal Riaz says

    Hello Riyaz,

    Your work is very much Appreciated in context of SAP.

    I have a quick question for you..
    How do i create XML message processing that goes to and forth from ECC 6.0 and PI 7.1. I need to Send XML Messages from PI 7.1 to ECC 6.0 EHP4.

    I have followed guides from you, but as i came from strong Technical Background(Basis)..some functional aspects of PI 7.1 is very High Level for me…Can you guide or refer some step-by-step guides ?

    Faisal Riaz.

  29. says

    You could use IDoc adapter or proxies on ECC side. On the receiver side adapter will depend on the type of system you wish to communicate with. If it is another PI system that you wish to send the message from your PI system, you can use XI adapter. Note that PI acts as middleware system, i.e. a broker in a message exchange and not the sender/originator or final receiver of the message.

  30. ajay says

    hi riyaz,

    i have doubt in inboud side,
    i am receiveing a material ,in bound side how it will identify that material is received..
    and how this inbound function module idoc_input_matmas01 is triggered..

    and also i have one more req ,,

    here i need to do some coding for mapping materials.i found one exit MGV00001
    how hcan i test this exit ..

  31. Diego Crespo says

    Hello Riyaz,

    These articles are amazing, fantastic!

    I am facing with a problem. Could you, please, help me?

    I did all the steps the IDOC number is generated but the receiver table aren´t filled. Beyond that, in we42 transaction (Receiver system) there are nothing about my IDOC too.

    So, I check the we05 and we09 transaction in SENDER system and I see that the status of my IDOC is 30, with a description “IDOC ready for transmition (ALE service)”.

    What´s wrong ? What´s missing ? Plz Help me!
    Thanks in advance and sorry by my english!

    Diego Crespo

  32. Diego Crespo says

    Sorry, I wanted say

    “Beyond that, in we02 transaction (Receiver system) there are nothing about my IDOC too.”

    we02 Instead of we42.

    Diego Crespo

  33. Rhishabh says

    Hello Riyaz,

    Hope you are doing well.

    Please lemme know how to generate/create an IDOC in single system. Can we send an IDOC from 700 to 640 vrsn.


  34. Rhishabh says

    Hi Riyaz,

    We want to migrate data from iseries into SAP through an IDOC. Is there any way to migrate.

    Please suggest me the step by step procedure if any. You can mail to


  35. says

    The process to create IDoc remains same whether you send it from one system to another or within the same system.

  36. Alex says

    Very cool site and blog Riyaz! I was able to do a client-to-client (not system-to-system) ALE scenario in ECC 6.0 as described in your blog. Much appreciated!

  37. says

    Hi Riyaz,

    I have gone through your articles…it is very straight and simple which is very very useful to the community…Thank you very much.

    I am an integration consultant..right now we have an assignment to Integrate SIEBEL 8.1 with SAP ECC 6.0, for this SIEBEL provided a Connector for SAP which is an outof box solution through which we can exchange data (IDOC/BAPI). client is preferring this solution because there is no extra licensing is required.

    please correct me if i am wrong, what i have understood from your articles is that in SAP ECC 6.0 we can Expose a BAPI functional module as a Web service (Proxy service). can we consume this web service(WSDL provided by SAP) in SIEBEL and anyother local systems and can send( Requesting the webservice) the values to this web service and will i get the response back(for example Customer creation process). to use this strategy do we need to buy any extra licesence from SAP?

    can SAP consume the SIEBEL provided web service (proxy service) ?

    Please help me! thank in advance and sorry for my english


  38. says

    Hi Mohan,

    You can very much use the Web services approach to integrate Siebel with SAP. BAPIs are always remote enabled. So you can use RFC adapter. Create SOAP to RFC/Proxy/or IDoc scenario and generate WSDL in PI using web service creation wizard. You can consume this web service in the Siebel Application. Both way communication is possible via PI. I had used SOAP to IDoc approach to implement Customer Creation process in one of the assignments of Siebel-SAP integration.

    Alternatively, you can expose the BAPI as a web service directly from ECC system and consume the service in Siebel as described by you.

    SAP can as well consume external web services. You need to use SAP PI (SOAP adapter) for this. CE 7.1 can as well be used.

    I havent used Siebel Connector myself. However, since its an out-of-the-box solution, it can as well be used to achieve desired results.


  39. says

    Hi Riyaz,

    Thank you very much for your reply…

    Is SAP can consume the external web services only through PI? if that is the case then we have to buy a license for the PI, this will be extra cost for the project

    is there any other way that we can make SAP to consume the external web services without using PI?

    Thanks in Advance


  40. says

    Hi Mohan,

    For using web services either PI or CE 7.1 is recommended by SAP. You could even create a Web dynpro project to consume/use external web services using NWDS and deploy it on the Java stack (Web AS) of ECC system.

  41. Shankar says

    Hi Riyaz,

    You are amazing man , the way you presentation is very good. I think you crossed Michael who published the mastering IDOCs and many more articals/forums in SDN.

    I can test you some more from my side:

    We are trying to extract HR master data using PFAL, for this we are using message type HRMD_A and Basic type HRMD_A07(IDOC :HRMD_A.HRMD_A07) , from there calling this IDOC through XI for inital and delta loads.

    In our requirements we need to add some additional Zcustom segments and also we dont use some standard segments.

    Do you have any idea how to handle this requirments:

    1. Was reducing the IDOC and adding new zcustom segments is better way to handle ?

    2. How to assign new Zmessage type in PFAL ?

    3. Or Just enchance(adding new segments) the IDOC is better way to handle?

    4. Any idea which function module should I need to make changes for enchance or reduce the idoc w.rt PFAL?

    5 .What are the dependency obejcts should I need to make zcustom while handling this requirement?

    6. Was this initial load and delta supports after setup change pointers?

    Sorry, I am giving bit trouble here..pls. share your best knowledge or work experience on this.



  42. Harish says

    I was actually searching basics for EDI IDOCS. I came across your blog. Man!!! awsome compilation…Kudos to your hardwork!!! I am a functional consultant and this gave me very good idea of what is an IDOC, how it is processed. I have question, that might be silly but what is procedure to do EDI IDOCS? is the process same? every where I see only ALE, so got a question how we process EDI IDOCS. Could you please tell me or send me some docs like this ALE/ IDOCS for EDI/IDOCS if you have. My email hksapfico[at]

    Thanks and again I really appreciate your work dude. Keep it up.

  43. says


    This is !!! awsome . Thank you very much for publishing these. I most of the time read your articals to get solutions in R3 and XI and all the time I’ve been successful .
    Your basic BPM artical was very good as well to start with.
    If you could please drop an artical or example to cover the tools use to design the business process.

    Thanks again.

  44. says


    I am triggering outbound IDOC but it is generating 2 idocs with same values and status message – 03 (success) but when I use same idoc and re-execute it from WE19 only one idoc is generated.

    Please check the code :

    master_idoc_control = gw_idoc_control
    communication_idoc_control = gt_idoc_control
    master_idoc_data = gt_idoc_data
    error_in_idoc_control = 1
    error_writing_idoc_status = 2
    error_in_idoc_data = 3
    sending_logical_system_unknown = 4
    OTHERS = 5.

    IF sy-subrc EQ 0.
    _synchron = gc_x.

    IF sy-subrc EQ 0.
    SUBMIT rseout00
    WITH p_idoctp = gc_idoctp
    WITH p_rcvpor = gc_rcvpor
    WITH p_rcvprt = gc_sndprt
    WITH mestyp = gc_msgtyp
    WITH upddat = sy-datum
    *No need to check

    commit work.


  45. Santosh says

    Hi Riyaz…..

    I have looking out on all the portals to check whether SAP has changed the idoc format for release 620 in ERP 6.0 EHP 4.0.

    We have a EHP 4 system where in we are testing idoc exchange from biztalk…we are not able to see the same fields in the idoc type ORDERS03 for release 620.

    Am not able to understand whether is this a bug or some new feature added in EHP 4.

    in all the other releases of SAP we are seeing the same fields(46 and 519) when we run IDOCTYPE_READ_COMPLETE function module and pass the value 620 for PI_Release and ORDERS03 idoc type,Where as in ERP 6.0 EHP 4..when we pass the same values we are getting few extra fileds…535 and 420..

    is this a new feature or a bug? jus trying to get some intputs..

    your advice is highly appreciated


  46. ulhas says

    Hi Riyaz,

    Your article on IDOC is really very good. I have read so many documents regarding Idoc but understood very little.

    You are really Superb..

    Keep posting.



  47. Waheeb Semaar says

    Hi Riyaz,

    I share the sentiment that most of the ‘bloggers’ have that this is great information! Simple explanation and easy to read and understand.

    I am new to the concept and use of Idoc’s. My scenario is as follows, I have an inbound custom idoc. The custom idoc will be sent from SAP PI to our SAP Retail system where I will need to read the data in the custom Idoc to populate/update a custom table. What I need to know is, will you sample function module Z_IDOC_INPUT_ZRZSO_MT assist me in being able to read the Idoc and use the data to populate the cusom table?

    Thanking you in advance


  48. says


    The Function Module Z_IDOC_INPUT_ZRZSO_MT can certainly help you. Its a simple piece of code. In fact whenever an IDoc is received, the contents get stored in database tables like EDIDC, EDIDD, EDIDS etc. So whenver you wish to read any IDoc data, it is as simple as querying these tables. The above function module shows a simple way of doing this.

    Hope this helps.


  49. Mohinder Singh says

    Riyaz nicely document material. I have one standard idoc type DELVRY05 , message type DESADV.
    I have to create three custom tables which will have material, werks. Requirement is that when ever this IDOC is triggered, it should pick up material, other fields werks from custom tables. Also its for a particular country.
    how to go about it.
    Mohinder Singh Chauhan

  50. says

    If you want additional segments in IDoc, you can create a new custom segment and extend the standard IDoc. If there are only a small number of fields, you may want to use any existing unused fields from the standard IDoc itself.

    You might have to find out relevant user exits or enhancement points in the IDoc posting function module/program and put in the ABAP code to insert data from these tables into the IDoc.

  51. Samant says

    Hi Riyaz.
    I stumbled upon your blog a day before, and must confess it is very informative.
    But what I was searching is probably not there directly, but looking at your knowledge, I think you can guide me.
    We had 4 systems (all SAP) in 4.6C. Communication between them was via ALE. All ALE transfers were done in the night as the system was not 24×7. Now the client is upgrading to ECC. where system will be 24×7. User is expecting ALE transfers to be “REAL TIME” in the new version. Since system will be 24×7, what we intend to do is transfer ALE immediately.
    But this simple solution cannot be said to users. They expect us to use PI and have been told be SAP that now there are much better monitoring capabilities. Users say if it was that simple, why was it not done earlier in 4.6c. :(
    I am not very familiar with PI, but whatever I read, I could not find anything that is “too fantastic” and will improve monitoring IDOC dramatically.

    Can I have your two cents on it? This issue has been bogging us for a long time. Hope you could give some pointers :(
    Thanks for your time.

  52. says

    Whether or not to go in for PI is a business decision. Technically, you can have real time communication as you said with plain ALE. However, using PI can improve monitoring capability. You can centrally monitor all the message exchanges instead of going to each ECC system and check for errors. ECC systems can have single partner system to communicate with. So all it needs to do is send the IDoc to PI whenever it needs to send IDoc to any of the other three systems. This reduces configuration overhead and also reduces the cobweb created by point-to-point connections. PI generally has fallback nodes, so if one goes down, other can take up the load. This means you have minimal downtimes or failures. If any of the target systems are down, PI can automatically attempt to resend the failed messages. In my opinion, using PI would always be ideal solution if the client is ready to invest into.

    • Samant says

      Thanks for the prompt reply Riyaz.
      You said using PI we can have better monitoring capabilities. But whether it will be true for IDOCs? So far the pain point in IDOC monitoring is that the messages are not very intuitive, and users cannot do it themselves. The vendor has to do it.
      Going forward, users want to do it themselves. But I do not see that possibility using PI also. If you think they can, it would be great if you could tell me how it can be done? :(
      Another thing – if we go for PI, how much time do we need to have PI in the middle – that is change all interfaces (which are now configured in BD64) to send to PI, instead? We need to cater for that effort. Is it that simple as importing IDOC via IDX2? We need to do mapping with the other system then too, right?
      By the way, is there any ALE monitoring capability that you know of which was not in earlier versions, but has now been added?

      Thanks again .

      • says

        As far as error messages are concerned, these must be processed/reprocessed by a trained user. This is true in case of any SAP system. Errors due to system unavailability can be simply resolved by hitting the reprocess button (similar to BD87, except that you can do it from the same screen). Data errors of course need corrections in data and have to resent from source system. Configuration errors are unlikely once the system is setup and well tested.

        Well, it isn’t as straight forward as plug and play. The interfaces themselves would be quick to setup assuming that these are all IDoc based, though each has to be designed separately. The initial PI setup would take time taking into consideration the organization landscape and architecture design and setup required thereon.

        If you are keen on PI, I would suggest to bring in a PI or a NetWeaver Consultant to do the necessary assessment.

  53. sandeep ruhela says

    hi sir,
    i am totally beginner in abap…
    and u cant believe that how much i happy to see ur documentation about ale/idoc..
    no doubt it will really helpfull in my life..

    thanks a lot

  54. Vijay says

    How to display data records from a table (EDID4-SDATA). The SDATA in ECC6 does not display data any more.

  55. sidd says

    Hey Riyaz,

    Thanks for your help. The steps you mentioned really helped me. A good guide for beginners to understand the config and boost up the confidence of learning idocs.


  56. sanjeev says

    Hi Riyaz,

    Amazing way you have described how to create a inbound process code . I am creating my first process code and found it really useful . Hats off to you for sharing . Just a doubt . Can you please explain why the line WORKFLOW_RESULT = C_WF_RESULT_OK. is there as my program will not be using WF. My program will be updating a standard table based on teh data from IDoc .


    • says

      It is an example code. The variable stores the return values or status. You can adapt the code to suit your requirements.

  57. says

    Eid Mubarak Riyaz. Great Effort. Which part of the world are you in.

    Here is my scenario.
    – Distributing Master Data (BP created in MKK Role) working great. Everything is working fine.
    – Wish to use Filters in BD64 to stop certain Segments (Parent as well as Children) – Failed. Not sure if I was doing it right. Seems like you can only stop values in the Segment and not Segment itself. Not sure. Any help will be appreciated if you happen to use it before. Thanks in anticipation.
    – Tried following option (Failed since I assume I haven’t created Z Function Module – seems like without that it won’t work since the Standard Function Module has hardcoded Message Type – Not sure – Any idea why this step is necessary)
    # Created Z Basic IDOC Types (Copy of Standard IDOC – WE30)
    # Creating a Z Message Type (Copy of Standard Message Type – WE81)
    # Assigned Z Message Type to Z Basic IDOC Type (WE82)
    # Changed ALE Model (BD64) – Added Z Message Type – Outbound Parameters
    # Regenerated Partner Profile and Distributed Model View
    # Repeated required steps in Receiving System

    Hope you are having a wonderful time. Keep this good work up and running.



  58. S.A. Khader says

    HI Riyaz,

    Hope you are doing fine.

    Need some guidance on inbound process for message type HRMD_a and basic type HRMD_A07. business requirement is to convert infotype 06 data to infotype 32 and also to update some custom fields of infotype 32 in receiving system. for this requirement BADI HRALE00INBOUND_IDOC is implemented to populate infotype 32 from 6 which is working fine, but for populating Z fields code is added in badi, i extended idoc segment and configured, we57, we81 and added custom segment in idoc, and also created entry in table T777d field idocs2, but while running system gave an error” Error in subroutine read_namtb for structure of infotype”. i debugged and found that the FM RH_INFTY_OF_IDOCSEG_TYP_GET is reading entries from T777d based on field IDOCS and not checking field IDOCS 2. can you please guide me to fix this issue. currently we are on ECC 6.


  59. Arun says

    i need code to check the status of inbond Idoc, if the status is sucessful it triger the next step (in my case its BAPI).
    could any plz help me.

    Thanks & regards

  60. raza says

    Hai Riyaz,
    I am new to IDOC concept , i follow your notes every now and then. I have a requirement for uploading purchase orders using IDOCS.
    Can you please give me the detailed procedure of how to do that. If you have a program related to that please send me that to my id

  61. Bertrand says

    Hi Riyaz,

    I follow your instructions as well as “SAP interface programing (Wegelin-Englbrecht)” in order to set up tRFC exchanges between SAP an non-SAP systems. As you can see details below, I have done many settings in order to receive Idoc. Every feed-back is OK, but I do not get applicative data ! Do you know some useful transactions which could help me debugging ? Thanks.

    Details :
    An SAP-client application has to send Idoc to a C server application with ALE protocol. C-server is built based on rfcsdk library.
    SAP settings done :
    –        structure and datas tables (SE11, SE14, SE16)
    –        Idoc, header et datas (WE30, WE31)
    –        message types (WE81, WE82)
    –        logical systems (SALE), destinations (SM59) and partner type (WE20)
    –        2 port types (WE21) : tRFC et file 
    – partner profile generation : BD82

    C-server settings :
    –        saprfc.ini settings (avec mode trace)
    –        communication initialisation with RfcAccept()
    –        transactional callback definition with RfcInstallTransactionControl()
    –        applicative callback definition for “IDOC_INBOUND_ASYNCHRONOUS” with RfcInstallFunction()
    –        requests management with RfcDispatch() in an endless while(RFC_OK)

    Test steps :
    –        C-server launching : connection is accepted by SAP-client (every rfcsdk function return RFC_OK), RfcDispatch wait for a request,
    –        ABAP program launching : ALE_MODEL_INFO_GET finds destination,Idoc generation is done, MASTER_IDOC_DISTRIBUTE is called, feed-back OK,
    –        Idoc dispatch with RSEOUT00 => many selected Idoc
    – Idoc status with WE02 let see status from 30 to 03 for the Idoc and the two defined ports.

    Results :
    – on SAP-client, a file with Idoc content defined in datas tables is created following port File definition. Applicative data are received.
    – C-server, RfcDispatch ends without error and start again, none of the defined callbacks (from RfcInstallTransactionControl and RfcInstallFunction) are called. No applicative data are received.

    Question :
    – why no callback is called ?
    – which transactions could help me to debug ?

  62. Dums Rudolf says

    Hi Riyaz,
    I’m learning ALE/IDOC handling (via PI) and found your detailed documentation very helpful !
    … the only thing I stuck now in the middle is in part III…
    … … here it’s not clear for me which Server/Port/RFC-Dest./Partner should be configured on inbound system
    .. … your info ‘…refer to Outbound Settings … ‘ is not helpful for me because
    => which system is addressed

  63. Dums Rudolf says

    Hi Riyaz,
    I’m learning ALE/IDOC handling (via PI) and found your detailed documentation very helpful !
    … the only thing I stuck now in the middle is in part III…
    … … here it’s not clear for me which Server/Port/RFC-Dest./Partner should be configured on inbound system
    .. … your info ‘…refer to Outbound Settings … ‘ is not helpful for me because
    => which system is addressed ?
    a) could not be the same as out of first system :-(
    b) but in inbound system configuring outbound system (root) … what for ? make it sense?
    b) if root system has to be configured … do you mean PI (relative) or first system (real root of IDOC) ?
    Thanks Rudolf

  64. Pratik Deshmukh says

    Hey ,

    I want to fetch error records from IDOC status records….. right now am using read_idoc_completely FM but its not giving me exact messages which are getting generated in IDOC.

    kindly suggested

  65. ARJUN says

    i have a question.
    5 systems are there in a network(A,B,C,D,E)
    when iam trying to send idoc from A to B. But My idoc is sending to all logical systems, B,C,D,E at the same time.
    How to overcome this problem.
    can we Apply any receiver type filtering in BD64

  66. Aarif Mohiuddin says

    Dear Riyaz,

    I am working on a project on SAP Retail. My requirement is In B2B we need create Pur order Idoc (Outbound)Idoc, Pur confirmation (Inbound ) and Inbound delivery Idoc (ASN). I would appreciate if you can share any document on this.

    Aarif Mohiuddin

  67. Prasenjit Singh Bist says

    Hi Riyaz, i had been suddenly assigned some interface related work as other co-workers in europe went on vacation.
    i do not have much experience and previous experience on idocs, but thanks to your tutorials i got a brilliant introductory idea and then with some more reading from SAP sources and sites; i got running and delivered the objects.

    Thank you very much :) and wish you a very happy new year.

    Prasenjit Singh Bist

  68. Ayushi says

    Hi Riyaz,
    I am working on an IDOC for the first time and hence would like you to clarify on one thing.
    In this tutorial for inbound IDOC FM, you are not using the FMs to open edit and close the idoc. Can you explain me why and also the what is the importance of those FMs if it is not mandatory to use them.