09/29/2023
09:20 AM
- last edited on
09/29/2023
09:26 AM
by
Dave
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.
10/01/2023 10:16 AM
Check if you have enabled this at security system level.
Check to which filed you are mapping the value while importing.
If you need any things else, please do let us know.
10/01/2023 10:26 AM
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!
10/01/2023 11:21 PM
@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.
10/02/2023 07:48 AM
This what i am talking about.
"statusConfig": {
"active": "true",
"inactive": "false"
},