Skip to Content
IntegrationsOverview

Integrations

CMS integrates in two directions, and not every protocol supports both:

ProtocolCollection (into CMS)Delivery (out of CMS)
HTTP RESTHTTP_GET, HTTP_POSTHTTP_POST, HTTP_PUT, HTTP_PATCH, HTTP_DELETE
SOAP/ws/... endpoint exposed by CMSHTTP_SOAP
MQTTMQTT_TOPIC_SUBSCRIBERMQTT_PUBLISH
SQL ServerSQL_SERVERSQL_SERVER_EXEC
OracleORACLEORACLE_EXEC
PostgreSQL (includes TimescaleDB)POSTGRESPOSTGRES_EXEC
SQLite (file-based database)SQLITESQLITE_EXEC
InfluxDB (1.8, 2.x and 3.x)INFLUXDBINFLUXDB_WRITE
MongoDB (includes Atlas, Cosmos DB and DocumentDB)MONGODBMONGODB_WRITE
SAP RFC/BAPISAP_RFCSAP_RFC_CALL
SAP IDocSAP_IDOC—
SAP Gateway (OData)HTTP_GET, HTTP_POSTHTTP_POST, HTTP_PUT, HTTP_PATCH, HTTP_DELETE
SAP CPI (Cloud Integration)HTTP_GET, HTTP_POSTHTTP_POST, HTTP_PUT, HTTP_PATCH, HTTP_DELETE, HTTP_SOAP
OPC UAOPC_UA_TRIGGEROPC_UA_WRITE
Modbus TCPMODBUS_TRIGGER, MODBUS_POLLMODBUS_WRITE
Sparkplug B (over MQTT)SPARKPLUG_SUBSCRIBERSPARKPLUG_CMD
PI Web API (AVEVA/OSIsoft)PI_WEB_APIPI_WEB_API_WRITE
Files (directory)FILE_WATCHFILE_WRITE

The table above is about protocol — how data gets in and out. The payload format is a separate decision, and it lives in the Transformer. When the destination speaks a manufacturing standard, the CMS ships the models ready-made: see ISA-95 / B2MML.

Push vs. pull

  • Pull (scheduled) — CMS fetches on an interval/cron: HTTP, SQL, Oracle, PostgreSQL, SQLite, SAP RFC, PI Web API, Modbus poll, directory scanning.
  • Push (event) — the external system delivers to CMS when something happens: REST/SOAP reception, MQTT, SAP IDoc, OPC UA trigger, Modbus trigger, Sparkplug B.

A plain REST integration needs no dedicated adapter — HTTP_GET/HTTP_POST + Credential + Transformer covers it. Native adapters exist because SAP, OPC UA, MQTT and Modbus are not HTTP.

PI Web API is the exception that proves the rule: it is HTTP, and the connector does use HTTP underneath — what it adds is knowledge of the PI domain (WebId resolution and caching, time windows, sample quality), not a new transport. That is worth it when the external product has a vocabulary specific enough that hand-writing URLs becomes a recurring source of errors.

What every integration needs

  1. An External Connection with the server details (except HTTP, which uses a Credential).
  2. A Collector or Delivery Definition pointing at that connection.
  3. Optionally, a Transformer to adapt the payload.
  4. For pull collectors, an active schedule.