什么是idoc
IDoc:intermediate(媒介)document
IDoc是一种系统间通用的数据交换格式,通过IDoc接口可以实现SAP系统之间以及SAP系统与其他系统之间的数据交换。基于IDoc的应用技术有:ALE:多用于同一个企业中不同SAP系统之间的数据交换,通过IDoc格式的数据创建分布式系统 。EDI(electronic data exchange,电子数据交换):用于实现不同企业间的电子数据交换。
此篇只讲解出战idoc
入站请查看下一篇文章。
配置idoc
定义逻辑系统
事务码:sale
在定义逻辑系统里面定义我们自己需要的。请注意(根据你项目上的需求定制)。
配置逻辑系统
事务码:we20
新建你的合作伙伴编号。建完以后暂时留着等会要用
使用RFC链接你的目标系统
事务码:SM59
注意我这个是从sap到sap的链接,此处的链接要根据你得实际业务去进行配置
此处是我的目标系统的账户名和密码
填写完成以后,我们进行测试链接
出现下面的界面表示你成功了
配置事务性RFC
事务码:WE21
无论你是出战还是入站你都要选择事务性RFC。
让他自己生成端口名称,保证不会重复
注意:当你创建的时候会有版本,版本不一样,idoc数据的表也不一样。如果想知道存入那些表。可自行百度
以上你配置完成,恭喜你你得idoc已经配置80%了
接下来很重要请跟进操作。!!!!!!!!
新建段类型
事务码:WE31
WE30创建自定义的类型
进去以后有个新建点击新建将你刚刚创建的段类型添加进去。
创建消息类型
事务码:WE81
点击新条目,创建你自己的消息类型名字随便起。
分配消息类型
事务码:WE82
消息类型有很多,有系统自己带的。但是有时候系统自带的不能满足我们的需求需要自己定义消息类型。
创建完成以后我们可以去看看我们自己创建的消息类型
事务码:WE81
可以定位到我们刚刚创建的名称
以上创建完成。去使用我们的消息类型
事务码:WE20
细心的小伙伴可以查看到他是有进站和出战的,此篇只配置出战。
点击新建创建你出战的类型和配置。
以上配置完成可以进行一个代码的编写了
下面编写出战代码
REPORT ZHANG_IDOC1.
DATA: LV_ZKNA1 TYPE zhang_idoc,
LV_EDIDC TYPE EDIDC,
GT_EDIDC TYPE TABLE OF EDIDC,
GT_EDIDD TYPE TABLE OF EDIDD WITH HEADER LINE.
CLEAR LV_EDIDC.
LV_EDIDC-MESTYP = 'ZHANG_NAME1'.
LV_EDIDC-IDOCTP = 'ZHANG_IDOC'.
LV_EDIDC-RCVPRT = 'LS'.
LV_EDIDC-RCVPRN = 'ZHANG_IDOC'.
CLEAR GT_EDIDD.
GT_EDIDD-SEGNAM = 'ZHANG_NAME'.
GT_EDIDD-DTINT2 = 0.
LV_ZKNA1-name = 'Y000001'.
LV_ZKNA1-age = 10.
GT_EDIDD-SDATA = LV_ZKNA1.
APPEND GT_EDIDD.
CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'
EXPORTING
MASTER_IDOC_CONTROL = LV_EDIDC
TABLES
COMMUNICATION_IDOC_CONTROL = GT_EDIDC
MASTER_IDOC_DATA = GT_EDIDD
EXCEPTIONS
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 <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
COMMIT WORK.
ENDIF.