Configurable Lookup Filters and Layouts
- iPad
- Browser
To improve end user productivity and enforce data quality, Veeva Lookup Dialogs can use native Salesforce lookup filters and search layouts. Administrators can define lookup filters to restrict users' data availability and configure search layouts to enhance data columns displayed to users.
Configurable lookups do not support objects from managed packages. See Salesforce documentation for more information about managed packages.
All visible text fields are searched when using the Search field. This includes the following field types:
- Auto Number
- Formula
- Currency
- Date
- Date/Time
- Geolocation
- Lookup, including matches on the Name field in the referenced record
- Number
- Percent
- Phone
- Picklist
- Picklist (Multi-Select)
- Text, including fields that display as Text, for example, Record Type
- Text Area
- Text Area (Long)
- Text Area (Rich)
- Text (Encrypted)
- Time
- URL
Your Salesforce org may have existing lookup filters and search layouts configured that were previously ignored by Veeva CRM applications. Enabling this feature may result in unexpected behavior for end users. Carefully review existing lookup filter and search layout configurations and perform thorough testing on Sandbox environments before enabling this feature.
The Meta Cache Manager administration page provides details regarding existing lookup configurations. Prior to enabling this feature, Veeva CRM Administrators should review existing configurations and change or remove the lookup filters to meet their business requirements.
Prerequisites
Veeva recommends users be required to perform a sync (or Force Sync) prior to enabling this feature. Enabling this feature could cause Sync errors if enabled filtering criteria conflicts with unsynced data residing locally on offline devices.
Configuring Lookup Filters and Layouts
To enable Configurable Lookup Dialogs:
-
Grant admins the following permissions:
Object OLS Record Types Field FLS Metadata_Definition_vod CRUD Lookup_Search_Layout_vod All Fields Edit Rule_Definition_vod CRUD SFDC_Lookup_Filter_Line_vod All Fields Edit Rule_Object_Header_vod CRUD SFDC_Lookup_Filter_Header_vod All Fields Edit - Grant admins access to the Metadata Cache Manager Visualforce page.
- Enable the Metadata Cache Manager tab for the System Administrator profile.
-
Grant end users the following permissions:
Object OLS Record Types Field FLS Metadata_Definition_vod R n/a All Fields Read Metadata_Translation_vod
R
n/a
All Fields Read Rule_Definition_vod R n/a All Fields Read Rule_Object_Header_vod R n/a All Fields Read - Enable the ENHANCED_LOOKUPS_vod (Enable Enhanced Lookups) Veeva Setting with a value of 1.
-
Activate the following VMOC records for offline device users:
- Metadata_Definition_vod
- Rule_Object_Header_vod
- Rule_Definition_vod
- Select Refresh Metadata from the Metadata Cache Manager. This initiates the sync of the SFDC Metadata into Veeva-controlled system objects. The process may take several minutes to complete.
- Sync the Lookup Filters & Search Layout Metadata to Veeva CRM for iPad or Windows.
Once these steps are complete, the supported lookup configurations are loaded and available on the user’s device.
This feature should be enabled at the org level. Enabling this feature using Setting Profiles could result in end users unable to select and save Lookup values not meeting the filter criteria.
Users need FLS permission to the columns in the table or they do not display. For example, if the user does not have FLS access to the Approval_Status_vod field, that information does not display in the table.
Any subsequent configuration changes to lookup filters and search layouts in Salesforce require re-running the Metadata Cache Manager refresh and syncing user devices.
Supporting Search Layouts
The information in this section details the support for search layouts in Veeva CRM.
- Search layouts are supported for Veeva objects and custom objects on the iPad, with some exceptions
- Contract_Edit_vod
- EM_Event_Edit_vod
- EM_Event_Material_Edit_vod
- EM_Event_Session_Attendee_Edit_vod
- EM_Event_Session_Edit_vod
- EM_Event_Team_Member_Edit_vod
- EM_Expense_Estimate_Edit_vod
- Event_Team_Member_Edit_vod
- Expense_Header_Edit_vod
- Expense_Line_Edit_vod
- Medical_Event_Edit_vod
- Plan_Tactic_Edit_vod
Search layouts are supported for all objects accessed through standard Salesforce pages or through the following custom Veeva pages:
To access and configure search layouts, switch to Browser.
Search Layout Exceptions
Search layouts are not supported for the following on any platform:
Call Report
New Account Wizard
New Address Wizard
Parent Account Wizard
The following fields are not supported on any platform:
Object | Field |
---|---|
EM_Attendee_vod |
|
EM_Event_vod |
|
EM_Event_Material_vod |
Email_Template_vod |
EM_Event_Rule_vod | Country_Override_vod |
EM_Event_Speaker_vod |
Speaker_vod |
EM_Event_Team_Member_vod | Group_Name_vod |
EM_Expense_Estimate_vod |
|
Expense_Header_vod |
|
Expense_Line_vod |
|
Expense_Type_vod |
|
Supported Fields for Search Layouts
Configurable lookups support custom fields as part of a search layout configuration. With the exception of the Name and CompanyName field, all other standard Salesforce fields are not supported. The Name and CompanyName fields are hard coded and always display.
Veeva-Defined Fields
To ensure users are shown relevant information in lookups, certain fields, for example, Name and Address, are automatically included as part of the search layout. These Veeva-defined fields cannot be removed or modified.
Supporting Lookup Filters
Configurable lookup filters are supported for some Veeva CRM objects and fields. Certain Veeva CRM objects and fields are considered business critical and cannot be configured to use lookup filters. Lookup filters are supported on the iPad and Browser platforms. They are supported on all objects, including custom objects, accessed through standard Online Salesforce pages, with some exceptions.
The following Veeva Objects are supported on all platforms:
- Account_Authorization_vod
- Account_Partner_vod
- Account_Plan_vod
- Action_Item_vod
- Alert_User_Action_vod
- Analytics_Product_Group_vod
- Application_Label_vod
- Approved_Document_vod
- Benefit_Design_vod
- Benefit_Design_Line_vod
- Business_Event_vod
- Business_Event_Target_vod
- Clm_Presentation_vod
- Clm_Presentation_Slide_vod
- Call_Objective_vod
- Coaching_Report_vod
- Company_Collaboration_vod
- Consent_Header_vod
- Consent_Line_vod
- Content_Acknowledgement_vod
- Content_Acknowledgement_Item_vod
- Content_Deployment_vod
- Country_vod
- EM_Attendee_vod
- EM_Budget_vod
- EM_Catalog_vod
- EM_Event_vod
- EM_Event_Action_vod
- EM_Event_Budget_vod
- EM_Event_Configuration_Country_vod
- EM_Event_History_vod
- EM_Event_Layout_vod
- EM_Event_Material_vod
- EM_Event_Rule_vod
- EM_Event_Session_vod
- EM_Event_Session_Attendee_vod
- EM_Event_Speaker_vod
- EM_Event_Team_Member_vod
- EM_Expense_Estimate_vod
- EM_Speaker_vod
- EM_Speaker_Qualification_vod
- EM_Vendor_vod
- EM_Venue_vod
- Event_Attendee_vod
- Expense_Header_vod
- Expense_Line_vod
- Expense_Type_vod
- Event_Attendee_vod
- Focus_Area_vod
- Index_vod
- Lot_Catalog_vod
- MC_Cycle_Plan_vod
- MC_Cycle_Plan_Product_vod
- MC_Cycle_Plan_Summary_vod
- MC_Cycle_Plan_Target_vod
- MC_Cycle_Product_vod
- Medical_Event_vod
- Medical_Inquiry_vod (Browser Lightning only)
- Medical_Insight_vod
- Multichannel_Consent_vod
- Multichannel_Content_Asset_vod
- My_Setup_Products_vod
- Plan_Tactic_vod
- Position_vod
- Product_vod
-
Product_Group_vod
Windows Tablet users must manually add filter logic to the applicable field to enable this lookup filter. In the Filter Settings, do not change any of the Filter Criteria listed. Select Add Filter Logic (do not change anything) then select Save. Refresh the cache.
- Product_Group_Map_vod
- Product_Information_vod
- Product_Strategy_vod
- Product_Tactic_vod
- Question_Response_vod
- Sample_Inventory_vod
- Sample_Inventory_Item_vod
- Sample_Limit_vod
- Sample_Lot_vod
- Speaker_Evaluation
- Stakeholder_Preference_vod
- Suggestion_vod
- Suggestion_Tag_vod
-
Survey_Target_vod
Configurable Lookups support only the Employee_vod field. The filter criteria containing a $Source variable only uses the Manager_vod field. Even if the filter is marked as optional, lookup filters on this field cannot be canceled when selecting values.
- Territory_Budget_vod
Lookup Filters Exceptions
Lookup filters are not supported for the following on any platform:
- Call Report and any call-related child objects displayed on the call page
New Account Wizard
New Address Wizard
Parent Account Wizard
Lookup filters are not supported for the following on browser platforms:
- DCR Edit Requests
The following fields do not support lookup filters on any platform:
Object | Field |
---|---|
EM_Attendee_vod | Account_vod__c |
Contact_vod__c | |
Event_vod__c | |
User_vod__c | |
EM_Event_vod | NextApprover |
Queue | |
EM_Event_Material_vod | Email_Template_vod__c |
EM_Event_Rule_vod | Country_Override_vod__c |
EM_Event_Speaker_vod | Speaker_vod__c |
EM_Event_Team_Member_vod | Group_Name_voc__c |
EM_Expense_Estimate_vod | Event_Budget_vod__c |
Expense_Type_vod__c | |
Expense_Header_vod | Incurred_Expense_Account_vod__c |
Incurred_Expense_Attendee_vod__c | |
Incurred_Expense_Speaker_vod__c | |
Incurred_Expense_Team_Member_vod__c | |
Incurred_Expense_Vendor_vod__c | |
Incurred_Expense_Venue_vod__c | |
Payee_Account_vod__c | |
Payee_Attendee_vod__c | |
Payee_Speaker_vod__c | |
Payee_Team_Member_vod__c | |
Payee_Vendor_vod__c | |
Payee_Venue_vod__c | |
Expense_Line_vod | Event_Budget_vod__c |
Expense_Estimate_vod__c | |
Expense_Type_vod__c | |
Expense_Type_vod | Country_vod__c |
Parent_Expense_Type_vod__c |
About Required and Optional Filter Types
Salesforce Lookup Filters are defined as optional or required.
Veeva’s UI displays lookup fields with optional or required filters. It always applies the filter criteria; however, it does not display any results outside of the filter criteria.
If a lookup filter is defined as optional, the record can be saved and updated with a lookup value that does not match the filter criteria. If the lookup filter is defined as required, Salesforce prevents any updates to the record. Situations like these may occur when records are data loaded, or if a record is updated and the initial value in the lookup does not meet filter criteria.
For more information, see Salesforce’s Lookup Filter documentation.
Veeva Defined Logic
Veeva CRM enforces business-critical logic around lookup fields to ensure data integrity and data quality. The logic dynamically applies filtering criteria to lookup filters. The Veeva defined logic cannot be removed, modified, or disabled. Any customer-defined Lookup filter or layout is added to existing Veeva defined logic.
Supported Field Types and Operators for Lookup Filters
Some filtering field types and operators cannot be supported due to API and/or application limitations, and some cannot be executed on the offline platforms. The details of these are listed below.
Lookup filter expressions can contain the following supported field types and operators:
Field Type | Supported Operators | Examples |
---|---|---|
Text |
|
Topic: Name STARTS WITH Cholecap |
Picklist |
Picklist criteria should include the API name of the picklist and no other comparative value. |
Status EQUALS Eligible |
Number |
|
Event: Actual Cost GREATER THAN 1000 |
Check box | equals/not equal to | IsActive EQUALS True |
Lookup |
|
Topic EQUALS X788668 |
Master-Detail |
|
Account: Name EQUALS X788668 |
If a filter criterion contains an expression not supported, the single expression is ignored and the remaining expressions are applied.
The Optional and Required option for Lookup Filters is currently not supported.
Global Variables
The following Global Variables are partially supported as indicated:
Global Namespace | Supported Variables |
---|---|
Current User ($User) |
Profile ID Manager ID Role ID User ID Active Primary Territory Country Department Division City Profile Name |
RecordType |
DeveloperName |
Search Layouts and Lookup Filters are configured through the standard Salesforce Admin interface.
Salesforce Search Layouts are defined at the object level. All lookups to the object type use the Search Layout. The Search Layout should be defined using the Lookup Dialog layout type.
Salesforce Lookup Filters are defined at the field level. The filter criteria only apply for the specific lookup field.
Once a filter or layout has been defined in Salesforce, the Administrator must refresh the Metadata using the Metadata Cache Manager. The changes will be reflected on the Veeva CRM iPad and Windows Tablet applications after the subsequent sync.
Appendix B: Lookups with Veeva Defined Logic
The following lookups contain Veeva defined business logic. Any SFDC customer-defined lookup filter or layout might be ignored depending on object functionality.
When using Lookups to the Account object, end users must be granted FLS read permission to the Account_Search_FirstLast_vod and Account_Search_Last_First_vod fields. Results cannot be sorted by Name or Location.
Object | Field |
---|---|
Account |
Primary_Parent_vod Country_vod Business_Professional_Person_vod |
Account_Tactic_vod |
Account_vod Account_Plan_vod Plan_Tactic_vod Product_Strategy_vod Product_Tactic_vod |
Affiliation_vod |
Child_affiliation_vod From_Account_vod From_Contact_vod To_Account_vod To_Contact_vod |
Call2_vod |
Account_vod Account_Plan_vod Assigner_vod Child_Account_vod Cobrowse_MC_Activity_vod Contact_vod DEA_Address_vod EM_Event_vod Error_Reference_Call_vod Location_Name_vod Medical_Event_vod Medical_Inquiry_vod Parent_Address_vod Parent_Call_vod Cobrowse_Presentation_vod Product_Priority_1_vod Product_Priority_2_vod Product_Priority_3_vod Product_Priority_4_vod Product_Priority_5_vod Ship_To_Address_vod Suggestion_vod Supervising_Physician_vod User_vod |
Call2_Detail_vod |
Detail_Group_vod Call2_vod Product_vod |
Call2_Discussion_vod |
Account_vod Account_Tactic_vod Product_Strategy_vod Product_Tactic_vod |
Child_Account_vod |
Child_Account_vod Parent_Account_vod |
Contract_vod | Wholesaler_vod |
Inventory_Monitoring_Line_vod |
Inventory_Monitoring_vod Product_vod |
Key_Message_vod |
Detail_Group_vod Product_vod Product_Strategy_vod Shared_Resource_vod |
Medical_Discussion_vod |
Account_vod Account_Tactic_vod Contact_vod Detail_Group_vod Interaction_vod Medical_Event_vod Product_vod Product_Strategy_vod Product_Tactic_vod User_vod |
Medical_Inquiry_vod |
Account_vod Call2_vod Assign_To_User_vod |
Medical_Insight_vod |
Account_vod Clinical_Trial_vod Interaction_vod Medical_Event_vod Publication_vod |
Multichannel_Consent_vod | Account_vod |
Order_vod |
Account_vod Assortment_vod Billing_Address_vod Call2_vod Contract_vod Delivery_Location_vod Order_Campaign_vod Parent_Order_vod Payer_vod Price_Book_vod Ship_To_Address_vod Wholesaler_vod Wholesaler_Account_Partner_vod |
Order_Line_vod |
Order_vod Product_vod Product_Group_vod |
Sample_Order_Transaction_vod |
Account_vod Lot_vod Ref_Order_Transaction_Id_vod |
Sample_Receipt_vod |
Lot_vod Ref_Order_Transaction_Id_vod Ref_Transaction_Id_vod Transferred_From_vod |
Sample_Transaction_vod |
Lot_vod Ref_Transaction_Id_vod Account_vod |
Sample_Transaction_Audit_vod |
Adjust_For_vod Transaction_Created_By_vod Transaction_Modified_By_vod Transferred_From_vod Transfer_To_vod |
Survey_vod |
Detail_Group_vod Product_vod |
EM_Attendee_vod |
Account_vod Contact_vod Event_vod User_vod |
EM_Event_vod |
NextApprover Queue |
EM_Event_Budget_vod | Budget_vod |
EM_Event_Layout_vod |
Country_Override_vod |
EM_Event_Material_vod | Email_Template_vod |
EM_Event_Rule_vod |
Country_Override_vod |
EM_Event_Speaker_vod | Speaker_vod |
EM_Event_Team_Member_vod |
Group_Name_vod |
EM_Expense_Estimate_vod |
Event_Budget_vod Expense_Type_vod |
Expense_Header_vod |
Incurred_Expense_Account_vod Incurred_Expense_Attendee_vod Incurred_Expense_Speaker_vod Incurred_Expense_Team_Member_vod Incurred_Expense_Vendor_vod Incurred_Expense_Venue_vod Payee_Account_vod Payee_Attendee_vod Payee_Speaker_vod Payee_Team_Member_vod Payee_Vendor_vod Payee_Venue_vod |
Expense_Line_vod |
Event_Budget_vod Expense_Estimate_vod Expense_Header_vod Expense_Type_vod |
Expense_Type_vod |
Country_vod Parent_Expense_Type_vod |
Metadata_Translation_vod | Parent_Definition_vod |
The Visualforce page and tab are enabled by default as part of the package.
Enhancements to Configurable Lookups
To improve end-user productivity and enforce data quality, Veeva Lookup Dialogs can utilize native Salesforce lookup filters and search layouts. This now includes the $Source namespace. The $Source namespace provides the ability to define lookup filters based on fields available on the current or source object. Administrators can refine their lookup filters based on the data of another field on the same object.
Users can define the filter criteria that contains a reference to a $Source variable. A $Source variable is defined as a field on the current record. A lookup field to another object can be filtered using the $Source variable.
For example, EmployeeManagerID = $Source:Manager ID is valid criteria and filters employee records with a list of users that report to the selected manager.
The Metadata Cache Manager marks these criteria as Supported, and the filters are available for online and offline lookups.
Configurable lookups does not support multi-level object access.