Developer Features in 19R3

We are pleased to bring you the following additions and enhancements to Developer Portal features in 19R3.0. REST API features added in 19R2 only affect API v19.3, unless otherwise noted.


Release Date: September 27, 2019

We are pleased to bring you the following additions and enhancements to Developer Portal features in 19R2.3.

Scalable Overlay Processing

In this release, we will no longer process overlays for a vault on that vault’s POD. Instead, overlay processing will occur on a rendition server. This change will not introduce any difference in functionality, but should improve performance when downloading viewable renditions with overlays applied.

In all versions of the API, the following endpoints may see changes in performance:

If you notice any performance problems related to overlays in your integrations, please log a ticket with Veeva Support.

REST API v19.3

User Pending State

This feature adds a new Pending state to the Vault Membership lifecycle on the User object. Welcome emails can be delayed until the activation date.

When adding a user via the User object, the new Activation Date field can be set to a future date. Adding an activation date sets the user’s initial state to Pending. A new job will run daily to make any pending users active according to their activation date.

Automated Claims Linking

Automated Claims Linking automates the generation of reference links on claim statements in promotional materials. Claims and associated references are configured and approved in Vault PromoMats and applied to documents, where users can quickly review and accept them.

This feature introduces two new attributes, suggested_link_source and suggested_link_target, to the MDL Doctype component. Users can also now retrieve anchor IDs via the Document Annotations API.

GET /api/{version}/objects/documents/{doc_id}/anchors

Download Notes to CSV

This feature allows users to download annotations from Vault documents in a CSV file with a new public API. The action is available to users with View Content permission whenever the document has a viewable rendition and one or more annotations.

GET /api/{version}/objects/documents/{doc_id}/versions/{major_version}/{minor_version}/doc-export-annotations-to-csv

Record Bulk Attachments API

This feature allows API users to create object record attachments in bulk with a JSON or CSV input file. Users must first load the attachments to the FTP staging server. If the attachment already exists, Vault uploads the attachment as a new version of the existing attachment.

User Action to promote Person to User

In this release, there is a new user action available on Person records to Promote to User. This action streamlines the creation of a corresponding User record for the Person record. The newly created user will be automatically linked to the person via the user reference field on person.

To do this through the existing Create User API, a person__sys record ID can be specified as the source_person__v field value. The Source Person field on a user is specific to Vault Clinical.

API Usage Logs to Include Request Duration

This feature adds a duration column to the API Usage Logs. The column shows the time it takes an API request to execute in Vault, measured in milliseconds. Note the duration does not include transport times between Vault and the client.

Vault Java SDK

Message Catalog

This feature enables Vault Java SDK developers to provide a localized experience for the end user. Vault administrators can translate the developer-created messages to provide support for any Vault supported language.

With this feature, we’ve added the Messagegroup component and Message subcomponent to MDL.

Spark User Exceptions

This feature is geared towards developers building Spark Integrations. It allows them to track, route, and resolve any exceptions that requires the attention of a Business Admin.

Spark Integration Management

This feature enhances Spark Integrations by allowing administrators to define groupings (Integrations) of business processes (Integration Points) that work together to achieve the integration goals. Developers can leverage the Integrations and Integration Points along with Integration Rules to create specific business processing rules and to route any user exception messages to the appropriate personnel for resolution.

Debug Log for Application Messages

This feature enables Vault applications to include messages in the debug log. The debug messages generated by the application can be distinguished by the String [standard] prepended to each message.

Thread Sleep Method

With this feature, Vault Java SDK exposes a new method by which developers can put a thread to sleep for a specified period of time, measured in milliseconds. This method is available in the new Vault Java SDK RuntimeService. The method is similar to the Java Thread.sleep() method.

New Whitelisted Methods

With this release, we’ve added two new methods to JDK Whitelist:

The following methods were added in 19R1, but were not included in the 19R1 release notes:

Job Processors

In the Java SDK, there is a new runJob method in JobService, which returns the new JobRunResult object. You can use the getJobId() method on this object to get the job ID.

Previous to this feature, there was no way to get the job ID through the Java SDK.

Metadata Definition Language (MDL)

This feature allows Business Administrators to enable users to select multiple records in a complex join related section.

