Developer Features in 24R3

We are pleased to bring you the following additions and enhancements to Developer Portal features in 24R3.

Service Announcements

Service Announcements are changes that may affect existing integrations. Organizations should assess these features against their existing integrations and make updates where necessary.

Java 17 for Vault Java SDK: Optional Enablement

Over the next several releases, Veeva is upgrading the Vault Java SDK to Java 17 to allow developers to take advantage of the upgrades that come with the new version. In addition to new features, Java 17 includes optimizations that can improve performance and efficiency compared to Java 8, allowing for reduced resource usage.

In this release, Developers and Admins can optionally enable Java 17 for Vault Java SDK to test their custom code for compatibility with the new Java version. We recommend developers test their code using Java 17 as soon as possible.

Release Dates:

24R2.2

Release Date: August 23, 2024

Global Changes

Global changes are features that affect multiple product areas or affect Vault holistically. For example, new functionality accessible through both the Vault REST API and the Vault Java SDK.

Yes/No Checkbox Field Enhancement

Yes/No fields using the Show as checkbox option now support null values. This means checkbox fields now support three possible values: true, false, and null. This feature may impact existing integration code which assumes this field’s value can never be null.

For example, starting in this release, creating a new record with an optional checkbox field (that does not have a default value) will now have a null value.

Prior to this release, checkbox fields with no value would always save as false, which means the API and SDK would return false for checkboxes saved with no value. With this feature, checkboxes without values will save as null, and return null from the API and SDK.

Starting in v24.3, developers can use Vault Loader, the API, and the SDK to set checkbox field values to null. It is not possible to set checkbox values to null through the Vault UI.

Migrate Document Usage Object to Raw Object

The Document Usage object captures detailed metrics on user actions, such as viewing, copying, and downloading documents.

To improve performance in Vaults and ensure scalability, this object is being migrated to a raw object. This should have no impact on integrations that query this object.

Learn more about the Document Usage object in Vault Help.

Attachment Fields

Attachment fields are a new field type in Vault that allows users to attach a single file (up to 100 MB in size) to a field on an object record. Admins can create up to 15 custom attachment fields per object. All files used in attachment fields are assigned a unique file handle, which can be used as a file ID.

Developers can upsert object records with attachment fields. You must first upload the file to the staging server, and then provide its file path in the body. There are new APIs to update and download attachment field content. You can also access file metadata using new VQL functions that return the file name, MIME type, MD5 checksum, or file size of the file in an attachment field. File content will not be indexed and will not be available for any query operation.

Attachment fields are supported in the Vault Java SDK, allowing developers to inspect file metadata and copy file content to other attachment fields, object attachments, documents, and document attachments. Attachment field content is not accessible in the SDK.

Object Type Descriptions

Admin users can now provide descriptions for object types, which can be useful for providing additional context when creating or editing object types. The Objecttype component definition now includes a new attribute, description, that can store text up to 1,000 characters.

In Vault Java SDK, developers can use the ObjectTypeMetadata interface to retrieve the information stored in this attribute.

REST API v24.3

REST API features added in 24R3 only affect API v24.3, unless otherwise noted.

Create Single Document API: Enforce Document Template Limits

In 24R1, we introduced Document Template Limits. Starting in 24R2, these limits are also enforced in all versions of the Create Single Document API.

POST /api/{version}/objects/documents

Configuration Migration Mode API

To help automate deployments, we are introducing two new API endpoints that allow developers to enable or disable Configuration Mode. Enabling Configuration Mode locks all non-Admin users from accessing Vault. Users with the Vault Owner or System Admin security profile can continue to work in Vault through the UI and API.

POST /api/{version}/services/configuration_mode/actions/enable

POST /api/{version}/services/configuration_mode/actions/disable

Workflow Participants: User Reference Fields, User Groups, and Task Prompts

Workflow participants in workflow start steps can now be configured based on user fields on object records or user groups (manually created and standard user groups). This allows Admins to auto-start a workflow, assign tasks to predefined users, send notifications, or update sharing settings on the record.

