DataHub-自定义/覆盖订单Idoc

2020-09-29 17:59发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


自1个月以来,我一直在使用数据中心,只是从SAP导入主数据或从Hybris向SAP ERP下达销售订单。

当前正在尝试自定义iDoc结构(要用ZSALESORDERCREATEFROMDAT202代替SALESORDERCREATEFROMDAT202),其中也包括标头值和iDocType的更改。 尝试了如下所示的少量努力,但未获得任何成功:

  1. 从新的idoc.xsd创建的自定义iDoc类,替换为自定义的* .datahub-extension-spring.xml(别名为sapSalesOrderCreateFromDat202ClassProvider)

  2. 替换并尝试覆盖某些标头类型,例如具有TransformationExpression = $ {saporder.zordermessagetype}的MESTYP,其中saporder.zordermessagetype在属性中定义。

我知道我们缺乏扩展它的文档,还尝试在此处查找: https://answers.sap.com/questions/12752626/customize-sap-datahub-integration.html

我可以从一些指针/指导开始以达到相同的目的。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


自1个月以来,我一直在使用数据中心,只是从SAP导入主数据或从Hybris向SAP ERP下达销售订单。

当前正在尝试自定义iDoc结构(要用ZSALESORDERCREATEFROMDAT202代替SALESORDERCREATEFROMDAT202),其中也包括标头值和iDocType的更改。 尝试了如下所示的少量努力,但未获得任何成功:

  1. 从新的idoc.xsd创建的自定义iDoc类,替换为自定义的* .datahub-extension-spring.xml(别名为sapSalesOrderCreateFromDat202ClassProvider)

  2. 替换并尝试覆盖某些标头类型,例如具有TransformationExpression = $ {saporder.zordermessagetype}的MESTYP,其中saporder.zordermessagetype在属性中定义。

我知道我们缺乏扩展它的文档,还尝试在此处查找: https://answers.sap.com/questions/12752626/customize-sap-datahub-integration.html

我可以从一些指针/指导开始以达到相同的目的。

付费偷看设置
发送
6条回答
软件心理学工程师
1楼-- · 2020-09-29 18:42

有关参考资源,这里是我的目标扩展xml和属性。链接文本

2楼-- · 2020-09-29 18:41
浮生未央
3楼-- · 2020-09-29 18:50

看看代码,TargetItem使用以下定义:

  
    SALESORDER_CREATEFROMDAT202 $ EDI_DC40 
    idockeyfield = SALESDOCUMENTIN 
  

SALESORDER_CREATEFROMDAT202 $ EDI_DC40

值" SALESORDER_CREATEFROMDAT202"是IDOC类名称。 实际上,' $ '是内部类名称分隔符。

奄奄一息的小鱼
4楼-- · 2020-09-29 18:45

您好,Uros,

您能否解决将自定义属性添加到iDoc的问题? 我现在面临着同样的问题。

xfwsx85
5楼-- · 2020-09-29 18:50

嗨罗宾,

是的,与您的观察一致,因此已经使用以下项目类型对其进行了尝试:

   ZSALESORDER_CREATEFROMDAT202 $ EDI_DC40 
  

........

其中" ZSALESORDER_CREATEFROMDAT202 $ EDI_DC40"已在extension-domain.xml中声明为目标项目,并且域文件夹中也存在接口。

落灬小鱼
6楼-- · 2020-09-29 18:53

想简要介绍到目前为止已尝试的方法:

** 方法1 :

在自定义扩展名(取决于saporder)中,基于可从客户端获得的自定义idoc xsd(其中SALESORDERCREATEFROMDAT202已扩展为ZSALESORDERCREATEFROMDAT202)创建了自定义iDoc类,并在我的自定义* -extension-spring.xml中将其注册为 :

  
   
      
          <!-允许以下行没有行中断,即使关闭值标签也不行->
          #{T(com.maxim.datahub.order.zsalesordercreatefromdata202.ZSALESORDERCREATEFROMDAT202)} 
      
  

  

意图是要替换" sapSalesOrderCreateFromDat202ClassProvider"这个自定义的iDoc类,该类确实无法解决。

方法2:除上述内容外,还尝试覆盖(名称为" SapErpSystem")来替换某些标头类型,例如,使用带有TransformationExpression = $ {saporder.zordermessagetype}的MESTYP,其中定义了saporder.zordermessagetype 在自定义" saporder.properties"文件中。

方法3:除了#1和#2,还尝试覆盖整个类型系统,其中每个项目类型都被新的自定义项目替换。 例如:

   ZSALESORDER_CREATEFROMDAT202 $ EDI_DC40 
       idockeyfield = SALESDOCUMENTIN 
       .......
  

以及所有在extension-domain.xml中创建和注册的域接口。 但这在加载扩展程序时导致了一些例外。

尽管尝试了上述所有方法,但输出的iDoc结构仍保持不变。

一周热门 更多>