Table of Contents | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
Using You can use the Job Scheduler Powershell Adapter , it's possible to create jobs or pre-/postprocessors that use the JobScheduler API in Powershell.
...
- Download the JobScheduler 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
...
No Format 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.
...
- Have the
<script>
use thecom_class JSPowershellAdapter.JobAdapter
- define a parameter
powershell_script
which points to the location of the Powershell job implementation- If the path is relative, it needs to be relative to the SCHEDULER_DATA directory
- write a powershell Job implementation which at least implements
Function spooler_process()
Example job definition
Code Blocknoformat |
---|
<?xml version=versioh1. "1.0" encoding="ISO-8859-1"?> <job> <params> <param name=namh1. "test" value="12345"/> <param namh1. name="powershell_script" value="powershell\powershell_job.ps1"/> </params> <script com_class=clash1. "JSPowershellAdapter.JobAdapter"/> <run_time once="no"/> </job> |
Example Powershell Job script
Code Blocknoformat |
---|
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() \{ $taskId =$taskIdh1. $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") \} |
...
- Have the
<monitor><script/></monitor>
use thecom_class JSPowershellAdapter.JobAdapter
- define a parameter
powershell_monitor_script
which points to the location of the Powershell pre-/postprocessor implementation- If the path is relative, it needs to be relative to the SCHEDULER_DATA directory
- write a powershell pre-/postprocessor implementation
Example job definition
Code Blocknoformat |
---|
<?xml version="1.0" encoding=encodinh1. "ISO-8859-1"?> |
<job>
No Format |
---|
Code Block |
<job> <params> <param name="powershell_monitor_script" value=valuh1. "powershell\powershell_monitor.ps1"/> </params> <script language="javascript"> <\![CDATA[ function spooler_process()\{ spooler_log.info("this is javascript"); |
Code Block |
return
...
false;
No Format |
---|
\}
]]>
</script>
<monitor>
<script com_class="JSPowershellAdapter.JobAdapter"/>
</monitor>
</job>
|
Example Powershell pre-/postprocessor script
Code Blocknoformat |
---|
Function spooler_task_before() \{ $spooler_log.info("powershell: This is spooler_task_before") return $true \} |
Code Block |
Function
...
spooler_process_before()
No Format |
---|
\{ $spooler_log.info("powershell: This is spooler_process_before") return $true \} |
Code Block |
Function
...
spooler_process_after(
...
...
$spooler_process_result)
No Format |
---|
\{ $spooler_log.info("powershell: This is spooler_process_after with result $spooler_process_result") return $spooler_process_result \} |
|
Function
...
spooler_task_after()
No Format |
---|
\{ $spooler_log.info("powershell: This is spooler_task_after") \} |