Documentation

Trace:

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
workflow:custom_function [2019/03/13 14:31]
admin
workflow:custom_function [2020/06/12 15:00]
cduncan Edited for English grammar (capitalization, punctuation, correct verb conjugation)
Line 1: Line 1:
 ~~NOTRANS~~ ~~NOTRANS~~
-~~Title: Custom ​function~~+~~Title: Custom ​Function~~
  
 A function is the code block behind a task. It's very simple to create a new function because a function is defined as simple Java interface: A function is the code block behind a task. It's very simple to create a new function because a function is defined as simple Java interface:
Line 8: Line 8:
 { {
     /**     /**
-     ​* ​The current workflow step. +     ​* ​Gets the current workflow step. 
-     * @return ​The current workflow step.+     ​* ​ 
 +     * @return ​the current workflow step.
      */      */
     public IWorkflowStep getWorkflowStep();​     public IWorkflowStep getWorkflowStep();​
Line 16: Line 17:
      * Initializes the function.      * Initializes the function.
      ​* ​      ​* ​
-     * @param ​pWorkflow ​the current workflow step+     * @param ​pStep the current workflow step
      */      */
-    public void init(IWorkflowStep ​pWorkflow);+    public void init(IWorkflowStep ​pStep);
  
     /**     /**
      * Runs the function.      * Runs the function.
-     * If the function returns true, the function is fully done, and the workflow jumps to the next step. +     * If the function returns ​<​code>​true</​code>​, the function is fully done, and the workflow jumps to the next step. 
-     * In case there are more then one next steps, the finish function of IWorkflowStep has to be called. +     * In case there are more than one next step, the finish function of IWorkflowStep has to be called. 
-     ​* ​An exception will be thrown ​otherwise+     ​* ​Otherwise, an exception will be thrown. 
-     * If finish is already called, it does not matter whether true or false is returned.+     * If finish is already called, it does not matter whether ​<​code>​true</​code> ​or <​code>​false</​code> ​is returned.
      ​* ​      ​* ​
-     * @return true, if the function is done.+     * @return ​<​code>​true</​code>​, if the function is done.
      * @throws Throwable if function fails.      * @throws Throwable if function fails.
      */      */
Line 33: Line 34:
  
     /**     /**
-     * Notifiesthat the workflow is cancelled.+     * Notifies that the workflow is cancelled.
      ​* ​      ​* ​
      * @throws Throwable if canceling fails.      * @throws Throwable if canceling fails.
Line 41: Line 42:
 } }
 </​file>​ </​file>​
-The interface already has an abstract implementation ​and so it's really ​super simple to create a new function. Our example will send an email, so it'the EmailFunction:​+The interface already has an abstract implementationso it's really simple to create a new function. Our example will send an email, so it'the EmailFunction:​
  
 <file java EmailFunction.java>​ <file java EmailFunction.java>​
Line 53: Line 54:
         if (smtp == null)          if (smtp == null) 
         {         {
-            throw new IllegalArgumentException("​The SMTP server configuration was not found in the application zone (path /​application/​mail/​smtp)!"​);​+            throw new IllegalArgumentException("​SMTP ​config ​not found (path /​application/​mail/​smtp)!"​);​
         }         }
  
Line 87: Line 88:
 } }
 </​file> ​ </​file> ​
 +
 +The implementation is straightforward. It extends the AbstractFunction and implements run method. The email settings will be read from the [[jvx:​common:​setup:​zones|application configuration]],​ and the email settings will be read from the input parameters. Finally, the email will be sent.
 +
 +But there'​s still one open question: how do we define the input parameters?
 +
 +Simply use the functions screen and enter all required information:​
 +
 +{{:​workflow:​wf_emailfunction.png?​nolink|}}
 +
 +That's it! Start using your new function.
This website uses cookies for visitor traffic analysis. By using the website, you agree with storing the cookies on your computer.More information