Introduction

  • Users might be interested in automatically creating reports about planning and execution of job scheduling.
  • Such reports can be created by using JS7 cmdlets - see the following use cases:
  • Use cases include customizing the ordering and formatting of reporting data. This includes the use of output formats such as .csv, .xml, .json, .xlsx and individual formats. As Excel® is a frequent output format the use cases here introduce a solution which creates .xlsx files with Windows and with a number of Unix platforms. Reports can be added to individual worksheets of an Excel® report file.
  • This article explains how to automate the creation of reports and how to send reports by mail.

Download

  • Download the sample workflow (.json upload)jdDailyReport.workflow.json
  • For use in Unix environments you can use the sample workflow. However, you have to replace the first line of each job to use a Unix shebang.

    Shebang for PowerShell Job with Unix
    #!/usr/bin/env pwsh

    Explanation:

    • Use of a shebang allows to invoke the pwsh PowerShell executable. 

Example

The jdDailyReport sample workflow is used which:

  • serializes execution of the above jobs,
  • stores reporting output of each job in an Excel® file each with a separate worksheet for each job.


Explanation:

  • The reporting jobs to be used are explained with the respective articles - see the Introdution section above.
  • The jdDailyReport workflow serializes execution of the above jobs.
    • Keep in mind that you might not need all reports as they provide redundant data, for example the Task History Report partially includes similar reporting data to the Order History Report.
    • The main purpose of the reports is to allow different perspectives on historic data and therefore you are free to choose which report you will need.
    • The workflow makes use of three variables.These are provided with a default value which can be modified by any order:
      • report_file: The path to the Excel® file which holds the reports. Each report is stored to a separate worksheet. The path is determined from the Agent's working directory.
      • report_past_period: This period is applied to reports which consider the past, for example, the Task History Report.
      • report_future_period: This period is applied to reports that consider the future, for example, the Daily Plan Report.
  • A final send-mail job is added that forwards the report_file by mail.
  • Finally an order is created to parameterize and schedule execution of the workflow.

Job: send-mail

The send-mail job uses the following arguments:


Explanation:

  • The send-mail job is based on the JS7 - JITL MailJob template.
  • This job is assigned a Job Resource with the name eMailDefault, see JS7 - Job Resources.
    • No settings for the SMTP server, port, authentication etc. are used as such settings come from the Job Resource as described below.
  • This job uses a number of parameters which are independent of the content of the report and the report recipients:
    • to: is effectively the recipient's mail address.
    • subject: is mapped to the subject of the mail.
    • content_type: depends on the content of the body. When using HTML for the mail body then the content_type should be text/html.
    • body: determines the mail body from a few lines of plain text or HTML code.
    • attachment: note the assigned value which is the $report_file variable, which is declared for the workflow holding the resulting report file.

The Job Resource eMailDefault can be located in any inventory folder and can be defined like this:


Explanation:

  • The screenshot shows the configuration of the eMailDefault Job Resource, see JS7 - Job Resources.
    • Mail parameters are specific to a user's environment.
    • Check the JS7 - JITL MailJob for applicable parameters, such as host, port, use of TLS protocols etc.

Schedule: daily-report


Explanation:

  • The order carries the following parameters:
    • report_file: the path - including the name - of the Excel report file. This parameter is forwarded to all jobs in the job chain which will therefore write to the same Excel report file.
    • report_past period: a relative date specification for the begin of the reporting period is used. The above value -1d+TZ translates to a date range starting 1 day ago at midnight in the timezone that is specified by the reporting jobs with the -Timezone parameter for the respective reporting cmdlet.
    • report_future_period: a relative date specification for the end of the reporting period is used. The above value +1d+TZ translates to a date range one day after the current date at midnight in the timezone that is specified by the reporting jobs with the -Timezone parameter for the respective reporting cmdlet.
    • to: the recipient of the e-mail. Multiple recipients are separated by commas ",".
  • The above order can be added at run-time to specify automated execution, e.g. on a daily basis or more/less frequently.
  • Additional orders which use the same workflow can be created with different parameter sets for date range and recipients.