支持注释 KB0396114
电子邮件
外部节点映射问题:面向 SAP Netweaver 的 CI9 SAP Business Network 适配器 - 采购订单场景
为您方便起见,此知识库文章由机器进行翻译。SAP Ariba 不会对有关机器翻译的准确性或完整性提供任何保证。您可以通过使用语言选择器切换到英语来查找原始内容。
问题

在 CI9 SAP Business Network 适配器版本中,在 SAP Business Network 适配器的订购单场景中 PI 映射 (MM_Custom_ORDERS_ORDERS05_2_CDF_cXML_XSD) 第二步之后生成的输出 cXML 消息,当使用一对一节点映射源节点中的值时,路径:“/ns0:Messages/ns0:Message1/cXML/Request/OrderRequest/ItemOut/BlanketItemExtrinsic”处的外部节点不会采用源节点中的值。

原因

映射中缺少用户定义的 java 函数 "setParentNode",需要将其用于映射此节点,而不是一对一映射以将值传递到父节点。当用于外部节点映射时,具有设置值为 的父节点的逻辑的用户定义的 java 函数将解决此问题。此功能用于 SAP Business Network 适配器自定义映射的 CI8 版本,且 CI9 自定义映射中缺少此功能。

解决方案

请在 CI9 Ariba SAP Business Network 适配器版本中针对订购单场景按照以下步骤解决此映射问题。

  1. 在命名空间下的自定义映射“MM_Custom_ORDERS_ORDERS05_2_CDF_cXML_XSD”中创建用户定义的函数
    http://ariba.com/xi/ASN/PurchaseOrder 的软件组件版本 ARIBA_NETWORK_ADAPTER CI9 下的 ariba.com

    1. 转到 Functions 选项卡,在 Functions 区域中添加名为“setParentNode”的新函数,如下所示

    相应地设置标题,将执行类型设置为“单个值”

    b.签名变量:此函数包含一个字符串类型的输入参数,将其命名为“输入”,如下所示


    c.添加逻辑以将值返回到父节点容器,如下所示

    d.保存消息映射并将其激活
  2. 在消息映射编辑器的 /ns0:Messages/ns0:Message1/cXML/Request/OrderRequest/ItemOut/BlanketItemDetail/Extrinsic 节点的映射中添加映射逻辑以使用用户定义的函数
    1. 导航到输出映射中的路径 /ns0:Messages/ns0:Message1/cXML/Request/OrderRequest/ItemOut/BlanketItemDetail/Extrinsic,如下所示

    1. 切换到编辑模式,然后在功能菜单的下拉菜单中单击用户定义的功能,如下所示

    现在,您应该能够看到新创建的函数“setParentNode”,以便在映射中使用

    1. 将函数拖动到映射编辑器中,并映射如下

    1. 保存映射并将其激活

    成功测试具有示例有效负载的映射:

    1. 完成上述更改后,使用“Extrinsic”节点中的值的示例有效负载测试映射,您现在可以看到目标节点正在按预期从源节点中选取值

附加信息

注意:或者,您可以参考 CI8 SAP Business Network 适配器版本的相同自定义映射,该映射针对此场景具有此用户定义的映射。上面详细说明了如何在 CI9 版本中为此映射添加此用户定义函数的步骤。

下面显示了同一场景的 CI8 版本映射的屏幕截图,供您参考

外部节点映射问题:面向 SAP Netweaver 的 CI9 SAP Business Network 适配器 - Purchase Order Scenario.pdf652.34 KB

适用产品

SAP Business Network 采购和供应链

使用条款  |  版权所有  |  安全披露  |  隐私