Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Find a sample report for download that includes the report with its DailyOrder-Plan worksheetHistory worksheetjobscheduler_reporting.xlsx

...

Code Block
languagepowershell
titleDaily Plan Report Job
linenumberstrue
@@findstr/v "^@@f.*&" "%~f0"|pwsh.exe -&goto:eof

Import-Module ImportExcel
Import-Module JS7

$credentials = ( New-Object -typename System.Management.Automation.PSCredential -ArgumentList 'root', ( 'root' | ConvertTo-SecureString -AsPlainText -Force) )
Connect-JS7 -Url $env:JS7_JOC_URL -Credentials $credentials -Id $env:JS7_CONTROLLER_ID | Out-Null

# Dates in local time zone, output includes local date format
Get-JSOrderHistory -Timezone (Get-Timezone) -RelativeDateFrom -3d `
                |  Select-Object -Property @{name="Controller ID"; expression={$_.controllerId}}, `
                                           @{name="History ID"; expression={$_.historyId}}, `
                                           @{name="Order ID"; expression={$_.orderId}}, `
                                           @{name="Order Status"; expression={$_.state._text}}, `
                                           @{name="Order Position"; expression={$_.position}}, `
                                           @{name="Workflow"; expression={$_.workflow}}, `
                                           @{name="History Status"; expression={$_.state._text}}, `
                                           @{name="Planned Start Time"; expression={ Get-Date $_.plannedTime }}, `
                                           @{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 "Order-History" -ClearSheet

Write-Output ".. report created: /tmp/jobscheduler_reporting.xlsx"				

ExplanationsExplanation:

  • Line 1: The job is executed with a Windows Agent and makes use of the PowerShell shebang for Windows, see above explanation.
  • Line 3-4: The required PowerShell modules are imported. They could be installed with any location in the file system
  • Line 6-7: The Connect-JS7 cmdlet is used to authenticate with the JS7 REST Web Service API. The required arguments for -Url , -Credentials and -Id can specified in a number of ways:
  • Line 10: For better readability of the report the start types of jobs are mapped to a textual representation (single start, cyclic start etc.).Line 13: The Get-JS7DailyPlanOrderJS7OrderHistory cmdlet is invoked
    • with the parameter -Timezone to specify to which time zone date values in the report should be converted. The parameter value -Timezone (Get-Timezone) specifies that the time zone of the Agent's server is used. Otherwise specify the desired time zone, for example like this: -Timezone (Get-Timezone -Id 'GMT Standard Time'). Without using this parameter any date values are stored as UTC dates to the report.
    • optionally with additional parameters, for example to specify the date or date range for which the report is created  A value -RelativeDateTo +7d-3d specifies that the report should cover the next 7 last 3 days (until midnight). Keep in mind that dates have to be specified for the UTC time zone. Without this parameter the report will be created for the next day.
    • see the Get-JS7DailyPlanOrderJS7OrderHistory cmdlet for a full parameter reference.
  • Line 1411-2621: From the output of the Get-JS7DailyPlanOrderJS7OrderHistory cmdlet a number of properties are selected and and are specified for the sequence in which they should occur in the report. 
    • To add more speaking column headers the property names are mapped to a more readable textual representation.
    • Consider the handling of date formats in line 17-21-25. Use of the Get-Date cmdlet converts the output format of dates (not the time zone) to the default format that is in place on the Agent's server. Without using the Get-Date cmdlet any date values will be stored to the report in ISO format, e.g. 2020-12-31 10:11:12+02:00 for a date in the European central time zone that is UTC+1 in winter time and UTC+2 in summer time.
    • Lines 23, 26 introduce Line 21 introduces a new property, a calculated duration. From the start time and end time values of a planned start and optionally of a past start the difference in seconds is calculated and is forwarded added to the report.
  • Line 2722: The list of properties per Daily Plan item is piped to the Export-Excel cmdlet that is available with the ImportExcel PowerShell Module. The report file name is specified and optionally the worksheet. For a full list of parameters see the ImportExcel PowerShell Module.

l

...

languagepowershell
titleOrder History Report (Windows version)
linenumberstrue
collapsetrue

...

  • Order

...

  • History

...

Explanation:

  • Line 2-3: The job is executed with a Windows Agent that is assigned by a process class. The job is of type "powershell" and will use the Powershell version provided with the server.
  • Line 4-5: The required PowerShell modules are imported. They could be installed with any location in the file system
  • Line 7: The Connect-JS cmdlet is used to authenticate with the JOC Cockpit REST Web Service. The required URL and credentials are specified in a PowerShell profile, see PowerShell CLI 1.2 - Use Cases - Credentials Management
  • Line 10: The Get-JSOrderHistory cmdlet is called 
    • with the parameter -Timezone to specify to which timezone date values in the report should be converted. The parameter value -Timezone (Get-Timezone) specifies that the timezone of the Agent's server is used. Otherwise specify the desired timezone e.g. like this: -Timezone (Get-Timezone -Id 'GMT Standard Time'). Without using this parameter any date values are stored as UTC dates to the report.
    • optionally with additional parameters, e.g. to specify the date range for which the report is created  A value -DateFrom (Get-Date -Hour 0 -Minute 0 -Second 0).AddDays(-7).ToUniversalTime() specifies that the report should cover the last 7 days (from midnight). Keep in mind that dates have to be specified for the UTC timezone. Without this parameter the report will be created for the last day.
    • see the Get-JSOrderHistory cmdlet for a full parameter reference.
  • Line 11-18: From the output of the Get-JSOrderHistory cmdlet a number of properties are selected and and are specified for the sequence in which they should occur in the report. 
    • To add more speaking column headers the property names are mapped to a more readable textual representation.
    • Consider the handling of date formats in lines 15, 16. Use of the Get-Date cmdlet converts the output format of dates (not the timezone) to the default format that is in place on the Agent's server. Without using the Get-Date cmdlet any date values will be stored to the report in ISO format, e.g. 2020-12-31 10:11:12+02:00 for a date in the European central timezone that is UTC+1 in winter time and UTC+2 in summer time.
    • Lines 17 introduces a new property, a calculated duration. From the start time and end time values of a past start the difference in seconds is calculated and is forwarded to the report.
  • Line 19: The list of properties per order history item is piped to the Export-Excel cmdlet that is available with the ImportExcel PowerShell Module. The report file name is specified and optionally the worksheet. For a full list of parameters see the ImportExcel PowerShell Module.

...