处理 SWIFT 消息包中类型指示器为 21 的服务消息失败

应用对象
BizTalk Server Branch 2010 BizTalk Server Developer 2010 BizTalk Server Enterprise 2010 BizTalk Server Standard 2010 BizTalk Server 2013 Branch BizTalk Server 2013 Developer BizTalk Server 2013 Enterprise BizTalk Server 2013 R2 Branch BizTalk Server 2013 R2 Developer BizTalk Server 2013 R2 Enterprise BizTalk Server 2013 R2 Standard BizTalk Server 2013 Standard

症状

请考虑以下情形:

  • 在 Microsoft BizTalk Server 上应用 SWIFT 消息包。
  • 您尝试处理类型指示器为 21 的服务消息。

在这种情况下,可能会收到以下错误消息:

注意

将失败消息发布到 MessageBox。 详细信息:交换 ID 为 {InterchangeID} 的 S21_FIN_ACKNAK 类型的单个消息已由 SWIFT 反汇编程序在 MessageBox 数据库中标记为 A4SWIFT_Failed=True。

此消息失败,出现 0 个解析错误、1 个 XML 验证错误和 0 个 BRE 验证错误。

通过订阅 A4SWIFT_Failed=True 的消息,可以从 MessageBox 数据库中的失败消息中提取错误详细信息。

      

原因

出现此问题的原因是消息包的 Microsoft.Solutions.FinancialServices.SWIFT.FrrSchemas.dll 文件中的 MTS21_FIN_ACKNAK.xsd 架构要求消息具有预告片块。 但是,类型指示器为 21 的服务消息没有预告片,并且 SWIFT 用户手册指出预告片块对于此消息类型是可选的。

累积更新信息

解决此问题的修补程序包含在 SWIFT 消息包 2015 的 累积更新 2 中。

状态

Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。