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
workflow:custom_function [2019/03/13 14:46]
admin
workflow:custom_function [2022/03/31 07:19]
admin removed
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 88: Line 89:
 </​file> ​ </​file> ​
  
-The implementation is straight forward. 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.+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. ​Here's an example:
  
-But there'​s still one open question: How do we define the input parameters?+<file xml> 
 +<​application>​ 
 +  ... 
 +  <​mail>​ 
 +    <​smtp>​ 
 +      <​host>​smtp.yourserver.com</​host>​ 
 +      <​port>​587</​port>​ 
 +      <​username>​username</​username>​ 
 +      <​password>​password</​password>​ 
 +      <​tlsenabled>​true</​tlsenabled>​ 
 +      <​defaultsender>​Noreply &​lt;​noreply@yourserver.com&​gt;</​defaultsender>​ 
 +    </​smtp>​ 
 +  </​mail>​ 
 +</​application> ​  
 +</​file>​
  
-Simply use the Functions screen and enter all required information:​+Finally, ​the email will be sent.
  
-{{:workflow:​wf_emailfunction.png?nolink|}}+But there'​s still one open questionhow do we define the input parameters?
  
-That's it. Start using you new function.+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