Macro Use Case: Delete Workflow Nodes

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

Example

Macro
       {
            "name": "deleteWorkflowNode", 
            "description": "Deletes a workflow node.", 
            "parameters": [
                "nodeName"
            ], 
            "actions": [
                { "action": "delete",  "path": "$.workflowDefinition.${p.nodeName}"}
            ]
        },
        {
            "name": "deleteArrayOfWorkflowNodes", 
            "description": "Deletes a set of workflow nodes.", 
            "parameters": [
                "nodeNameArray"
            ], 
            "actions": [
                { "action": "eval",  
                "value": "${array:forEach(p.nodeNameArray, '${macros:deleteWorkflowNode(var)}')}"}
            ]
        }

Example

Rule Calling the Macro
{"action":"eval","key" : "myArray","value":["Extract_Queue","Add_Fields_To_Queue","Append_Queue_User"]},
     {
          "action": "eval",
          "description": "remove multiple nodes in dataflow",
          "value": "${macros:deleteArrayOfWorkflowNodes(Rules.Eval.myArray)}"
        }