and more in a single search tool across platforms. Read the announcement here. |
12/15/2023 07:55 AM
Hello,
We noticed that Sav4SavREST accounts that are disabled using a disable account task/job go back to the active state the next time our Sav4SavREST account import jobs run.
I suppose this is related to statusColumn/activeStatus in the ImportAccountEntJSON connexion but I cannot seem to find the correct configuration to make this work as expected. We would like to have inactive users also showing inactive Sav4SavREST accounts.
Attached is the current configuration.
Thank you for the help!
Solved! Go to Solution.
12/15/2023 08:58 AM - edited 12/15/2023 09:18 AM
@glegault Try this JSON
{
"accountParams": {
"connection": "userAuth",
"processingType": "SequentialAndIterative",
"statusAndThresholdConfig": {
"statusColumn": "customproperty11",
"activeStatus": [
"1"
],
"deleteLinks": true,
"accountThresholdValue": 100,
"correlateInactiveAccounts": false,
"inactivateAccountsNotInFile": true,
"deleteAccEntForActiveAccounts": false
},
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://fondsftq-dev.saviyntcloud.com/ECM/api/v5/user?q=accountExpired:0&fields=username,email,displayname,statuskey&sort=username&order=desc",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "results",
"keyField": "accountID",
"colsToPropsMap": {
"accountID": "username~#~char",
"name": "username~#~char",
"displayName": "displayname~#~char",
"customproperty2": "email~#~char",
"customproperty11": "statuskey~#~char"
},
"pagination": {
"offset": {
"offsetParam": "offset",
"batchParam": "max",
"batchSize": 500,
"totalCountPath": 999999999
}
}
}
}
},
"entitlementParams": {
"connection": "userAuth",
"processingType": "SequentialAndIterative",
"entTypes": {
"SAVRoles": {
"entTypeOrder": 0,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://fondsftq-dev.saviyntcloud.com/ECMv6/api/userms/savroles",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET",
"successResponses": {
"statusCode": [
200,
201
]
}
},
"listField": "savroles",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "ROLENAME~#~char",
"entitlement_value": "ROLENAME~#~char",
"customproperty1": "CUSTOMPROPERTY1~#~char"
}
}
}
}
}
},
"acctEntParams": {
"entTypes": {
"Roles": {
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"processingType": "entToAcctMapping"
}
}
},
"SAVRoles": {
"call": {
"call1": {
"connection": "userAuth",
"acctKeyField": "accountID",
"callOrder": 0,
"stageNumber": 1,
"processingType": "httpEntToAcct",
"http": {
"httpHeaders": {
"Authorization": "${access_token}"
},
"url": "https://fondsftq-dev.saviyntcloud.com/ECMv6/api/userms/savroles/${id}/users?limit=1000&offset=0",
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "users",
"entKeyField": "entitlementID",
"acctIdPath": "username"
}
}
}
}
}
}
or
{
"accountParams": {
"connection": "userAuth",
"processingType": "SequentialAndIterative",
"statusAndThresholdConfig": {
"deleteLinks": true,
"accountThresholdValue": 100,
"correlateInactiveAccounts": false,
"inactivateAccountsNotInFile": true,
"deleteAccEntForActiveAccounts": false
},
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://fondsftq-dev.saviyntcloud.com/ECM/api/v5/user?q=accountExpired:0&fields=username,email,displayname,statuskey&sort=username&order=desc",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "results",
"keyField": "accountID",
"colsToPropsMap": {
"accountID": "username~#~char",
"name": "username~#~char",
"displayName": "displayname~#~char",
"customproperty2": "email~#~char",
"customproperty11": "statuskey~#~char",
"status": "statuskey~#~char"
},
"pagination": {
"offset": {
"offsetParam": "offset",
"batchParam": "max",
"batchSize": 500,
"totalCountPath": 999999999
}
}
}
}
},
"entitlementParams": {
"connection": "userAuth",
"processingType": "SequentialAndIterative",
"entTypes": {
"SAVRoles": {
"entTypeOrder": 0,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://fondsftq-dev.saviyntcloud.com/ECMv6/api/userms/savroles",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET",
"successResponses": {
"statusCode": [
200,
201
]
}
},
"listField": "savroles",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "ROLENAME~#~char",
"entitlement_value": "ROLENAME~#~char",
"customproperty1": "CUSTOMPROPERTY1~#~char"
}
}
}
}
}
},
"acctEntParams": {
"entTypes": {
"Roles": {
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"processingType": "entToAcctMapping"
}
}
},
"SAVRoles": {
"call": {
"call1": {
"connection": "userAuth",
"acctKeyField": "accountID",
"callOrder": 0,
"stageNumber": 1,
"processingType": "httpEntToAcct",
"http": {
"httpHeaders": {
"Authorization": "${access_token}"
},
"url": "https://fondsftq-dev.saviyntcloud.com/ECMv6/api/userms/savroles/${id}/users?limit=1000&offset=0",
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "users",
"entKeyField": "entitlementID",
"acctIdPath": "username"
}
}
}
}
}
}
12/15/2023 10:34 AM - edited 12/15/2023 10:36 AM
Hi Saathvik,
Thank you for the quick reply. I just tried both suggestions and sadly it did not seem to make a difference.
Also, I verified on inactive users that the SavforSavREST account has the CP11=0 so I would think the status should show "Inactive" instead of "Active" for all inactive users which currently does not.
Let me know if you need additional information and thank you again for the help!
12/15/2023 11:46 AM
Share your status threshold configuration
12/15/2023 11:51 AM - edited 12/15/2023 11:51 AM
STATUS_THRESHOLD_CONFIG is currently configured as following on our Sav4SavREST connection.
{
"statusAndThresholdConfig": {
"accountThresholdValue": 100
}
}
12/15/2023 11:52 AM
Please status condition in status threshold config instead of import json
12/15/2023 12:05 PM
Something like this?
{
"statusAndThresholdConfig": {
"accountThresholdValue": 100,
"statusColumn": "customproperty11",
"activeStatus": [
"1"
]
}
}
Then in the import how should status should be configured under colsToPropsMap: ?
"status": "active~#~char" OR "status": "statuskey~#~char" OR not configured?
Thank you!
12/15/2023 12:19 PM
I just want to mention that placing the status condition under STATUS_THRESHOLD_CONFIG instead of in the ImportAccountEntJSON worked so thank you for this!
In the ImportAccountEntJSON, the status under colsToPropsMap is currently configured like this which I think makes sense with what we are trying to do.
"status": "statuskey~#~char"
It was previously like this:
"status": "active~#~char"
If you could just confirm this is OK I will leave this as is.
Thank you!