点击蓝字 关注我们
一
前言
网上有一个介绍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配置篇
实际项目中, 可以把常用IDOC的创建过程封装到函数中调用,封装的函数中实现IDOC的重复性检查,附加业务功能及IDOC的赋值 等
THE
END
约定
如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.
(如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文