您遇到以下两种情况之一:
•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 消息的每个附件都以名称列在清单中,从而从动态头接收内容计划的值。
示例清单:
- "1.0" encoding="utf-8"?>
- <SAP:Manifest>
- <SAP:Payload xlink:href="cid:payload-4310261D81C41EDA98DB006272CCB1A9@sap.com">
- <SAP:Name>MainDocumentSAP:Name>
- <SAP:Description/>
- <SAP:Type>ApplicationSAP: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 监控器中看到每个附件的相关内容计划值。
示例清单:
- "1.0" encoding="utf-8"?>
- <SAP:Manifest>
- <SAP:Payload xlink:href="cid:payload-4310261D81C41EDA98DB006272CCB1A9@sap.com">
- <SAP:Name>MainDocumentSAP:Name>
- <SAP:Description/>
- <SAP:Type>ApplicationSAP: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 来访问动态头中的条目。