Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Rules are probably best described by using examples. This chapter contains numerous real world samples.

...

You have a form with three controls and you have assigned them Names N1, N2 and T respectively. When the user enters a value in either N1 or N2 you want to set the value of T to the sum of N1 and N2. The rule would be written as

Code Block
languagejavascript
themeConfluencelanguagejavascript
T.value = N1.value + N2.value;

...

Show/Hide Manager Approval

You have a flow and the first form has a Section for manager approval. The Section is hidden by default. Here is an example of a rule that makes the section visible in the second step of the flow which is a linked activity assigned to the manager role. 

Code Block
if (form.load) {
  var an = _data.getParameter ("flow.activity.name");
  if (an === 'Manager' || an === 'VP'){
    ManagerApproval.visible = true;
  } else {
    ManagerApproval.visible = false;
  }
}

...

The 1st rule "Load Products" populates both the visible and hidden dropdowns with options from a database.

Code Block
/*member descriptionproductCode, productIdproductName, resultSet */
var x;
  
if (form.load) {
  eval('x=' + http.get('httphttps://localhost:8082app.frevvo.com/database/productsBIRT/allProducts'));   
 
    var opts1 = []; 
    var opts2 = [];
 
     for (var i=0; i < x.resultSet.length; i++) { 
        if (x.resultSet[i]) { 
            opts1[i] = x.resultSet[i].descriptionproductName;
             opts2[i] = x.resultSet[i].productIdproductCode;
        }
    } 
 
  Products.options = opts1;
  PID.options = opts2;
  Products.value = opts1[0]; // default to 1st product option
  PID.value = opts2[0];

}

Finding a Selected Options Index

...

Code Block
languagejavascript
if (Products.value.length 
> 0)

{
     var i;
     for (var x in Products.options) {
        if ((Products.value + '=' + Products.value) === Products.options[x]) {
            i = Products.options.indexOf(Products.options[x]);
        }
    }
 
  PID.value = PID.options[i] + ''; .split('=')[0];
}

In v4 rules using hidden dropdowns to keep descriptive option labels visible to the user while keeping cryptic database values hidden are often no longer necessary. Dropdown options have values distinct from the human visible option labels. The above can now be achieved with a single simpler rule:

...