Send us your feedback: We are always looking for feedback to help improve our Knowledge Base! Please let us know if this article is helpful or provide feedback on how we can improve your experience by clickinghere.
This is a collection of Veeva Vault Educational Resouces. Please reach out to your Customer Success Manager directly or email VaultCustomerSuccess@veeva.com if you would like further information and/or a demonstration of any Vault features.
Welcome to the Veeva CRM Notification and Education Guide!
We want to make sure you are armed with the right knowledge to be successful and get continuous value out of Veeva CRM at your organization.
This all starts with having the right information about the application, i.e., when there is downtime, when releases are going out, and when webinars are taking place for ongoing education.
Below are ways you can sign up for notifications and find information about Veeva CRM.
Topics
Application Notifications
Sign up on trust.veeva.com to be notified of CRM Releases, System Downtime and Service Disruptions. This is important for your internal release planning and notifying end users about System Downtime or Service Disruptions. Here are detailed instructions on how to sign up.
CRM Documentation
The CRM documentation can be accessed at any time from the Help button in the top right hand corner of Veeva CRM.
If you are new to CRM, check out the Getting Started section.
CRM Community
Follow and post in the CRM community to engage with Veeva and your peers. In each section, click Follow, then select your preference of New posts or New posts and comments.
CRM Releases include both application release notes. All release notes can be found here. Past Release notes can be found on the CRM Help Documentation page. Sign up for release notifications on the Veeva Trust site. Click the Subscribe to Veeva Trust Site link in the top right corner of the website.
Presentations and Recordings
Webinars are hosted for each major CRM release. The recordings and presentations for the most recent releases can be found here.
Education sessions are held throughout the year about various topics. The recordings and presentations can be found here.
Veeva Support Knowledge Base (KB) Content
Veeva Support provides solution articles to help the customers resolve issues or learn more about our products. The following links provide helpful information so customers can stay proactive on Veeva product topics:
Send us your feedback: We are always looking for feedback to help improve our Knowledge Base! Please let us know if this article is helpful or provide feedback on how we can improve your experience by clickinghere.
Welcome to the Veeva Align Notification and Education Guide!
We want to make sure you are armed with the right knowledge to be successful and get continuous value out of Veeva Align at your organization.
This all starts with having the right information about the application, i.e., when there is downtime, when releases are going out, and when webinars are taking place for ongoing education.
Below are ways you can sign up for notifications and find information about Veeva Align.
Topics
Application Notifications
Sign up on trust.veeva.com to be notified of Align Releases, System Downtime and Service Disruptions. This is important for your internal release planning and notifying end users about System Downtime or Service Disruptions. Here are detailed instructions on how to sign up.
Align Documentation
The Align documentation can be accessed at any time from the Help button in the top right-hand corner of Veeva Align.
If you are new to Align, check out the Introduction section.
Align Community
Follow and post in the Align community to engage with Veeva and your peers. In each section, click Follow andthen select your preference of New posts or New posts and comments.
Align Releases include application release notes. Current Release notes can be found here. Past Release notes can be found on the Align Help Documentation page. Sign up for release notifications on the Veeva Trust site. Click the Subscribe to Veeva Trust Site link in the top-right corner of the website.
Presentations and Recordings
Webinars are hosted for each major Align release. The recordings and presentations for the most recent releases can be found here.
Education sessions are held throughout the year about various topics. The recordings and presentations can be found here.
Veeva Support Knowledge Base (KB) Content
Veeva Support provides solution articles to help the customers resolve issues or learn more about our products. The following links provide helpful information so customers can stay proactive on Veeva product topics:
Send us your feedback: We are always looking for feedback to help improve our Knowledge Base! Please let us know if this article is helpful or provide feedback on how we can improve your experience by clickinghere.
Video: Enable Field Reps Faster with Align CRM User Management
Greater efficiency with Align = more success for IT and the business
Help your sales reps hit the ground running on day one without waiting for permission sets and access to the tools they need to do their job.
In this webinar, you will learn how to:
Reduce time and effort for both IT and the business by eliminating manual tasks
Increase the speed, quality, and consistency of field force management processes
Watch the replay:
Review the slides:
Related Resources:
Hear how LEO Pharma is reducing administrative burden for their teams by creating precise targets and gaining full visibility of their commercial operations.
Send us your feedback: We are always looking for feedback to help improve our Knowledge Base! Please let us know if this article is helpful or provide feedback on how we can improve your experience by clickinghere.
Which Functionality Does Each Process Job Refer to in the Veeva Process Scheduler in Veeva CRM?
Which functionality does each process refer to in the Veeva Process Scheduler in Veeva CRM?
Answer:
The following table summarizes and provides a brief description of each Veeva job currently available in the Veeva Process Scheduler. The parts emphasized assist the user to avoid confusion.
Send us your feedback: We are always looking for feedback to help improve our Knowledge Base! Please let us know if this article is helpful or provide feedback on how we can improve your experience by clickinghere.
How to Import all Records of Particular CRM Object(s) into Veeva Align, Without Running a Full CRM Refresh or an Import Date Override Job?
How to import all records of particular CRM Object(s) into Veeva Align, without running a Full CRM Refresh or an Import Date Override job?
Answer:
This is possible by manipulating the Process Monitor records.
Navigate to Admin (Business Admin) --> in Component.
Select Process Monitors.
Change the value of the Last Completed Import Datetime field of the desired CRM object(s) to 1990-01-01 in order to import all records of the particular CRM object(s).
These steps do not interrupt the Import of the records of the other CRM Objects in the event the Last Completed Import Datetime is left unchanged. The value of the Last Completed Import Datetime resets after the Import from CRM job has run. The value is set to the datetime when the Import from CRM job has completed.
There are several advantages of using Process Monitor records over the Full CRM Refresh and Import Date Override options:
The password of the CRM Connection User is not required.
Ability to select the particular CRM Object(s), that can potentially decrease the duration.
Similarly to the Import Date Override option, the Last Completed Import Datetime serves as the date and time filter to decide which records to import based on their Created and Last Modified Dates.
Note: It is not recommended to use this solution permanently. It is considered a useful ability for troubleshooting purposes.
Send us your feedback: We are always looking for feedback to help improve our Knowledge Base! Please let us know if this article is helpful or provide feedback on how we can improve your experience by clickinghere.
Which IP Addresses are Used by Mailgun for CRM Approved Email?
Send us your feedback: We're always looking for advice to help improve our Knowledge Base! Please let us know if this article was helpful or provide feedback on how we can improve your experience here.
CLM or Engage Content Related Issues from the Perspective of Veeva CRM and Other Miscellaneous Configuration
CLM or Engage Content related issues can occur due to Veeva CRM and other miscellaneous issues. What are these common issues and what maintenance steps have to be performed which can potentially resolve the unexpected behavior of the CLM / Engage Meeting CLM / Engage For Portals / Cobrowse content?
Answer:
The purpose of this article is to gather all relevant maintenance steps, configuration issues, and scenarios to assist in troubleshooting content-related misbehavior. Note that these items below do not substitute coding issues.
Be sure that the Veeva User Permissions Apex class is assigned to the relevant end and System Admin user Profiles and Permission Set Support Veeva Setting is enabled for the Organisation Veeva Setting and Profile Level Veeva Setting records. User Specific Veeva Setting records are not supported.
CLM on CRM for iPad (iPad / iOS)
Be sure to upgrade iOS to the latest available version.
Be sure to upgrade CRM for iPad (iRep), to the latest available version.
Be sure to download and use the Latest available Veeva Library Javascript package.
Be sure that the end-user has Read Field Permission on the iOS Resolution field of the Key Message, in case, HTML Content is to be rescaled. Ensure to select the appropriate value. It is recommended to test the HTML content with all three picklist options available, in the event of a rescaling issue. Displaying HTML Content on Large Screen Devices
Be sure that the Allow Insecure Local File Access Multichannel (Profile-Specific) Setting is enabled.
Be sure to enable the Veeva_Settings_vod__c, Multichannel_Settings_vod__c and Approved_Email_Settings_vod__c VMOC records where the value of the Device field is iPad.
Be sure that the Allow Insecure Local File Access Multichannel (Profile-Specific) Setting is enabled.
Be sure to enable the Veeva_Settings_vod__c, Multichannel_Settings_vod__c and Approved_Email_Settings_vod__c VMOC records where the value of the Device field is Winmodern.
In the event of a scaling issue, ensure to check for hardcoded CSS and HTML attributes controlling the width and height of the content. In the case of WinCRM, the iOS Resolution field of the Key Message object is irrelevant.
Note: Content code may need revision and optimization for Windows.
CLM on the Windows Engage Meeting Host Application / Engage Participant Application
Be sure to upgrade Windows to a later version. (1909 or beyond is recommended), in the event the Windows Engage Host Application is in use.
Be sure to upgrade to the latest available Graphics Card driver version.
Be sure to upgrade to the latest available version of the Operating System which the Engage Participant App is installed on - Android OS, Windows, iOS.
Be sure to download and use the latest available Veeva Library Javascript package.
In the event of scaling issue, ensure to check for hardcoded CSS and HTML attributes controlling the width and heigth of the content. In case of the Veeva Engage Host Application on Windows, the iOS Resolution field of the Key Message object is irrelevant.
In the event there are content issues while using the Veeva CRM Engage Application, WinCRM can be used to potentially replicate the issue for debugging purposes, as both applications use the same platform.
Engage For Portals / Cobrowse Content
Be sure to upgrade the Web browser in use to the latest version.
Be sure to download and use the latest available Veeva Library Javascript package.
Be sure that the Allow Insecure Local File Access Multichannel (Profile-Specific) Setting is enabled.
Be sure to enable the Veeva_Settings_vod__c, Multichannel_Settings_vod__c and Approved_Email_Settings_vod__c VMOC records where the value of the Device field is Winmodern and/or iPad.
In the event of scaling issue, ensure to check for hardcoded CSS and HTML attributes controlling the width and heigth of the content. In case of Engage For Portals / Cobrowse content, the iOS Resolution field of the Key Message object is irrelevant.
Note: Engage/CLM/Engage For Portals/Cobrowse Content Development are not within the scope of Veeva Support.
Send us your feedback: We are always looking for feedback to help improve our Knowledge Base! Please let us know if this article is helpful or provide feedback on how we can improve your experience by clickinghere.
Troubleshooting Augmented Reality (AR) Issues on CRM for iPad
This article explains how to troubleshoot Augmented Reality (AR) issues on CRM for iPad such as:
Upon tapping on the Augmented Reality (AR) icon in the CLM Slide, and selecting the AR Model, the following error occurs Error: Failed to load the selected model.
Upon tapping on the AR icon, the models are not visible, and cannot be selected from the list.
The AR icon is not visible at all.
There is no scene item to be selected at all.
Root Cause:
There are several issues which can contribute to these specific AR problems:
iRep and iOS are not up-to-date.
The iPad device does not support Augmented Reality.
The AR_configuration.json file content is incorrect.
The .dae or .obj model files are compressed and exported incorrectly.
Filenames have incorrect case letters.
Solution:
1. iRep and iOS are not up-to-date.
Be sure iRep and iOS are on the latest available versions.
2. Be sure that the iPad device supports Augmented Reality
This feature is supported on iPad devices with at least A9 processors, including iPad 9.7" (2017 and later) and all iPad Pro models.
3. The AR_configuration.json file content is incorrect.
The entire code content of the .json configuration file must be in curly braces {} as it has to be an array.
As the first step, it is recommended to use a simple .json content for one scene with the example code as follows:
Note: Be sure that the references, paths, and parameters are correct in the AR_configuration.json file. This is covered in the CRM Help Documentation Defining AR Scenes.
To view a full example, including a configuration JSON file and a 3D model, download Veeva's sample AR zip file.
In the event, this code is confirmed to be working, develop it further from there.
4. The .dae or .obj model files are compressed and exported incorrectly.
To be able to view the model on CRM for iPad, It is recommended to use Maya to create 3D Models. The .dae or .obj files need to be compressed correctly with Maya.
In order to determine if the .dae or .obj files are compressed correctly, on Windows Operating Systems, Notepad++ can be used to open them.
Due to Incorrect compression, the file content appears as shown with Notepad++:
In the event the file is compressed correctly, the content appears as shown with Notepad++:
Due to Incorrect compression, the file content appears as shown with Sublime Text:
In the event the file is compressed correctly, the content appears as shown with Sublime Text:
This is a confirmed method to determine whether or not the compression runs properly.
5. Filenames have incorrect case letters.
Each file and its extension must follow the correct letter casing, as iRep and iPad are case sensitive.
Note: Content Development is not within the scope of Veeva Support.
Send us your feedback: We are always looking for feedback to help improve our Knowledge Base! Please let us know if this article is helpful or provide feedback on how we can improve your experience by clickinghere.
Error: No such relation 'CLM_Presentation_vod__r' on entity 'EM_Topic_Material_vod__c' - in CLM Admin Tab.
The CLM Admin Tab is reporting: No such relation 'CLM_Presentation_vod__r' on entity 'EM_Topic_Material_vod__c'.
Root Cause:
If the integration user has access to the following objects:
EM_Event_Rule_vod__c
EM_Topic_Material_vod__c
Content_Channel_vod__c field on the Clm_Presentation_vod_c
Then, it is assumed that Events Management is enabled.
This message occurs if the administrator has Field Level Security (FLS) permissions to CLM_Presentation_vod.Event_Content_vod but does not have FLS permissions to EM_Topic_Material_vod.CLM_Presentation_vod.
Solution:
To correct the error:
Either:
Add FLS permissions to EM_Topic_Material_vod.CLM_Presentation_vod or
Remove FLS permissions to CLM_Presentation_vod.Content_Channel_vod__c.
Clear Veeva Cache.
Compare CRM to Vault from the View Map of the CLM Administration Console.
Send us your feedback: We are always looking for feedback to help improve our Knowledge Base! Please let us know if this article is helpful or provide feedback on how we can improve your experience by clickinghere.
The Utilization Section Shows Zero Figures on the MC Cycle Record in the Vault View of Veeva Align
Upon opening an MultiChannel (MC) Cycle record in the Vault View of Veeva Align, the Utilization page shows zero figures and empty diagrams. In the Staffed and Reach sections, the Roster Members (Users) are indicated vacant. MC Cycle Plans may not be populated.
Root Cause:
This is the expected behavior of the capacity planning calculation in the event the following pieces of configuration are present:
The Daily Activity Goal field on the MC Cycle Channel record is not populated (Under the Channels section).
The Upper and Lower Utilization threshold fields of the MC Cycle record are not populated.
The Days Off Cycle field is populated with a value which results in the Number of Valid Days to calculate to 0 or to a negative number. The Utilization page displays data based on activities that fall on Valid Days within an MC Cycle. This is the value Days in Cycle field.
No Assignment Preview and Commit were run at all on the associated Field Force.
The newly calculated values may take a longer time to reflect in the Staffed, Reach and Utilization pages due to large data volume.
Solution:
In order to include the MC Cycle in the Capacity planning perform the following:
Populate the Daily Activity Goal, Upper and Lower Utilization threshold fields. In the event, these fields are not populated, then the MC Cycle is excluded from the capacity calculations.
Populate the Days Off Cycle field with a valid value to ensure to have a positive Number of Valid days. Valid days = (# of total days) - (weekend days) - (days off cycle)
Be sure to run an Assignment Preview and Commit after the corrections are made. These actions are necessary even if the successes are expected to be 0.
Wait 1-2 minutes in the event there is a large data volume belonging to the MC Cycle. The reflection may take longer in this case.
Note #1: The population of the Daily Activity Goal field is optional in case there is only one MC Cycle Channel record. In the event, there are more MC Cycle Channels, at least one of them should have this field populated.
Note #2: In the event there is no targeting rule, ensure to run Calculate Rollups on the (Modelling) Field Force. Running the Assignment Preview and Commit - Even if there is no Targeting Rule - on the (Modelling) Field Force can potentially abort indicating data related errors. In this case raise a Veeva Support ticket.
Send us your feedback: We are always looking for feedback to help improve our Knowledge Base! Please let us know if this article is helpful or provide feedback on how we can improve your experience by clickinghere.
Account Territory Not Assigned During a Push to CRM from Align
An Account does not get a Territory assigned when Push to CRM is run. An assignment exists and the assignment rule is correct.
Root Cause:
The Account Territory Assignment is not pushed to CRM if using Account inactive values and the following are true:
Account detail page in Align contains a field called Customer Master Status
The value of this field matches one of the values in the Account Status InactiveValues field from Align Settings.
The Import Inactive Assignments flag is set to No under the Account Settings section of the Align Settings page.
Solution:
Resolution #1: Change the Account's Customer Master Status to a value that does not exist in the Account Status Inactive Values field. Access the Account Customer Master Status field location by using these steps:
Click the Entities tab.
Select Accounts.
Search for the Account.
Select the needed Account.
Resolution #2: Set the Import Inactive Assignments flag to Yes. Access the Import Inactive Assignments flag location. by using these steps:
Send us your feedback: We are always looking for feedback to help improve our Knowledge Base! Please let us know if this article is helpful or provide feedback on how we can improve your experience by clickinghere.
What are the Most Common Unsupported Pieces of Consent Capture Configuration in Veeva CRM?
What are the most common unsupported pieces Consent Capture of configuration in Veeva CRM?
Answer:
The following Consent Capture configuration scenarios are not supported and these can cause unexpected behavior. The article provides guidance about how to properly set the scenario up in Veeva CRM in the event it is applicable.
Scenario 1: Multiple Consent Types having the same Record Type are under the same Consent Header.
Solution: Instead of using the same record type several times, it has to be used once. In the event it is required to use it more than once, the consent type must be configured under a new Consent Header.
Scenario 2: Consent Lines having the Sub Channel record type are under a Consent Type having the Approved Email record type. The Consent Lines may have the Sub Channel related fields populated.
This configuration is not supported. The Approved Email Consent Validation logic does not respect Sub Channels.
Solution: In the event, the Consent Type has the Approved Email record type, remove the Consent Lines having the Sub Channel record type. Moreover, remove the Sub Channel field values. Consent Lines having the Product and Content-Type record types are supported in this scenario. Sub Channels are supposed to be used in Consent Types having custom record types. This is also described in Can Approved Email and CLM be Used with Sub Channels in the Consent Capture Functionality of Veeva CRM?
Scenario 3: Both Consent Receipt and Double Opt-inare enabled in the same Consent Header.
This configuration is not supported and can cause unexpected behavior during capturing the consent data and email sending.
Solution #1: Each of these features of Consent Capture requires its own Consent Header. In other words, one Consent Header for Consent Receipt, and another Consent Header for Double Opt-In.
Solution #2: Use Field Level Security / Object Level Permission / Record Type Access to restrict the usage of each consent sub-functionality, in the event both Consent Receipt and Double Opt-In is enabled on the Consent Header. This is not recommended as it can make the configuration complex for an overview.
Double opt-in can be used under the consent header for several Consent Types.
Scenario 4: The Double Opt-in or Consent Receipt Email Confirmation Templates contain the {{unsubscribe_product_link}} token.
This configuration is not supported and may cause unexpected behavior.
Solution: Remove the {{unsubscribe_product_link}} token from the Email confirmation / Receipt templates. Unsubscribe is not supported together with the Multichannel Routing configuration.
Send us your feedback: We are always looking for feedback to help improve our Knowledge Base! Please let us know if this article is helpful or provide feedback on how we can improve your experience by clickinghere.
Useful Salesforce Google Extensions When Working in Veeva CRM and Salesforce Online
Salesforce Admin Check All is an extension that enhances the Salesforce Setup pages by adding "check all" checkboxes to various checkbox lists. This enhanced functionality helps make some setup tasks more efficient by potentially saving administrators from having to manually check each checkbox in a list individually.
Note: This extension requires the use of the Enhanced Profile User Interface.
This extension adds an S to the standard Salesforce.com cloud favicon for all sandbox tabs in a Chrome window. This can be useful to differentiate between Sandbox and Production organizations.
This extension helps to write Salesforce formula more efficiently by adding Syntax highlighting, auto field, and metadata completion, tabulation support and so on.
This extension creates an Export to CSV button in Salesforce list view for all objects, standard or custom. The list data can be exported to a CSV file by simply clicking this button.
Note: These 3rd Party Tools are not maintained by Veeva.
Send us your feedback: We are always looking for feedback to help improve our Knowledge Base! Please let us know if this article is helpful or provide feedback on how we can improve your experience by clickinghere.
The Master Email Fragments for Approved Email narrated education provides an overview of what Master Email Fragments are and how to create the Master Email Fragments.
The Approved Email Invitation Tokens for Engage Meeting narrated education provides an overview of reasons as to why you would want to use approved email for engage meeting invites; tokens to be leveraged for Engage meeting invites; and leveraging calendar reminders for invites.
A replay is now available for the CRM Territory Management 2.0 Webinar from the Veeva Commercial & Medical Summit. This recording is applicable to all regions.
Veeva and Salesforce have collaborated on an in-depth technical guide to assist with analyzing and remediating parts of your Veeva CRM org to be compatible with TM 2.0.
The following documents are attached to the bottom of this article and should be referenced before and during your conversion to TM 2.0:
TM2 Customer Information Session (Veeva Summit) pdf- A PDF version of the most recent Summit presentation on TM 2.0
Territory Management 2.0 FAQ- Frequently Asked Questions about all things TM 2.0
TM2 Gap AnalysisGuide - Provides guidance and details on what will need remediation and how Veeva recommends remediating
TM2 Data Migration Guide - Provides step-by-step instructions for moving your Territory Management data into the TM2 data model
You can learn Territory Management 2.0 skills by completing this Salesforce Trailmix!
There have been a number of questions coming into Support, recently, in regards to the Veeva CRM Engage product.
To help you in this rapid shift to digital, we are excited to share a new microsite that pulls together all our best resources on remote engagement and how to use Veeva CRM Engage Meeting to connect with HCPs. Whether you are new to Engage Meeting or a master user, content is available for users at every level. Visit the Engage Meeting Microsite.
In addition, the following is a list of the most commonly used Veeva CRM Engage Knowledge Base articles and webinars to address these questions. A CRM Engage FAQ is also attached to the bottom of this article.
Send us your feedback: We are always looking for feedback to help improve our Knowledge Base! Please let us know if this article is helpful or provide feedback on how we can improve your experience by clickinghere.
Send us your feedback: We are always looking for feedback to help improve our Knowledge Base! Please let us know if this article is helpful or provide feedback on how we can improve your experience by clickinghere.
What are the Maintenance Steps of the Mass Assignment Process of the Territory Utilities Tool of Veeva CRM?
Send us your feedback: We are always looking for feedback to help improve our Knowledge Base! Please let us know if this article is helpful or provide feedback on how we can improve your experience by clickinghere.
If you need to support multiple languages within your SDK error dialogs or your object record creation/detail or list pages then you will find the Translation Service, Message Catalog and the new PicklistRequestBuilder Interface to be useful. The Translation Service along with the Message Catalog can be used to retrieve translated message text to use in your SDK error dialogs or to better localize the object record creation, detail and list pages. Additionally, starting in 20R2.4, the new PicklistRequestBuilder Interface can be used to fetch picklist labels in the user’s language. These labels can then be used to accomplish various tasks such as displayed in error messages, used with SDK services etc.
To get started with multiple language support, message groups must be created in the Message Catalog which can be found under Admin --> Configuration --> Vault Java SDK. The translations must then be loaded into the vault using the Bulk Translation tool in the desired language(s). This tool allows the user to import and export translations and can be found in Admin --> Settings --> Language & Region Settings.
In the following example, we will demonstrate how to use the new Picklist Service methods and the PicklistRequestBuilder Interface to fetch translated Picklist labels. For this example, we will create an object called ‘Picklist Sample Object’ with a field called Colour picklist. This can be done by going to Admin --> Configuration --> Objects and clicking on the Create button in the top right corner. The Colour picklist should have the following three options: Red, Green and Blue. The translated picklist labels will be displayed in error dialog along with a translated error message. Next, we will load the translations using the Bulk Translation tool. To do this, the export translation file of field labels must be exported and updated. The translation for our picklist values must be added to the column for Translated Label(Column F) as shown in the following screenshots.
Next, to fetch the picklist values in our record trigger, we must use the new PicklistRequest.Builder interface to build the Picklist Request, this new interface allows developers to fetch the translated picklist values. If no translation is available, then the value will be returned in the language that the vault is configured in.
TranslationService translationService = ServiceLocator.locate(TranslationService.class);
// Build the request to fetch our message group
TranslationsReadRequest readRequest = translationService.newTranslationsReadRequestBuilder()
.withMessageGroup("picklist_error__c")
.build();
// Read all messages in the group
Map<String, String> allErrorMessages = translationService.readTranslations(readRequest).getTranslations();
// Used to fetch picklist values
PicklistService picklistService = ServiceLocator.locate(PicklistService.class);
PicklistRequest.Builder requestBuilder = picklistService.newPicklistRequestBuilder();
PicklistRequest request = requestBuilder.withName("colour__c").build();
Picklist coloursPicklist = picklistService.getPicklist(request);
recordTriggerContext.getRecordChanges().forEach(recordChange -> {
// Get list of colour values
List colourValues = recordChange.getNew().getValue("colour__c", ValueType.PICKLIST_VALUES);
....
// Get single-picklist value name selected by user
String colourPicklistValueName = colourValues.get(0);
// Get picklist value label in user's language
colourLabel = coloursPicklist.getPicklistValue(colourPicklistValueName).getLabel();
String errorTitleTranslation = allErrorMessages.get("error_title__c");
String errorTranslation = allErrorMessages.get("error__c");
recordChange.setError(errorTitleTranslation, errorTranslation + colourLabel);
}
}
As can be seen in the above code snippet, the name of the desired picklist is specified using the withName method of the PicklistRequest.Builder interface. When a specific value’s label is fetched from the picklist using the getPicklistValue or the picklist’s label is fetched using getLabel, they will be fetched in the user’s language. In this case that happens to be French. For example, if the user selects the Red option(Rouge in French) when creating a record, the following will be displayed in the error dialog as shown below.
In summary, the Message Catalog, Translation Service and the new PicklistRequest.Builder interface will help you better localize Vault to your user’s needs. The new PicklistService features are available as new methods so as to not affect existing SDK extension code that interacts with picklists. If developers do not update their existing code to use these new methods or add the translations, the labels will be fetched in the vault’s base language. However, these new methods can be useful to help developers localize their vault error messages and improve their user experience for the end-users. Additionally, you may find the Translation Service Sample Project to be useful.
Vault Help Documentation:
NA
Send us your feedback: We are always looking for feedback to help improve our Knowledge Base! Please let us know if this article is helpful or provide feedback on how we can improve your experience by clickinghere.
Why Running Out of Memory Occurs in the Vault SDK Code?
Why Running Out of Memory Occurs in the Vault SDK Code?
Answer:
If running out of memory in SDK extensions, User-Defined Services (UDS) may be able to help. SDK extensions that perform complex operations with bulk data can run into memory limits. Vault enforces a 40 MB memory limit for all SDK extensions such as triggers and actions. SDK extensions consume memory when a variable is instantiated or a service method is used. This memory is not freed up until the extension finishes executing. When processing bulk data, developers can use up all the memory allowed, resulting in an error dialog displaying the memory-exceeded error being displayed to the user.
User-Defined Services allow you to reclaim the memory used by wrapping memory-intensive code into a reusable service. The memory used by the User-Defined Service methods is returned when the methods exits. Only the memory used by the return value of the method counts towards the limit.
So what is the difference between User-Defined Services and User-Defined Classes (UDC)? User-Defined Classes allow developers to structure code into reusable methods; however, User-Defined Class methods do not return the used memory back to the memory limit. Therefore, User-Defined Classes are best used for sharing and processing complex data objects or for structuring code for reuse, typically for use cases that won’t deal with large amounts of data and run into memory issues.
User-Defined Class
User-Defined Service
Can be used to store complex data objects
Can be used to share reusable logic
Memory used by methods counts towards overall SDK memory limit: 40 MB
Does NOT store data beyond method execution
Can be used to share reusable logic
Memory used by methods is freed up when the method exits
To see the difference, let’s look at an example of a Record Trigger which is called as a result of a data load of 500 records via Vault Loader. In this case, the inserted data may require field defaulting, validation, grouping and other processing before being inserted. Processing records in this manner requires holding the record in memory while the processing logic executes. If a record uses 1 MB of memory, a User-Defined Class implementation would use up 40 MB of memory before hitting the limit and displaying an error. Whereas, with a User-Defined Service, the memory usage would be only of the return values of the User-Defined Service methods and any memory used in code outside of the User-Defined Service. This is because the memory used by the record and the processing logic is released when the User-Defined Service method completes. The memory usage differences between User-Defined Services and User-Defined Classes can be verified using the LogService’s logResourceUsage method. Refer to the Javadocs for details about using this service.
Using a User-Defined Service is just like using a Vault SDK provided service: it must first be located using the ServiceLocater. After it is located, the methods of the User-Defined Service can be called. Refer to the Javadocs for details about using this service.
// Locating the User-Defined Service and the Log Service ProductSearchUserDefinedService productSearchUserDefinedService = ServiceLocator.locate(ProductSearchUserDefinedService.class); LogService logService = ServiceLocator.locate(LogService.class);
// Log Resource Usage before the UDS method is called logService.logResourceUsage("Before reduceProductQuantity Method Call: ");
In summary, User-Defined Services are a tool that can be used to lower the memory usage of SDK code and make code reusable. User-Defined Services are best suited for scenarios involving bulk data processing that don’t require data to be shared among methods or triggers/actions. User-Defined Services are preferred over User-Defined Classes when memory usage is a concern as they do not retain any data after the method exits.
To learn more about User-Defined Services, how to create and use them, please view the sample code project on Github. The documentation for User-defined services can be found in the Developer Portal.
Send us your feedback: We are always looking for feedback to help improve our Knowledge Base! Please let us know if this article is helpful or provide feedback on how we can improve your experience by clickinghere.
Send us your feedback: We are always looking for feedback to help improve our Knowledge Base! Please let us know if this article is helpful or provide feedback on how we can improve your experience by clickinghere.
Send us your feedback: We're always looking for advice to help improve our Knowledge Base! Please let us know if this article was helpful or provide feedback on how we can improve your experience here.
Veeva's CDMS Global Service Center provides essential 24/7, 1st-line support to CDMS end-users as well as Sponsors.
With global coverage, the GSC can be reached anytime using the Support Portal by opening a ticket, by email (CDMS_Support@veeva.com), or by phone. In order to open a ticket, the user must have a Support Portal login account and be logged into the portal.
Note: For non-Support questions or issues, use the following information from the Contact Sales page on Veeva.com.
Americas
US Direct Line
+ 1-800-350-8722
US Toll Free
+1-800-350-8722
Brazil Toll Free
0800-7612628
Europe
EU Direct Line
+44-1-865-502-582
France Toll Free
0-801-840-214
Germany Toll Free
0-800-000-9586
Italy Toll Free
800-961-582
Ireland Toll Free
1-800-816927
Netherlands Toll Free
0-800-2658-989
Portugal Toll Free
800-500751
Russia Toll Free
8-800-301-4092
Spain Toll Free
900-999-322
Asia
Australia Toll Free
1-800-290-794
Australia Direct Line
02-9099-4110
China Line
0-218-027-0711
India Toll-Free
000-800-919-0905
Japan Direct Line
03-4233-1423
Japan Toll Free
0800-170-8062
New Zealand Toll Free
0-800-428-764
South Korea Toll Free
00-308-321-0263
Send us your feedback: We are always looking for feedback to help improve our Knowledge Base! Please let us know if this article is helpful or provide feedback on how we can improve your experience by clickinghere.
Veeva's Global Service Center provides essential 24/7, 1st-line support to PromoMats end-users. With global coverage, the GSC can be reached anytime using the Support Portal by opening a ticket, by email (support@veeva.com), or by phone. In order to open a ticket, the user must have a Support Portal login account and be logged into the portal.
Note: For non-Support questions or issues, use the following information from the Contact Sales page on Veeva.com.
Americas
US Toll Free:
+1 (800) 971-3716
Europe
Direct Line:
+44 (0) 1865-398-190
Asia
Direct Line:
+61 (0) 2841-722-28
China Line:
+86 2-1803 69493
Japan Line:
+81 3-4590-2868
Send us your feedback: We are always looking for feedback to help improve our Knowledge Base! Please let us know if this article is helpful or provide feedback on how we can improve your experience by clickinghere.
The Veeva Global Support Policy (attached below) is a quick reference to the following information:
Support Overview
Support Terms
Veeva Global Service Center
Veeva Product Support
Supported Products
Contacting Support
Support Hours
Response Times
Support Scope
For complete detailed information about your specific agreements with Veeva, please refer to your MSA.
Send us your feedback: We are always looking for feedback to help improve our Knowledge Base! Please let us know if this article is helpful or provide feedback on how we can improve your experience by clickinghere.
Veeva Global Support Policy Attachment:
Veeva Support Knowledge Collection Reference Guide
The following article provides a list of all Veeva Support Knowledge Collection articles. A Knowledge Collection is a list of related articles that are consolidated into a single article. This allows the customer to bookmark the Knowledge Collection article and do a refresh periodically to see if its content has changed. Click on any of the Knowledge Collections (below) to gain access to the related articles.
Join us on Tuesday, April 27 at 2 p.m. ET / 11 a.m. PT to review the latest enhancements in the Veeva CRM 21R1.1 release. Attend for the chance to have your questions answered live by Veeva CRM Customer Success and Product experts.