Vault allows you to easily customize and extend your application data model by modifying standard objects, creating custom objects, and configuring object relationships.
Accessing Object Configuration
You can configure objects from Admin > Configuration > Objects. To work on object configuration, you must have the Admin: Objects permissions.
How to Customize Standard Objects
To modify an existing, standard object:
- From Admin > Configuration > Objects, click into the object.
- Click Edit.
- Modify details as needed. Many attributes are not editable.
- Click Save.
Generally, the following attributes are editable for a standard object. Depending on your Vault application’s data model, you may be able to edit additional attributes, or editing may be blocked on some of these attributes:
- Label
- Value that appears to users as the name of the object-type field.
- Help Content
- Custom pop-up help text; help content appears with the question mark icon in the header of the object record list page, for example, in Business Admin > Objects > Products.
- Display in Business Admin
- Setting that makes the object appear in the Business Admin component selector.
- Allow attachments
- Setting that enables/disables file attachments on the object’s data records.
- Enable Object Types
- Setting to enable or disable object types on the object; this setting is not editable on all standard objects.
- Matching Sharing Rules
- Setting that enables/disables matching sharing rules for the object; when enabled, you must also select a User Role Setup Object.
- Custom Sharing Rules
- Setting that enables/disables custom sharing rules for the object.
- Action Security
- Settings that enable/disable the use of Action Level Security to control whether a user can see or execute certain actions on the object’s data records, for example, the Audit Trail action.
- Fields
- Editable from the Fields tab; for standard fields, you can modify the Label, Help Content, Description, Values must be unique, User must always enter a value (limited to certain standard fields), and Display in default lists and hovercards attributes, but you cannot modify other attributes, inactivate, or delete fields. You can create custom fields for standard objects. Custom fields are fully editable. You can also add fields to a layout on the object using the Add to Layout button.
- Relationships
- Parent-child or referring relationships between objects. Standard (non-customized) relationships are not editable. You can never add a parent object to a standard object. However, you can make a standard object the parent of a custom object or create a reference relationship to or from a standard object.
- Layouts
- Settings that allow you to create up to 20 custom layouts for objects and object types.
How to Create Custom Objects
To set up a new custom object:
- From Admin > Configuration > Objects, click Create.
- Enter basic details for the new object: label, plural label, and name. The name does not appear to end users and is only visible via the API.
- Optional: Set the status to Inactive to prevent users from creating or modifying object records and to prevent users from viewing or accessing the object.
- Optional: Set the Object Class. To create user task objects, you must set the class to User Task.
- Optional: Set the Data Store. Select Standard or Raw.
- Optional: Add additional details, including description and custom help content.
- Optional: Select the Display in Business Admin checkbox.
- Optional: Select the Allow attachments checkbox to enable file attachments on object records for this object. To enable Action Level Security for attachment actions, select the Use Action security to control Attachments checkbox.
- Optional: Select the Audit data changes checkbox to track object data record changes in the audit logs.
- Optional: Select the Relate Multiple Records checkbox.
- Optional: Select the Enable Object Types checkbox to allow object types within this object.
- Optional: Select the Enable Merges checkbox to enable merges on object records for this object. This allows API or SDK integrations to merge two object records together.
- Optional: Select the Matching Sharing Rules checkbox to enable matching sharing rules for the object.
- Optional: Select the Custom Sharing Rules checkbox to enable custom sharing rules for the object. To enable Action Level Security for the Sharing Settings action, select the Use Action security to control Sharing Settings checkbox.
- Optional: Select the Use Action security to control Audit Trail checkbox to enable Action Level Security for the Audit Trail action.
- Optional: Select a Lifecycle for the object to use object lifecycles.
- Click Save.
Once you’ve created and saved your custom object, you can further configure settings by clicking on the object from Admin > Objects. From this page, you can:
- Open the Fields tab and review the standard fields that Vault creates for the object. For each field, review the Values must be unique setting.
- Click Create to add additional fields.
- Open the List Layout tab. Click Reorder and then drag field names to modify the order of object fields.
- Open the Layouts tab to configure object and object type layouts.
Displaying Objects in Business Admin
The Display in Business Admin setting controls whether users will see the object listed in Business Admin > Objects. For example, you can choose to not display objects that non-Admin users will interact with and instead create a custom tab for them.
Audit Data Changes
You can have Vault capture object record data changes in audit logs by enabling the Audit data changes setting. Vault always captures changes to object configuration, regardless of this setting.
This setting is off by default and only users with appropriate permissions, typically System Administrators and Vault Owners, can enable it. However, if there are existing records in the object, only Vault Owners can enable this setting. Once enabled, Vault logs only new audit events going forward for new and existing records.
Relating Object Records
The Relate Multiple Records setting is only visible on relational (join) objects with two parent objects and only editable for complex many-to-many joins. By default, this setting is off. When this setting is enabled, users can relate multiple complex join records from a Related Object section on either parent’s object record detail page. Vault automatically creates these records in the background.
In order to enable this setting, the complex join object either must have system-managed naming enabled, or the Name field on the complex join object should have the Values must be unique setting disabled. This helps prevent record creation from failing. We also recommend that you do not enable the User must always enter a value setting on any fields on the complex join object. Finally, ensure that the page layout for each parent object includes a Related Object section for the complex join object so that users can create related records.
Selecting an Object Lifecycle
You can use object lifecycles with custom objects that you create. If you want to use a lifecycle but haven’t yet created it, click Create Lifecycle from the Lifecycle picklist. You can only assign one object lifecycle to an object. This is required if you enable Matching Sharing Rules.
Ordering Fields on Record List Pages
You can define the default order of fields in object record list pages. This order affects the object details window that displays for end users when they hover over the record label in the Doc Info page. The object record label, for example Product Name or Country Name, should appear first.
Adding Record Summary Fields
After adding fields to an object, you can configure Record Summary Fields to display at the top of the object or object type record detail page. These fields will display as users navigate from page to page or layout to layout on the object. All fields on the object or object type are available for selection.
If Record Summary Fields are not configured on the object type, the object Record Summary Fields will display. If a Record Summary Field is not available on the object type, it will not display even if configured on the object. When Record Summary Fields are configured on the object type, they will supersede any Record Summary Fields from the object.
If a field is deleted from the object or object type, it is removed from the Record Summary Fields.
How to Add Object Fields
You can add new fields to both custom and standard objects. The Object and Parent Object field types will create object relationships, while the Lookup field type utilizes existing object relationships. To add an object field:
- From Admin > Configuration > Objects, click into the object.
- Click Edit and open the Fields tab.
- Click Create.
- Select a Field Type from one of the following categories: Text, Number, Date & Time, Reference, Other.
- Fill in the remaining attributes, including Label, which is the field name that will appear for users.
- Optional: Enter a Description for the field. This is used to assist Admins when configuring the object, and is not visible to users.
- Optional: Review the User must always enter a value (required) checkbox, if this is available for your field type.
- Optional: Review the Values must be unique setting, if this is available for your field type.
- Optional: Select the Display in default lists and hovercards checkbox to have the field appear in the Admin area’s object record list view, the object record hovercard in the Doc Info page, and the object lookup dialog.
- Optional: Select the Do not copy this field in Copy Record checkbox to prevent the Copy Record action from copying the source field value to the new record. System fields have this selected by default and cannot be unselected.
- Optional: Set a Default Value for the field, using either a literal value or a formula. Not all field types allow defaults.
- Optional: Select Contains Protected Health Information (PHI) or Personally Identifiable Information (PII), if this setting is available for your field type.
- Optional: Set a Format Mask for the field. Not all field types allow format masks.
- Click Save.
Email Fields
Email fields allow users to enter and display an email address in the object record. Vault formats the user’s input as a hyperlink that opens the default email client of the user who selects it. For example, the input ‘john.smith@company.com’ is formatted as a hyperlink that opens a draft message in the user’s default email client with ‘john.smith@company.com’ populated in the To field. Vault does not check if the input value is a valid email address. However, you can use the Regex()
logical function to validate the email address using Record Validation Rules.
Link Fields
Vault formats text entered in a Link field as a hyperlink. Users should enter the full value of a hyperlink in these fields only if it opens a linked destination. For example, entering ‘www.veeva.com’ in a Link field displays ‘www.veeva.com’ as a link to the Veeva homepage.
When creating a Link field, select Open link in same window to prevent the link’s destination from opening in a separate browser tab by default. Vault does not check if the input value is a valid hyperlink. However, you can use the Regex()
logical function to validate the hyperlink using Record Validation Rules.
Long Text Fields
Long text fields are special text fields that allow users to enter up to 32,000 characters.
Long text fields on objects can be used in expressions using the Left()
, IsBlank()
, If()
, and Case()
functions.
Picklist Fields
When creating a Picklist field, you can select Use existing picklist to use an existing picklist instead of creating a new one. Some system picklists such as Timezone are not available for use as an existing picklist.
Limitations
- You cannot use tokens for Long Text fields in overlays, signature pages, or messages.
- You cannot convert an existing Text field into a Long Text field.
Phone Fields
Vault formats values entered in a Phone field in a phone number format. If a user specifies a country code, it is formatted as an international number. If no country code is specified, Vault formats the number using the North American Numbering Plan. For example:
- Input “+34932719725” = “+34 932 71 97 25”
- Input “19254526500” = “1 (925) 452-6500”
- Input “9254526500” = “(925) 452-6500”
Users can enter non-numeric characters, such as “1-800-CABLETV”, or use their own formatting, such as “(456) 789-1234”. Vault will not attempt to format these inputs further.
Rich Text Fields
Rich Text fields are special text fields that allow users to apply common formatting options, including font family, size, text decorations, alignment, lists, scientific notations, and links. Vault applies text formatting using HTML and supports up to 32,000 plain text characters (which you can configure when creating a Rich Text field), or a maximum of 64,000 plain text and HTML markup characters (not configurable). For example, <b>Hello</b>
has five (5) plain text characters and seven (7) HTML markup characters which equals (12) characters total.
Rich Text fields on objects can be used in expressions using the Left()
, IsBlank()
, If()
, and Case()
functions.
Limitations
- Users must apply text format using the formatting toolbar. If users manually type HTML markup into a Rich Text field, Vault treats it as plain text
- The Rich Text formatting toolbar does not appear to users on mobile devices, though users can format text using their device’s native text formatting toolbar.
- Vault displays Rich Text Merge Fields as plain text.
- Vault does not support Rich Text fields in Merge Fields barcodes.
Currency Fields
Currency fields allow users to enter a monetary amount, which Vault then displays throughout the UI according to the user’s locale. Adding the first Currency-type field to an object creates an additional Local Currency (local_currency__sys
) field and each Currency-type field creates a related corporate currency field.
Percent Fields
Percent fields allow users to enter a number value that Vault converts to a percentage. The percentage is dependent on the Minimum Value, Maximum Value, and selected Decimal Places value (0-9). Vault drops trailing zeros in decimal percentages. For example:
- 51 = 51%
- 51.10 = 51.1%
- 51.745 = 51.745%
Before setting the Minimum Value, Maximum Value, and Decimal Places fields, convert the percentage values you want to allow into a number format. For example, 65% equals 0.65 and 99% equals 0.99. If you want users to enter values such as 51, 65, or 100, you would configure:
- Minimum Value: 0
- Maximum Value: 1
- Decimal Places: 2
Vault then converts these values into whole percentages at runtime: 51%, 65%, 100%. This configuration does not allow decimal percentages, because these would add more than two (2) numbers after the decimal place. For example, 65.5% converts to 0.655 as a number while 65% converts to 0.65. In addition, 6.5% converts to 0.065.
If you set Decimal Places to one (1), Vault allows no more than one (1) number after the decimal. Therefore, users can only enter percentages in multiples of 10, such as 10 for 10% and 20 for 20%. This happens because the number format contains only one number after the decimal, such as 0.1 for 10%. In addition, if you want a user to enter a value such as 25.92%, you would need four (4) decimal places because 25.92% equals 0.2592 in a number format.
Date Fields
Date fields allow users to enter a date either by typing in MM/DD/YYYY format, or by clicking the calendar icon and selecting the date. Date fields also include a Today link that users can click to easily set the value to the current date.
Time Fields
Time fields allow users to enter a time either by typing in values manually, or by selecting a time from a selector. Vault displays the user’s time input according to their locale settings. For example, if a US user enters “1:30 PM”, German users will see “13:30” instead.The time closest to the user’s current time is highlighted by default in the time selector. When users are editing a Time field, they can also click the Now button to update the value to their current time.
Lookup Fields
Vault displays a field value from parent or referenced object relationships on Lookup fields. When creating a Lookup field, you must select the related object record and field.
User Object Fields
When creating an object reference field on an object, you can link to the User object.
Document Object Fields
When creating an object reference field on an object, you can link to the Document object to create a document reference field.
Attachment Fields
Attachment fields allow users to attach a single file to a field on the record. Users can upload, download, and remove files from this field. Unlike the Attachments section, Attachment fields can be controlled by field level security and atomic security, similar to all other object field types.
You can add up to 15 Attachment fields per object, and one file per field. You can also add Attachment fields as a column on the object record list page, which allows the same upload, download, and remove functionality available on the object record layout. You cannot delete an Attachment field if it is referenced in another component, for example, if the field is in use on at least one record, a formula expression, or validation rule.
Used in conjunction with the isBlank()
function or lifecycle state entry criteria, you can use layout rules and validation rules to ensure an Attachment field is populated at specific points in a lifecycle.
Limitations
- You can upload files up to 100 MB in size
- Attachment fields are not supported on raw objects.
- Vault does not render files uploaded to Attachment fields. You can only view these files by downloading them.
- File names cannot exceed 215 bytes, including the file extension. One (1) character does not always equal one (1) byte. For example, the character 菌 is three (3) bytes.
- Attachment fields are not versioned.
- You cannot add a description to Attachment fields.
- You cannot search for files uploaded to an Attachment field using the attachment’s content and must use the file name.
Formula Fields
You can create a Formula-type field on an object to show either a calculated value or an icon. For details about adding Formula fields, see Configuring Formula Fields on Objects.
Yes/No Fields
When creating a Yes/No field on an object, you can select Show as checkbox to display the field as a checkbox instead of a Yes and No radio button. When you select this option, the checkbox displays in the object record list page grid, and on the object record details page.
Yes/No fields have three (3) states: Yes, No, or null. Yes/No checkbox fields on new object records have a null value unless a default value is configured. If you select a null checkbox, Vault updates the value to Yes. Then, if you clear the checkbox, Vault sets the value to No. Once a user selects or clears a null checkbox, they can only set it to null again through the API or Vault Loader.
Note: Selecting Show as checkbox on a Yes/No field will not cause any updates to existing records on the object.
Record Validation Rules
You can configure validation rules for object records to ensure that users enter meaningful and correct data by checking object field values. A validation rule contains a formula or expression that evaluates the user-entered data on a field and returns “True,” meaning that the data is valid, or “False,” meaning that the data is invalid.
Required Setting
Within some fields’ configuration, there is a User must always enter a value (required) setting. When this setting is enabled, users cannot create or save changes to object records if this field is blank.
You cannot enable this setting for object and document reference fields if the field’s Deletion Rule is Set field to blank when related document is deleted.
Values Must be Unique Setting
Within some fields’ configuration, there is a Values must be unique setting. For every object, there are some fields where each record must have a unique field value (like Name or External ID) and others that do not need to be unique (like Therapeutic Area or Product). In hierarchical objects, Vault only enforces uniqueness for records that share the same parent.
When editing an object field, the system applies changes to this setting asynchronously, meaning that there may be a delay before the change takes effect, particularly on Vaults with a lot of activity. While the system is processing these changes, Vault will block certain actions on the affected field, including deleting the field and modifying the Maximum Length setting.
Pre-Default Object Reference Field Setting
In the Object field type configuration, there is a Pre-Default on non-required field when only one reference record is available setting. When this setting is enabled, Vault pre-populates the optional object reference field when there is only one record available on the referenced object.
This setting applies to document and object reference fields. This behavior only applies when creating or copying records on the object record details page and not during background processes, such as API calls.
Format Masks
You can set a format mask on an object field to configure how text and number fields display in Vault. When creating a Text or Number field, navigate to Step 5 to create a format mask.
The Formats tab provides Phone, Link, Email, and Time formats for Text fields and Percent formats for Number fields. The Email and Link format options display the user’s input as a hyperlink. For example, if a user enters an email address, they can use this hyperlink to open a new email in their mail application.
The Email and Link formats do not verify that the user has entered a valid email address or URL, though you can accomplish this with validation rules using the Regex()
function.
You can also configure your own format mask expressions using Vault formula expressions.
Format masks are only available for Text and Number fields, lookup fields with a Text or Number field as the source, and formula fields that return a Text or Number field.
You cannot configure format masks for standard Text and Number fields within the following:
- First Name, Last Name, and Veeva ID fields on Person objects
- EDL-related objects (EDL, EDL Item, EDL Template, EDL Item Template)
Note: You can configure format masks for standard fields on checklist-related objects, but those fields will not display correctly on checklist custom views such as previewing a Checklist Design, using Visual Checklist Designer, or completing a checklist.
How to Configure Format Masks
To configure a format mask:
- In the Format Mask section, select Formats.
- Select your desired format from the Search Formats picklist.
- Click Check Syntax to verify your expression is valid.
- Optional: Use the Preview Tool to display an example of the format mask as it will appear on the user’s end. For example, if you are using the LinkFormat() function and enter “www.veeva.com” in the Value Entered field, the Value Displayed field populates “www.veeva.com” in a hyperlink format that opens the Veeva home page.
- Click Save.
The user will now see your format mask whenever they interact with the formatted field on the object.
Note: If you run a report on an object with fields using format masks, the formatted fields will pass through to the reports. For example, if a field using the number format mask is added to an object report, the formatted value will display in the report results. Users can enter values for format mask fields in report filters, conditional fields, and prompts. However, the original value entered is used for aggregate calculations and report groupings.
Add Fields to Object Layout
Once you’ve created a new field, you can add it to an object or object type layout. This action applies to new and existing fields. Click on the field in the Fields tab, and then click Add to Layout.
A Select Layout window appears with all active layouts available on the object. If the field is already added to a layout, that layout is grayed out for selection. Select the layout and click Done. The next time you add fields to a Details Form section on the layout, the new field will appear for selection.
Field-Level Encryption for PHI & PII
All Vault data today is stored securely. For sensitive information like Protected Health Information (PHI) and Personally Identifiable Information (PII), Vault offers a second level of protection for field values. To mark a field as PHI/PII:
- Select an object from Admin > Configuration > Objects.
- Select a field where you want Vault to add additional protection. Vault cannot add additional protection on system fields, formula reference fields, object reference fields, document reference fields, picklist-type fields, or fields that already have values.
- Enable the Contains Protected Health Information (PHI) or Personally Identifiable Information (PII) option.
Vault will provide additional security for values entered into fields where you’ve enabled this option. You can only enable this option for a maximum of ten (10) fields per object.
Document Security with Custom Objects
Custom objects do not have the same functionality as standard objects. If your Vault uses non-DAC document security, you cannot use custom objects for default role assignment overrides. For example, you could choose to default different users into the Reviewer role based on the country selected for a document because Country is a standard object. You could not do this with a custom object.
How to Enable Create & Relate Records
It’s possible to create and relate object records without leaving the context of the original record. This option is only available for objects related through an object reference field or a simple relational object. You can also create and relate object records from document fields that reference an object. You must enable this feature for each individual object reference field.
- Open the object in Admin > Configuration > Objects > {Objects}.
- Click Fields.
- Click on the object reference field (Object or Parent Object field type).
- Click Edit.
- Select the Allow create new reference record checkbox.
- Click Save.
How to Reference Objects in Document Fields
Once you have created an object, you must create a document field that corresponds to it in order to allow users to associate an object with a document. Most steps of the document field creation process are detailed in Managing Document Fields.
To create an object-type document field:
- Follow the basic steps to create any new document field.
- After selecting Object as the field type, enter a Label. This label, not the actual object’s label, will appear to end users.
- Under Step 3, select an object to which the field should map. Object-type fields will work much like picklists for the end user, but the picklist options are managed as object data records in Business Admin > Objects, rather than as picklists.
- If your field maps to a child object, select the parent object’s document field in the Controlling Field picklist.
How to Modify Business Admin Layout
You can choose to prevent objects from displaying here by clearing the Display in Business Admin checkbox in the object configuration. If you prevent a child object from displaying, Admin users can still create data records for the object from within the parent data record.
Object data records can also appear outside of Admin if your Vault includes custom tabs.
Limitations on Object & Object Record Deletion
In some situations where an object is in use within your Vault, you will not be able to delete it. In these cases, you can change the object’s Status to Inactive to prevent users from accessing the option without compromising configurations or document metadata.
To fully disable a custom object so that users cannot make selections for it within document fields, you must also change the status for the document field. Standard objects can never be deleted or disabled.
Object Record Deletion & Relationships
When creating object reference fields and defining relationships between two objects, you also define deletion rules. This setting affects how Vault behaves when you attempt to delete an object record that is either the parent object record in a parent-child relationship or the referenced object record in a reference relationship. The Deletion Rule options are:
- Prevent deletion of the related object record
- This option prevents you from deleting an object record if it is selected as a parent object record or as a reference object record. For example, you cannot delete a product if there are marketing campaigns with that product selected as their parent. You also cannot delete an agency if the agency is referenced by marketing campaigns.
- Cascade delete children records
- This option is only available for parent-child relationships. For Vaults using the RIM Submissions application, the Submission object has a self-reference relationship that also supports cascade delete. When you delete an object record, Vault also deletes any object records that have the deleted record as their parent. For example, deleting a product deletes all child marketing campaigns. When you delete more than 1,000 records, Vault deletes records asynchronously in a background process. You will be notified when the process completes.
- Set field to blank when related record is deleted
- This option is only available for reference relationships. When you delete an object record that is referenced by another object record, Vault resets the referencing field to be blank. For example, when deleting an agency, the Agency field on all marketing campaigns with that agency become blank.
Limitations
Vault enforces certain limits to ensure that users don’t experience performance issues:
Type | Limit |
---|---|
Custom Objects | Up to 500 custom objects per Vault |
Unique Custom Fields on Objects | Up to ten (10) unique custom fields assigned to each object |
Custom Fields on Objects | Up to 500 custom fields assigned to each object |
Long Text Fields on Objects | Up to ten (10) Long Text and Rich Text fields combined per object (standard and custom) |
Rich Text Fields on Objects | Up to ten (10) Long Text and Rich Text fields combined per object (standard and custom) |
Lookup Field Relationships on Objects | Up to ten (10) lookup relationships per object |
Lookup Fields on Relationships | Up to 20 lookup fields per lookup relationship |
Object Types | Up to 30 object types per object |
Object Records | Up to 100,000,000 records per standard data store object. Up to 1,000,000,000 records per raw data store object. |
Custom Outbound Relationships | Up to 20 relationships per object |
Custom Inbound Relationships | Up to 50 relationships per object |