Skip to main content
Version: 3.9

Process Templates

A process template defines what an agent does with device data: which devices it connects to, how the data is processed on the edge host, and where the results are sent. You build a template in a visual designer by placing components on a canvas and connecting them.

A template is reusable. To run it, add it as a process to one or more agents; each process can override the template's variables for its agent. See Step 3: Add Processes and Manage a Process.

Templates are built from components, which must be uploaded to the Gateway first. See Manage Agent Components.

The Process Templates List​

Navigate to Agents > Process Templates. The list shows each template's ID, Name, Versions, and Last Changed date. The Versions column shows how many versions the template has and how many of them are active and inactive.

Process templates list with ID, Name, Versions, and Last Changed columns, a status filter, and the Create template button

Process templates list

Use the search field, Add filter, and saved views to find templates. Select a template to open its versions. Select Create template to create a new one.

The Designer​

Select Create template, or edit an existing template version, to open the designer.

Create Process Template designer with the Components library on the left showing the search field, Select tags, and the Devices group, the empty canvas in the center, the minimap, the canvas toolbar at the bottom, and the Variables, Cancel, and Save buttons in the header

Process template designer

  • Component library (left) – All uploaded components, grouped into Devices, Services, and Functions. Use Search components or Select tags to find a component, and select Hide to collapse the library.
  • Canvas (right) – Drag components from the library onto the canvas and connect them.
  • Header – Back to list (arrow), Variables, Cancel, and Save.

Canvas Controls​

ControlDescription
Undo (Ctrl+Z) / Redo (Ctrl+Y)Reverses or repeats the last change.
Select tool / Hand toolSelects components, or moves the canvas. You can also scroll to pan and press Ctrl while scrolling to zoom.
Zoom Out / Zoom In / Fit to ViewAdjusts the zoom level.
Lock canvasPrevents accidental changes to the layout.
Auto arrangeArranges the components automatically.
Preview on clickShows a component's values when you select it, without opening its settings.
MinimapShows an overview of large templates. Select Hide minimap to hide it.
Keyboard shortcuts (?)Lists the available keyboard shortcuts.
FullscreenShows the designer in full screen.

Components​

TypePurposeConnection ruleExamples
DeviceConnects to physical devices and hardware interfaces, such as RFID readers, imagers, and printers.Can connect only to a Service or another Device.Siemens_RF6x_V1, Multiplexer_V1, Simulation_V1
ServiceRuns long-lived logic and integrations, such as read points, buffers, and MQTT clients.Can connect to any component type.Readpoint_V1, BufferedSender_V1
FunctionTransforms, encodes, or sends data.Cannot receive data directly from a Device.TagForward_V1, WebRequest_V1, TagFormatCrossTalkJson_V1
info

A valid template starts with a Device component as the entry point for data.

Inputs and Outputs​

Each component has inputs and outputs: named ports through which it receives and sends data. The component shows the number of available inputs and outputs, for example Inputs: 26 and Outputs: 15.

  • A component can have several outputs for different results, for example one for a successful delivery and one for a timeout.
  • To use an additional input or output on the canvas, select + next to INPUTS or OUTPUTS on the component.
  • Data that leaves an output has named values, for example deviceId or timestamp. The next component's parameters can use these values (see Parameters).

Build a Template​

Step 1: Add and Configure Components​

The following steps build the example template below: an RFID reader whose tag reads are formatted as JSON and sent to a web service. How to draw and configure each connection is described in Step 2.

Example template on the canvas: a Kathrein RRU Gen3 device (Kathrein_RRUGen3_V1) attached to Readpoint (Readpoint_V1). The TagReport output of Readpoint connects to the TagForward input of TagForward (TagForward_V1). The Format output of TagForward connects to TagFormat CrossTalk JSON (TagFormatCrossTalkJson_V1), and its FormattedTagReport output connects to the Send input of WebRequest (WebRequest_V1).

Example process template

