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

Error during Access Import for Saleforce

ARCrosthwaite
New Contributor II
New Contributor II

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

9 REPLIES 9

rushikeshvartak
All-Star
All-Star

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:

Steps to Resolve:

  1. Verify Field Names:

    • Check if the fields SystemModStamp, DeveloperName, PortalAccountId, and PortalType exist on the UserRole object in Salesforce.
    • If PortalAccountId is a custom field, ensure it is correctly named (e.g., PortalAccountId__c).

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

ARCrosthwaite
New Contributor II
New Contributor II

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.

Share logs


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

AT
New Contributor
New Contributor

Hi @rushikeshvartak 

ARCrosthwaite is away this week so I'll be filling in whilst he's away. 

I've attached an extract of the logs. 

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


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

ARCrosthwaite
New Contributor II
New Contributor II

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)"

  • Is was working before 24.5 ?
  •  

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

ARCrosthwaite
New Contributor II
New Contributor II

Unsure on that @rushikeshvartak we didn't start deployment of this connection fully until after we'd moved to 24.5

Regs

Andrew C

  • Looks like some code error.
  • Please raise support ticket

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