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:: deleted entitlement in the target(coupa) is not marking as inactive in Saviynt

npise
New Contributor III
New Contributor III

How to mark coupa entitlement as inactive(in saviynt) when its deleted in coupa. below is the json for account import

{
"accountParams": {
"connection": "acctAuth",
"createUsers": false,
"adminName": "admin",
"processingType": "SequentialAndIterative",
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://XXXXXX.coupahost.com/api/users",
"httpContentType": "application/json",
"httpMethod": "GET",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
}
},
"listField": "",
"keyField": "accountID",
"statusConfig": {
"active": "true",
"inactive": "false"
},
"colsToPropsMap": {
"accountID": "id~#~char",
"customproperty24": "custom-fields.start-date~#~char",
"customproperty34": "custom-fields.employee-status~#~char",
"customproperty59": "country-of-residence.code~#~char",
"customproperty9": "email~#~char",
"name": "login~#~char",
"status": "active~#~char",
"customproperty10": "employee-number~#~char",
"accounttype": "custom-fields.employee-type~#~char",
"customproperty57": "custom-fields.end-date~#~char",
"customproperty8": "manager.email~#~char",
"customproperty19": "lastname~#~char",
"customproperty18": "firstname~#~char",
"customproperty1": "custom-fields.qc-guid~#~char",
"customproperty31": "STORE#ACC#ENT#MAPPINGINFO~#~char"
},
"pagination": {
"offset": {
"offsetParam": "offset",
"batchParam": "limit",
"batchSize": 100,
"totalCountPath": 300000
}
}
}
},
"acctEntMappings": {
"Role": {
"importAsEntitlement": false,
"listPath": "roles",
"idPath": "id",
"keyField": "entitlementID"
},
"User Group": {
"importAsEntitlement": false,
"listPath": "user-groups",
"idPath": "id",
"keyField": "entitlementID"
},
"Business Group": {
"importAsEntitlement": false,
"listPath": "content-groups",
"idPath": "id",
"keyField": "entitlementID"
}
}
},
"entitlementParams": {
"processingType": "SequentialAndIterative",
"entTypes": {
"Role": {
"entTypeOrder": 0,
"entTypeLabels": {
"customproperty1": "Meta Created"
},
"call": {
"call1": {
"connection": "acctAuth",
"callOrder": 0,
"stageNumber": 1,
"http": {
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"url": "https://XXXXXX.coupahost.com/api/roles",
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "id~#~char",
"entitlement_value": "name~#~char",
"description": "description~#~char",
"acctEntMappingInfoColumnFromEnt": "STORE#ACC#ENT#MAPPINGINFO~#~char"
},

"pagination": {
"offset": {
"offsetParam": "offset",
"batchParam": "limit",
"batchSize": 50,
"totalCountPath": 10000
},
"disableDeletedEntitlements": true
}
}
}
},
"User Group": {
"entTypeOrder": 1,
"entTypeLabels": {
"customproperty1": "Meta Created"
},
"call": {
"call1": {
"connection": "acctAuth",
"callOrder": 0,
"stageNumber": 2,
"http": {
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"url": "https://XXXXXX.coupahost.com/api/user_groups",
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "id~#~char",
"entitlement_value": "name~#~char",
"description": "description~#~char",
"acctEntMappingInfoColumnFromEnt": "STORE#ACC#ENT#MAPPINGINFO~#~char"
},

"pagination": {
"offset": {
"offsetParam": "offset",
"batchParam": "limit",
"batchSize": 50,
"totalCountPath": 10000
},
"disableDeletedEntitlements": true
}
}
}
},
"Business Group": {
"entTypeOrder": 2,
"entTypeLabels": {
"customproperty1": "Meta Created"
},
"call": {
"call1": {
"connection": "acctAuth",
"callOrder": 0,
"stageNumber": 3,
"http": {
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"url": "https://XXXXXX.coupahost.com/api/business_groups",
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "id~#~char",
"entitlement_value": "name~#~char",
"description": "description~#~char",
"acctEntMappingInfoColumnFromEnt": "STORE#ACC#ENT#MAPPINGINFO~#~char"
},

"pagination": {
"offset": {
"offsetParam": "offset",
"batchParam": "limit",
"batchSize": 50,
"totalCountPath": 10000
},
"disableDeletedEntitlements": true
}
}
}
}
}
},
"acctEntParams": {
"processingType": "acctToEntMapping"
}
}

example: for business groups in coupa they deleted one entitlement and added another; after running import job new entitlement was added, however deleted entitlement was not marked as inactive.

Note: the entitlement referred above is associated to an application based role. 

4 REPLIES 4

stalluri
Regular Contributor II
Regular Contributor II

Check if you have enabled this at security system level.

stalluri_0-1696179119867.png

Check to which filed you are mapping the value while importing.

If you need any things else, please do let us know.


Best Regards,
Sam Talluri
If you find this a helpful response, kindly consider selecting Accept As Solution and clicking on the kudos button.

npise
New Contributor III
New Contributor III

Yes. Recon application is selected as "Yes".

Can you elaborate more when you say "Check to which filed you are mapping the value while importing." thank you!

SumathiSomala
All-Star
All-Star

@npise Could you please try by mapping status attribute in  "entitlementParams".

"Business Group": {

"entTypeOrder": 2,

"entTypeLabels": {

"customproperty1": "Meta Created"

},

"call": {

"call1": {

"connection": "acctAuth",

"callOrder": 0,

"stageNumber": 3,

"http": {

"httpHeaders": {

"Authorization": "${access_token}",

"Accept": "application/json"

},

"url": "https://XXXXXX.coupahost.com/api/business_groups",

"httpContentType": "application/json",

"httpMethod": "GET"

},

"listField": "",

"keyField": "entitlementID",

"statusConfig": {

"active": "true",

"inactive": "false"

},

"colsToPropsMap": {

"entitlementID": "id~#~char",

"entitlement_value": "name~#~char",

"status": "active~#~char",

"description": "description~#~char",

"acctEntMappingInfoColumnFromEnt": "STORE#ACC#ENT#MAPPINGINFO~#~char"

},

 

"pagination": {

"offset": {

"offsetParam": "offset",

"batchParam": "limit",

"batchSize": 50,

"totalCountPath": 10000

},

"disableDeletedEntitlements": true

}

}

}

}

}

},

"acctEntParams": {

"processingType": "acctToEntMapping"

}

}

 

Let me know if it helps.

Regards,
Sumathi Somala
If this reply answered your question, please Accept As Solution and give Kudos.

stalluri
Regular Contributor II
Regular Contributor II

This what i am talking about.

"statusConfig": {

"active": "true",

"inactive": "false"

},


Best Regards,
Sam Talluri
If you find this a helpful response, kindly consider selecting Accept As Solution and clicking on the kudos button.