-
Notifications
You must be signed in to change notification settings - Fork 41
Business Object Data Search
Nate Weisz edited this page Aug 16, 2016
·
5 revisions
- Availability includes business logic
- Results include elements for Available and NotAvailable
- Only returns on VALID status
- Always takes PartitionKeyGroup into account when considering ranges
- Returns only latest versions
- Search just does what you tell it
- Has no clue about what availability means
- Makes no judgement based on status
- Ignores PartitionKeyGroup
- no baked-in logic about versions (but will allow you to filter on latestVersion)
- The businessObjectFormatKeys will allow various key parts to be specified depending on story requirements (e.g. namespace and bdef name).
- Will try to adhere to API Standards when it comes to Sorting, Field Limiting, and Pagination.
- We will have to determine the max page size and make it a system configuration (e.g. 100 per page).
- Individual field names will have to be determined for each sortable and field limiting field (e.g. partitionValue, businessObjectDataStatusCreationDate, etc.).
- Each resultant business object data object will only contain the key fields by default unless additional fields are specified in the "fields" query parameter.
- The default sort would most likely be "business object data status creation date" descending, but this should be evaluated based on performance. The most recent status changes to the oldest ones.
- When multiple values are allowed within a specific filter, they are "OR"ed. When different filters are added, they are "AND"ed. For example, if multiple business object definition keys and business object data statuses are both specified, that would mean where business object definition = a OR b AND business object data status = status1 OR status2.
- No filters are required which will simply return all business object data keys from newest to oldest in a paginated result. We need to decide whether this is possible for performance reasons.
<businessObjectDataSearchRequest>
<businessObjectDataSearchFilters>
<businessObjectDataSearchFilter>
<businessObjectFormatKeys>
<businessObjectFormatKey>
<namespace>DATAMGT</namespace>
<businessObjectDefinitionName>NYX_BADGE</businessObjectDefinitionName>
<businessObjectFormatUsage>PRC</businessObjectFormatUsage>
<businessObjectFormatFileType>GZ</businessObjectFormatFileType>
<businessObjectFormatVersion>1</businessObjectFormatVersion>
</businessObjectFormatKey>
...
</businessObjectFormatKeys>
<businessObjectDataStatuses>
<businessObjectDataStatus>VALID</businessObjectDataStatus>
...
</businessObjectDataStatuses>
<businessObjectDataAttributes>
<businessObjectDataAttribute>
<businessObjectDataAttributeKey>myKey</businessObjectDataAttributeKey>
<businessObjectDataAttributeValue>myValue</businessObjectDataAttributeValue>
</businessObjectDataAttribute>
...
</businessObjectDataAttributes>
<partitionValueFilters>
...similar to availability...
</partitionValueFilters>
<latestBusinessObjectDataVersion>true</latestBusinessObjectDataVersion>
</businessObjectDataSearchFilter>
</businessObjectDataSearchFilters>
</businessObjectDataSearchRequest>
<businessObjectDataSearchResult>
<businessObjectDataElements>
<businessObjectData>
<id>1</id>
<namespace>DATAMGT</namespace>
<businessObjectDefinitionName>NYX_BADGE</businessObjectDefinitionName>
<businessObjectFormatUsage>PRC</businessObjectFormatUsage>
<businessObjectFormatFileType>GZ</businessObjectFormatFileType>
<businessObjectFormatVersion>1</businessObjectFormatVersion>
<partitionKey>TDATE</partitionKey>
<partitionValue>20140401</partitionValue>
<status>VALID</status>
<subPartitionValues>
<partitionValue>A</paritionValue>
<partitionValue>B</paritionValue>
</subPartitionValues>
<version>0</version>
...
</businessObjectData>
...
</businessObjectDataElements>
</businessObjectDataSearchResult>
- Getting Started with herd
- herd Usage Pages
- herd API documentation
- herd Workflow Tasks
- herd Tools