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?

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.