Jshang
Jshang

Reputation: 1

How to use Zeep to skip first elements and only pass second elements in Python

I have SOAP request example below. Would like to skip "Request_References" elements and only pass "Response_Filter" using Zeep

<?xml version="1.0" encoding="UTF-8"?>
<wd:Get_Workers_Request xmlns:wd="urn:com.workday/bsvc" wd:version="v38.0">
    <wd:Request_References
        wd:Skip_Non_Existing_Instances="true"
        wd:Ignore_Invalid_References="true">
        <wd:Worker_Reference>
            <wd:ID wd:type="Employee_ID">abcdef</wd:ID>
        </wd:Worker_Reference>
    </wd:Request_References>
    <wd:Response_Filter>
        <wd:As_Of_Effective_Date>2022-09-03</wd:As_Of_Effective_Date>
        <wd:As_Of_Entry_DateTime>2022-09-03T14:26:34</wd:As_Of_Entry_DateTime>
        <wd:Page>1</wd:Page>
        <wd:Count>100</wd:Count>
    </wd:Response_Filter>
</wd:Get_Workers_Request>

If I pass request_dict as below, it works

request_dict = { 
    'Worker_Reference': { 
        'ID': { 
            'type': 'Employee_ID', 
            '_value_1': employee_id 
        }, 
        'Descriptor': None 
    }, 
    'Skip_Non_Existing_Instances': None, 
    'Ignore_Invalid_References': None 
} 

If I want to skip "Request_References" elements using code below, then it doesn't work.

client = Client(url, wsse=UsernameToken(user, password), plugins=[history]) 


request_dict = { 
    'Request_References': xsd.SkipValue, 
    'Response_Filter': { 
        'Page': '1', 
        'Count': '1' 
    }
}


client.service.Get_Workers(request_dict)
 

Reall

Upvotes: 0

Views: 190

Answers (1)

Jshang
Jshang

Reputation: 1

Figured it out. Here is the answer

request_dict = { 
    'Worker_Reference': { 
        'ID': { 
            'type': 'Employee_ID', 
            '_value_1': employee_id 
        }, 
        'Descriptor': None 
    }, 
    'Skip_Non_Existing_Instances': None, 
    'Ignore_Invalid_References': None 
} 

filter_dict = { 
    'Page':1, 
    'Count': 1 
} 


try :
    print (client.service.Get_Workers(Request_References=request_dict,Response_Filter=filter_dict ))
except Exception:
    pass

Upvotes: 0

Related Questions