We’ve added new MDL attribute called multi_select. This attribute is applicable for only complex Many-to-Many join objects, and is false by default. When this attribute value is true, end-users in the Vault UI can select multiple records in a complex join related section.


Release Date: August 23, 2019

We are pleased to bring you the following additions and enhancements to Developer Portal features in 19R2.2.

REST API v19.3

Export Full Audit Trail API

This feature allows customers to gain access to a complete export of their audit logs. Previously, you could only retrieve the last 30 days of events. Document, Object, System, Login, and Domain audit logs are available.

The Retrieve Audit Details API supports a new parameter, all_dates. When set to true, the API starts a job to export the full audit trail with the same formatting as exports initiated through the UI.When the job is complete, the admin receives an email containing links to the zipped files, organized by year.

View this new parameter in the v19.3 API Reference.

Restrict Delegate Access

With this feature, organizations can define groups of users who can delegate access only among themselves.

Admins can create and update groups that leverage this functionality by setting the optional parameter allow_delegation_among_members__v to true. By default, this attribute is set to false.

Additionally, all requests to retrieve information about groups will include the allow_delegation_among_members__v field.

See these new parameters in the v19.3 API Reference.

Vault Query Language (VQL)

State Type Function for Objects

This feature enhances VQL by providing a new STATETYPE() function that exposes all state types configured in object lifecycles. This function can be used in the WHERE clause to filter the objects by specific lifecycle states.

Task Instructions

When a workflow owner assigns a task to a user, they can choose to enter instructions. A new field, task_instructions__v, is now available in VQL. This field retrieves the contents of the field from all task steps within document workflows in a vault.

Vault Java SDK

Object & Document Lifecycle Reference Lookups

Previously, integration rules using reference lookups could only select LIFECYCLE_STATE, allowing a lookup for either document or object lifecycle states. With this feature, we are deprecating LIFECYCLE_STATE while adding OBJECT_LIFECYCLE_STATE and DOCUMENT_LIFECYCLE_STATE, allowing developers to be more specific. All existing Vault extensions using LIFECYCLE_STATE are still supported, but you cannot use this for any new extensions. This option will no longer appear in the Vault UI, even for existing extensions.

View this Enum in the Javadocs.

Write Resource Usage Data to Debug Log

This feature adds a new API in LogService, logResourceUsage(String message), which allows users to log the total amount of resources that their SDK code has used thus far which counts towards their resource limit.

For example, this is what output would look like in the Debug Log when this method is called with a message "USAGE":


When an empty message or null is passed in, the output would look like:

INFO CPU(ns)={CPUTIME} elapsed(ms)={ELAPSEDTIME} memory(b)={MEMORYUSAGE}

View this new method in the Javadocs.

Remove Limit for Maximum Allowed User-Defined Classes

With this feature, the Java SDK no longer has a maximum limit on the number of user-defined classes (UDCs). Users can upload as many UDCs as needed, given your vault does not reach the 1,000 source file limit.

Learn more about Vault Java SDK Limits and Restrictions.

Deallocate Memory When Exiting Nested SDK Code

This feature enhances the mechanism which tracks the SDK memory allocation limit. The limit now resets to the previous value after each Vault extension execution, even if it is not a top-level extension.

The 40MB memory allocation limit applies to SDK Vault extensions and its nested Vault extensions. Since memory allocations made in one Vault extension cannot be “retained” beyond its execution, memory allocations made in a Vault extension will now be “discounted” from usage (that counts towards limit) after its execution, regardless of that particular extension being nested or top level.

Learn more about memory limits.

Metadata Definition Language (MDL)

Object State Types

This feature enables developers to associate an object lifecycle state with an object state type. State types are important as some vault functionality that interacts with object lifecycle states across lifecycles or vaults require this mapping to be provided. To support this feature, we have added two new components.

The Lifecyclestatetype component returns data for all available object lifecycle state types within a vault.

The Lifecyclestatetypeassociation joins a Lifecyclestatetype record with an Objectlifecycle record.

On the Objectlifecycle component, we are deprecating the labeled_states and state_labels attributes in favor of the new components. We will also revive the starting_state attribute. The deprecated components will continue to work in existing integrations.