BPM Binding
BPM Binding positions a Service in a Business Process Model (BPM) through the BPMs array of the Service in a Repository Binding. Each entry places the Service in one cell of the BPM and draws the arrows to the other steps. For a complete, worked process, see the Order-to-Cash examples.
Important
BPM Binding is part of Repository Binding, so it works only when the AllowRepositoryAutomapping System Parameter is set to
true.
Reference
The BPM Matrix
BPMs organize process steps as a matrix: domains (rows) × steps (columns).
Step 0 Step 1 Step 2
Sales Order [empty] [empty]
Received
Planning [empty] Order [empty]
Planned
Logistics [empty] [empty] Order
Packed
Note
Steps are 0-based in code (0, 1, 2) but display as 1-based in UI (Step 1, Step 2, Step 3). Step numbers must always be non-negative (0 or positive integers).
BPM Object
| Field | Required | Purpose | Example |
|---|---|---|---|
Name |
✅ Yes | Process flow name | INT1337 - Order-to-Cash Flow |
ArtifactRenaming |
❌ No | UI display name | Order Received from Customer |
Domain |
✅ Yes | Row position (Domain object) | { "Name": "Sales", "Index": 0 } |
Step |
✅ Yes | Column position (0-based) | 0, 1, 2 |
ServiceRelations |
❌ No | Flow arrows between cells | Array of service relation objects |
Domain Object
| Field | Required | Purpose | Example |
|---|---|---|---|
Name |
✅ Yes | Business domain | Sales, Planning, Logistics, Finance |
Index |
✅ Yes | Row order (0-based) | 0, 1, 2, 3 |
ServiceRelations (BPM Flow Arrows)
Links between BPM process steps, displayed as arrows in the BPM matrix visualization.
| Field | Required | Purpose | Values |
|---|---|---|---|
Name |
✅ Yes | Target service name | Service name string |
Direction |
✅ Yes | Target service direction; it draws the direction arrows on connectors in the Integration Landscape | Receive, Send, TwoWayReceive, TwoWaySend; see Service direction values |
System |
✅ Yes | Target service system | { "Name": "System Name" } |
Domain |
✅ Yes | Target row | { "Name": "Sales", "Index": 0 } |
Step |
✅ Yes | Target column (0-based) | 0, 1, 2 |
ArtifactRenaming |
❌ No | Relation display name | String |
Label |
❌ No | Arrow label text | String |
ConnectorStyle |
❌ No | Connector line style | Connector styles |
SourceAttachmentPoint |
❌ No | Arrow start position | Attachment points |
TargetAttachmentPoint |
❌ No | Arrow end position | Attachment points |
Important
Direction and System fields are required for proper BPM reconstruction. The Direction refers to the target service's direction, not the current service. Including System and Domain in every ServiceRelation ensures Nodinite can reconstruct the process flow even when events arrive out of sequence due to network delays, retries, or asynchronous processing.
Connector Styles
| Value | Style |
|---|---|
0 |
Arrow |
1 |
DottedArrow |
2 |
Line |
3 |
DottedLine |
4 |
StraightArrow |
5 |
StraightDottedArrow |
Attachment Points
SourceAttachmentPoint and TargetAttachmentPoint use the same values.
| Value | Position |
|---|---|
1 |
Left |
2 |
Up |
3 |
Right |
4 |
Down |
Examples
BPMs Array
The BPMs array as it appears inside the Service object (fragment):
"BPMs": [{
"Name": "INT1337 - Order-to-Cash Flow",
"ArtifactRenaming": "Order Entry in ERP",
"Domain": { "Name": "Planning", "Index": 1 },
"Step": 1,
"ServiceRelations": [{
"Name": "INT1337-RCV-Order-Incoming",
"Direction": "Receive",
"System": { "Name": "Portal" },
"Domain": { "Name": "Sales", "Index": 0 },
"Step": 0,
"Label": "From Portal",
"ConnectorStyle": 0,
"SourceAttachmentPoint": 3,
"TargetAttachmentPoint": 1
}]
}]
Complete Repository Binding with a BPM
The same BPM entry in a complete, valid Repository Binding value. The Service, System, and Integration names are examples:
{
"Name": "Default",
"Service": {
"Name": "INT1337-SND-Order-Entry",
"Direction": "Send",
"System": { "Name": "ERP" },
"Integration": { "Name": "INT1337 - Order-to-Cash" },
"BPMs": [{
"Name": "INT1337 - Order-to-Cash Flow",
"ArtifactRenaming": "Order Entry in ERP",
"Domain": { "Name": "Planning", "Index": 1 },
"Step": 1,
"ServiceRelations": [{
"Name": "INT1337-RCV-Order-Incoming",
"Direction": "Receive",
"System": { "Name": "Portal" },
"Domain": { "Name": "Sales", "Index": 0 },
"Step": 0,
"Label": "From Portal",
"ConnectorStyle": 0,
"SourceAttachmentPoint": 3,
"TargetAttachmentPoint": 1
}]
}]
}
}
Send it as an escaped string in ExtendedProperties/1.0#RepositoryBinding, as shown in the Repository Binding escaped-string example.