Base View Generation Integration Point

This integration point enables the creation and inspection of generated base views.

Background

OHI Applications expose their data model as base views. Base views give an abstraction over the technical table structure with a number of benefits:

  1. A base view combines fields from base- and translation tables

  2. A base view includes fixed- and dynamic fields

  3. Extensibility structures like dynamic field- and dynamic record definition also lead to additional views.

For more details about the types and the structure of the base views, refer to Base views.

Base View Generation Integration Point

The purpose of this integration point is the (re)generation of the base views and the inspection of the status and definition of generated base views.

The operations are protected by the HTTP IP access restriction 'baseviewgenerations IP'.

The endpoint is available at the following location:

http://<host>:<port>/<context-root>/baseviews

Operations

POST

The generation process starts by sending a POST to:

http://<host>:<port>/<context-root>/baseviews

This process is an example of Long Running Operations through REST. The general concepts of these operations are described in the HTTP API/IP Concepts chapter of the integration guide.

GET

The GET operation can be used to retrieve information about the generated base views from the system.

The GET method is available at:

http://<host>:<port>/<context-root>/generic/baseviews

The normal REST Query options are supported. Please refer to Query API document to see all the options possible.

For each matching base view, a structure like this is returned:

{
  "viewName": "<name of the view>",
  "status": "<status of the view in the database>",
  "lastDDLTime": "<when the view was created or updated for the last time>",
  "comments": "<explanation of the view>",
  "errors" : [
    {
      "line":"<line number of the error>",
      "sequence": "<sequence of the error>",
      "text": "<error message>"
    }
  ],
  "columns" : [
    {
      "columnName":"<name of the column>",
      "columnId":"<sequence of the column in the view>",
      "comments": "<explanation of the column>"
    }
  ],
  "links": [
    {
      "href": "http://<host>:<port>/<context-root>/baseviews/<view name>/regenerate",
      "rel": "baseview:regenerate",
      "httpMethod": "POST"
    },
    {
      "href": "http://<host>:<port>/<context-root>/baseviews/<view name>",
      "rel": "baseview:delete",
      "httpMethod": "DELETE"
    }
  ]
}
The above structure is an example of a typical response. The real response may differ slightly.

This operation returns a status as described in Response Messages, typically 200 if at least one matching base view is found, or 204 if there is no match.

Link operations:

  • baseview:regenerate. This operation generates all base views of a single table. It is an asynchronous operation.

  • baseview:delete. This operation drops the base view from the database. This can be useful when a dynamic field usage has been dropped, making the view invalid.