Policy Workflow Step 21

Upon completion, we click back on the “approve_page” field and add an approval action step by clicking on the “Action” button in the top navigation bar.

Again we add a tag and permission. Note that we choose the action type of “selector.” This allows us to add Options as fields to the UI for different types of selections – approval/rejection.

Note that for the approve option we are binding the action to the “update_approve_document_status” we defined before.

Note that for the reject option we are binding the action to the “installer_rejected” action we previously defined.

Next, we return to the “approve_documents_grid” step and add the “approve_documents_btn” action as a binding block to Field 4 since Field 4 captures the approval or rejection of the document. Note, the choice of block for Field 4 makes sense now, because the bound action is a block itself.

Programmatically this workflow step looks like this:

        // Block with the Approve/Reject buttons, embedded into the grid
        {
          "tag": "approve_documents_btn",
          "blockType": "InterfaceActionBlock",
          "permissions": [
            "OWNER"
          ],
          "type": "selector",
          // For the selector type:
          "uiMetaData": {
            //"field" - field which is linked to the selector.
            "field": "status",
            //"options" - list of the possible options.
            "options": [
              //Button:
              {
                //Button text.
                "name": "Approve",
                //Value which will be stored in the "field".
                //In this example document.status = "APPROVED"
                "value": "APPROVED",
                //Button style.
                "uiClass": "btn-approve",
                //Specify which block to pass control to.
                //If the "Approve" button was clicked, the control would be passed to the update_approve_document_status block.
                "bindBlock": "update_approve_document_status"
              },
              {
                "name": "Reject",
                "value": "REJECTED",
                "uiClass": "btn-reject",
                //If the "Reject" button was clicked pass control to the installer_rejected block.
                "bindBlock": "installer_rejected"
              }
            ]
          }
        }
      ]
    }
  ]
},

This completes the definition of the approval page.

Last updated