修复:当 BizTalk 适配器包中的 WCF-SAP 适配器向 SAP 系统执行 RFC 或 BAPI 时,出现“格式化程序在尝试反序列化邮件时引发异常”错误

应用对象
BizTalk Adapters

本文适用于以下产品:

  • BizTalk Adapter Pack 2.0
  • BizTalk Adapter Pack 2010

症状

请考虑以下情形:

  • 在计算机上安装 Microsoft BizTalk Adapter for mySAP Business Suite 3.0。

    注意 BizTalk Adapter for mySAP Business Suite 3.0 包含在 Microsoft BizTalk Adapter Pack 2.0 或 Microsoft BizTalk Adapter Pack 2010 中。

  • WCF-SAP 适配器 (RFC) 或业务应用程序编程接口 (BAPI) 执行远程函数调用。

  • SAP 系统返回 RFC_BCD 数据类型的负十进制值。

在此方案中,可能会收到类似以下内容的错误:

注意

格式化程序在尝试反序列化消息时引发异常:
尝试反序列化参数 http://Microsoft.LobServices.Sap/2007/03/Rfc/:EXPHEADER 时出错。
InnerException 消息为“反序列化 microsoft.lobservices.sap._2007._03.Types.Rfc.BAPIMEPOHEADER 类型的对象时出错。
值 '-*<decimal value>' 无法解析为类型 'decimal'。'

      

原因

出现此问题的原因是RFC_BCD值错误地转换为 .NET 字符串数据类型。

当RFC_BCD值转换为 .NET 字符串数据类型时,WCF-SAP 适配器不会分配足够的内存位置来转换该值。 因此,会遇到异常。

解决方法

累积更新信息

对于 BizTalk Adapter Pack 2010

解决此问题的修补程序包含在 BizTalk Adapter Pack 2010 的累积更新包 2 中。 有关如何获取此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2572999 适用于 BizTalk Adapter Pack 2010 的累积更新程序包 2

对于 BizTalk Adapter Pack 2.0

解决此问题的修补程序包含在 BizTalk Adapter Pack 2.0 的累积更新程序包 3 中。

有关如何获取累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2557150 适用于 BizTalk Adapter Pack 2.0 的累积更新包 3

状态

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

详细信息

有关 SAP 数据类型的详细信息,请访问以下 MSDN 网站:

有关 SAP 数据类型的一般信息有关 BizTalk Server 修补程序的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2003907 有关BizTalk Server修补程序的信息