ODLUX DB API Guilin Extension

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:

    1. URL path : Points to a subtree of elements that are search by filter in query-body

    2. 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

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

{ "query":"2143524123" }

Example 2: Converted to an database (Elasticsearch) query (search through all properties)

POST /alias/doctype/_search { "query": { "query_string": { "default_field": "*", "query": "*searchfor*" } } }

Example 3: Response

{ "{key-level-0}":{ "label":"1.0 Shelf", "children?":{ "{key-level-1}": { ... } }, "isMatch":true, "ownSeverity?":"major", "childrenSeveritySummary?":"minor" } }



property

description

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

property

description

ownSeverity

Actual severity of this piece of matching equipment

childrenSeveritySummary

Actual severity level of child equipment