Problem

You want to know how rules work in workflows and what they are used for.

Resolution

Rules in workflows are used for XOR Splits only.
If you process a workflow with a XOR Split you have to select one of the available routes (transitions) to the parallel Steps (in contrary to a workflow with an AND Split where every parallel Step has to be completed).
With the rule of a route you can define if this route should be displayed in the route selector or not.

The Rule must be a ECMA script located in /etc/workflow/scripts with a function check() where you can implement your logic. The function must return a boolean value.
Available objects are:

Example

A very simple example rule script would be to check if the current page in the workflow is the geometrixx company page or a childpage.

* 
 * Example WF Rule. 
 * ECMA function with a method called check
 * 
 * This function checks if the current page in workflow is in the company tree
 * of geometrixx... 
 *
 * Available Objects:
 * - workflowData: 
 * - jcrSession: 
 * - workflowSession:
 */
function check() {
    log.info("executing script now...");
    if (workflowData.getPayloadType() == "JCR_PATH") {
         var path = workflowData.getPayload().toString();
         var node = jcrSession.getItem(path);
         
         if (node.getPath().indexOf("/content/geometrixx/en/company") >= 0) {
            return true;
         } else {
            return false;
         }  
     } else {
        return false;
     }
}

As attachment you will find a package (ExampleRuleWorkflow-1.0-1.zip) with this script and an example workflow with one step Step 1 above the XOR Split and two parallel steps Left Stepand Right Step.
The route (transition) from Step 1 to Left Step has a Roule with the script above.
If you start the workflow you are on Step 1 and can select the route to Right Step always, independent on the current page in the workflow.
The route to Left Step is only available if the current page in the workflow is the geometrixx company page or a childpage...

Applies to

CQ5.2+

Stáhnout

Tato práce podléhá licenci Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Na příspěvky ze služeb Twitter™ a Facebook se nevztahují podmínky licence Creative Commons.

Právní upozornění   |   Zásady ochrany osobních údajů online