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

REST Connector: Inactive Accounts Entitlement Hierarchy Not Populated

Sivagami
Valued Contributor
Valued Contributor

HI Team,

I have a rest connector where the API response provides entitlement assignment for inactive accounts too, but I don't see the hierarchy populated which is causing mismatch in reporting. Could you help confirm how we can get the inactive account entitlement hierarchy populated?

Note: Customproperty31 is updated with the account and entitlement mapping even for inactive accounts but the entitlement hierarchy is not populated. 

API Response:

 

{
  "content": [
    {
      "createdTime": "2021-08-24T06:42:10Z",
      "createdBy": {
        "email": "apiuser"
      },
      "lastModifiedTime": "2021-08-24T06:42:11Z",
      "lastModifiedBy": {
        "email": "apiuser"
      },
      "id": "123456",
      "firstName": "Spiderman",
      "lastName": "MJ",
      "email": "smj@xxx.com",
      "status": "ACTIVE",
      "roles": [
        {
          "id": "7e60dbe2",
          "name": "Read Only",
          "description": "Read Only",
          "category": "System",
          "admin": false,
          "system": true
        }
      ]
    },
    {
      "createdTime": "2021-04-14T16:35:14Z",
      "createdBy": {
        "email": "apiuser"
      },
      "lastModifiedTime": "2021-08-24T06:25:35Z",
      "lastModifiedBy": {
        "email": "apiuser"
      },
      "id": "654321",
      "firstName": "Batman",
      "lastName": "Robin",
      "email": "brbn@xxx.com",
      "status": "INACTIVE",
      "roles": [
        {
          "id": "7e60dbe2",
          "name": "Read Only",
          "description": "Read Only",
          "category": "System",
          "admin": false,
          "system": true
        },
        {
          "id": "88011eb9",
          "name": "Business Development Manager",
          "description": "Business Development Manager",
          "category": "System",
          "admin": false,
          "system": true
        }
      ],
      "lastLoginTime": "2022-11-25T07:34:32Z"
    }
  ]
}

 

ImportAccountEntJson:

 

{
	"globalSettings": {
		"dateFormat": "yyyy-MM-dd'T'HH:mm:ss"
	},
	"accountParams": {
		"connection": "acctAuth",
		"processingType": "SequentialAndIterative",
		"successResponses": {
			"statusCode": [
				200
			]
		},
		"doNotChangeIfFailed": true,
		"statusAndThresholdConfig": {
			"accountThresholdValue": 1000,
			"correlateInactiveAccounts": true
		},
		"call": {
			"call1": {
				"callOrder": 0,
				"stageNumber": 0,
				"http": {
					"url": "https://{{HOST_NAME}}/api/extension/users",
					"httpHeaders": {
						"Authorization": "${access_token}"
					},
					"httpContentType": "application/x-www-form-urlencoded",
					"httpMethod": "GET"
				},
				"statusConfig": {
					"active": "ACTIVE",
					"inactive": "INACTIVE"
				},
				"listField": "content",
				"keyField": "accountID",
				"colsToPropsMap": {
					"accountID": "id~#~char",
					"name": "email~#~char",
					"displayname": "email~#~char",
					"status": "status~#~char",
					"customproperty1": "firstName~#~char",
					"customproperty2": "lastName~#~char",
					"customproperty5": "lastLoginTime~#~date",
					"created_on": "createdTime~#~date",
					"updatedate": "lastModifiedTime~#~date",
					"creator": "createdBy.email~#~char",
					"updateuser": "lastModifiedBy.email~#~char",
					"customproperty31": "STORE#ACC#ENT#MAPPINGINFO~#~char"
				},
				"pagination": {
					"offset": {
						"offsetParam": "offset",
						"batchParam": "limit",
						"batchSize": 200,
						"totalCountPath": 50000
					}
				}
			}
		},
		"acctEntMappings": {
			"Role": {
				"listPath": "roles",
				"idPath": "id",
				"keyField": "entitlementID"
			}
		}
	},
	"entitlementParams": {
		"connection": "acctAuth",
		"processingType": "SequentialAndIterative",
		"successResponses": {
			"statusCode": [
				200
			]
		},
		"doNotChangeIfFailed": true,
		"entTypes": {
			"Role": {
				"entTypeOrder": 0,
				"call": {
					"call1": {
						"callOrder": 0,
						"stageNumber": 0,
						"http": {
							"url": "https://{{HOST_NAME}}/api/extension/roles",
							"httpHeaders": {
								"Authorization": "${access_token}"
							},
							"httpContentType": "application/x-www-form-urlencoded",
							"httpMethod": "GET"
						},
						"listField": "content",
						"keyField": "entitlementID",
						"colsToPropsMap": {
							"entitlementID": "id~#~char",
							"entitlement_value": "name~#~char",
							"displayname": "name~#~char",
							"entitlement_glossary": "category~#~char",
							"customproperty1": "admin~#~char",
							"customproperty2": "system~#~char"
						},
						"disableDeletedEntitlements": true
					}
				}
			}
		}
	},
	"acctEntParams": {
		"processingType": "acctToEntMapping"
	}
}

 

Thanks,
Siva

7 REPLIES 7

Manu269
All-Star
All-Star

Can you try using this : includeExistingInActiveAccounts.

Cross verify the SSM version.

https://saviynt.freshdesk.com/support/solutions/articles/43000521736-rest-connector-guide#RESTConnec...

Regards
Manish Kumar
If the response answered your query, please Accept As Solution and Kudos
.

Sivagami
Valued Contributor
Valued Contributor

Thanks for the suggestion, Manu! Including includeExistingInActiveAccounts in the json didn't helped too! 

-Siva

Vedanth_BK
Saviynt Employee
Saviynt Employee

@Sivagami Please share the latest JSON. 

Sivagami
Valued Contributor
Valued Contributor

Json provided in the ticket is the latest one, Vedanth!

Vedanth_BK
Saviynt Employee
Saviynt Employee

@Siva  Please make sure to use the latest  StatusThresholdConfig in JSON, and it is recommended that you define the active statuses inside the configuration. Attaching the sample below.

"statusAndThresholdConfig": {
"statusColumn": "customproperty11",
"activeStatus": [
"ACTIVE"
],
"deleteLinks": true,
"accountThresholdValue": 10,
"correlateInactiveAccounts": false,
"inactivateAccountsNotInFile": true,
"deleteAccEntForActiveAccounts": true
},
"includeExistingInActiveAccounts": true


Thank you
Vedanth

Sivagami
Valued Contributor
Valued Contributor

@Vedanth_BK - Thanks much! Defining active status inside the statusAndThresholdConfig worked.

-Siva

Adithya
New Contributor III
New Contributor III

@Sivagami Could you please share latest JSON here? I also has same issue.