REST - import results in null error coming from "acctEntParams" section

ekorh
Regular Contributor
Regular Contributor

Hi,

We are configuring REST connector to import accounts and their accesses from D365 system. Customer has tried with the connectors Saviynt provides for D365 specifically but they don't provide suitable solutions for us, and this is why we are now trying to configure the connection with REST connector. 

Everything else works as we want. Accounts are imported. Roles are correlated with their child roles and organizations are also imported correctly. 

However, we are stopped when accounts should be correlated with their accesses. We can see null error in UI and 401 + EOFerror in logs. In our troubleshooting sessions we have verified that it comes from the "acctEntParams" section. 

I'm posting below our JSON for "acctEntParams" and also response structure from API. Also posting the error from UI and some log entries.

JSON:

 "acctEntParams": {
    "processingType": "http",
    "entTypes": {
      "Roles": {
        "call": {
          "call1": {
            "connection": "userAuth",
            "acctKeyField": "accountID",
            "entKeyField": "entitlementID",
            "callOrder": 0,
            "stageNumber": 0,
            "http": {
              "httpHeaders": {
                "Authorization": "${access_token}"
              },
              "url": "https://xxxxxxxxxxxx",
              "httpContentType": "application/json",
              "httpMethod": "GET"
            },
            "listField": "value",
            "acctIdPath": "UserId",
            "entIdPath": "SecurityRoleIdentifier",
            "pagination": {
              "offset": {
                "offsetParam": "$skip",
                "batchParam": "$top",
                "batchSize": 10000,
                "totalCountPath": 999999999
              }
            }
          }
        }
      }
    }
  }


API RESPONSE:
   { "@odata.context""https://xxxxxxxxxxxxx",
    "value": [
        {
            "@odata.etag""xxxxxxx",
            "UserId""xxxxxxx",
            "SecurityRoleIdentifier""xxxx",
            "AssignmentStatus""xxx",
            "AssignmentMode""xxx",
            "SecurityRoleName""xxxx",
            "UserLicenseType""xxxx"
        },
        {
            "@odata.etag""xxxx",
            "UserId""xxxx",
            "SecurityRoleIdentifier""xxx",
            "AssignmentStatus""xxx",
            "AssignmentMode""xxx",
            "SecurityRoleName""xxx",
            "UserLicenseType""xxx"
        }
}

UI ERROR:
Error - to Import Data correctly: Cannot invoke
method put() on null object

LOGS:
{log":"java.io.EOFException\n"
{log":"\u0009at java.util.zip.GZIPInputStream.readUByte(GZIPInputStream.java:268)\n"
{log":"\u0009at java.util.zip.GZIPInputStream.readUShort(GZIPInputStream.java:258)\n"
{log":"\u0009at java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:164)\n"
{log":"\u0009at java.util.zip.GZIPInputStream.\u003cinit\u003e(GZIPInputStream.java:79)\n"
{log":"\u0009at java.util.zip.GZIPInputStream.\u003cinit\u003e(GZIPInputStream.java:91)\n"
 
Best,
Ella
4 REPLIES 4

rushikeshvartak
All-Star
All-Star

Data is coming in array. try keeping listsfield as “”


Regards,
Rushikesh Vartak
If the response is helpful, please click Accept As Solution and kudos it.

Hi,

Still getting the same null error after that change. Logs also show same errors as in the first message (EOFException + GZIP errors).

processingType should be inside call1


Regards,
Rushikesh Vartak
If the response is helpful, please click Accept As Solution and kudos it.

Vedanth_BK
Saviynt Employee
Saviynt Employee

Hi,

Please include the processingType inside the call-call1. I've included an example below:


"acctEntParams": {
"entTypes": {
"Roles": {
"call": {
"call1": {
"processingType": "http",
"connection": "userAuth",
"http": {
"url": "****",
"httpContentType": "application/json",
"httpMethod": "GET",
"httpHeaders": {
"Authorization": "${access_token}"
}
},
"listField": "value",
"acctKeyField": "accountID",
"entKeyField": "entitlementID",
"acctIdPath": "UserId",
"entIdPath": "SecurityRoleIdentifier"
}
}
}
}
}

Thank you 
Vedanth B.K