原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)
**点击蓝字** 关注我们
一
前言
网上有一个介绍IDOC的文章, 讲的非常详细. 有兴趣的可以看一下.
https://www.cnblogs.com/jiangzhengjun/p/4292135.html#_Toc411677416
为了讲解更有条理, 本文介绍的内容是开发一个IDOC用于实现采购订单的修改(数量/价格)及审批
二
开发及配置步骤
按下列步骤完成开发及配置
_**01** _
**创建IDOC段**
TCODE: WE31-创建IDOC的段(如下图示例,创建之前需要先定义好相关的数据元素).
注意保存后, 需要设置批准,在下面界面菜单中选择 编辑->设置批准.(同理,后续修改前,需要取消释放 编辑->取消释放)
• EDISDEF IDoc 开发:IDoc 段定义
• EDISEGMENT IDoc 开发:IDoc 段
• EDSAPPL EDI: IDoc 段应用程序结构
_**02** _
**创建IDOC类型**
TCODE: WE30创建IDOC类型 ZSPOCL.
创建的时候,使用之前定义好的段类型. 编辑相应段的属性. 这些属性系统在产生IDOC的时候会校验.
_**03** _
**配置信息类型**
TCODE: WE81-创建信息类型,很简单的配置界面.
_**04** _
**关联信息类型与IDOC类型**
WE82-关联信息类型与IDOC类型.简单的配置界面
_**05** _
**创建IDOC处理函数**
参考函数IDOC_INPUT_MBGMCR 创建一个自己的函数,调整下面提到的三个部分的逻辑即可.
(暂时没有理解标准逻辑怎么建立IDOC和单据的关系的,估计逻辑包含在第三部分中,自定义的IDOC无需考虑建立IDOC和单据的关系)
**
**
**统一的界面**
**
**
**
**
**第一部分: IDOC解析部分**
**
**
**
**
**第二部分: BAPI函数调用部分.**
(下图中的BAPI函数是一个自定义的函数,整合了BAPI_PO_CHANGE 与 BAPI_PO_RELEASE 函数的调用,
根据数据比较阶段是否需要执行PO_CHANNGE. 最后执行PO_RELEASE . 两者都成功, 才表示BAPI成功. )
**
**
**
**
**第三部分:BAPI返回的处理**
_**06** _
**注册IDOC处理函数**
TCODE: BD51 ALE属性. 参照BAPI_IDOC_INPUT1添加自定义的函数
_**07** _
**关联函数与IDOC类型**
TCODE: WE57 创建消息类型/IDOC类型/函数的对应关系
_**08** _
**维护进站代码**
TCODE: WE42 创建进站代码(可以用代码BAPI复制)双击进站代码, 修改对应的函数
_**09** _
**封装一个产生IDOC的函数**
这个过程不是必须的, 但是会简化后续产生IDOC的过程, 建议执行该步骤.
Z_CREATE_IDOC_OF_POCL
函数中添加如下功能
• 函数中实现IDOC的控制段的生成
• IDOC单据重复的校验
• 补充特定业务逻辑
• 调用标准函数IDOC_INBOUND_SINGLE产生IDOC
三
总结
上述过程完成后, 就实现了一个自定义功能的IDOC开发及开发相关配置过程. 后续只需要配置IDOC的使用即可
> 详见链接 无峰,公众号:ABAP 技巧与实战 [ SAP操作手册之 IDOC配置篇
> ](http://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247485687&idx=1&sn=440ab78bb055394b830070b76b59945c&chksm=cf5dd5c1f82a5cd7bb5160e251cad95ad28674f638f348bd5c15fd4a222acb6f9ada323d8ebd#rd)
实际项目中, 可以把常用IDOC的创建过程封装到函数中调用,封装的函数中实现IDOC的重复性检查,附加业务功能及IDOC的赋值 等
** THE **
** END **
**约定**
如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.
( **如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程.
越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.** )
**公众号 : syjf1976_abap**
**ABAP开发技巧**
**微信号 : 392077**
**公众号主群加入受限, 请扫码加入副群后,向管理员申请加入主群**