Configurable Lookup Filters and Layouts

  • iPad
  • Online
  • Windows

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.

All visible text fields are searched when using the Search field. This includes the following field types: 

  • Text, including fields that display as Text, for example, Record Type
  • Text Area (Long)
  • URL
  • Email
  • Picklist
  • Lookup, including matches on the Name field in the referenced record

For example, Sarah Jones needs to select a venue for a speaker program event. Her company has a list of more than 50,000 venues. Sarah wants to view only a subset of that list based on a criterion determined by the company administrator, for example, venues in the territory she is responsible for or the state she lives in. The company administrator may also define additional attributes to display with the venue name as table columns.

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:

  1. Grant admins the following permissions:

    Object OLS Record Types Field FLS
    Metadata_Definition_vod CRED Lookup_Search_Layout_vod All Fields Edit
    Rule_Definition_vod CRED SFDC_Lookup_Filter_Line_vod All Fields Edit
    Rule_Object_Header_vod CRED SFDC_Lookup_Filter_Header_vod All Fields Edit
  2. Grant admins access to the Metadata Cache Manager VisualForce page.
  3. Enable the Metadata Cache Manager tab for the System Administrator profile.
  4. 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
  5. Enable the Enable Enhanced Lookups Veeva Setting with a value of 1.
  6. Activate the following VMOC records for offline device users:

    • Metadata_Definition_vod
    • Rule_Object_Header_vod
    • Rule_Definition_vod
  7. 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.
  8. Sync the Lookup Filters & Search Layout Metadata to Veeva CRM for iPad or Windows.

Once the previous 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 iPad and Windows with some exceptions
  • Search layouts are supported for all objects accessed through standard Salesforce pages or through the following custom Veeva pages: 

  • Advanced_Coaching_Reports_vod
  • 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 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
  • Account_vod
  • Contact_vod
  • Event_vod
  • User_vod
EM_Event_vod
  • NextApprover
  • Queue

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_voc

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_Type_vod
Expense_Type_vod
  • Country_vod
  • Parent_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 field, all other standard Salesforce fields are not supported.

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 iPad, Windows, and Online. 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_Insight_vod
  • Multichannel_Consent_vod
  • Multichannel_Content_Asset_vod
  • My_Setup_Products_vod
  • Plan_Tactic_vod
  • Position_vod
  • Product_vod
  • Product_Group_vod
  • 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
  • Edit DCR
  • New Account Wizard

    New Address Wizard

    Parent Account Wizard

  • 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
  • equals/not equal to
  • contains/does not contain
  • starts with
Topic: Name STARTS WITH Cholecap
Picklist
  • equals/not equal to
Status EQUALS Eligible
Number
  • equals/not equal to
  • less than/greater than
  • less or equal
  • greater or equal

Event: Actual Cost GREATER THAN 1000

Check box equals/not equal to IsActive EQUALS True

Lookup

  • equals/not equal to
  • contains/does not contain
  • starts with

Topic EQUALS X788668

Master-Detail
  • equals/not equal to
  • contains/does not contain
  • starts with
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 applications after the subsequent sync.

Appendix B: Lookups with Veeva Defined Logic

The following lookups contain Veeva defined business logic and ignore any SFDC Lookup configurations:

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.

For example, Sarah Jones is a manager and wants to create a coaching report. She selects a user from the employee lookup field. However, she needs to only view the employees reporting to her. Sarah defines the filter criteria that contains a reference to the Manager field on the Coaching Report. The employee lookup then filters based on the Coaching Report and Manager fields.

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.

The $Source variable should be defined on the right side of the filter criteria.

Configurable lookups does not support multi-level object access.