1

我在 6 或 7 岁的帖子中看到了与此相关的问题,但没有找到好的答案。DELV_NUM 元素在 WSDL 中,但我相信它被标记为可选,我可能是 suds 忽略它的原因。我没有制作 WSDL 文件,也无法对其进行更改。如果我可以将 suds 消息修改为像 Soapui 消息一样,则响应应该可以正常工作。我仅限于修补和修改 suds,因为它是 Inductive Automation 的 Ignition 平台的一部分。

这是suds发送的消息请求

在此处输入图像描述

这是来自 Soapui 使用相同 WSDL 的消息请求

在此处输入图像描述

如果有帮助,我可以分享 WSDL。谢谢

4

1 回答 1

0

In order to add the element to the request, you can use the client.factory.create() method.

Solution could work like this:

# Create a Processing_Req object
processing_req = client.factory.create('{http://wackerneuson.com/wn/in/Conveyor_Belt/ConveyorBeltProcessing}Processing_Req')

# Create a Record object which is a child of Processing_Req
record = client.factory.create('{http://wackerneuson.com/wn/if/Conveyor_Belt/ConveyorBeltProcessing}Processing_Req.record')

# set the DELV_NUM element which is a child of the record element.
record.DELV_NUM = '82934258'

# append the new record object to the processing_req object
processing_req.record.append(record)

# make the request with the new record object created and populated
request = client.service.Processing_OS(record)
于 2016-07-13T01:28:53.923 回答