Account Aggregation Only Returning One Account For SOAP/XML Web Connection

Hello,

I am trying to spin up a new Web Service connection with a SOAP API. The system has a total of 9 accounts, however when I aggregate I am only showing one account (Bank - Dev Domain).

XML Result example:

<?xml version='1.0' encoding='UTF-8'?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
    <env:Header/>
    <env:Body>
        <ns2:getUsersInfoResponse xmlns:ns2="http://service.admin.ws.five9.com/">
            <return>
                <generalInfo>
                    <fullName>Example Bank</fullName>
                    <id>1234</id>
                </generalInfo>
                <generalInfo>
                    <fullName>Andrew Tim</fullName>
                    <id>4567</id>
                </generalInfo>
                .....
            </return>
        </ns2:getUsersInfoResponse>
    </env:Body>
</env:Envelope>

The account aggregation worked as intended for the 1 account. However, it does not seem to pull in the other 8 accounts like I would expect. Am I missing something here? When I use https://xpather.com/ the XPaths I provide are accurate and do return all 9 accounts. I have tried every variation of XML I could think up but nothing seems to work.

Hi @joegnatis ,
Welcome to the SailPoint Developer Community!

Did you try it with postman? all accounts are fetching or not?

@Rohit_Sahu Yes, I was able to pull the accounts in postman and in PowerShell.

You can see my how root path and response mapping are configured:

Root path: .//env:Envelope/env:Body/ns2:getUsersInfoResponse/return/generalInfo

I can only put one photo per post. This is the response from postman, there are 9 accounts being returned.

Try specifying Root path as just (don’t go too deep):
//env:Envelope/env:Body/ns2:getUsersInfoResponse

Then your attribute path should include return/generalInfo/xxxx

Good idea. I did try a lot of variations, but I just tried the following again:

  1. //env:Envelope/env:Body/ns2:getUsersInfoResponse + return/generalInfo/xxxx → Got 0 accounts
  2. .//env:Envelope/env:Body/ns2:getUsersInfoResponse + return/generalInfo/xxxx → Got 0 accounts
  3. .//env:Envelope/env:Body/ns2:getUsersInfoResponse + /return/generalInfo/xxxx → Got 0 accounts
  4. .//env:Envelope/env:Body/ns2:getUsersInfoResponse/return + generalInfo/xxxx → Got 1 account

I wonder if there is an issue with the body. To get all users, the API requires me to pass .* as a parameter. Could this be a SailPoint special character?

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
        <getUsersInfo xmlns="http://service.admin.ws.five9.com/">
            <userNamePattern xmlns="">.*</userNamePattern>
        </getUsersInfo>
    </soap:Body>
</soap:Envelope>>

Hi @joegnatis ,
Thanks for your confirmation.

  • In the Root Path, use the following XPath: .//env:Envelope/env:Body/ns2:getUsersInfoResponse/return/generalInfo

  • In the XPath Namespace Mapping map the following details for Namespace Prefix and Namespace URl

       xmlns:env : http://schemas.xmlsoap.org/soap/envelope/
       xmlns:ns2 : http://service.admin.ws.five9.com/
    
  • your response mapping looks good.

Try this, I hope it will work.

Hi @Rohit_Sahu,

Thank you for your response. I followed your instruction exactly, and I got this error from the aggregation: “sailpoint.connector.ConnectorException: Error: Error extracting response from XML” I also tested using the following XPath Namespace Mapping:

 fake: fake

This also returned the same error. However, I had been using the below XPath Namespace Mapping and it was working (returning 1 account). Additionally, leaving the XPath Namespace Mapping blank also returned 1 account. I think my below XPath Namespace Mapping is correct.

env : http://schemas.xmlsoap.org/soap/envelope/
ns2 : http://service.admin.ws.five9.com/

Hi @joegnatis ,

If it is not fetching all the accounts, then I think you should go with the pagination rule.

1 Like

Hi Rohit. The API does not support pagination. Furthermore, there are only 9 accounts in the system so I wouldn’t expect pagination to be required. Seems to me it is a configuration issue. Is that how you have had to do it in the past?