点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,SAP社区
我正在寻找有关SAP PO中消息映射的帮助。
我们有一个接口,该接口从一个系统中获取文本文件,并使用消息类型CONF_ACT10和Idoc类型CONF_ACT1001创建IDoc。 当前,它为文件中的每个记录创建1个IDoc。
源数据文件包含6个字段,当前映射如下:
- EmployeeID-输入E1BP_CORU_ACTIV-PERS_NO;
- WorkStartDate-移至E1BP_CORU_ACTIV-EX_CREATED_DATE,但我们将日期重新设置为yyyyMMdd;
- ActivityNumber-放入EDI_DC40-MESCOD;
- NetworkNumber-我们将值的一部分放入E1BP_CORU_ACTIV-ORDERID,另一部分放入E1BP_CORU_ACTIV-OPERATION;
- ActualWork-进入字段E1BP_CORU_ACTIV-LABOR_VAL; 和
- 来源-放入E1BP_CORU_ACTIV-CONF_TEXT。
因此,如果源文件包含以下数据,它将发布3个IDoc:
<?xml version =" 1.0" encoding =" UTF-8"?><记录> 0902160 2020/7/29 PM PM0000090790450150 92 记录> <记录>0902162 30/07/2020 PM PM0000090790450152 92 记录> <记录>0902160 2020/7/29 PP PM0000090790450150 92 记录>
我现在正在考虑更改映射,以使其不再将每个记录作为单独的IDoc发布,而是为每个员工发布一个IDoc。 然后应根据每个雇员的记录数, n 次填充段E1BP_CORU_ACTIV。 例如,如果我们收到上面的示例消息:
- IDoc 1-这将具有员工0902160的数据,但段E1BP_CORU_ACTIV填充了两次; 和
- IDoc 2-这将具有雇员0902162的数据,并且段E1BP_CORU_ACTIV仅出现一次。
我尝试按照在另一个问题中发现的类似情况进行尝试(示例),但我无法完全正常运行。 我尝试了几种不同的方法,但是我得到了1个IDoc并填充了3次E1BP_CORU_ACTIV,或者我得到了2个IDoc,但是所有的E1BP_CORU_ACTIV数据仅填充了IDoc 1,IDoc 2实际上是空的。
我没有将每个记录映射到IDoc,而是将其更改为:
我猜这不太正确,但是我以前从未使用过节点函数,因此不能完全确定它们的工作原理! 如果有人可以提供帮助,将不胜感激。 谢谢。
mapping.jpg (34.3 kB)
这可能是因为idoc在结构中出现了一个。
我建议尝试将idoc的xsd从1更改为无界或使用多重映射。
您好,Khusal
感谢您的消息,我已经将IDoc从1更新为无界。
我上周进行了一些更改,现在设法使它生效,但前提是源数据按EmployeeID排序。 如果源数据不正确,则某些数据会被添加到错误的IDoc中。
这是CONF_ACT1001 IDOC标头级别的映射,现在它为每个EmployeeID创建1个IDoc:
这是每次有员工记录时我们要填充的细分中的映射:
我将尝试使其今天开始工作,我想我只需要一些其他种类,但上周却无法解决! 谢谢。
一周热门 更多>