Versions Compared

Key

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

...

  • The worksheets included with the spreadsheet file offer a number of jobs and dependencies from the following columns:
    • NodeID: A unique identifier for the occurrence of a job. If the same job occurs a number of times then the Name column holds the same job name, however, a unique value has to be specified for the NodeID column. NodeIDs have to start with a character and must not include spaces.
    • SuccessorID: Specifies the NodeIDs of jobs that are direct successors of the current job. If more than one job is specified then they will will be executed in parallel branches. A number of NodeIDs in this column are separated by a space.
    • Instruction:  Makes use of the fixed value Job. This column is reserved for later support of further JS7 - Workflow Instructions. This column can be missing or hold empty values.
    • Name: Specifies the job name. This column is required and cannot hold empty values. Job names have to start with a character and must not include spaces. The same job name can be used in a number of rows indicating that the job is re-used for each occurrence with a unique NodeID.
    • Description: Optionally specifies a descriptive title for the job. This column can be missing or hold empty values.
    • Argument: Optionally specifies arguments that are passed to jobs.
    • Agent, Subagent Cluster: Specifies the name of a Standalone Agent that is configured in your JS7 scheduling environment. If an Agent Cluster is used then its name is specified as the Agent and the respective Subagent Cluster is specified, see JS7 - Agent Cluster. If the columns are missing or hold empty values then a default Agent name can be specified from the PowerShell cmdlet's -AgentName parameter, see next chapters.
    • Script: Specifies the job script that will be executed. Multiline input is allowed. This column is required and cannot hold empty values.
    • Job Resource: Specifies one or more JS7 - Job Resources separated by a space that will be assigned the job. This column is not required.
    • Job Class: Specifies one of two values for Shell jobs or JITL jobs from JS7 - JITL Job Templates. If this column is missing, then then job class Shell is assumed.
    • Job Template: If a Job Class with the value JITL is specified then this column holds the Java class name of the job template. This column is required for use with JITL jobs.
    • Error Handling: Optionally specifies one of the following options for JS7 - How to apply error handling. If the column is missing or holds empty values then then STOP error handling will be applied.
      • STOP: If the job fails then the order will be put to the FAILED state and will remain with the job. Failed orders require user intervention to resume, to suspend or to cancel the respective order.
      • IGNORE: Any job error is ignored and order processing continues, see JS7 - Try-Catch Instruction.
      • RETRY: The job will be retried in case of error for 3 times with a delay of 60s, see JS7 - Retry Instruction.
      • LEAVE: The order will leave the workflow with an unsuccessful History outcome, see JS7 - Finish Instruction.
    • Fail on stderr: Optionally specifies that in case that the job will write output to the stderr channel the job will be considered to be failed, see JS7 - Job Instruction. The column holds Boolean values. If the column is missing or holds empty values then the value False will be applied.
  • Users can adjust column names, see JS7 - PowerShell Import from Excel Script - New-JS7WorkflowFromExcel.ps1.

...

Code Block
languagepowershell
titleExample for use of PowerShell cmdlet for Linux
linenumberstrue
#!/usr/bin/env pwsh

$env:SCRIPT_HOME=$(cd "$(dirname "`$0")" >/dev/null && pwd)
Set-Location -Path $env:SCRIPT_HOME

./New-JS7WorkflowFromExcel.ps1 `
    -ExcelPath "$($env:SCRIPT_HOME)/input/jobs.xlsx" `
    -OutputDirectory "$($env:SCRIPT_HOME)/output/jobs"

Managing Job Arguments

Job arguments optionally are specified from the following formats:


SeparatorQuotingData TypeExampleArgument Usage
JSON Stylecommayesnumeric{ "p_calc_id": 365985, "p_calc_ord": 1 }Default: numeric data type

commanonumeric{  p_calc_id : 365985,  p_calc_ord : 1 }Default: numeric data type

commayesstring{ "p_calc_id": "AB321", "p_calc_ord": "RollingOrder" }Default: string data type

commayesBoolean{  is_valid: true,  is_invalid: false }Default: Boolean data type
HashTable Stylecommanostringp_calc_id = AB321, p_calc_ord=RollingOrderDefault separator is the comma

semicolonnonumericp_calc_id = 365985 ; p_calc_ord=RollingOrdersRequires -ArgumentSeparator ';'

newlinenostringp_calc_id = AB321
p_calc_ord=RollingOrders
Default: arguments separated by newline

Explanation:

  • JSON style arguments are specified using { ... }. Otherwise arguments are considered being specified in HashTable style.
  • JSON style arguments require the comma to be used as a separator. Quoting of argument names is optional.
  • HashTable style arguments by default consider the comma  or newline used as a separator.
    • The argument separator can be specified using -ArgumentSeparator '<separator-character>'.
    • Data types for string input and numeric input are dynamically assigned.
  • HashTable style arguments do not suggest quoting.
  • For both JSON style arguments and HashTable style arguments spaces between argument names, values and separators are not relevant.

Automating Import

Users who wish to automate the process of importing workflows to JOC Cockpit can use the JS7 - PowerShell Module that performs operations based on the JS7 - REST Web Service API.

...

Code Block
languagepowershell
titleExample for use of PowerShell cmdlet for Linux
linenumberstrue
./New-JS7WorkflowFromExcel.ps1 `
    -ExcelPath /home/sos/excel/input/jobs.xlsx `
    -WorksheetName Workflow01 `
    -WorksheetColumns @{ 'nodeid' = 'NodeID'; 'successorid' = 'SuccessorID'; 'instruction' = 'Instruction'; 'name' = 'Name'; 'description' = 'Description'; 'argument' = 'Argument'; 'agent' = 'Agent'; 'subagentCluster' = 'Subagent Cluster'; 'script' = 'Script'; 'errorHandling' = 'Error Handling'; 'failOnStderr' = 'Fail on stderr' } `
    -OutputDirectory /home/sos/excel/output/jobs `
    -WorkflowName EOD-Workflow `
    -Title "EOD Processing" `
    -AgentName primaryAgent

...