Trace:
Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
workflow:custom_function [2019/03/13 14:47] admin |
workflow:custom_function [2021/03/18 23:10] admin |
||
---|---|---|---|
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: | ||
/** | /** | ||
- | * Notifies, that 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't the EmailFunction: | + | The interface already has an abstract implementation, so it's really simple to create a new function. Our example will send an email, so it's the EmailFunction: |
<file java EmailFunction.java> | <file java EmailFunction.java> | ||
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 <noreply@yourserver.com></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 question: how 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. |