Disabling and hiding fields on forms using BPM Directives

BPMs can be created in Kinetic to control and configure behaviour in EKW. This approach enables organisations to adapt EKW to their specific needs without modifying the core application, supporting both flexibility and maintainability.

EKW uses the Kinetic API, and BPMs are configured on specific API methods. Therefore the first step to configuring EKW with BPMs is to identify the endpoints which need to have BPMs created for.

How to identify the endpoint to create a BPM for

As a basic example lets configure the PO Receipt in EKW so that the warehouse code is set to "test" when the form first opens.

  1. Use the System Log in EKW to view REST calls being made:image

  2. Then tap the clear button to focus on new calls being made:image

  3. Open the PO Receipt screen and open a line.

  4. Re-open the System Log and press at the bottom to show the debug logs.

  5. Take note that the final call is Erp.Bo.ReceiptSvc/GetDtlPORelInfo:

  6. Create a BPM which executes ds.RcvDtl[0].WareHouseCode = "test";image

  7. In EKW open the line, and see the Warehouse being populated with “test”:

Custom logic which does apply for all users

To maintain custom logic on the same calls being made from different applications or pages in EKW versus Kinetic, you can check the BPM Context on Character20 and Character19. From EKW version 4.45.0 many calls will provide this info when making REST requests.

To check the headers which will be sent to Kinetic

From the right hand menu open BPM Context Information: image

In your BPM create an if statement (or any other logic) to check whether Character20 is equal to EKW so that your logic does not affect other clients like Kinetic. Character19 can be checked to control custom logic across different screens in EKW:

How to disable or hide inputs in an EKW form

EKW will read the BPM response header Character18 for directives to control functionality in the app. These directives are delimited by "|".

For example:

// Always disable the "Quantity" input
callContextBpmData.Character18 = "DISABLE_QTY";

// Always hide the "From PCID" input
callContextBpmData.Character18 = "HIDE_FROM_PCID";

// Always disable the "Quantity" input and hide the "From PCID" input
callContextBpmData.Character18 = "DISABLE_QTY|HIDE_FROM_PCID";

// Disable the "Quantity" input on a particular screen
if (callContextBpmData.Character19 == "/material/my-material-queue-summary") {
    callContextBpmData.Character18 = "DISABLE_QTY";
}

  1. From the right hand menu open BPM Context Information

  2. The BPM Context Information modal reports that directives will be checked in response for this screen from Erp.BO.IssueReturn.GetNewIssueReturn

  3. Press Chartacter18 directives to view the available directives on this page:

  4. Create a BPM with custom logic on Erp.BO.IssueReturn.GetNewIssueReturn to provide the directives:

  5. Open the screen in EKW and observe that the Quantity input is disabled and the From PCID input is hidden:

Last updated

Was this helpful?