See: Description
| Package | Description |
|---|---|
| com.veeva.vault.vapil.api |
Full coverage of the Vault API including requests and responses
|
| com.veeva.vault.vapil.api.client |
HTTPS Client for the Vault API
|
| com.veeva.vault.vapil.api.model |
Models for all responses, metadata, and data
|
| com.veeva.vault.vapil.api.model.builder |
Builder pattern to create models
|
| com.veeva.vault.vapil.api.model.common |
Models for Vault data such as documents, object records, users, and groups
|
| com.veeva.vault.vapil.api.model.metadata |
Models for Vault metadata such as Objects, Object Fields, and Document Fields
|
| com.veeva.vault.vapil.api.model.response |
Models for Vault API responses
|
| com.veeva.vault.vapil.api.request |
Methods to perform Vault API calls, with each method mapping to a Vault API endpoint
|
| com.veeva.vault.vapil.connector |
Generic connector methods for Vault API
|
The VAPIL release cycle follows the Vault API release cycle, with three general releases a year. Each VAPIL release aligns with the features of the Vault API release for consistency and coverage.
VAPIL developers are responsible for:
<repositories>
<repository>
<id>vapil</id>
<url>https://veeva.github.io/vault-api-library/maven</url>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.veeva.vault</groupId>
<artifactId>vapil</artifactId>
<version>21.1.4</version>
</dependency>
</dependencies>
public class HelloWorld {
public static void main(String[] args) {
// Set the Vault Client Id, which is required for all API calls
VaultClientId vaultClientId = new VaultClientId("verteobiotech","vault","quality",true,"myintegration");
// Instantiate the VAPIL VaultClient using user name and password authentication
VaultClient vaultClient = VaultClientBuilder
.newClientBuilder(VaultClient.AuthenticationType.BASIC)
.withVaultDNS("verteobiotech.veevavault.com")
.withVaultUsername("username@verteobiotech.com")
.withVaultPassword("password")
.withVaultClientId(vaultClientId)
.build();
// Perform a VQL query and display the results
QueryResponse resp = vaultClient.newRequest(QueryRequest.class)
.query("SELECT name__v, email__sys FROM user__sys MAXROWS 3");
if (resp != null) {
System.out.println("-----------------------------------------");
System.out.println("Response Status = " + resp.getResponseStatus());
System.out.println("Total Records = " + resp.getData().size());
for (QueryResponse.QueryResult row : resp.getData())
System.out.println("Name = " + row.get("name__v") + ", Email = " + row.get("email__sys"));
}
}
}
-----------------------------------------
Response Status = SUCCESS
Total Records = 3
Name = System, Email = System
Name = Todd Taylor, Email = todd.taylor@verteobiotech.com
Name = Mark Arnold, Email = mark.arnold@verteobiotech.com
VaultClientId vaultClientId = new VaultClientId("verteobiotech","vault","quality",true,"myintegration");
String sessionId = "xxxxxxxxxxxxxxxxx";
VaultClient vaultClient = VaultClientBuilder
.newClientBuilder(VaultClient.AuthenticationType.SESSION_ID)
.withVaultDNS("verteobiotech.veevavault.com")
.withVaultSessionId(sessionId)
.withVaultClientId(vaultClientId)
.build();
Create a Single Document
Document doc = new Document();
doc.setName("VAPIL Single Document");
doc.setLifecycle("General Lifecycle");
doc.setType("General");
doc.setTitle("Test Upload VAPIL");
doc.set("custom_field__c", "value");
DocumentResponse documentResponse = vaultClient.newRequest(DocumentRequest.class)
.setInputPath(filePath)
.createSingleDocument(doc);
Bulk Create Multiple Documents from CSV File
DocumentBulkResponse documentResponse = vaultClient.newRequest(DocumentRequest.class)
.setInputPath(csvFilePath)
.createMultipleDocuments();
Bulk Update Object Records (Input CSV, JSON Response)
ObjectRecordBulkResponse objectResponse = vaultClient.newRequest(ObjectRecordRequest.class)
.setContentTypeCsv()
.setInputPath(localPath)
.updateObjectRecords("product__v");
Retrieve the Audit Trail for Documents in past 30 days
DocumentAuditResponse auditResponse = vaultClient.newRequest(LogRequest.class)
.setStartDate(ZonedDateTime.now(ZoneId.of("UTC")).minusDays(29))
.setEndDate(ZonedDateTime.now(ZoneId.of("UTC")).minusDays(1))
.setLimit(4)
.retrieveAuditDetails(LogRequest.AuditTrailType.DOCUMENT);
AuditDetailsResponse.ResponseDetails details = auditResponse.getResponseDetails();
System.out.println("Offset = " + details.getOffset());
System.out.println("Limit = " + details.getLimit());
System.out.println("Size = " + details.getSize());
System.out.println("Total = " + details.getTotal());
System.out.println("Object/Name = " + details.getDetailsObject().getName());
System.out.println("Object/Label = " + details.getDetailsObject().getLabel());
System.out.println("Object/Url = " + details.getDetailsObject().getUrl());
System.out.println("Items ****");
for (DocumentAuditResponse.DocumentAudit audit : auditResponse.getData()) {
System.out.println("\n**** Data Item **** ");
System.out.println("id = " + audit.getId());
System.out.println("timestamp = " + audit.getTimestamp());
System.out.println("UserName = " + audit.getUserName());
System.out.println("Full Name = " + audit.getFullName());
System.out.println("Action = " + audit.getAction());
System.out.println("Item = " + audit.getItem());
System.out.println("Field Name = " + audit.getFieldName());
System.out.println("Workflow Name = " + audit.getWorkflowName());
System.out.println("Task Name = " + audit.getTaskName());
System.out.println("Signature Meaning = " + audit.getSignatureMeaning());
System.out.println("View License = " + audit.getViewLicense());
System.out.println("Job Instance ID = " + audit.getJobInstanceId());
System.out.println("Doc ID = " + audit.getDocId());
System.out.println("Version = " + audit.getVersion());
System.out.println("Document Url = " + audit.getDocumentUrl());
System.out.println("Event Description = " + audit.getEventDescription());
}
Copyright © 2021. All rights reserved.