B1WS订单服务GetByParams抛出" XML文档中有错误(7,2314)。"

2020-08-24 04:52发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在尝试使用B1WS更新销售订单,但是在使用GetByParams时出现如下错误

InnerException :在将字符串转换为Date Time时,在将每个变量放入DateTime对象

之前解析该字符串。

InnerException :确保方法参数的格式正确。

我的示例代码:

将orderDocSvc视作OrdersService.OrdersService = New OrdersService.OrdersService()

将Header作为OrdersService.MsgHeader = New OrdersService.MsgHeader()

Header.ServiceName = OrdersService.MsgHeaderServiceName.OrdersService Header.ServiceNameSpecified = True

Header.SessionID = l_sessID.ToString()

orderDocSvc.MsgHeaderValue =标头

将mparams用作OrdersService.DocumentParams = New OrdersService.DocumentParams()

mparams.DocEntry = 17290

mparams.DocEntrySpecified =真

将orderDoc视为OrdersService.Document = orderDocSvc.GetByParams(mparams)//抛出错误

orderDoc.Comments ="测试更新"

orderDocSvc.Update(orderDoc);

上面的代码是否有问题? 看起来XML反序列化有问题。

请建议我

谢谢

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在尝试使用B1WS更新销售订单,但是在使用GetByParams时出现如下错误

InnerException :在将字符串转换为Date Time时,在将每个变量放入DateTime对象

之前解析该字符串。

InnerException :确保方法参数的格式正确。

我的示例代码:

将orderDocSvc视作OrdersService.OrdersService = New OrdersService.OrdersService()

将Header作为OrdersService.MsgHeader = New OrdersService.MsgHeader()

Header.ServiceName = OrdersService.MsgHeaderServiceName.OrdersService Header.ServiceNameSpecified = True

Header.SessionID = l_sessID.ToString()

orderDocSvc.MsgHeaderValue =标头

将mparams用作OrdersService.DocumentParams = New OrdersService.DocumentParams()

mparams.DocEntry = 17290

mparams.DocEntrySpecified =真

将orderDoc视为OrdersService.Document = orderDocSvc.GetByParams(mparams)//抛出错误

orderDoc.Comments ="测试更新"

orderDocSvc.Update(orderDoc);

上面的代码是否有问题? 看起来XML反序列化有问题。

请建议我

谢谢

付费偷看设置
发送
5条回答
jovirus
1楼-- · 2020-08-24 05:08

你好拉胡尔,

错误与SOAP响应xml反序列化有关,该解析是将日期时间(DocDate,DocDueDate等)从字符串格式解析为日期时间。

1。在使用B1WS之前,是否已使用WsdlServicesGenerator工具为公司数据库生成WSDL文件? 它将从DI Server下载对象架构,并根据公司数据库生成WSDL文件。 将包括UDF/UDO。

2。如果是,请与不带B1WS的普通DI Server测试相同的功能。
请检查DI Server返回的DocDate格式,并检查OS区域设置中的日期格式。 您可以尝试更改操作系统的区域设置。

Yatsea的问候

风早神人
2楼-- · 2020-08-24 05:13

您是否已解决此问题?

梦想连接
3楼-- · 2020-08-24 05:22

感谢Yatsea,

我已经使用WsdlServicesGenerator工具重新生成了WSDL文件,但错误仍然存​​在,我也尝试过使用本地系统日期格式,但仍然保持不变。

请建议

lukcy2020
4楼-- · 2020-08-24 05:08

亲爱的Yatsea,

感谢您的支持和建议。

1。我们直接尝试使用DI Server。 我们可以添加文档,但是执行更新时仍然会出现问题。

a。我们已经检查了论坛上提到的GetByParams方法的解决方案,但是在调试过程中,应用程序会跳过此步骤,默认情况下会使用原始xml。

2。我们还尝试了Debug B1WSHandler,但无法附加aspnet_wp.exe进程进行调试。

我们还在论坛上更新了以上评论。

您能进一步指导我们吗?

派大星 ヾ
5楼-- · 2020-08-24 05:04

大家好,我在一段时间前也在这个问题上苦苦挣扎,所以我与Rahul Sonawane 作为解决方案-我也相信有人也会在寻找解决方案,因此就在这里-您需要打开wsdl文件, 托管在您的IIS上,然后打开IIS(GoTo B1WS-WebReferences-任何WSDL文件)

现在,在我的情况下,我使用的是" OrdersService.wsdl",因此我编辑了该文件并注释了第741行,但是在 Rahul Sonawane 是另一行。 因此,您需要使用被引用的wsdl文件,从文件中编辑一些行,然后更新引用项目中的服务,然后再次执行我们的代码部分,然后@成功一点。

 
 <!-->
 
 
 

所以我希望这会像我这样帮助一个人:)...如果您仍然在这个问题上苦苦挣扎,可以直接给我...我很乐意为您提供帮助。

如果有人尝试使用IIS上托管的B1WS应用程序进行调试,请找到以下屏幕截图,我相信这会有所帮助。

再次感谢您 Rahul Sonawane 李亚瑟

此致

Rahul Jain

一周热门 更多>