У меня возникают проблемы с выяснением, почему этот запрос SOAP продолжает выдавать ошибку «Недопустимый запрос». Я должен загрузить данные XML в рабочий день с помощью клиента suds. Используемый мной XML-код работает в Workday Studio, но когда я копирую XML-код в свой скрипт на python, он выдает ошибку:
suds.WebFault: Server raised fault: 'Invalid request'
Я добавил свой код ниже, включающий XML, который я пытаюсь отправить. Любой совет будет высоко ценится!
xmlstring = """<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-
ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:bsvc="urn:com.workday/bsvc">
<SOAP-ENV:Header> <bsvc:Workday_Common_Header> <!--Optional:-->
<bsvc:Include_Reference_Descriptors_In_Response>true</bsvc:Include_Reference_Descriptors_In_Response> </bsvc:Workday_Common_Header>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<bsvc:Submit_Customer_Contract_Request
xmlns:wd="urn:com.workday/bsvc"
wd:Add_Only="true"
wd:version="v31.0">
<wd:Business_Process_Parameters>
<wd:Auto_Complete>true</wd:Auto_Complete>
<wd:Comment_Data>
</wd:Comment_Data>
</wd:Business_Process_Parameters>
<wd:Customer_Contract_Data>
<wd:Submit>true</wd:Submit>
<wd:Locked_in_Workday>true</wd:Locked_in_Workday>
<wd:Company_Reference>
<wd:ID wd:type="Company_Reference_ID">WEST</wd:ID>
</wd:Company_Reference>
<wd:Multiple_Element_Revenue_Allocation>true</wd:Multiple_Element_Revenue_Allocation>
<wd:Lower_Range_Percentage>0</wd:Lower_Range_Percentage>
<wd:Upper_Range_Percentage>0</wd:Upper_Range_Percentage>
<wd:Sold_To_Customer_Reference>
<wd:ID wd:type="Customer_ID">CUS2998</wd:ID>
</wd:Sold_To_Customer_Reference>
<wd:Customer_Contract_Type_Reference>
<wd:ID wd:type="Contract_Type_ID">CCT_RENEWAL</wd:ID>
</wd:Customer_Contract_Type_Reference>
<wd:Version>0</wd:Version>
<wd:Contract_Description>TEST INT</wd:Contract_Description>
<wd:Payment_Terms_Reference>
<wd:ID wd:type="Payment_Terms_ID">NET30</wd:ID>
</wd:Payment_Terms_Reference>
<wd:Customer_Contract_Effective_Date>2018-09-11</wd:Customer_Contract_Effective_Date>
<wd:Contract_Signed_Date>2018-09-11</wd:Contract_Signed_Date>
<wd:PO_Number>PO666</wd:PO_Number>
<wd:Current_Contract_Amount>666</wd:Current_Contract_Amount>
<wd:Contract_Notes>Test Notes</wd:Contract_Notes>
<wd:Billing_Schedule_From_Date>2018-09-11</wd:Billing_Schedule_From_Date>
<wd:Billing_Schedule_To_Date>2018-09-11</wd:Billing_Schedule_To_Date>
<wd:Customer_Contract_Line_Replacement_Data>
<wd:Line_Number>10</wd:Line_Number>
<wd:Sales_Item_Reference>
<wd:ID wd:type="Sales_Item_ID">SI_EXPRESS</wd:ID>
</wd:Sales_Item_Reference>
<wd:Contract_Line_Type_Reference>
<wd:ID wd:type="Contract_Line_Type_ID">SUBSCRIPTION</wd:ID>
</wd:Contract_Line_Type_Reference>
<wd:Customer_Contract_Line_Start_Date>2018-09-11</wd:Customer_Contract_Line_Start_Date>
<wd:Customer_Contract_Line_End_Date>2018-09-11</wd:Customer_Contract_Line_End_Date>
<wd:Contract_Line_Description>Test Description</wd:Contract_Line_Description>
<wd:Quantity>1</wd:Quantity>
<wd:Unit_of_Measure_Reference>
<wd:ID wd:type="UN_CEFACT_Common_Code_ID">UOM_SEAT</wd:ID>
</wd:Unit_of_Measure_Reference>
<wd:Quantity_2>1</wd:Quantity_2>
<wd:Unit_of_Measure_2_Reference>
<wd:ID wd:type="UN_CEFACT_Common_Code_ID">UOM_EACH</wd:ID>
</wd:Unit_of_Measure_2_Reference>
<wd:Unit_Cost>666</wd:Unit_Cost>
<wd:Extended_Amount>666</wd:Extended_Amount>
<wd:Exclude_From_Calculation>false</wd:Exclude_From_Calculation>
<wd:Renewable>false</wd:Renewable>
<wd:New_Business>true</wd:New_Business>
<wd:Deferred_Revenue>true</wd:Deferred_Revenue>
<wd:Customer_Contract_Line_Revenue_Override_Amount>0</wd:Customer_Contract_Line_Revenue_Override_Amount>
<wd:Default_Worktags_Reference>
<wd:ID wd:type="Cost_Center_Reference_ID">951</wd:ID>
</wd:Default_Worktags_Reference>
</wd:Customer_Contract_Line_Replacement_Data>
</wd:Customer_Contract_Data>
</bsvc:Submit_Customer_Contract_Request>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>"""
xml = Raw(xmlstring)
print(xml)
result = client.service.Submit_Customer_Contract(xml)