Announcing the Saviynt Knowledge Exchange unifying the Saviynt forums, documentation, training,
and more in a single search tool across platforms. Read the announcement here.

REST Connector listField parameter syntax for Apigee integration

rhawes
New Contributor II
New Contributor II
Hi, Team
 
Hoping for some help here. We are trying to integrate with an application through Apigee for the Account and Entitlement recon. Our dev environment is on 23.3, but only up to 23.1 is an option in the Product Version.
 
Apigee is returning the api response below:
 
{
   "UserAccount":{
      "UserAccount":[
         {
            "accountStatus":"INACTIVE",
            "defaultLocale":"en_US",
            "accountId":"218",
            "lastModifiedDateTime":"2023-02-14T17:20:36.000",
            "createdDateTime":"2018-06-17T08:04:04.000",
            "accountUuid":"b0a0f910-defb-4f4a-1700-cd021605f8a9",
            "timeZone":"US/Eastern",
            "userType":"employee",
            "email":"hrsuccessfactorsqatestmailbox@",
            "username":"zzzzaa",
            "accountIsLocked":"FALSE"
         },
         {
            "accountStatus":"INACTIVE",
            "defaultLocale":"en_US",
            "accountId":"5297",
            "lastModifiedDateTime":"2023-02-14T17:20:38.000",
            "createdDateTime":"2018-06-17T08:04:47.000",
            "accountUuid":"76a5f910-defb-4f4a-1700-cd021605f8a9",
            "timeZone":"US/Eastern",
            "userType":"employee",
            "email":"hrsuccessfactorsqatestmailbox@",
            "username":"zzzzzz",
            "accountIsLocked":"FALSE"
         }
      ]
   }
}
 
The import job is completing successfully, but importing 0 accounts. I believe the issue is with the syntax in the listField parameter because the json response duplicates the UserAccount field. Can anyone provide any guidance on how the REST connector could properly parse the response?
 
{
  "accountParams": {
    "connection": "acctAuth",
    "processingType": "SequentialAndIterative",
    "statusAndThresholdConfig": {
      "statusColumn": "status",
      "activeStatus": [
        "ACTIVE"
      ],
      "deleteLinks": true,
      "accountThresholdValue": 300,
      "correlateInactiveAccounts": false,
      "inactivateAccountsNotInFile": true,
      "deleteAccEntForActiveAccounts": true
    },
    "call": {
      "call1": {
        "callOrder": 0,
        "stageNumber": 0,
        "http": {
          "url": "apigeeurl",
          "httpHeaders": {
            "Authorization": "${access_token}",
            "Accept": "application/json"
          },
          "httpContentType": "application/json",
          "httpMethod": "GET"
        },
        "listField": "UserAccount.UserAccount",
        "keyField": "accountID",
        "colsToPropsMap": {
          "accountID": "accountUuid~#~char",
          "name": "username~#~char",
          "status": "accountStatus~#~char",
          "accounttype": "userType~#~char",
          "customproperty1": "email~#~char",
          "customproperty2": "accountIsLocked~#~char",
          "customproperty3": "createdDateTime~#~char",
          "customproperty4": "lastModifiedDateTime~#~char",
          "customproperty5": "timeZone~#~char",
          "customproperty6": "defaultLocale~#~char"
        }
      }
    }
  },
 
Any help would be appreciated. 

Thanks,
Richard
1 REPLY 1

SB
Saviynt Employee
Saviynt Employee

Can you update the below 2 changes in your JSON and then try

  • "listField": "UserAccount"
  • "name": "UserAccount.username~#~char" - for all you field mappings use "UserAccount.fieldname"

Regards,
Sahil