On the canvas, each component shows its display name at the top and its identifier, for example Readpoint_V1, at the bottom.

  1. Add the reader (Device). From Devices in the component library, drag Kathrein RRU Gen3 (Kathrein_RRUGen3_V1) onto the canvas. Open its settings and enter the reader's connection parameters, such as its IP address.
  2. Add the read point (Service). From Services, add Readpoint_V1 and connect the reader to it. The read point collects the reader's tag reads and reports them on its TagReport output.
  3. Add tag forwarding (Function). From Functions, add TagForward_V1. Connect the TagReport output of Readpoint_V1 to the TagForward input of TagForward_V1.
  4. Add the formatter (Function). Add TagFormatCrossTalkJson_V1. Connect the Format output of TagForward_V1 to its FormatTagReport input. TagForward_V1 uses this connection to have each tag report formatted as JSON.
  5. Add the destination (Function). Add WebRequest_V1. Connect the FormattedTagReport output of TagForward_V1 to its Send input. WebRequest_V1 sends the formatted tag report to the web service.

The data flows from the reader through the read point to TagForward_V1, which has the tag report formatted and then passes it on to WebRequest_V1.

warning

A Device cannot connect directly to a Function. In this example, the reader connects to Readpoint_V1 (a Service), not to TagForward_V1.

Step 2: Connect Components​

Drag from an output port of one component to an input port of the next. Then open the connector to configure how data passes between the two components.

Connector Settings dialog for TagReport to TagForward with the output, input, timeout, and the Parameters, Temp Variables, and Scripts tabs

Connector Settings

The top of the Connector Settings dialog shows:

  • Output – The output of the upstream component that sends the data.
  • Input – The input of the downstream component that receives it.
  • Timeout (ms) – How long the connector waits for the downstream component. If the time is exceeded, the connector reports a timeout error.

Parameters​

The Parameters tab lists the parameters the downstream component needs. For each parameter:

FieldDescription
NameThe parameter of the downstream component.
Static / DynamicStatic sends the value exactly as typed. Dynamic resolves the value at runtime: select a value from the upstream output or a temporary variable from the list, or type an expression.
TypeThe expected data type, for example String, Guid, Int, Boolean, or a list type.
NullAllows the parameter to be empty. If cleared, a missing value causes a validation error.
ValueThe constant (Static) or the source value or expression (Dynamic).

Temp Variables​

Temporary variables exist only while the connector runs and are not stored. Use them to prepare values for the parameters.

Scripts​

  • Pre-call script – Runs before the downstream component is called, for example to adjust or normalize values or to enrich the data. If empty, the data is passed on unchanged.
  • Post-call script – Runs after the downstream component has finished, for example to transform the result or to add logging.
  • Abort expression – Stops the connector when the expression is true, for example deviceId == null or rssi < -80.
  • Return value mapping – For components that return values, maps the returned values back to the upstream component.

Select Apply to save the connector settings.

Step 3: Save the Template​

Select Save in the designer header. Each save creates a new version of the template.

Template Variables​

Select Variables in the designer header to define variables, for example device IP addresses, URLs, or topic names, that the template's components can use.

Variables make templates reusable: each process that runs the template can set its own values without changing the template. See Manage a Process.

Manage Template Versions​

Select a template in the list to open the Process Template Details page. It shows the number of versions and how many of them are active and inactive. Each version shows its Version number (for example V_8), Description, Last Changed date, and Status (Active or Inactive). Use Search versions to find a version.

Process Template Details page for a template with eight versions: V_8 is Active, V_1 to V_7 are Inactive, and each row has a status switch and the View, Edit, and Delete actions

Template versions

ActionDescription
SwitchActivates or deactivates the version.
ViewOpens the version in the designer in read-only mode. Select Edit there to change it.
EditOpens the version in the designer.
DeletePermanently deletes the version. Only inactive versions can be deleted; deactivate a version first.

When you add a process to an agent, you choose which version it runs; the newest version is marked Latest. To move an existing process to another version, edit the process and select the version.

Best Practices​

  • Use variables for device-specific values, such as IP addresses and topics, so that one template works for many agents.
  • Use the version description to record what changed.
  • Check all connections and parameters before you save.
  • Deactivate and then delete versions that are no longer used, so that the version list stays clear.