SAP自建函数处理IDOC

如果标准的IDOC类型无法满足业务需要,可以增强标准IDOC类型(WE30,扩展;SMOD增强处理增加的字段或者逻辑),如果扩展标准IDOC类型还无法满足需求则可以考虑自建IDOC类型和处理逻辑。

本案例演示自建IDOC类型的基本步骤及测试方法。

#创建构成IDOC类型的数据结构(段,SEGMENT)

在WE31创建构成该IDOC类型的数据结构,本案例只有一个段,因此只创建一个段。

SAP自建函数处理IDOC

SAP自建函数处理IDOC

创建完的段需要释放:

SAP自建函数处理IDOC

#创建IDOC类型

事务代码WE30,对象类型选择“基本类型”,使用WE31创建的段按层次结构分配到基本类型中。

SAP自建函数处理IDOC

SAP自建函数处理IDOC

同样需要发布(release):

SAP自建函数处理IDOC

#创建消息类型

事务代码WE81,这一步只是创建一个消息类型,没有什么复杂的操作,就是在这个表中维护一条数据。

SAP自建函数处理IDOC

#关联消息类型和IDOC基本类型

事务代码WE82.

SAP自建函数处理IDOC

#创建这个IDOC的后端处理函数

事务代码:SE37.

可以复制一个现有相对简单的函数,所有IDOC处理函数的参数基本一致、不需要修改,修改即可,注意命名格式为IDOC_INPUT_<消息类型>。

例如本例的消息类型为ZSCARR,所以inbound处理的函数为IDOC_INPUT_ZSCARR。

传入的IDOC参数在IDOC_CONTRL、IDOC_DATA中,返回的消息要存入IDOC_STATUS中。

本案例示例代码放在文章末尾。

SAP自建函数处理IDOC

SAP自建函数处理IDOC

SAP自建函数处理IDOC

#注册IDOC的后端处理函数

事务代码:BD51

SAP自建函数处理IDOC

#分配IDOC的后端处理函数、IDOC类型和消息类型

事务代码:WE57

SAP自建函数处理IDOC

#创建IDOC处理代码

事务代码:WE41,WE42

SAP自建函数处理IDOC

SAP自建函数处理IDOC

#维护合作伙伴参数

事务代码WE20,如果已经有合作伙伴,则只需要添加我们新建的消息类型即可,处理代码就是上面创建的处理代码。

SAP自建函数处理IDOC

SAP自建函数处理IDOC

#测试自建IDOC

事务代码为WE19,分别点击控制记录和数据记录,录入对应的数据,如需录入多条数据使用上方的工具即可。

SAP自建函数处理IDOC

SAP自建函数处理IDOC

SAP自建函数处理IDOC

最后点击“标准入站”就可产生IDOC。

SAP自建函数处理IDOC

SAP自建函数处理IDOC

SAP自建函数处理IDOC

#查看IDOC状态

事务代码WE02.

SAP自建函数处理IDOC

如果IDOC处理成功,对于入站请求,则会有状态53,一条数据记录一个状态代码。

SAP自建函数处理IDOC

对于入站IDOC,如果处理成功,则状态代码依次为50、64、62、53,如果处理失败则依次为50、64、62、51或者56.

SE16N验证。

SAP自建函数处理IDOC

IDOC后端处理的函数大部分为非RFC函数,如果需要从其他系统传数据至SAP产生IDOC,可以考虑用函数INBOUND_IDOC_PROCESS。

本案例处理函数示例代码:

如若转载,请注明出处:https://www.gavindong.com/4027.html

微信沟通