1

I have seen related questions to this in posts that are 6 or 7 years old, but have not found a good answer. The DELV_NUM element is in the WSDL, but I believe it is marked as optional and mybe the reason suds ignores it. I did not make the WSDL file and cannot make changes to it. If I can modify the suds message to appear like the Soapui message, the response should work fine. I am limited to patching and modifying suds, as it is part of Inductive Automation's Ignition platform.

This is the message request sent from suds

enter image description here

This is the message request from Soapui using the same WSDL

enter image description here

I can share the WSDL if that would help. Thanks

reza.cse08
  • 5,938
  • 48
  • 39
John P
  • 11
  • 1

1 Answers1

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)
Edwardt
  • 147
  • 6