Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Conversion corrections

Table of Contents
outlinh1. true
outlinh1. true
1printablefalse
2stylh1. none
3indent20px

You can use the Job Scheduler Powershell Adapter to create jobs or pre-/postprocessors that use the JobScheduler API in Powershell.

...

...

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 the com_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

No Format

    <?xml versioh1. "1.0" encoding"ISO-8859-1"?>
  
    <job>
        <params>
            <param namh1. "test" value"12345"/>
            <param namh1. "powershell_script" value"powershell\powershell_job.ps1"/>
        </params>    
        <script com_clash1. "JSPowershellAdapter.JobAdapter"/>
        <run_time once"no"/>
    </job>

Example Powershell Job script

No Format

    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. $spooler_task.id
        $spooler_log.info("This is spooler_process, in task id "+$taskId) 
        $order $spooler_task.order
        if ($order)
        \{        
            $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-/postprocessor

...

Example job definition

No Format

    <?xml version"1.0" encodinh1. "ISO-8859-1"?>

<job>

No Format
    <job>
        <params> <params>		
            <param name"powershell_monitor_script" valuh1. "powershell\powershell_monitor.ps1"/>
        </params>
        <script language"javascript">
            <\![CDATA[
   function spooler_process()\{
        spooler_log.info("this is javascript");

return false;

No Format

        return false;
   }
            \}]]>
        </script>
        <monitor>    
            <script com_class="JSPowershellAdapter.JobAdapter"/>    
        </monitor>
    </job>
job> 

 

Example Powershell pre-/postprocessor script

No Format

    Function spooler_task_before()
    \{
        $spooler_log.info("powershell: This is spooler_task_before")
        return $true
    \}
No Format
    Function spooler_process_before()

...

No Format

    \
	{
        $spooler_log.info("powershell: This is spooler_process_before")
        return $true
    \}
No Format
	Function spooler_process_after(bool $spooler_process_result)

...

No Format

    \
	{
        $spooler_log.info("powershell: This is spooler_process_after with result $spooler_process_result")
        return $spooler_process_result
    \}
No Format
    Function spooler_task_after()

...

No Format

    \
	{
        $spooler_log.info("powershell: This is spooler_task_after")
    \}