Class QueryRequest
Available query methods:
query(String)
- query with pagination, usequeryByPage(String)
for pagination of the results
See query(String)
for example request and response methods, including reading of the resulting
data and handling of the X-VaultAPI-DescribeQuery parameter.
- Vault API Coverage:
- https://developer.veevavault.com/api/25.2/#vault-query-language-vql
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum
Download option for Document Token -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
X-VaultAPI-DescribeQuery Set to true to include static field metadata in the responsestatic final String
X-VaultAPI-RecordProperties If present, the response includes the record properties object.Fields inherited from class com.veeva.vault.vapil.api.request.VaultRequest
HTTP_HEADER_AUTHORIZATION, HTTP_HEADER_REFERENCE_ID, HTTP_HEADER_VAULT_CLIENT_ID, referenceId, requestClientId, vaultClient
-
Method Summary
Modifier and TypeMethodDescriptionVQL QueryqueryByPage
(String pageUrl) Get Query PagesetDescribeQuery
(Boolean queryDescribe) X-VaultAPI-DescribeQuerysetRecordProperties
(QueryRequest.RecordPropertyType recordPropertyType) X-VaultAPI-RecordPropertiesMethods inherited from class com.veeva.vault.vapil.api.request.VaultRequest
getBaseObjectMapper, send, send, sendReturnBinary, sendReturnBinary, sendToFile, sendToFile, setHeaderClientId, setHeaderReferenceId, setVaultClient
-
Field Details
-
HTTP_HEADER_VAULT_DESCRIBE_QUERY
X-VaultAPI-DescribeQuery Set to true to include static field metadata in the response- See Also:
-
HTTP_HEADER_VAULT_RECORD_PROPERTIES
X-VaultAPI-RecordProperties If present, the response includes the record properties object.- See Also:
-
-
Method Details
-
query
VQL QueryPerform a Vault query request. Subsequent queries and pagination are needed to retrieve the full result set if the total records returned exceed the "pagesize" parameter in the response. See
queryByPage(String)
.Returned records can be retrieved via the "getData" method in the response.
- Parameters:
vql
- The fully formed query string- Returns:
- QueryResponse
- Vault API Endpoint:
POST /api/{version}/query
- Example Request:
QueryResponse response = vaultClient.newRequest(QueryRequest.class) .setDescribeQuery(true) .query(query);
- Example Response:
Example display of query results, including sub-query results List<QueryResponse.QueryResult> results = response.getData(); System.out.println(spacer + "Total records = " + results.size()); String spacer = StringUtils.leftPad("",level,"\t"); * int i = 0; for (QueryResponse.QueryResult queryResult : results) { i++; System.out.println(spacer + "------- " + i + " -------"); for (String fieldName : queryResult.getFieldNames()) { Object data = queryResult.get(fieldName); if (data instanceof LinkedHashMap) { QueryResponse subQuery = queryResult.getSubQuery(fieldName); if (subQuery != null) { System.out.println(spacer + fieldName + " = "); // Get the subquery results using subQuery.getData() } else { System.out.println(spacer + fieldName + " = null"); } } else { System.out.println(spacer + fieldName + " = " + queryResult.get(fieldName)); } } }
,Example reading of pagination details System.out.println("PageSize " + response.getResponseDetails().getPageSize()); System.out.println("PageOffset " + response.getResponseDetails().getPageOffset()); System.out.println("Size " + response.getResponseDetails().getSize()); System.out.println("Total " + response.getResponseDetails().getTotal()); if (resp.getResponseDetails().getNextPage() != null) { System.out.println("Next page " + response.getResponseDetails().getNextPage()); System.out.println("Previous page " + response.getResponseDetails().getPreviousPage()); }
,Example reading of X-VaultAPI-DescribeQuery results The X-VaultAPI-DescribeQuery can be set via the
setDescribeQuery(Boolean)
method, with an example response: if (resp.getQueryDescribe() != null) { System.out.println("Object Name = " + response.getQueryDescribe().getQueryObject().getName()); System.out.println("Object Label = " + response.getQueryDescribe().getQueryObject().getLabel()); for (VaultObjectField field : resp.getQueryDescribe().getFields()) { System.out.println("\tField Name = " + field.getName()); System.out.println("\tField Label = " + field.getLabel()); } }
-
queryByPage
Get Query PagePerform a paginated query based on the URL from a previous query (previous_page or next_page in the response details).
Note that this does not support described query, which should be read upon the first query call if needed.
- Parameters:
pageUrl
- The URL from the previous_page or next_page parameter in the form
POST /query/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx?pagesize=10&pageoffset=10- Returns:
- QueryResponse
- Vault API Endpoint:
Example query URL format POST /query/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx?pagesize=10&pageoffset=10
- Example Request:
QueryResponse response = vaultClient.newRequest(QueryRequest.class).query(query); // Get the first pageoffset (assuming correct response and an pageoffset exists) QueryResponse paginatedResponse = = vaultClient.newRequest(QueryRequest.class) .queryByPage(response.getResponseDetails().getNextPage());
- Example Response:
System.out.println(paginatedResponse.getResponseStatus())
;
-
setDescribeQuery
X-VaultAPI-DescribeQuerySet to true to include static field metadata in the response for the data record. If not specified, the response does not include any static field metadata. This option eliminates the need to make additional API calls to understand the shape of query response data.
- Parameters:
queryDescribe
- True for a describe- Returns:
- The Request
- Example Response:
- Example results of a query describe
if (response.getQueryDescribe() != null) { System.out.println("Object Name = " + response.getQueryDescribe().getQueryObject().getName()); System.out.println("Object Label = " + response.getQueryDescribe().getQueryObject().getLabel()); for (VaultObjectField field : response.getQueryDescribe().getFields()) { System.out.println("\tField Name = " + field.getName()); System.out.println("\tField Label = " + field.getLabel()); } }
-
setRecordProperties
X-VaultAPI-RecordPropertiesIf present, the response includes the record properties object. Possible values are all, hidden, redacted, and weblink. If omitted, the record properties object is not included in the response.
- Parameters:
recordPropertyType
- record property type- Returns:
- The Request
- Example Response:
- Example results of record properties
if (response.getRecordProperties() != null) { for (RecordProperty recordProperty : response.getRecordProperties()) { System.out.println("\tId = " + recordProperty.getId()); System.out.println("\tHidden = " + String.join(",", recordProperty.getFieldProperties().get("hidden"))); } }
-