Overview:
An error continuously occurs with different fields: No such column. The user is granted access to the fields. When the user is granted Field Level Security (FLS) for field A, the error refers to field B and then field C, etc.
Root Cause:
This occurs when the org is using Permission Sets to grant access to specified objects and fields, but Permission Sets are not enabled properly for this user.
The user can either be missing the Apex Class: VeevaUserPermissions or the Permission Setup Support option in Veeva Settings is not selected.
Solution:
To resolve the error, follow these steps:
Enable profile access to the Apex Class VeevaUserPermissions:
- Navigate to: Setup --> App Setup --> Develop --> Apex Class.
- Select Apex Class VeevaUserPermissions.
- Enable profile access to the Apex Class VeevaUserPermissions.
- Click Security.
- Select all profiles under Available Profiles. It is important to select all profiles, even if Permission Sets is defined, in order to avoid future configuration inconsistencies.
- Click Add to move them to Enabled Profiles.
- Click Save.
Note: It is important to select all profiles, even if Permission Sets is defined, in order to avoid future configuration inconsistencies.
Enable the PermissionSet Support Veeva Custom setting:
- Navigate to: Setup --> Build --> Develop --> Custom Settings --> Veeva Settings --> Manage.
- Select the Veeva setting: PermissionSet Support when using Permission Sets.
- Clear Veeva Cache after the change is made.
Related Documentation:
- CRM Knowledge Base Article: Error: No such column (Field_vod__c) on entity (Object_vod__c) - When Performing Veeva CRM Synchronization
- CRM Help Documentation: Implementing Security in Veeva CRM