创建IDOC:
第一步:WE31 创建IDOC所包含的字段. 第二步:WE30 创建IDOC 把Segment分配给IDOC 第三步:WE81 创建信息类型 第四步:WE82 把IDOC类型与信息类型对应. 第五步:WE57 Assign Message & Idoc Type to a Function Module for Data Process 第六步:SM59 Define a RFC connection for Idoc transfer 第七步:WE21 Define a Port ( Assign a RFC destination which created in SM59 ) 第八步:WE41/42 Creat Process Code 第九步:WE20 Define a Partner Profiles( Also creat a Outbound parameters with Port, or Inbound parameters with Process code )管理IDOC: WE02 显示IDOC,可以根据时间,IDOC类型查找IDOC,查看成功,出错信息。 WE46 IDOC管理(出\入) WE60 IDOC类型文档(可以查看IDOC结构,和每个字段的描述. WE19 根据IDOC号进行IDOC处理,可以修改IDOC值进行补发动作,处理分为内向和外向。消息配置: WE20 配置伙伴消息进和出IDOC类型 WE21 配置伙伴。官方介绍:
What is a IDOC?
An IDoc is simply a data container that is used to exchange information between any two processes that can understand the syntax and semantics of the data. IDoc is not a process.
- IDocs are stored in the database.- In the SAP system, IDocs are stored in database tables.- IDocs are independent of the sending and receiving systems.- IDocs are independent of the direction of data exchange.An IDoc Type is SAP's format for data being moved between applications. Essentially, SAP has defined what a sales order, financial statement, invoice, etc will look like electronically. This includes how fields are grouped together (segments), the order and hierarchy of these groupings, and the format of each individual field.
If you're familiar with EDI at all, then an IDoc will look very familiar to you. Nearly everything you're used to is there: from segment name to allowable codes to min/max occurs.It is important to note that an IDoc Type is really just a structure defined on the system and given a name (i.e., ORDERS04). An actual IDoc, however, consists of data, which fits within the defined structure of the IDoc Type. This IDoc is identified by a number rather than by a type.Creation of IDOCs
Transaction code: WE 30
Steps of Defining Segment
Creating Segment : Tcode - WE31
Creating Message Type : Tcode - we81Assigning Message type to Idoc type: Tcode - we82Process
The two processes for IDoc are Outbound Process and Inbound Process.
Outbound Process
When the data is sent out from the system, the process is called Outbound Process and the IDoc is known as Outbound IDoc.
Inbound Process
When the data is coming in, the process is called Inbound Process and the IDoc is known as Inbound IDoc.
Outbound Process (Sending System) Steps :
1) Goto Tcode SALE:
Creating the logical systemClick on Sending & Receiving Systems à Select Logical Systems--Here Define the Logical Systems à Click on Execute Button
Go for New Entries1) System Name : LOG1:Description: Sending System2) System Name : LOG2:Description: Receiving SystemPress Enter & Save it will ask for Request if you want new request create new request or press continue for transferring the objects.Assigning Client to the Logical System:Select Assign Client to Logical Systems -
Client : Sending System
Logical System : LOG1and alsoClient : Receiving SystemLogical System : LOG2Save this Data.
Step 2) For RFC Creation:
Goto Tcode SM59 and Select R/3 ConnectsClick on create ButtonRFC Destination Name should be same as partner's logical system name and case sensitive to create the ports automatically while generating the partner profilesGive the information for required fields:RFC Destination : LOG2Connection type : 3Target Host : sappdc.wipro.comSystem No : 00Client : 210User : Login user namePassword :Save this & Test it and Remote LoginStep 3) Goto Tcode BD64:Click on the change button>Click on the create model view
Short Text: model viewTechnical Name: LMODSave this & press okSelect just created model viewName: "LMOD"Goto add message typeModel Name : LMODSender : LOG1Receiver : LOG2Message type: ZAZHARMESSSave and press Enter.4) Goto Tcode BD82:
Give Model View : LMOD
Partner system : LOG2Execute this by pressing F8It will gives you sending system port No: A00000000089 (Like)5) Goto Tcode BD64:
Select the model viewGoto >Edit >model view > DistributePress ok & Press Enter.Run your Zprogram
REPORT ZIDOC1 .DATA: Begin of imara occurs 0,matnr like mara-matnr,mtart like mara-mtart,end of imara.DATA: wamas_con LIKE edidc,imas_data LIKE edidd OCCURS 0 WITH HEADER LINE,icom_con LIKE edidc OCCURS 0 WITH HEADER LINE.PARAMETERS: e_matnr LIKE mara-matnr,e_msgtyp LIKE edidc-mestyp,e_rcvprn LIKE edidc-rcvprn.* retrive app. data from DBSELECT matnr mtart FROM mara INTO TABLE imara WHEREmatnr = e_matnr.*Master idoc control recordwamas_con-rcvprt = 'LS'.wamas_con-rcvprn = e_rcvprn.wamas_con-idoctp = 'ZAZHARIDOC'.wamas_con-mestyp = e_msgtyp.* master idoc data recordsLOOP AT imara.imas_data-segnam = 'ZAZHARSEG'.move imara to imas_data-sdata .APPEND imas_data.ENDLOOP.CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'EXPORTINGmaster_idoc_control = wamas_conTABLEScommunication_idoc_control = icom_conmaster_idoc_data = imas_dataCOMMIT WORK.6) Verifying Transfer of IDOCs Tcode - we05
ALE/IDOC Status Codes (outbound):01> IDoc Added30 > IDoc ready for dispatch29 >Error in ALE service Layer12 >Dispatch ok 03 > Data passed to port ok.Inbound Process (Receiving System) Steps:
Do the same step as you did in sending system
> Creating IDoc
> Defining the Segment> Creating Message Type> Assigning the Message Type> Defining the Logical System> Assigning the Logical System> Creating the Distribution Model1) Goto Tcode - we57:Assign function module to IDoc typeModule: Function moduleBasic type: Message type:Direction: 2 (inbound)2) Creating Inbound process code - we423) Verifying Idoc List Tcode - we054) ALE/IDOC Status Codes (Inbound):50 > IDoc Added51 >Application Document not posted64 >IDoc ready to be transferred to application62 >IDoc passed to application53 >Application Document posted