Skip to main content
Version: 1.0.8

Message In New in 1.0.8

Starts a run whenever a message arrives on the project message bus with a subject that matches. The sender can be another pipeline, a button on a screen or a script — Message In does not care which, and the sender does not need to know which pipeline answers.

Type: message-in · Category: Message Bus · Ports: no input · one output

When to use it​

  • Running a pipeline from a screen — a Send message event action — without a REST route
  • Letting one pipeline hand work to another by name, decoupled from its graph
  • Answering requests: a lookup or a command that wants a result back, via Message Reply
Reach for something else when

For a fixed hand-off between two of your own pipelines with nothing else listening, Link is simpler. For callers outside QUBIQ, publish a REST API route.

Settings​

SettingKeyDefaultPurpose
Subjectsubject—Required. The subject to listen on — dotted words such as line1.motor.start. * matches one word (line1.*.start); > matches everything after it and must be last (line1.>).
Also receive messages sent to all projectsincludeAllonOff: hear only messages sent to this project.
Load-sharing groupqueueGroup—Empty: every Message In that matches gets its own copy. Set: Message In nodes in this project with the same group share the messages, each handled once. Letters, digits, _ and -.

A subject is one to 16 words of letters, digits, _ and -, separated by dots, at most 200 characters. The bus adds the project to it, so a Message In only ever hears its own project — plus, unless you switch it off, messages a sender addressed to all projects. No wildcard reaches into another project.

What it emits​

{
"topic": "line1.motor.start",
"payload": { "speed": 1200 },
"metadata": {
"msg_source": { "kind": "pipeline", "id": "…", "name": "Line 1 control", "nodeId": "…" },
"msg_scope": "project"
}
}

topic is the subject that actually matched — useful behind a wildcard — and payload is what was sent, unchanged. msg_source says who sent it.

Example — a start button on a screen​

A button's Send message action, subject line1.motor.start, scope project:

Message In (line1.motor.start) → Industrial I/O (write Line1/Motor/StartCmd = true)

Gotchas​

  • The pipeline must be running. A stopped pipeline's Message In is not listening, and a message nobody hears is gone — the bus does not keep it. A request to nobody fails at once with no receiver.
  • A busy pipeline refuses. When the pipeline cannot take another run, the message is dropped, and a requester is told receiving pipeline is busy instead of waiting.
  • Loops are cut. A message re-sent as a consequence of another — pipeline to screen to pipeline — carries a hop count, and the eighth re-send is dropped as a likely loop.

See also​