Ошибка неверного запроса при использовании клиента suds для загрузки данных XML - PullRequest
0 голосов
/ 12 сентября 2018

У меня возникают проблемы с выяснением, почему этот запрос 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)
...