Scripting Jobs: Difference between revisions
No edit summary |
No edit summary |
||
| Line 12: | Line 12: | ||
= Parameters = | = Parameters = | ||
Any parameters configured for the job will be set as global-variables within the script. If a single value is configured for a parameter, it will be set as its direct type. If multiple values are set for a parameter, it will be passed into the script as a list of values. | Any parameters configured for the job will be set as global-variables within the script. If a single value is configured for a parameter, it will be set as its direct type. If multiple values are set for a parameter, it will be passed into the script as a list of values. | ||
== Loading Scripts from the File System == | |||
As of Obsidian 2.4, all script file jobs can now use a script file path instead of configuring the script directly in Obsidian. When the job runs, Obsidian will load the contents of the file and execute the script in the same way that jobs configured using the <code>script</code> parameter are run. | |||
To use this feature, when configuring the job, omit the <code>script</code> parameter and instead supply a file path under <code>Script File Path</code>. It is recommended that a fully qualified path is used, and the Obsidian process will need read access to the file for it to run successfully. | |||
= Job Context = | = Job Context = | ||
Revision as of 01:04, 23 February 2014
Obsidian provides support for execution of scripted jobs in various languages. None of these require any Java code to be written. The script to execute is set via a script job parameter.
The following job classes can be configured with executable scripts in their target languages:
- com.carfey.ops.job.script.JavaScriptJob running Rhino
- com.carfey.ops.job.script.PythonJob running Jython
- com.carfey.ops.job.script.GroovyJob Groovy
- com.carfey.ops.job.script.BeanShellJob executing a BeanShell script.
- com.carfey.ops.job.script.ReflectiveJob is a convenience GroovyJob that does not require a script, using defined parameters to construct an object and invoke method(s), both supporting argument(s)
com.carfey.ops.job.script.SpringBeanJobis a convenience GroovyJob that does not require a script, using defined parameters to obtain the bean and invoke the method(s). Deprecated as of Obsidian 2.2.0. Use Dependency Injection instead.
Parameters
Any parameters configured for the job will be set as global-variables within the script. If a single value is configured for a parameter, it will be set as its direct type. If multiple values are set for a parameter, it will be passed into the script as a list of values.
Loading Scripts from the File System
As of Obsidian 2.4, all script file jobs can now use a script file path instead of configuring the script directly in Obsidian. When the job runs, Obsidian will load the contents of the file and execute the script in the same way that jobs configured using the script parameter are run.
To use this feature, when configuring the job, omit the script parameter and instead supply a file path under Script File Path. It is recommended that a fully qualified path is used, and the Obsidian process will need read access to the file for it to run successfully.
Job Context
The job context variable is accessed through the global variable named "jobContext". This can be used to save output parameters, etc. See Job Results and Parameterization.
Sample Jobs
Groovy:
Python:
Javascript:
SpringBeanJob
Deprecated as of Obsidian 2.2.0. Use Dependency Injection instead. A SpringBeanJob is simply a convenience GroovyJob with a predefined script that uses some specified parameters to find a Spring Bean and invoke specified method(s). Specify any optional class imports (class names only), the single line of code to retrieve the Spring Bean reference and the method name(s) to invoke.



