Question

How can I filter results with __encoded_query using SUDS api?

I have it, but doesnt work:

client = Client(WSDL_URL, username=USERNAME, password=PASSWORD)
records = client.service.getRecords(__limit = 100, __encoded_query='incident_state=3')
Was it helpful?

Solution

One way to filter results is using __inject:

   msg = \
          """<?xml version="1.0" encoding="UTF-8"?>
          <SOAP-ENV:Envelope xmlns:ns0="http://www.service-now.com/incident" 
              xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/" 
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
              xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
          <SOAP-ENV:Header/>
              <ns1:Body>
                  <ns0:getRecords>
                      <ns0:__encoded_query>status=0</ns0:__encoded_query>
                  </ns0:getRecords>
              </ns1:Body>
          </SOAP-ENV:Envelope>
            """

    records = client.service.getRecords(__inject = {'msg' : msg})
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top