Table of Contents | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
You can use the Job Scheduler Powershell JobScheduler PowerShell Adapter to create jobs or pre-/postprocessors -processors and post-processors that use the JobScheduler API in PowershellPowerShell.
Requirements
- Windows Machine with a JobScheduler installation
- .Net Framework 4
- Powershell PowerShell 2 or newer
Installation
- Download the JobScheduler Powershell PowerShell Adapter from http://www.sos-berlin.com/download/scheduler/JobSchedulerPowershellAdapter.zip
- Unzip the files to the bin directory of your JobScheduler installation
Register the assembly by running
Code Block noformatlanguage bash C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe [install_path]\bin\JobSchedulerPowershellAdapter.dll /codebase
Usage
- The
...
- PowerShell Adapter uses the JobScheduler COM interface.
- Currently, neither COM Jobs nor
...
- PowerShell Jobs are supported by JOE. So,
...
- PowerShell Jobs need to be configured by manually editing XML files.
Configuring a
...
PowerShell job
- Have the
<script>
use thecom_class JSPowershellAdapter.JobAdapter
- define a parameter
powershell_script
which points to the location of the Powershell PowerShell job implementation- If the path is relative, it needs to be relative to the SCHEDULER_DATA directory
- write a powershell PowerShell Job implementation which at least implements
Function spooler_process()
Example job definition
Code Block | |
---|---|
| |
| |
<?xml versioh1. "1.0" encoding"ISO-8859-1"?> <job> <params> <param name namh1.= "test" value = "12345"/> <param name namh1.= "powershell_script" value = "powershell\powershell_job.ps1"/> </params> <script com_clash1.class = "JSPowershellAdapter.JobAdapter"/> <run_time once = "no"/> </job> |
Example
...
PowerShell job script
Code Block | ||||
---|---|---|---|---|
| ||||
Function spooler_init() { if ($spooler_log) { $spooler_log.info("This is spooler_init") $spooler_log.info("TaskID: "+$spooler_task.id) } return $true } Function spooler_open() { $spooler_log.info("This is spooler_open") return $true; } Function spooler_process() { $taskIdh1.$taskId = $spooler_task.id $spooler_log.info("This is spooler_process, in task id " + $taskId) $order = $spooler_task.order if ($order) { $orderId $orderIdh1.= $order.id $spooler_log.info("processing order " + $orderId) return $true } return $false; } Function spooler_close() { $spooler_log.info("This is spooler_close") } Function spooler_exit() { $spooler_log.info("This is spooler_exit") } Function spooler_on_success() { $spooler_log.info("This is spooler_on_success") } Function spooler_on_error() { $spooler_log.info("This is spooler_on_error") } |
Configuring a
...
PowerShell pre-/
...
post-processor
Only one powershell Powershell pre-/postprocessor post-processor can be configured per job.
- Have the
<monitor><script/></monitor>
use thecom_class JSPowershellAdapter.JobAdapter
- define a parameter
powershell_monitor_script
which points to the location of the Powershell PowerShell pre-/postprocessor post-processor implementation- If the path is relative, it needs to be relative to the SCHEDULER_DATA directory
- write a powershell PowerShell pre-/postprocessor post-processor implementation
Example job definition
Code Block | |
---|---|
| |
| |
<?xml version"1.0" encodinh1. "ISO-8859-1"?> <job> <params><params> <param name="powershell_monitor_script" valuh1. value="powershell\powershell_monitor.ps1"/> </params> <script language="javascript"> <\![CDATA[ function spooler_process(){ spooler_log.info("this is javascript"); return false; } ]]> </script> <monitor> <script com_class="JSPowershellAdapter.JobAdapter"/> </monitor> </job> job> |
Example
...
PowerShell pre-/
...
post-processor script
Code Block | ||
---|---|---|
| ||
Function spooler_task_before()
{
$spooler_log.info("powershell: This is spooler_task_before")
return $true
}
| ||
No Format | ||
Function spooler_process_before() { $spooler_log.info("powershell: This is spooler_process_before") return $true } | ||
No Format | ||
Function spooler_process_after(bool $spooler_process_result)
{
$spooler_log.info("powershell: This is spooler_process_after with result $spooler_process_result")
return $spooler_process_result
}
| ||
No Format | ||
Function spooler_task_after() { $spooler_log.info("powershell: This is spooler_task_after") } |