You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Introduction

  • Users frequently find the situation when a business date has to be made available to a larger number of jobs.
    • This can include the current date or a calculated date such as a trade date that considers calendars.
    • This can include a previous date such as a reporting date.
  • Requirements
    • The business date has to consider existing business rules, e.g. to use the current date, a calculated date or a previous date.
    • The business date has to be updated at a precise point in time and on a regular basis.
    • The business date has to be made available to a larger number of jobs.

Building Blocks

Use of Job Resources

JS7 - Job Resources are a means to carry variables and to make them available to jobs.

  • A Job Resource can hold any number of variables. Such variables are available for JVM Jobs from arguments and for Shell Jobs from environment variables.
  • A Job Resource environment variable is automatically available as a local environment variable to a Shell Job.
    • If a Workflow is assigned the Job Resource then any Shell Jobs in the workflow are propagated the environment variables of the Job Resource.
    • If a Job is assigned the Job Resource then this job can use the propagated environment variables of the Job Resource.
  • As a result you can add a variable such as BusinessDate to an existing or to a new Job Resource and assign the Job Resource to a Workflow to make it available to all jobs or assign it to an individual Job to limit the scope.

Use with Jobs

Environment variables from Job Resources are automatically available for job scripts.

  • For jobs executed with Unix Agents the environment variable is available from its name, e.g. $BUSINESS_DATE.
  • For jobs executed with Windows Agents the environment variable is available from the syntax %BUSINESS_DATE%.

Updating the Business Date

The preferable approach is to update the value of a global variable such as a BusinessDate, by a job.

  • Users can create a workflow with a single job that updates the BusinessDate, environment variable.
  • This job is triggered by a order

Examples

Example how to update a business date from a PowerShell job script

PowerShell implementation to update the business date with a Job Resource variable
#!/usr/bin/env pwsh

# ---- environment specific -----
# Consider to use the appropriate URL that matches host and port of the JOC Cockpit instance
$url = "http://localhost:4446"

# Consider to store credentials with a PowerShell profile or with a credential store or to use certificate based authentication as an alternative to user/password
$credential = ( New-Object -typename System.Management.Automation.PSCredential -ArgumentList 'root', ( 'root' | ConvertTo-SecureString -AsPlainText -Force) )

# Consider the identification of the Controller that the job resource should be deployed to
$controllerId = "testsuite"
# ---- environment specific -----


Import-Module JS7
Connect-JS7 -Url $url -Credential $credential -Id $controllerId

$jobResource = Get-JS7InventoryItem -Path /Defaults/DailyDefault -Type JOBRESOURCE

    if ( $jobResource.arguments.BusinessDate )
    {
        # update the business date
        $jobResource.arguments.BusinessDate = (Get-Date -Format "yyyy-MM-dd")
    } else {
        # add a business date variable to the Job Resource
        $jobResource.arguments | Add-Member -Membertype NoteProperty -Name BusinessDate -Value (Get-Date -Format "yyyy-MM-dd")
    }

# Update and deploy the Job Resource
Set-JS7InventoryItem -Path /Defaults/DailyDefault -Type JOBRESOURCE -Object $jobResource
Publish-JS7DeployableItem -Path /Defaults/DailyDefault -Type JOBRESOURCE -ControllerID $controllerId
Disconect-JS7


For Windows use the above PowerShell script code except for the first line (that indicates a shebang) that should be replaced by:

@@findstr/v "^@@f.*&" "%~f0"|pwsh.exe -&goto:eof



  • No labels