NOTICE: All information contained herein is, and remains
the property of TechnoCore.
The ObjWorkflowWorkflow module implements the WORKFLOW node type for workflows.
This module handles the following node types:
Runs another workflow as a step of the current one. Used by umbrella
pipelines (e.g. pims_hourly_sync calling pims_trader_sync then the
Shopify push) to compose stages while keeping each stage independently
runnable.
INSERT INTO def_workflows (WorkflowName, Package, Rank, Type, Name, BranchDirect)
VALUES ('EXAMPLE_WORKFLOW', 'core', 10, 'WORKFLOW', 'NodeName', 'NEXT_NODE');
Three modes, selected by node_type + node_async:
get_uuid("subwf"), recorded in the context assubworkflow_<name>) rather than the parent's guid, so its completion /node_async=Y (or empty) — fire-and-forget via the MongoDBnode_async=WAIT — stages the sub-workflow as a PENDINGFANIN_WAIT; the dispatcher resumes theA failing sub-workflow no longer silently lets the parent continue. When the
inline sub-run returns a terminal FAIL/FAILED (or raises), the node:
WorkflowNodeResultStatus.FAIL as the node result (available toBranchSql error routing via $lastresult$), andrun_context["call_workflow"] = FAIL.ObjWorkflowEngine.run_workflow checks call_workflow after each node and
halts the parent on FAIL — so a linear BranchDirect chain stops
instead of running downstream stages on stale/partial data. The same flag is
raised by the recursion guard (a node may not call its own parent workflow).
node_async — ""/Y (async/inline), WAIT (stage + fan-in).BranchDirect — next node on success; add a BranchSql on $lastresult$FAIL to an error node instead of halting.Umbrella pipeline that must abort if the upstream sync fails:
INSERT INTO def_workflows (WorkflowName, Package, Rank, Type, Name, BranchDirect)
VALUES ('pims_hourly_sync', 'pims', 10, 'WORKFLOWSYNC', 'pims_trader_sync', 'PUSH');
INSERT INTO def_workflows (WorkflowName, Package, Rank, Type, Name, BranchDirect)
VALUES ('pims_hourly_sync', 'pims', 20, 'WORKFLOWSYNC', 'pims_shopify_push', '');
If pims_trader_sync fails, the parent halts before PUSH runs.
Version: 8.0
Last Updated: 2025-12-14
Status: Auto-generated - requires manual documentation