and more in a single search tool across platforms. Read the announcement here. |
02/22/2023 02:41 AM
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
02/22/2023 11:13 PM
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": ""
}
]
}
02/23/2023 12:01 AM
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
02/27/2023 12:18 AM
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
02/26/2023 11:22 PM
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
02/27/2023 02:09 PM
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 !
02/28/2023 02:00 AM
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