Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

OMF with PI Web API

Dynamic data sample messages

  • Last UpdatedSep 04, 2025
  • 2 minute read

You can greatly affect the performance of the OMF endpoint by how you group and construct data messages. For dynamic data messages, this includes:

  • Number of Messages Sent per Request

  • Number of Values Sent per Message

  • Number of Properties Created per Container

Unless otherwise specified, all of the following sample messages require this header: { messagetype: "Data" }.

The expected response for all of the sample data messages is 202 Accepted.

Unless otherwise specified, the dynamic messages shown in these examples utilize the dynamic types found in the Dynamic type sample message, and the containers found in the Container sample message.

Number of Messages Sent per Request

When possible, send multiple messages in the same request rather than separating them out into different requests.

Not Recommended

Request 1


[

{

"containerid": "Turbine 1 Device Status",

"values": [

{

"DeviceStatus": "Good",

"Speed": 5,

"Time": "2021-01-01T15:44:56Z"

}

]

}

]

Request 2


[

{

"containerid": "Turbine 1 Device Status 2",

"values": [

{

"Acceleration": 2,

"Time": "2021-01-01T15:44:56Z"

}

]

}

]

Recommended


[

{

"containerid": "Turbine 1 Device Status",

"values": [

{

"DeviceStatus": "Good",

"Speed": 5,

"Time": "2021-01-01T15:44:56Z"

}

]

},

{

"containerid": "Turbine 1 Device Status 2",

"values": [

{

"Acceleration": 2,

"Time": "2021-01-01T15:44:56Z"

}

]

}

]

Number of Values Sent per Message

When possible, send multiple values for the same container in the same message, rather than separating them out into different messages.

Not Recommended


[

{

"containerid": "Turbine 1 Device Status",

"values": [

{

"DeviceStatus": "Good",

"Speed": 5,

"Time": "2021-01-01T15:44:56Z"

}

]

},

{

"containerid": "Turbine 1 Device Status",

"values": [

{

"DeviceStatus": "Good",

"Speed": 3,

"Time": "2021-01-01T16:44:56Z"

}

]

}

]

Recommended


[

{

"containerid": "Turbine 1 Device Status",

"values": [

{

"DeviceStatus": "Good",

"Speed": 5,

"Time": "2021-01-01T15:44:56Z"

},

{

"DeviceStatus": "Good",

"Speed": 3,

"Time": "2021-01-01T16:44:56Z"

}

]

}

]

Number of Properties Created per Container

When possible, it is best to create more properties per dynamic type than have them spread out between multiple types.

Not Recommended


[

{

"containerid": "Turbine 1 Device Status",

"values": [

{

"DeviceStatus": "Good",

"Speed": 5,

"Time": "2021-01-01T15:44:56Z"

}

]

},

{

"containerid": "Turbine 1 Device Status 2",

"values": [

{

"Acceleration": 2,

"Time": "2021-01-01T15:44:56Z"

}

]

}

]

Recommended

If possible, it would be better to add the Acceleration property to the DeviceStatus type, rather than storing it in a separate type. That change can be visualized using the following type, container, and data messages.

  • New Dynamic Type

    This requires the { messagetype: "Type" } header.


    [

    {

    "id": "UpdatedDeviceStatus",

    "classification": "dynamic",

    "properties": {

    "DeviceStatus": {

    "type": "string"

    },

    "Speed": {

    "type": "number"

    },

    "Acceleration": {

    "type": "number"

    },

    "Time": {

    "format": "date-time",

    "isindex": true,

    "type": "string"

    }

    },

    "type": "object"

    }

    ]

  • New Container

    This requires the { messagetype: "Container" } header.


    [

    {

    "id": "Turbine 1 Updated Device Status",

    "typeid": "UpdatedDeviceStatus"

    }

    ]

  • New Data Message

    This requires the { messagetype: "Container" } header.


    [

    {

    "containerid": "Turbine 1 Updated Device Status",

    "values": [

    {

    "DeviceStatus": "Good",

    "Speed": 5,

    "Acceleration": 2,

    "Time": "2021-01-01T15:44:56Z"

    }

    ]

    }

    ]

In This Topic
TitleResults for “How to create a CRG?”Also Available in