bw_append_process_chain_dtp
Append a DTP load step to an existing process chain via in-place edit. Optionally add aDSO activation, choose predecessor, or auto-place at strand end. Skips if DTP already present.
Instructions
Append one DTP load step (optionally followed by its own DSO activation step) to an existing Process Chain (RSPC), via the BW/4HANA Cockpit REST API. In-place edit: reads the current model, appends the node(s)/edge(s)/inline variant, and PUTs it back — the caller does not supply the full model. By default it appends behind the strand end closest to the trigger (to keep strands balanced); pass predecessor to choose a node. edge_mode "both" (default) adds an on-success and an on-error edge per link ("always continue"); "success_only" adds only the on-success edge. Idempotent: if the DTP is already a node in the chain, it is skipped without writing. Optionally activates afterwards and then verifies that no collector was inserted and no extra strand appeared. A 412 on the PUT means the ETag was stale (chain modified between read and write); the error reports this explicitly.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| dtp | Yes | DTP variant name to append (e.g. "DTP_NAME"). | |
| name | Yes | Process chain technical name (e.g. "CHAIN_NAME"). Case-insensitive. | |
| adsoact | No | Optional aDSO name (e.g. "ADSO_NAME"). When given, an ADSOACT step activating this aDSO is added right after the DTP (per-DTP activation). | |
| activate | No | If true, activate the chain immediately after the edit. Default false. | |
| edge_mode | No | "both" (default): add an on-success and an on-error edge per link. "success_only": add only the on-success edge. | |
| predecessor | No | Node to append behind: a DTP variant name, an aDSO whose ADSOACT node holds it, or the literal "strand_end_auto" (default). For "strand_end_auto" the terminal node closest to the trigger is chosen (ties → first). | |
| transport_request | No | Optional transport request to record the change into. Only relevant when the chain is in a transportable package (not $TMP). If the chain is transportable and exactly one request is available, it is chosen automatically; pass this to disambiguate when several are available. Ignored for $TMP (local) chains. |