Macro Use Case: Delete Workflow Nodes

Use this macro to delete multiple nodes from the workflow without having to write multiple actions.

Example 

Macro

1{
2            "name": "deleteWorkflowNode",
3            "description": "Deletes a workflow node.",
4            "parameters": [
5                "nodeName"
6            ],
7            "actions": [
8                { "action": "delete",  "path": "$.workflowDefinition.${p.nodeName}"}
9            ]
10        },
11        {
12            "name": "deleteArrayOfWorkflowNodes",
13            "description": "Deletes a set of workflow nodes.",
14            "parameters": [
15                "nodeNameArray"
16            ],
17            "actions": [
18                { "action": "eval",  
19                "value": "${array:forEach(p.nodeNameArray, '${macros:deleteWorkflowNode(var)}')}"}
20            ]
21        }

Example 

Rule Calling the Macro

1{"action":"eval","key" : "myArray","value":["Extract_Queue","Add_Fields_To_Queue","Append_Queue_User"]},
2     {
3          "action": "eval",
4          "description": "remove multiple nodes in dataflow",
5          "value": "${macros:deleteArrayOfWorkflowNodes(Rules.Eval.myArray)}"
6        }