Leveraging Intelligent Recommendations for Operational Transformation. AMS Partners click HERE | EMEA/APJ Partners click HERE |
11/09/2023 01:54 AM - edited 11/09/2023 05:25 AM
Hi Team,
We are trying to configure a REST based connection, as soon as we create a new user as part of the birth right technical rule the create account task is generated by the system for the user. But, the account id is same as the account name - account id is not being generated correctly at the time of creation, as a result of which 2 accounts are being created for the same user in that application. Can someone please assist or help on this issue?
Account Import JSON for the connection:-
"accountParams": {
"connection": "userAuth",
"createUsers": false,
"processingType": "SequentialAndIterative",
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"connection": "userAuth",
"http": {
"url": "xxx-",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "elements",
"keyField": "accountID",
"colsToPropsMap": {
"accountID": "userId~#~char",
"name": "emailAddress~#~char",
"customproperty1": "firstName~#~char",
"customproperty2": "lastName~#~char",
"customproperty3": "emailAddress~#~char",
"customproperty4": "passwordExpirationDate~#~char",
"customproperty6": "userType~#~char",
"customproperty7": "culture~#~char",
"customproperty8": "userId~#~char",
"customproperty22": "#CONST#true~#~char"
}
}
}
}
Create Account JSON for the connection -
{
"accountIdPath": "call1.message.userId",
"dateFormat": "yyyy-MM-dd'T'HH:mm:ssXXX",
"responseColsToPropsMap": {
"customproperty8": "call1.message.userId~#~char"
},
"call": [
{
"name": "call1",
"connection": "userAuth",
"showResponse": true,
"url": "xxx-",
"httpMethod": "POST",
"httpParams": "{\"culture\":\"${String defLang='en-US';String langList='it-IT,en-GB,en-US,de-DE,fr-FR,es-ES,pt-PT,nl-NL,de-CH,zh-CN,zh-TW,ko-KR,ru-RU,ja-JP,es-MX,uk-UA';String usLang=user?.customproperty12.replace('_','-');if(langList.indexOf(usLang) > 0){return usLang;} else {return defLang;}}\",\"email\":\"${user.email}\",\"firstName\":\"${user.firstname}\",\"lastName\":\"${user.lastname}\",\"password\":\"${String pwd = java.util.Base64.getEncoder().encodeToString(password.getBytes()); return pwd;}\"}",
"httpHeaders": {
"Authorization": "${access_token}",
"Content-Type": "application/json"
},
"httpContentType": "application/json",
"successResponses": {
"statusCode": [
200,
201,
204,
205
]
},
"unsuccessResponses": {
"statusCode": [
400,
401,
403,
404,
405,
409
]
}
}
]
}
11/10/2023 08:02 AM
are the 2 counts getting created as part of the same task?
11/12/2023 10:47 PM - edited 11/12/2023 11:37 PM
No Sahil, only one task is being created as per the birthright rule. And once the task is created the account id is not genereated so at the time of reconcilation the account id is not found and a new account is being created.
11/10/2023 09:50 AM
@Devesh_Mundhra : Can you please share the response of your create call in postman?
11/12/2023 11:43 PM
@Saathvik - PFA screenshot of the postman call response
11/13/2023 12:35 PM - edited 11/13/2023 12:39 PM
@Devesh_Mundhra Please confirm the birthright rule you are using; is it to only create an account in target or is it to add an access to target or both.
Also, confirm if value for userid is getting saved under customproperty8 based on the responseColsToPropsMap you have defined. And if it is also getting stored in the AccountID field.
11/13/2023 11:20 PM
@SB - The birthright rule we are using, it is only to create an account in the target. Also, the userid is being saved under the customproperty8 based on the responseColsToPropsMap. And in addition to this, we have noticed that the account which is being created as per the birthright rule after the import job is run that account is set to inactive and a new active is created as I explained earlier.
11/13/2023 12:40 PM
The above needs to be checked for an account that was created from Saviynt and post which import has not been run.
11/13/2023 11:22 PM
@SB - the account that is being created from Saviynt is not generating the correct account id as explained earlier.
11/14/2023 08:35 AM
@Devesh_Mundhra : If I understand correctly when account is created from Saviynt through Rule it does populate CP8 with right value but not accountID right?
If so does accountID is null or some random value or it is matching with accountname?
11/14/2023 10:23 PM
@Saathvik - Yes when account is created from Saviynt through Rule it does populate CP8.
CP8 is the field where accountID is stored and it is matching with the accountname.
accountname = accountID = CP8
11/15/2023 09:50 AM - edited 11/15/2023 10:06 AM
@Devesh_Mundhra : Do you have accountname rule on respective endpoint?
Also I thought accountID is not populating correctly when account is created through Rule but your replied stating accountID, accountname and CP8 are same.
If possible can you share the sample data of one such scenario with masked values. I want to see accountname, accountID, CP8 for the account created through rule and through import. Also if possible please share the logs from the import
11/14/2023 08:50 AM
Can you update ConfigJSON param in the REST connection with value {"showLogs":true}. This is to enable additional logging. Post making the change, can you create an account and share the complete provisioning log for the same.
11/15/2023 11:08 PM
@SB in the Config JSON - {"showLogs":true} is already added. Will share the complete logs with you.