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

Error while reconciling the accounts from the target application

adityachadde
New Contributor III
New Contributor III

Hi Team,

We are trying to reconcile the accounts from the target application and we are getting an error below:

Error - to Import Data correctly: Failed
url-url/users/null.js
on with Error
Message-{"status":404,"code":"E_USER_NOT_FOUND","m
essage":"The specified user cannot be
found.","details":"(DM_API_E_NO_MATCH)
[DM_API_E_NO_MATCH]error: \"There was no match in
the docbase for the qualification:
null\"","id":"f9673919-7639-4963-bfcd-18c1be282cc3
"}

We are using the below ImportAccountEntJSON:
{
"accountParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"successResponses": {
"statusCode": [
200,
201,
202,
203,
204,
205
]
},
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "URL/users?include-total=true",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "entries",
"keyField": "accountID",
"colsToPropsMap": {
"accountID": "title~#~char",
"name": "title~#~char"
},
"pagination": {
"page": {
"pageSizeParam": "items-per-page",
"pageSize": 1000,
"pageRecordCount": "completeResponseMap.page",
"pageNumberParam": "page",
"totalCountPath": "completeResponseMap.total",
"firstPageNumber": 1
}
}
},
"call2": {
"callOrder": 1,
"stageNumber": 1,
"http": {
"url": "URL/users/${accountName}.json",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"inputParams": {
"dependentCall": true
},
"listField": "properties",
"keyField": "accountID",
"nextApiKeyField": "accountID",
"colsToPropsMap": {
"accountID": "user_name~#~char",
"name": "user_name~#~char",
"status": "user_state~#~char",
"customproperty1": "user_source~#~char",
"customproperty2": "user_login_name~#~char",
"customproperty3": "user_ldap_dn~#~char",
"customproperty4": "user_address~#~char",
"customproperty5": "client_capability~#~char",
"customproperty6": "user_initials~#~char",
"customproperty7": "user_login_domain~#~char"
},
"statusConfig": {
"active": "0",
"inactive": "2"
}
}
}
},
"entitlementParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"entTypes": {
"Group": {
"entTypeOrder": 0,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "url/groups?include-total=true",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "entries",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "title~#~char",
"entitlement_value": "title~#~char"
},
"pagination": {
"page": {
"pageSizeParam": "items-per-page",
"pageSize": 1000,
"pageRecordCount": "completeResponseMap.page",
"pageNumberParam": "page",
"totalCountPath": "completeResponseMap.total",
"firstPageNumber": 1
}
}
}
}
}
}
},
"acctEntParams": {}
}

Here we are using multiple API calls to get the account details. In the first call, we are getting the account name and in the second call, we are passing the account name to get the account details. We have successfully reconciled 1236 accounts with all the details. For 1236 accounts it is working fine and passing the account name in the second call after this Saviynt is picking “null.json” as account name and we are getting mentioned error.

We have checked in the target application there is no user present who is having a null or empty value in the account name still Saviynt is getting a null value for the account name in the second API call.

What could be the issue? Please help us with this.

Best Regards,
Aditya Chadde

6 REPLIES 6

RakeshMG
Saviynt Employee
Saviynt Employee

Please refer to following document for sample Json's : https://docs.saviyntcloud.com/bundle/REST-v2020x/page/Content/Developers-Handbook.htm

 

{
"type": "multiCall",
"call": [
{
"name": "call1",
"connection": "acctAuth",
"url": "https://<url>/api/v2/users.json",
"httpMethod": "GET",
"httpHeaders": {
"Content-Type": "application/json",
"Authorization": "${access_token}"
},
"colsToPropsMap": {
"username": "id~#~char",
"customproperty1": "email~#~char"
},
"userResponsePath": "users"
},
{
"name": "call2",
"connection": "acctAuth",
"url": "https://<url>/api/v2/users/${userIdentifier}.json",
"httpMethod": "GET",
"httpHeaders": {
"Authorization": "${access_token}"
},
"colsToPropsMap": {
"username": "user.id~#~char",
"customproperty45": "user.email~#~char"
},
"userResponsePath": ""
}
]
}


​Regards

Rakesh M Goudar

Hi @RakeshMG,

Sample JSON which we are using is working as expected. We have successfully reconciled 1235 accounts with all the attributes we are getting an error for remaining accounts. Here in the second call we are getting null value as the username form the first call. But in target application there is no user present having null value for the username but still in Saviynt we are getting the null value.

What could be the reason for this could you help us with this?

Best Regards,

Aditya Chadde

Hi @RakeshMG,

We have tried with above mentioned format it is not working we are getting an error as below.

Error - to Import Data correctly: Cannot get.
property 'processingType' on null object

What should we do to resolve this issue?

Best Regards,

Aditya Chadde

 

adityachadde
New Contributor III
New Contributor III

Hi team,

This looks like a bug 1235 accounts are successfully reconciled. We are getting an error for remaining accounts.

What should we do to resolve this issue?

Please help us with this.

Best Regards,

Aditya Chadde

adriencosson
Valued Contributor
Valued Contributor

Hello @adityachadde,

I would suggest you to put a condition to anticipate the potential "null" case in your second call to prevent this issue.

Let's say that your second call's URL is : https://<url>/api/v2/users/${userIdentifier}.json

You would want to "skip" the call when ${userIdentifier} is null and basically call out another "dummy" URL that returns a 200 code but won't map data from to reconcile in your account.

Therefore, you would have a url parameter looking like "https://<url>/api/v2/${null!=userIdentifier?'users/'+userIdentifier+'.json':'anotherEndpoint'}"

Hope this helps !

Regards,
Adrien COSSON

Hi @adriencosson,

We have tried by adding below condition:

${null!=accountName?'users/'+accountName+'.json':'users/claire.anastasie.json'}"

it is skipping the null value but we are getting a new error message as Error - to Import Data correctly: NullResponseFromTarget

What should we do to resolve this error?

If we use this, it will not resolve the issue, but we could use it as a workaround if the above error resolves.

This looks like a bug. We need a proper resolution for this.

Best Regards,

Aditya Chadde