SAP PI PO 接口常见问题处理:应用程序使用内容计划

您遇到以下两种情况之一:
•XI 消息通过 XI 适配器发送,内容计划值将在来自应用程序的 HTTP 头中设置。
•通过 XI 适配器接收 XI 消息,并且将在应用程序中处理来自 HTTP 头的内容计划。

原因和条件

正在将 SAP Process Integration 用作应用程序系统中的本地集成引擎。

具有上述场景之一。对于技术适配器(例如文件适配器),将有效负载写入文件。例如,同时将文件名发送到文件适配器。先前支持的 XI 消息协议中的 HTTP 头字段,例如“内容类型”或“内容描述”不能用于此。

解决方案

XI 适配器提供从 XI 请求消息的 HTTP 头设置或接收内容计划的选项(无确认,因为这不包含附件)。

示例:

内容计划:attachment;filename="soap-a3b11c506f1d11e2cf05000000829f42@sap.com.xml"

发送方系统(本地集成引擎)

在发送方系统中,应用程序调用出站代理并由此生成 XI 消息。应用程序可以使用 SAP Note 2422045 中的 API 来设置动态头中的值。

如果上述示例使用名为 "MainDocument" 的附件发送,动态头设置如下
•命名空间 "http://sap.com/xi/XI/Message/30/Disposition"
•名称 "MainDocument"
•值 "attachment;filename=soap-a3b11c506f1d11e2cf05000000829f42@sap.com.xml"

在出站 XI 适配器中,每个附件的内容计划值由动态头确定。XI 消息的每个附件都以名称列在清单中,从而从动态头接收内容计划的值。

示例清单:

<?xml version="1.0" encoding="utf-8"?>
<SAP:Manifest>
  <SAP:Payload xlink:href="cid:payload-4310261D81C41EDA98DB006272CCB1A9@sap.com">
    <SAP:Name>MainDocument</SAP:Name>
    <SAP:Description/>
    <SAP:Type>Application</SAP:Type>
    <SAP:Disposition>
    attachment;filename=soap-a3b11c506f1d11e2cf05000000829f42@sap.com.xmlSAP:Disposition> </SAP:Payload>
</SAP:Manifest>

因此,管理员可以在接收方系统的 XI 监控器中看到每个附件的相关内容计划值。

从而为 HTTP 头中的附件设置内容规划:
内容计划:attachment;filename=soap-a3b11c506f1d11e2cf05000000829f42@sap.com.xml
中央集成服务器 (IS)

在出站 XI 适配器中,将 XI 消息发送到接收方系统。接收方系统的类型决定确定哪种配置以及如何处理内容计划:
•接收方类型:应用程序系统中的中央集成服务器或本地集成引擎

将确定与通信通道的接收方协议,以及这种情况下,确定在 XI 消息处理期间将如何使用内容计划的操作:

通信通道中的技术属性 "passDisposition":
◦属性不存在,则使用缺省值 "0" => 内容计划处于非活动状态
◦存在值为 "0" 的属性 => 内容计划处于非活动状态
◦存在值为 "1" 的属性 => 内容计划处于活动状态
•接收方类型:适配器框架 (AFW) => 内容计划处于活动状态


确定内容计划操作后,将执行以下步骤。
•活动
◦在清单中设置动态头中的内容计划(如果可用)。
如果动态头中的内容计划值为初始值,则删除内容计划。
◦清单中的内容计划在 HTTP 头中设置,如上所述。
•非活动
◦在清单中删除附件的内容计划值。
◦将删除命名空间 = "http://sap.com/xi/XI/Message/30/Disposition" 的动态头中的条目。

接收方系统(本地集成引擎)

在入站 XI 适配器中,确定每个附件的内容计划值。XI 消息的每个附件都列在清单中,并带有名称和内容计划。

因此,管理员可以在 XI 监控器中看到每个附件的相关内容计划值。

示例清单:

<?xml version="1.0" encoding="utf-8"?>
<SAP:Manifest>
  <SAP:Payload xlink:href="cid:payload-4310261D81C41EDA98DB006272CCB1A9@sap.com">  
    <SAP:Name>MainDocument</SAP:Name>
    <SAP:Description/>
    <SAP:Type>Application</SAP:Type>
    <SAP:Disposition>
    attachment;filename=soap-a3b11c506f1d11e2cf05000000829f42@sap.com.xm
    </lSAP:Disposition>
  </SAP:Payload>
</SAP:Manifest>

此外,将内容计划值与清单中的附件名称一起写入 XI 消息的动态头。

如果上述示例使用名为 "MainDocument" 的附件发送,动态头如下所示:
•命名空间 "http://sap.com/xi/XI/Message/30/Disposition"
•名称 "MainDocument"
•值 "attachment;filename=soap-a3b11c506f1d11e2cf05000000829f42@sap.com.xml"

应用程序的入站代理在接收方系统中调用。应用程序可使用 SAP Note 2422045 中的 API 来访问动态头中的条目。
 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SAP爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值