...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<?xml version="1.0" encoding="ISOUTF-8859-18" ?> <job title="Report Daily Plan" process_class="agent_windows"> <script language="powershell"><![CDATA[ Import-Module $env:SCHEDULER_DATA/config/powershell/Modules/ImportExcel Import-Module $env:SCHEDULER_DATA/config/powershell/Modules/JobScheduler Connect-JS -Url $JOCCockpitUrl -Credential $JOCCockpitCredential | Out-Null # start mode mapping $startModes = @{"0"="single start"; "1"="repeat start-start"; "2"="repeat end-start"} # Dates in local time zone, output includes local date format Get-JSDailyPlan -Timezone (Get-Timezone) ` | Select-Object -Property @{name="Job Chain/Job"; expression={ "$($_.jobChain)$($_.job)"}}, ` @{name="Order ID"; expression={$_.orderId}}, ` @{name="Status"; expression={$_.state._text}}, ` @{name="Job Stream"; expression={$_.jobStream}}, ` @{name="Late"; expression={$_.late}}, ` @{name="Start Type"; expression={ $startModes[ "$($_.startMode)"] }}, ` @{name="Repeat Interval"; expression={$_.period.repeat}}, ` @{name="Planned Start Time"; expression={ Get-Date $_.plannedStartTime }}, ` @{name="Expected End Time"; expression={ Get-Date $_.expectedEndTime }}, ` @{name="Expected Duration (sec.)"; expression={ (New-Timespan -Start "$($_.plannedStartTime)" -End "$($_.expectedEndTime)").Seconds }}, ` @{name="Start Time"; expression={ Get-Date $_.startTime }}, ` @{name="End Time"; expression={ Get-Date $_.endTime }}, ` @{name="Duration (sec.)"; expression={ (New-Timespan -Start "$($_.startTime)" -End "$($_.endTime)").Seconds }} ` | Export-Excel -Path /tmp/jobscheduler_reporting.xlsx -WorksheetName "Daily-Plan" -ClearSheet Write-Output ".. report created: /tmp/jobscheduler_reporting.xls" ]]></script> <run_time/> </job> |
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<?xml version="1.0" encoding="ISOUTF-8859-18" ?> <job title="Report Daily Plan" process_class="agent_linux"> <script language="shell"><![CDATA[ pwsh -NoLogo -NonInteractive -Command '& { . $env:SCHEDULER_DATA/config/powershell/JobScheduler.PowerShell_profile.ps1; Import-Module $env:SCHEDULER_DATA/config/powershell/Modules/ImportExcel; Import-Module $env:SCHEDULER_DATA/config/powershell/Modules/JobScheduler; Connect-JS -Url $JOCCockpitUrl -Credential $JOCCockpitCredential | Out-Null; # start mode mapping $startModes = @{"0"="single start"; "1"="repeat start-start"; "2"="repeat end-start"}; # Dates in local time zone, output includes local date format Get-JSDailyPlan -Timezone (Get-Timezone) ` | Select-Object -Property @{name="Job Chain/Job"; expression={ "$($_.jobChain)$($_.job)"}}, ` @{name="Order ID"; expression={$_.orderId}}, ` @{name="Status"; expression={$_.state._text}}, ` @{name="Job Stream"; expression={$_.jobStream}}, ` @{name="Late"; expression={$_.late}}, ` @{name="Start Type"; expression={ $startModes[ "$($_.startMode)"] }}, ` @{name="Repeat Interval"; expression={$_.period.repeat}}, ` @{name="Planned Start Time"; expression={ Get-Date $_.plannedStartTime }}, ` @{name="Expected End Time"; expression={ Get-Date $_.expectedEndTime }}, ` @{name="Expected Duration (sec.)"; expression={ (New-Timespan -Start "$($_.plannedStartTime)" -End "$($_.expectedEndTime)").Seconds }}, ` @{name="Start Time"; expression={ Get-Date $_.startTime }}, ` @{name="End Time"; expression={ Get-Date $_.endTime }}, ` @{name="Duration (sec.)"; expression={ (New-Timespan -Start "$($_.startTime)" -End "$($_.endTime)").Seconds }} ` | Export-Excel -Path /tmp/jobscheduler_reporting.xlsx -WorksheetName "Daily-Plan" -ClearSheet; Write-Output ".. report created: /tmp/jobscheduler_reporting.xls"; }' ]]></script> <run_time/> </job> |
ExplantionsExplanations
- Basically the same explanations as for the Windows version of the job apply.
- Line 3: The PowerShell has to be invoked with
pwsh
. Consider that any subsequent PowerShell commands are quoted within a string that starts with line 3 and that ends with line 29.- As the string is using a single quote all subsequent PowerShell commands make use of double quotes when required.
- You could apply a different quoting style, however, quotes have to be consistent.
- Line 4: As an example a PowerShell profile is invoked that provides the variables for URL and credentials to access the JOC Cockpit REST Web Service. Such profiles can be stored in different locations and can be invoked automatically by
pwsh
on startup.
...