Click HERE to see how Saviynt Intelligence is transforming the industry. |
09/19/2024 03:44 AM
Hello,
We noticed that Sav4Sav REST accounts that are disabled (Manually Suspended) using a disable account JSON, 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 connection 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. I wrote separate STATUS_THRESHOLD_CONFIG JSON for resolution, but it's not working.
Attached is the current configuration of both Import AccountEnt JSON and STATUS_THRESHOLD_CONFIG JSON.
Thank you for the help!
09/19/2024 05:12 AM
Missing attachment
09/19/2024 05:26 AM - last edited on 09/19/2024 06:41 AM by Sunil
09/19/2024 06:00 AM
Use updated Import JSON
⚠️ Reminder: Mask possible PII such as employee names, email addresses, phone numbers, IP addresses, account details, company-specific URLs, and client names before sharing.⚠️
{
"accountParams": {
"connection": "userAuth",
"processingType": "SequentialAndIterative",
"statusAndThresholdConfig": {
"inactivateAccountsNotInFile": true,
"activeStatus": [
1
],
"deleteAccEntForActiveAccounts": true,
"statusColumn": "customproperty11",
"accountThresholdValue": 10,
"correlateInactiveAccounts": false,
"deleteLinks": true
},
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://xxxx-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": "active~#~char"
},
"pagination": {
"offset": {
"offsetParam": "offset",
"batchParam": "max",
"batchSize": 500,
"totalCountPath": 999999999
}
}
}
}
},
"entitlementParams": {
"connection": "userAuth",
"processingType": "SequentialAndIterative",
"entTypes": {
"Roles": {
"entTypeOrder": 0,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://xxxx-dev.saviyntcloud.com/ECM/api/v5/getRoles",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "POST",
"httpParams": "{\"requestedObject\":\"users\"}"
},
"listField": "Roledetails",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "roleKey~#~char",
"entitlement_value": "role_name~#~char",
"customproperty1": "roleKey~#~char",
"customproperty2": "role_name~#~char",
"acctEntMappingInfoColumnFromEnt": "STORE#ACC#ENT#MAPPINGINFO~#~char"
}
}
},
"acctEntMappings": {
"listField": "owner",
"idPath": "ownername",
"keyField": "accountID",
"importAsAccount": false
}
},
"Organization": {
"entTypeOrder": 1,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://xxxx-dev.saviyntcloud.com/ECM/api/v5/getOrganization",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GETWITHBODY",
"httpParams": "{\"max\": \"1000\",\"offset\": \"0\",\"orgQuery\": \"c.organizationname like '%%'\"}"
},
"listField": "organizations",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "organizationname~#~char",
"entitlement_value": "displayname~#~char",
"acctEntMappingInfoColumnFromEnt": "STORE#ACC#ENT#MAPPINGINFO~#~char"
}
}
},
"acctEntMappings": {
"listField": "organizationowners",
"idPath": "username",
"keyField": "accountID",
"importAsAccount": false
}
},
"UserGroups": {
"entTypeOrder": 2,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://xxxx-dev.saviyntcloud.com/ECM/api/v5/fetchUserGroup",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "POST",
"httpParams": ""
},
"listField": "usergroups",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "usergroupkey~#~char",
"entitlement_value": "user_groupname~#~char",
"acctEntMappingInfoColumnFromEnt": "STORE#ACC#ENT#MAPPINGINFO~#~char"
}
}
},
"acctEntMappings": {
"listField": "owners",
"idPath": "username",
"keyField": "accountID",
"importAsAccount": false
}
},
"SAVRoles": {
"entTypeOrder": 0,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://xxxx-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",
"DESCRIPTION": "ROLEDESCRIPTION~#~char",
"customproperty1": "CUSTOMPROPERTY1~#~char"
}
}
}
}
}
},
"acctEntParams": {
"entTypes": {
"Roles": {
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"processingType": "entToAcctMapping"
}
}
},
"Organization": {
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"processingType": "entToAcctMapping"
}
}
},
"UserGroups": {
"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://xxxx-dev.saviyntcloud.com/ECMv6/api/userms/savroles/${id}/users?limit=1000&offset=0",
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "users",
"entKeyField": "entitlementID",
"acctIdPath": "username"
}
}
}
}
}
}
09/19/2024 11:51 PM
after uploading this json also account status is getting changed Manually suspended to Active after the account import job.
09/20/2024 08:01 AM
Does issue resolved ?
09/20/2024 08:58 AM
No it's same changing back to Active
09/21/2024 06:09 PM
{
"acctEntParams": {
"entTypes": {
"Roles": {
"call": {
"call1": {
"callOrder": 0,
"processingType": "entToAcctMapping",
"stageNumber": 0
}
}
},
"SAVRoles": {
"call": {
"call1": {
"acctKeyField": "accountID",
"callOrder": 0,
"processingType": "httpEntToAcct",
"pagination": {
"offset": {
"totalCountPath": 999999999,
"batchParam": "limit",
"batchSize": 500,
"offsetParam": "offset"
}
},
"listField": "users",
"http": {
"httpContentType": "application/json",
"httpHeaders": {
"Authorization": "${access_token}"
},
"httpMethod": "GET",
"url": "https://XXXX-dev.saviyntcloud.com/ECMv6/api/userms/savroles/${id}/users"
},
"entKeyField": "entitlementID",
"acctIdPath": "username",
"connection": "userAuth",
"stageNumber": 1
}
}
},
"UserGroups": {
"call": {
"call1": {
"callOrder": 0,
"processingType": "entToAcctMapping",
"stageNumber": 0
}
}
}
}
},
"entitlementParams": {
"entTypes": {
"Roles": {
"call": {
"call1": {
"keyField": "entitlementID",
"callOrder": 0,
"pagination": {
"offset": {
"totalCountPath": "completeResponseMap.totalCount",
"batchParam": "max",
"batchSize": 500,
"offsetParam": "offset"
}
},
"listField": "Roledetails",
"http": {
"httpParams": "",
"httpContentType": "application/json",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpMethod": "POST",
"url": "https://XXXX-dev.saviyntcloud.com/ECM/api/v5/getRoles"
},
"stageNumber": 0,
"colsToPropsMap": {
"customproperty2": "role_name~#~char",
"customproperty1": "roleKey~#~char",
"acctEntMappingInfoColumnFromEnt": "STORE#ACC#ENT#MAPPINGINFO~#~char",
"entitlementID": "roleKey~#~char",
"entitlement_value": "role_name~#~char"
}
}
},
"acctEntMappings": {
"keyField": "accountID",
"idPath": "ownername",
"listField": "owner",
"importAsAccount": false
},
"entTypeOrder": 0
},
"SAVRoles": {
"call": {
"call1": {
"keyField": "entitlementID",
"callOrder": 0,
"listField": "savroles",
"http": {
"successResponses": {
"statusCode": [
200,
201
]
},
"httpContentType": "application/json",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpMethod": "GET",
"url": "https://XXXX-dev.saviyntcloud.com/ECMv6/api/userms/savroles"
},
"stageNumber": 0,
"colsToPropsMap": {
"customproperty1": "CUSTOMPROPERTY1~#~char",
"entitlementID": "ROLENAME~#~char",
"entitlement_value": "ROLENAME~#~char"
}
}
},
"entTypeOrder": 0
},
"UserGroups": {
"call": {
"call1": {
"keyField": "entitlementID",
"callOrder": 0,
"pagination": {
"offset": {
"totalCountPath": "completeResponseMap.totalcount",
"batchParam": "max",
"batchSize": 500,
"offsetParam": "offset"
}
},
"listField": "usergroups",
"http": {
"httpParams": "",
"httpContentType": "application/json",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpMethod": "POST",
"url": "https://XXXXX-dev.saviyntcloud.com/ECM/api/v5/fetchUserGroup"
},
"stageNumber": 0,
"colsToPropsMap": {
"acctEntMappingInfoColumnFromEnt": "STORE#ACC#ENT#MAPPINGINFO~#~char",
"entitlementID": "usergroupkey~#~char",
"entitlement_value": "user_groupname~#~char"
}
}
},
"acctEntMappings": {
"keyField": "accountID",
"idPath": "username",
"listField": "owners",
"importAsAccount": false
},
"entTypeOrder": 2
}
},
"processingType": "SequentialAndIterative",
"connection": "userAuth"
},
"accountParams": {
"call": {
"call1": {
"keyField": "accountID",
"callOrder": 0,
"pagination": {
"offset": {
"totalCountPath": 999999999,
"batchParam": "max",
"batchSize": 500,
"offsetParam": "offset"
}
},
"listField": "results",
"http": {
"httpContentType": "application/json",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpMethod": "GET",
"url": "https://XXXXX-dev.saviyntcloud.com/ECM/api/v5/user?q=accountExpired:0&fields=username,email,displayname,statuskey&sort=username&order=desc"
},
"stageNumber": 0,
"colsToPropsMap": {
"accountID": "username~#~char",
"customproperty2": "email~#~char",
"customproperty11": "statuskey~#~char",
"displayName": "displayname~#~char",
"name": "username~#~char",
"status": "active~#~char"
}
}
},
"processingType": "SequentialAndIterative",
"connection": "userAuth",
"statusAndThresholdConfig": {
"inactivateAccountsNotInFile": true,
"activeStatus": [
1
],
"deleteAccEntForActiveAccounts": true,
"statusColumn": "customproperty11",
"accountThresholdValue": 10,
"correlateInactiveAccounts": false,
"deleteLinks": true
}
}
}
09/20/2024 09:03 AM
What is user status in api ? and cp6 value for one of account ?
09/22/2024 11:39 PM
user status is active and CP6 is "1"
09/23/2024 08:45 AM
use below updated json
{
"acctEntParams": {
"entTypes": {
"SAVRoles": {
"call": {
"call1": {
"acctKeyField": "accountID",
"callOrder": 0,
"processingType": "httpEntToAcct",
"pagination": {
"offset": {
"totalCountPath": 999999999,
"batchParam": "limit",
"batchSize": 500,
"offsetParam": "offset"
}
},
"listField": "users",
"http": {
"httpContentType": "application/json",
"httpHeaders": {
"Authorization": "${access_token}"
},
"httpMethod": "GET",
"url": "https://rushi-eic-partner.saviyntcloud.com/ECMv6/api/userms/savroles/${id}/users"
},
"entKeyField": "entitlementID",
"acctIdPath": "username",
"connection": "userAuth",
"stageNumber": 1
}
}
},
"UserGroups": {
"call": {
"call1": {
"callOrder": 0,
"processingType": "entToAcctMapping",
"stageNumber": 0
}
}
}
}
},
"entitlementParams": {
"entTypes": {
"SAVRoles": {
"call": {
"call1": {
"keyField": "entitlementID",
"callOrder": 0,
"listField": "savroles",
"http": {
"successResponses": {
"statusCode": [
200,
201
]
},
"httpContentType": "application/json",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpMethod": "GET",
"url": "https://rushi-eic-partner.saviyntcloud.com/ECMv6/api/userms/savroles"
},
"stageNumber": 0,
"colsToPropsMap": {
"customproperty1": "CUSTOMPROPERTY1~#~char",
"entitlementID": "ROLENAME~#~char",
"entitlement_value": "ROLENAME~#~char"
}
}
},
"entTypeOrder": 0
},
"UserGroups": {
"call": {
"call1": {
"keyField": "entitlementID",
"callOrder": 0,
"pagination": {
"offset": {
"totalCountPath": "completeResponseMap.totalcount",
"batchParam": "max",
"batchSize": 500,
"offsetParam": "offset"
}
},
"listField": "usergroups",
"http": {
"httpParams": "",
"httpContentType": "application/json",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpMethod": "POST",
"url": "https://rushi-eic-partner.saviyntcloud.com/ECM/api/v5/fetchUserGroup"
},
"stageNumber": 0,
"colsToPropsMap": {
"acctEntMappingInfoColumnFromEnt": "STORE#ACC#ENT#MAPPINGINFO~#~char",
"entitlementID": "usergroupkey~#~char",
"entitlement_value": "user_groupname~#~char"
}
}
},
"acctEntMappings": {
"keyField": "accountID",
"idPath": "username",
"listField": "owners",
"importAsAccount": false
},
"entTypeOrder": 2
}
},
"processingType": "SequentialAndIterative",
"connection": "userAuth"
},
"accountParams": {
"call": {
"call1": {
"keyField": "accountID",
"callOrder": 0,
"pagination": {
"offset": {
"totalCountPath": 999999999,
"batchParam": "max",
"batchSize": 500,
"offsetParam": "offset"
}
},
"listField": "results",
"http": {
"httpContentType": "application/json",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpMethod": "GET",
"url": "https://rushi-eic-partner.saviyntcloud.com/ECM/api/v5/user?q=accountExpired:0&fields=username,email,displayname,statuskey&sort=username&order=desc"
},
"stageNumber": 0,
"colsToPropsMap": {
"accountID": "username~#~char",
"customproperty2": "email~#~char",
"customproperty11": "statuskey~#~char",
"displayName": "displayname~#~char",
"name": "username~#~char",
"status": "active~#~char"
}
}
},
"processingType": "SequentialAndIterative",
"connection": "userAuth",
"statusAndThresholdConfig": {
"inactivateAccountsNotInFile": true,
"activeStatus": [
1
],
"deleteAccEntForActiveAccounts": true,
"statusColumn": "customproperty11",
"accountThresholdValue": 10,
"correlateInactiveAccounts": false,
"deleteLinks": true
}
}
}