Click HERE to see how Saviynt Intelligence is transforming the industry. |
06/27/2024 03:24 AM
We are seeing an error during the import of the Access import from Salesforce when the Role and/or Group entitlement types are added to the OBJECT_TO_BE_IMPORTED list.
When we run the access import when Role or Group are not included the import completes successfully. However, if either Role or Group are added to this list we see the following error in the the Job Log
InvalidBatch : Failed to process query: INVALID_FIELD: SystemModStamp, DeveloperName, PortalAccountId, PortalType from ^ ERROR at Row:1:Column:99 No such column 'PortalAccountId' on entity 'UserRole'. If you are attempting to use a custom field, be sure to append the '__c' after the custom field name. Please reference your WSDL or the describe call for the appropriate names.
We've tried creating a fresh connection, a new endpoint, adding and removing mappings for these entitlement types. Each time the Group and Role types are removed the import works correctly but in every case when they are added the same error occurs.
Regs
Andrew C
06/27/2024 11:11 AM
The error you are encountering during the Access import from Salesforce suggests that there is an issue with the query trying to access fields that do not exist on the UserRole object. The specific error message indicates that the field PortalAccountId does not exist on the UserRole entity.
Here are some steps you can take to resolve this issue:
Verify Field Names:
06/28/2024 12:47 AM
Yes @rushikeshvartak this would make sense however we've found that we are unable to solve the issue by controlling this. Saviynt documentation here suggests that only the Profile entitlement type attribute mapping can be changed. We have however attempted to change the attribute mapping to both include and exclude PortalAccountId unfortunately this didn't solve the issue.
Additionally to clarify PortalAccountId is not an entitlement type and is not included in the OBJECT_TO_BE_IMPORTED configuration where if you were importing a custom field you would place this.
Salesforce documentation here indicates that on the UserRole object the PortalAccountId attribute is available and is not a custom attribute. There is also the strange issue where even if we do not include the Role or UserRole entitlement types in the OBJECT_TO_BE_IMPORTED configuration and only include the Group object type (along with other object types which have proven to work correctly) we still see the above error and always referencing the UserRole object even if we've specified only the Role object.
06/28/2024 08:35 PM
Share logs
07/02/2024 02:33 AM
ARCrosthwaite is away this week so I'll be filling in whilst he's away.
I've attached an extract of the logs.
07/02/2024 07:53 PM
Issue is due to config JSON. API is taking 120 Seconds where configJSON specified 10 seconds
{
"showLogs": false,
"connectionTimeoutConfig": {
"connectionTimeout": 10,
"readTimeout": 60,
"writeTimeout": 60,
"retryWait": 2,
"retryCount": 3
}
}
07/08/2024 03:23 AM
Hi @rushikeshvartak We've tried added the above JSON to the CUSTOMCONFIGJSON on the connection. I've changed the connectionTimeout up to 140 and we are still seeing the same error as before.
Extract from the logs below, we see the line around
"2024-07-08T09:50:13.291+00:00","ecm-worker","provisoning.SalesForceProvisioningService","quartzScheduler_Worker-3-l4ggh","DEBUG","Exception in Iterating Role for entitlementId - 0J04J00003ZfN4pSAF: ""2024-07-08T09:50:18.247+00:00","ecm-worker","","null-l4ggh","","java.text.ParseException: Unparseable date: "ApexPage" at java.text.DateFormat.parse(DateFormat.java:366) at com.saviynt.provisoning.SalesForceProvisioningService$_getAllRole_closure67.doCall(SalesForceProvisioningService.groovy:4025) at com.saviynt.provisoning.SalesForceProvisioningService.getAllRole(SalesForceProvisioningService.groovy:4007) at com.saviynt.provisoning.SalesForceProvisioningService.importAllAccess(SalesForceProvisioningService.groovy:871) at com.saviynt.provisoning.SalesForceProvisioningService.doImport(SalesForceProvisioningService.groovy:159) at com.saviynt.ecm.integration.ExternalConnectionCallService.invokeExternalMethod(ExternalConnectionCallService.groovy:258) at ApplicationDataImportJob.execute(ApplicationDataImportJob.groovy:211) at org.quartz.core.JobRunShell.run(JobRunShell.java:199) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:546)"
07/08/2024 08:09 PM
07/08/2024 11:57 PM
Unsure on that @rushikeshvartak we didn't start deployment of this connection fully until after we'd moved to 24.5
Regs
Andrew C
07/09/2024 11:30 PM