Saviynt unveils its cutting-edge Intelligence Suite products to revolutionize Identity Security!
Click HERE to see how Saviynt Intelligence is transforming the industry.
Saviynt Copilot Icon

Rest connector: Import Accounts and entitlements not fetching any data

Ash_saviynt
New Contributor
New Contributor

Created:Application Data Import(Multi threded) job

import account job ran successfully:

Job Log Detail
 
Show 515202550100 entries
 
 
JOB ATTRIBUTE NAMEJOB ATTRIBUTE VALUE
Job NameApplication Data Import (Multi Threaded)
Job Typefull
Import Typeaccounts

 

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"
}
]
}

 

 

13 REPLIES 13

naveenss
All-Star
All-Star

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. 

Regards,
Naveen Sakleshpur
If this reply answered your question, please click the Accept As Solution button to help future users who may have a similar problem.

rushikeshvartak
All-Star
All-Star

data in account's customproperty31 is populated ?


Regards,
Rushikesh Vartak
If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'.

Ash_saviynt
New Contributor
New Contributor

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

@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"
    }
}

 

Regards,
Naveen Sakleshpur
If this reply answered your question, please click the Accept As Solution button to help future users who may have a similar problem.

@naveenss  thank you for your response.

Tried with the json you provided

Account task failed with the below exception

 

accounts skipped now.

Ash_saviynt_0-1690303011822.png

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.

 

Ash_saviynt_1-1690303349762.png

 

 

SB
Saviynt Employee
Saviynt Employee

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.


Regards,
Sahil

Ash_saviynt
New Contributor
New Contributor

@SB 

Only one APi we have entitlements and associated accounts to these entitlements are in one call.

Application Workday

shreyascn
New Contributor III
New Contributor III

Hello @Ash_saviynt 

Based on the above response you have shared,  it seems that 4 accounts has 1 role assigned ("Bank xxxx")

  • Please confirm if there is only 1 role available in the application? If yes, then you can use only the account Import to begin with your troubleshooting - so please try below JSON for account import only
    If there are more than 1 roles and you dont have any other APIs available, then please share sample response of the single API call with more than 1 role and how accounts are listed for each of them. 

 

{
    "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": {}
}

 


@shreyascn 

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)

 

 

 

 

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"
}}]

Ash_saviynt
New Contributor
New Contributor

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"
}
}
]

 

SB
Saviynt Employee
Saviynt Employee

Did the accounts call fail or was it a success but did not store any data in saviynt.


Regards,
Sahil

varunmittal
Saviynt Employee
Saviynt Employee

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"
}
]
}}