Click HERE to see how Saviynt Intelligence is transforming the industry. |
07/23/2023 05:53 PM
Created:Application Data Import(Multi threded) job
import account job ran successfully:
Job Name | Application Data Import (Multi Threaded) |
Job Type | full |
Import Type | accounts |
ImportAccountEntJSON:
{
"accountParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"statusAndThresholdConfig": {},
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://servicetestt?format=json",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "users",
"keyField": "accountID",
"colsToPropsMap": {
"accountID": "CF_Worker_Universal_ID~#~char",
"name": "CF_Worker_Universal_ID~#~char",
"customproperty31": "STORE#ACC#ENT#MAPPINGINFO~#~char"
}
}
},
"acctEntMappings": {
"Role": {
"listPath": "",
"idPath": "role",
"keyField": "entitlementID"
}
}
},
"entitlementParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"entTypes": {
"Role": {
"entTypeOrder": 1,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://servicetestt?format=json",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "custom_roles",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "Assignable_Role~#~char",
"entitlement_value": "Assignable_Role~#~char"
},
"disableDeletedEntitlements": true
}
}
}
}
},
"acctEntParams": {
"processingType": "acctToEntMapping"
}
}
post man output format:
{
"Report_Entry": [
{
"Comment": "Low Risk",
"Current_Role_Assignments_group": [
{
"Department": "Finance",
"businessTitle": "Treasuxxx",
"Cost_Center": "2030_xxx",
"Worker": "Auxx",
"CF_Worker_Universal_ID": "10xxx"
},
{
"Department": "Finance",
"businessTitle": "Finance Manager",
"Cost_Center": "2030xxx",
"Worker": "Davixxx",
"CF_Worker_Universal_ID": "10xxx"
},
{
"Department": "Finance",
"businessTitle": "Treasurer xxxxx",
"Cost_Center": "2030_xxxx",
"Worker": "Davixxxx",
"CF_Worker_Universal_ID": "10xxxx"
},
{
"Department": "Finance",
"businessTitle": "Senior xxxx",
"Cost_Center": "2030_xxxx",
"Worker": "Ngoxxxx)",
"CF_Worker_Universal_ID": "1xxxx"
}
],
"Assignable_Role": "Bank xxxx"
}
]
}
07/23/2023 08:03 PM
Hi @Ash_saviynt ,
From the above postman response, it looks to be the response for entitlements is that correct? If yes, can you please change the listField for entitlementParams to "Report_Entry"
{
"accountParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"statusAndThresholdConfig": {},
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://servicetestt?format=json",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "users",
"keyField": "accountID",
"colsToPropsMap": {
"accountID": "CF_Worker_Universal_ID~#~char",
"name": "CF_Worker_Universal_ID~#~char",
"customproperty31": "STORE#ACC#ENT#MAPPINGINFO~#~char"
}
}
},
"acctEntMappings": {
"Role": {
"listPath": "",
"idPath": "role",
"keyField": "entitlementID"
}
}
},
"entitlementParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"entTypes": {
"Role": {
"entTypeOrder": 1,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://servicetestt?format=json",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "Report_Entry",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "Assignable_Role~#~char",
"entitlement_value": "Assignable_Role~#~char"
},
"disableDeletedEntitlements": true
}
}
}
}
},
"acctEntParams": {
"processingType": "acctToEntMapping"
}
}
Also, please share the postman sample response for accounts as well.
07/23/2023 09:26 PM
data in account's customproperty31 is populated ?
07/24/2023 07:24 AM
Hi @naveenss .
Updated json including entitlementParams to "Report_Entry" and still this isn't importing any data .job completed successfully . no accounts or entitlements imported
I am using the same postman response for entitlements and accounts.
postman response:
'Assignable_Role' value is Entitlement and 'CF_Worker_Universal_ID' is Account
{
"Report_Entry": [
{
"Comment": "Low Risk",
"Current_Role_Assignments_group": [
{
"Department": "Finance",
"businessTitle": "Treasuxxx",
"Cost_Center": "2030_xxx",
"Worker": "Auxx",
"CF_Worker_Universal_ID": "10xxx"
},
{
"Department": "Finance",
"businessTitle": "Finance Manager",
"Cost_Center": "2030xxx",
"Worker": "Davixxx",
"CF_Worker_Universal_ID": "10xxx"
},
{
"Department": "Finance",
"businessTitle": "Treasurer xxxxx",
"Cost_Center": "2030_xxxx",
"Worker": "Davixxxx",
"CF_Worker_Universal_ID": "10xxxx"
},
{
"Department": "Finance",
"businessTitle": "Senior xxxx",
"Cost_Center": "2030_xxxx",
"Worker": "Ngoxxxx)",
"CF_Worker_Universal_ID": "1xxxx"
}
],
"Assignable_Role": "Bank xxxx"
}
]
}
Hi @rushikeshvartak ,
No accounts data or entitlement data imported. job status showing success.
Thanks
07/25/2023 09:20 AM
@Ash_saviynt I've made a few changes to the JSON. Can you pls try with the below and let me know the result?
{
"accountParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"statusAndThresholdConfig": {},
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://servicetestt?format=json",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "Report_Entry.Current_Role_Assignments_group",
"keyField": "accountID",
"colsToPropsMap": {
"accountID": "CF_Worker_Universal_ID~#~char",
"name": "CF_Worker_Universal_ID~#~char",
"customproperty31": "STORE#ACC#ENT#MAPPINGINFO~#~char"
}
}
},
"acctEntMappings": {
"Role": {
"listPath": "",
"idPath": "role",
"keyField": "entitlementID"
}
}
},
"entitlementParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"entTypes": {
"Role": {
"entTypeOrder": 1,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://servicetestt?format=json",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "Report_Entry",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "Assignable_Role~#~char",
"entitlement_value": "Assignable_Role~#~char"
},
"disableDeletedEntitlements": true
}
}
}
}
},
"acctEntParams": {
"processingType": "acctToEntMapping"
}
}
07/25/2023 09:43 AM
@naveenss thank you for your response.
Tried with the json you provided
Account task failed with the below exception
accounts skipped now.
Warning - Invalid record not processed. Error
Message - Cannot cast object '[{Department=Human
Resources, businessTitle=HRIS Analyst,
Cost_Center=2050_Axxxxx,
Worker=Akshaxxx,
CF_Worker_Universal_ID=10066xxx, {Department=Human
Resources, businessTitle=HRIS, Data and Analytics
Manager, Cost_Center=2050_Axxxx,
Worker=Alex Huxxx),
CF_Worker_Universal_ID=100xxx}, {Department=Human
Resources, businessTitle=Training &
Development Consultant, Cost_Center=2050_Axx, Worker=Briaxxx,
CF_Worker_Universal_ID=100xxx}, {Department=Human
Resources, businessTitle=Training &
Development Consultant, Cost_Center=2050_Axxx
Resources, Worker=Bridgexxx,
CF_Worker_Universal_ID=10030xxx]' with class
'java.util.ArrayList' to class 'java.util.Map' due
to: groovy.lang.GroovyRuntimeException: Could not
find matching constructor for:
java.util.Map(java.util.LinkedHashMap,
java.util.LinkedHashMap, java.util.LinkedHashMap,
java.util.LinkedHashMap)
Entitlement jod ran successfully and no data imported.
07/25/2023 08:43 AM
Does the application have any other api call which can be used to fetch the accounts data or is there just 1 api call for everything. Can you also confirm which app you are integrating with.
07/25/2023 09:45 AM
Only one APi we have entitlements and associated accounts to these entitlements are in one call.
Application Workday
07/25/2023 10:25 AM - edited 07/25/2023 10:26 AM
Hello @Ash_saviynt
Based on the above response you have shared, it seems that 4 accounts has 1 role assigned ("Bank xxxx")
{
"accountParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"statusAndThresholdConfig": {},
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://servicetestt?format=json",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "Report_Entry.Current_Role_Assignments_group",
"keyField": "accountID",
"colsToPropsMap": {
"accountID": "CF_Worker_Universal_ID~#~char",
"name": "CF_Worker_Universal_ID~#~char",
"customproperty31": "STORE#ACC#ENT#MAPPINGINFO~#~char"
}
}
},
"acctEntMappings": {},
"entitlementParams": {},
"acctEntParams": {}
}
07/25/2023 11:03 AM
Tried with only account json and getting the same error.
Warning - Invalid record not processed. Error
Message - Cannot cast object '[{Department=Human
Resources, businessTitle=HRIS Analyst,
Cost_Center=2050_Axxxxx,
Worker=Akshaxxx,
CF_Worker_Universal_ID=10066xxx, {Department=Human
Resources, businessTitle=HRIS, Data and Analytics
Manager, Cost_Center=2050_Axxxx,
Worker=Alex Huxxx),
CF_Worker_Universal_ID=100xxx}, {Department=Human
Resources, businessTitle=Training &
Development Consultant, Cost_Center=2050_Axx, Worker=Briaxxx,
CF_Worker_Universal_ID=100xxx}, {Department=Human
Resources, businessTitle=Training &
Development Consultant, Cost_Center=2050_Axxx
Resources, Worker=Bridgexxx,
CF_Worker_Universal_ID=10030xxx]' with class
'java.util.ArrayList' to class 'java.util.Map' due
to: groovy.lang.GroovyRuntimeException: Could not
find matching constructor for:
java.util.Map(java.util.LinkedHashMap,
java.util.LinkedHashMap, java.util.LinkedHashMap,
java.util.LinkedHashMap)
08/08/2023 05:34 AM
Hi @shreyascn ,
I have below two rest calls
Call1:
"Report_Entry": [
{
"CF_CT_Worker_s_Cost_Center_Hierarchy": "4200_AGI_Asset Processing",
"Cost_Center_Hierarchyxxxx",
"Universal_Id": "100081x2xxx",
"Worker": "Mark Tevxxx",
"businessTitle": "Sr. Operatixxxx"
},
{
"CF_CT_Worker_s_Cost_Center_Hierarchy": "4105_xxxx",
"Cost_Center_Hierarchy_-_Function_CCH": "Operations",
"Universal_Id": "1000xxxx",
"Worker": "Mark Browexxxx",
"businessTitle": "Sr IA Support Specialist"
}}]
call2:
"Report_Entry": [
{
"Assignable_Role": "Administrative Assistant (can view compensation)",
"Workers_group": [
{
"Universal_Id": "1003xxxx"
}
]
},
{
"Assignable_Role": "HR Business Partner",
"Workers_group": [
{
"Universal_Id": "1002xxx"
},
{
"Universal_Id": "1003xxxx"
},
{
"Universal_Id": "1003xxxx"
}}]
08/07/2023 06:49 AM
I created two rest calls one for account and another for entitlements. After running the access import the entitlements call worked but the account call didn't
Can you check the account json format
{
"accountParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"statusAndThresholdConfig": {},
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://services1.myworkday.com/xxxx",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "Report_Entry",
"keyField": "accountID",
"colsToPropsMap": {
"accountID": "Universal_Id~#~char",
"name": "Universal_Id~#~char",
"displayName": "Universal_Id",
"customproperty31": "STORE#ACC#ENT#MAPPINGINFO~#~char"
}
}
},
"acctEntMappings": {
"Role": {
"listPath": "",
"idPath": "role",
"keyField": "entitlementID"
}
}
},
"entitlementParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"entTypes": {
"workattest": {
"entTypeOrder": 1,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://services1.xxxx",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "Report_Entry.",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "Assignable_Role~#~char",
"entitlement_value": "Assignable_Role~#~char"
},
"disableDeletedEntitlements": true
}
}
}
}
},
"acctEntParams": {
"processingType": "acctToEntMapping"
}
}
postman account output:
{
"Report_Entry": [
{
"CF_CT_Worker_s_Cost_Center_Hierarchy": "4200_AGI_Asxxx",
"Cost_Center_Hierarchy_-_Function_CCH": "Operations",
"Universal_Id": "100081245",
"Worker": "Mark xxx",
"businessTitle": "Sr. Operations Processing Specialist"
},
{
"CF_CT_Worker_s_Cost_Center_Hierarchy": "4105_AGI_IA Ops",
"Cost_Center_Hierarchy_-_Function_CCH": "Operations",
"Universal_Id": "1000856607",
"Worker": "Mark Browxxx)",
"businessTitle": "Sr IA Suppoxxxx"
}
}
]
08/08/2023 09:29 AM
Did the accounts call fail or was it a success but did not store any data in saviynt.
10/03/2023 04:03 PM
This issue has been fixed using the following json:
{
"accountParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"statusAndThresholdConfig": {},
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://*****?format=json",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "Report_Entry",
"keyField": "accountID",
"colsToPropsMap": {
"accountID": "Universal_Id~#~char",
"name": "Universal_Id~#~char",
"customproperty2": "CF_CT_Worker_s_Cost_Center_Hierarchy~#~char",
"customproperty3": "Cost_Center_Hierarchy_-_Function_CCH~#~char",
"customproperty4": "Universal_Id~#~char",
"customproperty31": "STORE#ACC#ENT#MAPPINGINFO~#~char"
}
}
}
},
"entitlementParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"entTypes": {
"Role": {
"entTypeOrder": 0,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://*****?format=json",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "Report_Entry",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "Assignable_Role~#~char",
"entitlement_value": "Assignable_Role~#~char",
"customproperty2": "CF_LRV_Role_assignement_Desc~#~char",
"customproperty3": "Assignable_Role~#~char",
"acctEntMappingInfoColumnFromEnt": "STORE#ACC#ENT#MAPPINGINFO~#~char"
},
"disableDeletedEntitlements": true
}
},
"acctEntMappings": {
"listField": "Current_Role_Assignments_group.CF_Worker_Universal_ID",
"idPath": "",
"importAsAccount": true,
"colsToPropsMap": {
"accountID": "Universal_Id~#~char",
"name": "Universal_Id~#~char",
"customproperty2": "CF_CT_Worker_s_Cost_Center_Hierarchy~#~char",
"customproperty3": "Cost_Center_Hierarchy_-_Function_CCH~#~char",
"customproperty4": "Universal_Id~#~char",
"customproperty31": "STORE#ACC#ENT#MAPPINGINFO~#~char"
},
"keyField": "accountID"
}
}
}
},
"acctEntParams": {
"entTypes": {
"Role": {
"call": {
"call1": {
"processingType": "entToAcctMapping"
}
}
}
}
}
}
The json is consuming the data for account entitlement correlation in the following format:
"Report_Entry": [{
"Assignable_Role": "Bank Account Access",
"CF_LRV_Role_assignement_Desc": "Low Risk",
"Comment": "Low Risk",
"Current_Role_Assignments_group": [
{
"CF_Worker_Universal_ID": "1005492",
"Cost_Center": "2030_AGI_Treasury",
"Department": "Finance",
"Worker": "Audwin Brown (604311)",
"businessTitle": "Treasury Analyst"
},
{
"CF_Worker_Universal_ID": "1002586",
"Cost_Center": "2030_AGI_Treasury",
"Department": "Finance",
"Worker": "David Becker (602341)",
"businessTitle": "Finance Manager"
},
{
"CF_Worker_Universal_ID": "1000033",
"Cost_Center": "2030_AGI_Treasury",
"Department": "Finance",
"Worker": "David Schmidt (600103)",
"businessTitle": "Treasurer and Financial Operations Principal"
},
{
"CF_Worker_Universal_ID": "1006262",
"Cost_Center": "2030_AGI_Treasury",
"Department": "Finance",
"Worker": "Ngoc Bodine (604974)",
"businessTitle": "Senior Treasury Manager"
}
]
},
{
"Assignable_Role": "Business Asset Accountant",
"CF_LRV_Role_assignement_Desc": "High Risk",
"Comment": "High Risk",
"Current_Role_Assignments_group": [
{
"CF_Worker_Universal_ID": "1004515",
"Cost_Center": "2010_AGI_Accounting and Tax",
"Department": "Finance",
"Worker": "Jacob Davis (601952)",
"businessTitle": "Experienced Accountant"
},
{
"CF_Worker_Universal_ID": "1004355",
"Cost_Center": "9228_AGI_Corporate \u2013 AEBITDA Add-backs II",
"Department": "Specialized Cost",
"Worker": "Leah Stolzoff (601791)[C]",
"businessTitle": "Accounting Consultant"
},
{
"CF_Worker_Universal_ID": "1007011",
"Cost_Center": "2010_AGI_Accounting and Tax",
"Department": "Finance",
"Worker": "Luke Reestman (605654)",
"businessTitle": "Experienced Accountant"
},
{
"CF_Worker_Universal_ID": "1004493",
"Cost_Center": "2010_AGI_Accounting and Tax",
"Department": "Finance",
"Worker": "Taylor Tetone (601944)",
"businessTitle": "Senior Accountant"
}
]
}}