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.3</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.