Admins can also now configure prompts to workflow task owners to select additional participants as part of their task completion.

Developers can query workflow participant information using VQL and retrieve and set participant values using the Vault REST API and Java SDK. This allows integrations and custom SDK solutions to access and define participant values based on custom business rules.

Disable Audit Trail on UEM and UEI

Record changes for the User Exceptions Message (UEM) and User Exception Item (UEI) objects are no longer included in audit trails. These objects are used for information purposes to aid in integration management.

Vault Loader CLI Java 17 Support

In order to use the latest version of the Vault Loader CLI, developers need to ensure that Java 17 is available in the environment. Developers can continue to use older versions of Vault Loader CLI with Java 8.

VQL

Strict Matching Adjustments

When you search for documents or object records using the FIND clause, Vault applies rules for how many of those terms must match for an item to be a result. In this release, we are adjusting these rules to allow more results to be returned (making it slightly less strict), without allowing so many items to match that the result set is too large to be useful. With the new rule, 70% of search terms must match for an item to be returned as a result (rounded down).

The most noticeable change is that two terms only require one term to match instead of both. The remaining changes are a subtle difference from today’s rules whereby searches with four or more terms require one fewer term to be considered a match.
This rule that 70% of the terms must match is easier to understand than the previous ruleset, allows a slight increase in the number of results returned, and prevents items from being unexpectedly omitted.

Learn more about strict matching and Vault search settings in Vault Help.

MDL

IF EXISTS / IF NOT EXISTS

MDL now supports two new operators, IF EXISTS and IF NOT EXISTS. Developers and Admins can use these operators to create reusable ALTER MDL scripts that can check Vault configuration and skip processing if the component or subcomponent exists (or not). For example, you can write a script to check if an object field exists and, if so, update the description.

ALTER Object IF EXISTS my_object__c (
    Modify Field IF EXISTS comments__c (
        description('User Comments')
    )
);

Vault Java SDK

Client Credential Support for HTTPService

Vault now allows the creation of Client Credentials (client_crendentials__sys) type records, which can store a Client ID and an encrypted Client Secret. Previously, users could only create Connection Authorization records of the type Basic Authentication (basic_auth__sys). Developers can use these values in the Vault Java SDK together with the HTTPService.

SDK Profiler: Request Summary

SDK profiling sessions allow developers to troubleshoot custom solutions and improve code quality by analyzing results at the SDK request level. Developers can create profiling sessions that capture all SDK requests that occur while the session is active. Profiling results can be downloaded using Vault Admin UI and Vault API and include initiating user, execution id, total memory, elapsed time, and cpu time metrics for each request.

Only one profiling session can be active at a time, and a maximum of 10 sessions can be saved. Each session has a maximum duration of 20 minutes and can capture 10,000 SDK requests.

Create Session:

POST /api/{version}/code/profiler

Delete Session:

DELETE /api/{version}/code/profiler/{sessionName}

Read Session:

GET /api/{version}/code/profiler/{sessionName}

End Session:

POST /api/{version}/code/profiler/{sessionName}/actions/end

List Sessions:

GET /api/{version}/code/profiler/

Download Session CSV:

GET /api/{version}/code/profiler/{sessionName}/results

Vault Safety

Faster Intake Integrations with JSON API

Case Narratives and Transmission information, such as origin, can now be ingested using the Intake JSON API:

POST /api/{version}/app/safety/ai/intake

Developers can include narrative text in the JSON body to automatically create a Case Narrative Document on import. Fields can also be mapped to the Inbound Transmission, such as Sender Comments. This enhancement reduces the number of API calls needed to transmit a Case.

Deprecate the Receive E2B API Endpoint

The Receive E2B API endpoint was replaced several years ago with a new endpoint to import Inbox Items from an E2B (R2) or (R3) file containing one or more Individual Case Safety Reports:

POST /api/{version}/app/safety/intake/inbox-item

In this release, the use of the Receive E2B API endpoint is disabled for all Vaults.