For Guilin inventory tree view extension (ODLUX Inventory enhancement with treeview) the data-provider (Data-Provider) is getting a new extension.
Goal:
- Provide a function to analyse a database with inventory entries
- Provide filter function to filter on device level or inside device at different tree-level
- The function provides back tree lists of inventory id's according to given filter
- Additionally a correlation to equipment alarm severity is provided.
- The id's of the result can be used for data-provider's request to get the concrete data
Characteristics:
- Additional API with URL for POST "/tree/read-inventory-tree"
- The request provides back a list of equipment id's according to the request filter
- Two filter levels:
- URL path : Points to a subtree of elements that are search by filter in query-body
- query-body with textual or field specific search.
- Delivers back all inventory id's for the given URL/path query-body filter
- Use data-provider api "inventoryequipment" to get inventory data for an id
Extension of data-provider Web-API in Guilin:
request | Scope to apply query-body to | key-level-0 |
---|---|---|
GET|POST /tree/read-inventory-tree/ | All equipment entries in the database for every node-id | node-id |
GET|POST /tree/read-inventory-tree/{nodeId} | All Equipment under node with "nodeId" | uuid (tree-level=0) |
GET|POST /tree/read-inventory-tree/{nodeId}/{uuid-level-0} |
...
All Equipment under node "nodeId" and next level equipment with "uuid-level-0" | uuid (tree-level=1) |
Example 1: Query-body with text if POST-request
Code Block |
---|
{
"query":"2143524123"
} |
=> Elasticsearch Example 2: Converted to an database (Elasticsearch) query (search through all properties)
Code Block |
---|
POST /alias/doctype/_search { "query": { "query_string": { "default_field": "*", "query": "*searchfor*" } } } |
Example 3: Response:
key-level-n => databaseId
Code Block | ||||
---|---|---|---|---|
| ||||
{
"{key-level-0}":{
"label":"1.0 Shelf",
"children?":{
"{key-level-1}": {
...
}
},
"isMatch":true,
"ownSeverity?":"major",
"childrenSeveritySummary?":"minor"
}
} |
property | description |
---|---|
{key-level-n} | databaseId to be used for data-provider api "inventoryequipment" to get all information |
isMatch | true if query matches any property of the db entry |
label | Node-Id if it's a node, uuid if it's an equipment |
for future use:
property | description |
---|---|
ownSeverity | Actual severity of this piece of matching equipment |
childrenSeveritySummary | Actual severity level of child equipment |