HCL Workload Automation, Version 9.4

Passing job properties from one job to another in the same job stream instance

The job properties that you can export from one dynamic job to a successive job in the same job stream instance depend on the job type you are defining. To add a job property within another successor job definition, to have it resolved locally on the agent at run time, use the following syntax:
${job:<JOB_NAME>.<property_name>}
where <JOB_NAME> is the name value or alias name value of the job from which you are exporting the property values and <property_name> is the property that you are referring to. The <property_name> value is case insensitive.
Only some job types can pass property values to other successor jobs. The following types of job can export variables:
IBM InfoSphere DataStage jobs
Table 1 shows the list of properties that you can pass from one IBM InfoSphere DataStage job to another and indicates the mapping between the Extra information properties of the job and the properties that you can use. For more information about IBM InfoSphere DataStage jobs, see Scheduling Applications with HCL Workload Automation.
Shadow jobs
Table 2 shows the list of properties that you can pass from one shadow job to another and indicates the mapping between the Extra information properties of the job and the properties that you can use.
OSLC jobs
Table 3 shows the list of properties that you can pass from one OSLC job to another and indicates the mapping between the Extra information properties of the job and the properties that you can use.
IBM WebSphere MQ jobs
Table 4 shows the list of properties that you can pass from one IBM WebSphere MQ job to another and indicates the mapping between the Extra information properties of the job and the properties that you can use.
IBM Sterling Connect:Direct jobs
Table 5 shows the list of properties that you can pass from one IBM Sterling Connect:Direct job to another and indicates the mapping between the Extra information properties of the job and the properties that you can use.
Salesforce jobs
Table 6 shows the list of properties that you can pass from one Salesforce job to another and indicates the mapping between the Extra information properties of the job and the properties that you can use.
SAP BusinessObjects BI jobs
Table 7 shows the list of properties that you can pass from one SAP BusinessObjects BI job to another and indicates the mapping between the Extra information properties of the job and the properties that you can use.
Oracle E-Business Suite jobs
Table 8 shows the list of properties that you can pass from one Oracle E-Business Suite job to another and indicates the mapping between the Extra information properties of the job and the properties that you can use.
File transfer jobs
Table 9 shows the list of properties that you can pass from one file transfer job to another and indicates the mapping between the Extra information properties of the job and the properties that you can use.

Since you can use wildcards to specify a partial name condition, you can transfer more than one file within the same job, and you have one full set of properties for each transferred file.

Hadoop Map Reduce jobs
Table 10 shows the list of properties that you can pass from one Hadoop Map Reduce job to another and indicates the mapping between the Extra information properties of the job and the properties that you can use.
Hadoop Distributed File System jobs
Table 11 shows the list of properties that you can pass from one Hadoop Distributed File System job to another and indicates the mapping between the Extra information properties of the job and the properties that you can use.
IBM BigInsights jobs
Table 12 shows the list of properties that you can pass from one IBM BigInsights Application job to another and indicates the mapping between the Extra information properties of the job and the properties that you can use.
JSR 352 Java Batch jobs
Table 13 shows the list of properties that you can pass from one IBM BigInsights Application job to another and indicates the mapping between the Extra information properties of the job and the properties that you can use.
MQTT jobs
Table 14 shows the list of properties that you can pass from one MQTT job to another and indicates the mapping between the Extra information properties of the job and the properties that you can use.
Apache Oozie jobs
Table 15 shows the list of properties that you can pass from one Apache Oozie job to another and indicates the mapping between the Extra information properties of the job and the properties that you can use.
Cloudant jobs
Table 16 shows the list of properties that you can pass from one Cloudant job to another and indicates the mapping between the Extra information properties of the job and the properties that you can use.
OpenWhisk jobs
Table 17 shows the list of properties that you can pass from one OpenWhisk job to another and indicates the mapping between the Extra information properties of the job and the properties that you can use.
Job Management jobs
Table 18 shows the list of properties that you can pass from one Job Management job to another and indicates the mapping between the Extra information properties of the job and the properties that you can use.
Job Stream Submission jobs
Table 19 shows the list of properties that you can pass from one Job Stream Submission job to another and indicates the mapping between the Extra information properties of the job and the properties that you can use.
Database jobs
Table 20 shows the list of properties that you can pass from one database job to another and indicates the mapping between the Extra information properties of the job and the properties that you can use.
Start of changeApache Spark jobsEnd of change
Start of changeTable 21 shows the list of properties that you can pass from one database job to another and indicates the mapping between the Extra information properties of the job and the properties that you can use. End of change
Start of changeAmazon EC2 jobsEnd of change
Start of changeTable 22 shows the list of properties that you can pass from one database job to another and indicates the mapping between the Extra information properties of the job and the properties that you can use. End of change
Start of changeIBM SoftLayer jobsEnd of change
Start of changeTable 23 shows the list of properties that you can pass from one database job to another and indicates the mapping between the Extra information properties of the job and the properties that you can use. End of change
Start of changeMicrosoft Azure jobsEnd of change
Start of changeTable 24 shows the list of properties that you can pass from one database job to another and indicates the mapping between the Extra information properties of the job and the properties that you can use. End of change

Example

The following example demonstrates how specifying variables in different formats allows for variables to have different values because they are resolved at different times. It also demonstrates how variables can be passed from job to job in a job stream instance. The WIN92MAS_REW#VP_JS_141800058 job stream contains JOBA and JOBB jobs. The JOBB executable job references the following properties of the JOBA shadow job:
  • ScheduledTime
  • dJobNAme
  • dJobStreamName
  • dJobStreamWorkstation
The database definitions:
SCHEDULE WIN92MAS_REW#VP_JS_141800058 
:
WIN92MAS_REW#JOBA
 TASK
    <?xml version="1.0" encoding="UTF-8"?>
<jsdl:jobDefinition xmlns:dshadow=
"http://www.ibm.com/xmlns/prod/scheduling/1.0/dshadow" xmlns:
 jsdl="http://www.ibm.com/xmlns/prod/scheduling/1.0/jsdl">
  <jsdl:application name="distributedShadowJob">
    <dshadow:DistributedShadowJob>
      <dshadow:JobStream>VPJS_141800058</dshadow:JobStream>
      <dshadow:Workstation>nc125133</dshadow:Workstation>
      <dshadow:Job>VP_JOBMON_141800058</dshadow:Job>
      <dshadow:matching>
        <dshadow:previous/>
      </dshadow:matching>
    </dshadow:DistributedShadowJob>
  </jsdl:application>
</jsdl:jobDefinition>
 DESCRIPTION "Sample Job Definition for DISTRIBUTED environment"
 RECOVERY STOP
NC125133#JOBB
 TASK
    <?xml version="1.0" encoding="UTF-8"?>
<jsdl:jobDefinition xmlns:XMLSchema=
"http://www.w3.org/2001/XMLSchema" xmlns:jsdl="http://www.ibm.com/xmlns/
    prod/scheduling/1.0/jsdl" xmlns:
jsdle="http://www.ibm.com/xmlns/prod/scheduling/1.0/jsdle"
 XMLSchema:text="resolveVariableTable" name="executable">
  <jsdl:application name="executable">
    <jsdle:executable>
            <jsdle:script>
echo ScheduledTime:${job:JOBA.ScheduledTime}
echo JobName:${job:JOBA.dJobName}
echo JobStreamName:${job:JOBA.dJobStreamName}
echo JobStreamWorkstation:${job:JOBA.dJobStreamWorkstation}
</jsdle:script>
        </jsdle:executable>
  </jsdl:application>
</jsdl:jobDefinition>
 DESCRIPTION "Added by composer."
 RECOVERY STOP
 FOLLOWS JOBA

END

HCL Workload Automation uses the IBM InfoSphere DataStage jobs properties as is. The IBM InfoSphere DataStage jobs Extra Information property values depend on the locale of the workstation where the IBM InfoSphere DataStage is installed. Table 1 shows the IBM InfoSphere DataStage job Extra Information property values for a workstation with the locale set to en_US.

Table 1. Properties for IBM InfoSphere DataStage jobs
IBM InfoSphere DataStage Job properties that can be passed in another job definition IBM InfoSphere DataStage job Extra Information properties
${job:<JOB_NAME>.Interim Status}
Interim Status
${job:<JOB_NAME>.Invocation ID}
Invocation ID
${job:<JOB_NAME>.Invocation List}
Invocation List
${job:<JOB_NAME>.Job Control}
Job Control
${job:<JOB_NAME>.Job Controller}
Job Controller
${job:<JOB_NAME>.Job Process ID}
Job Process ID
${job:<JOB_NAME>.Job Restartable}
Job Restartable
${job:<JOB_NAME>.Job Start Time}
Job Start Time
${job:<JOB_NAME>.Job Status}
Job Status
${job:<JOB_NAME>.Job Wave Number}
Job Wave Number
${job:<JOB_NAME>.Last Run Time}
Last Run Time
${job:<JOB_NAME>.User Status}
User Status
Table 2. Properties for shadow jobs
Shadow job properties that can be passed in another job definition Shadow job Extra Information properties
${job:<JOB_NAME>.ScheduledTime}
Remote Job Scheduled Time
${job:<JOB_NAME>.dJobName}
Remote Job
${job:<JOB_NAME>.dJobStreamName}
Remote Job Stream
${job:<JOB_NAME>.dJobStreamWorkstation}
Remote Job Stream Workstation
Table 3. Properties for OSLC jobs
OSLC job properties that can be passed to another job OSLC job Extra Information properties
${job:<JOB_NAME>.RESULT_URI}
RESULT_URI
Table 4. Properties for IBM WebSphere MQ jobs
IBM WebSphere MQ properties that can be passed in another job definition IBM WebSphere MQ job Extra Information properties
${job:<JOB_NAME>.CHANNEL_PROP}
Channel
${job:<JOB_NAME>.SERVER_PROP}
Server
${job:<JOB_NAME>.MANAGER_PROP}
Manager
${job:<JOB_NAME>.PORT_PROP}
Port
${job:<JOB_NAME>.MSG_ID_PROP}
MessageID
${job:<JOB_NAME>.CORRELATION_ID_PROP}
CorrelationID
${job:<JOB_NAME>.MESSAGE_SENT_PROP}
MessageSent
${job:<JOB_NAME>.MESSAGE_RECEIVED_PROP}
MessageReceived
${job:<JOB_NAME>.OPERATION_PROP}
Operation
Table 5. Properties for IBM Sterling Connect:Direct jobs
IBM Sterling Connect:Direct properties that can be passed in another job definition IBM Sterling Connect:Direct job Extra Information properties
${job:<JOB_NAME>.PrimaryNodeAddress}
Primary Node Address
${job:<JOB_NAME>.PrimaryNodeUserID}
Primary Node User
${job:<JOB_NAME>.SecondaryNodeName}
Secondary Node Name
${job:<JOB_NAME>.SecondaryNodeUserID}
Secondary Node User
${job:<JOB_NAME>.ProcessName}
Process Name
${job:<JOB_NAME>.DestinationDisposition}
Destination Disposition
${job:<JOB_NAME>.ProcessFileName}
Process File Name
${job:<JOB_NAME>.ProcessFileLocation}
Process File Location
${job:<JOB_NAME>.CompressType}
Compression Type
${job:<JOB_NAME>.CheckPointRestart}
Check Point Restart
${job:<JOB_NAME>.ActionSelected}
Action Selected
${job:<JOB_NAME>.SourceFilePath}
Source File Path
${job:<JOB_NAME>.DestinationFilePath}
Destination File Path
${job:<JOB_NAME>.ProcessNumber}
Process Number
Table 6. Properties for Salesforce jobs
Salesforce properties that can be passed in another job definition Salesforce job Extra Information properties
${job:<JOB_NAME>.ApexJobID}
Apex job ID
${job:<JOB_NAME>.TotalJobItems}
Total Job items
${job:<JOB_NAME>.NumberOfErrors}
Number of errors
${job:<JOB_NAME>.Status}
Batch status
${job:<JOB_NAME>.ExtendedStatus}
Extended status
Table 7. Properties for SAP BusinessObjects BI jobs
SAP BusinessObjects BI properties that can be passed in another job definition SAP BusinessObjects BI job Extra Information properties
${job:<JOB_NAME>.AuthType}
Authorization Type
${job:<JOB_NAME>.BOInstanceID}
SAP BusinessObjects resource 
instance ID
${job:<JOB_NAME>.BOInstanceStatus}
SAP BusinessObjects resource 
instance status
${job:<JOB_NAME>.BOObject}
SAP BusinessObjects resource
${job:<JOB_NAME>.Server}
Server address
${job:<JOB_NAME>.UserName}
User name
Table 8. Properties for Oracle E-Business Suite jobs
Oracle E-Business Suite properties that can be passed in another job definition Oracle E-Business Suite job Extra Information properties
${job:<JOB_NAME>.DevelopmentPhase}
Development Phase
The request phase as a constant 
string that can be used for program 
logic comparisons.
${job:<JOB_NAME>.DevelopmentStatus}
Development Status
The request status as a constant 
string that can be used for program 
logic comparison.
${job:<JOB_NAME>.JobId}
Job Id
The ID of the request submitted and
managed by Oracle E-Business Suite. 
${job:<JOB_NAME>.Message}
Message
The completion message related to the
completed request. 
${job:<JOB_NAME>.Phase}
Phase
The user-friendly request phase.
${job:<JOB_NAME>.Status}
Status
The user-friendly request status.
Table 9. Properties for file transfer jobs
For the file number counter, the properties that can be passed in another job definition (a set of properties for each transferred file) For the file number counter, the job Extra Information properties (a set of properties for each transferred file)
${job:<JOB_NAME>.File.counter.LocalFile}
File.counter.LocalFile
${job:<JOB_NAME>.File.counter.LocalUser}
File.counter.LocalUser
${job:<JOB_NAME>.File.counter.Protocol}
File.counter.Protocol
${job:<JOB_NAME>.File.counter.RemoteFile}
File.counter.RemoteFile
${job:<JOB_NAME>.File.counter.RemoteUser}
File.counter.RemoteUser
${job:<JOB_NAME>.File.counter.Size}
File.counter.Size
${job:<JOB_NAME>.File.counter.
    TotalTransferTime}
File.counter.TotalTransferTime
${job:<JOB_NAME>.NumberOfTransferredFiles}
Number of transferred files

Only one value for each job.

Table 10. Properties for Hadoop Map Reduce jobs
Hadoop Map Reduce job properties that can be passed to another job Label
${job::<JOB_NAME>.HadoopDir}
Hadoop  installation directory
${job::<JOB_NAME>.JarFile}
Jar File
${job::<JOB_NAME>.MainClassName}
Main Class
${job::<JOB_NAME>.Arguments}
Arguments
${job::<JOB_NAME>.Job<INDEX>JobId
Job ID
${job::<JOB_NAME>.Job<INDEX>JobStatus
Job Status
${job::<JOB_NAME>.Application<INDEX>AppId
Application ID
${job::<JOB_NAME>.Application<INDEX>.
   AppTrackingUrl
Application Tracking URL
Table 11. Properties for Hadoop Distributed File System jobs
Hadoop Distributed File System job properties that can be passed to another job Label
${job:<JOB_NAME>.RemoteFile}
RemoteFile
${job:<JOB_NAME>.LocalFile}
LocalFile
${job:<JOB_NAME>.Permissions}
Permissions
${job:<JOB_NAME>.NewRemoteFile}
NewRemoteFile
${job:<JOB_NAME>.FileDeleted}
FileDeleted
${job:<JOB_NAME>.AccessTime}
AccessTime
${job:<JOB_NAME>.BlockSize}
BlockSize
${job:<JOB_NAME>.Group}
Group
${job:<JOB_NAME>.Length}
Length
${job:<JOB_NAME>.ModificationTime}
ModificationTime
${job:<JOB_NAME>.Owner}
Owner
${job:<JOB_NAME>.PathSuffix}
PathSuffix–
${job:<JOB_NAME>.Replication}
Replication
${job:<JOB_NAME>.FileType}
FileType
Note: The ${job:<JOB_NAME>.RemoteFile} and ${job:<JOB_NAME>.LocalFile} properties apply to all actions in the Hadoop Distributed File System job. The remaining properties apply to the Wait for a file action only.
Table 12. Properties for IBM BigInsights jobs, Application section
IBM BigInsights job properties that can be passed to another job Label
${job:<JOB_NAME>.Status}
Status
${job:<JOB_NAME>.ElapsedTime}
ElapsedTime
${job:<JOB_NAME>.StartTime}
StartTime
${job:<JOB_NAME>.EndTime}
EndTime
${job:<JOB_NAME>.Progress}
Progress
${job:<JOB_NAME>.User}
User
${job:<JOB_NAME>.Workflow}
Workflow
Table 13. Properties for JSR 352 Java Batch jobs
JSR 352 Java Batch job properties that can be passed to another job Label
${job:<JOB_NAME>.ExitStatus}
Job Exit Status
${job:<JOB_NAME>.JobInstanceId}
Job Instance Id
${job:<JOB_NAME>.executionId}
Job Execution Id
${job:<JOB_NAME>.JobName}
Job Name
${job:<JOB_NAME>.JobBatchStatus}
Job Batch Status
${job:<JOB_NAME>.self}
Self
${job:<JOB_NAME>.joblogs}
Job Logs
${job:<JOB_NAME>.Jobexecution}
Job Execution
The following variables are exported for each step of the job:  
${job:<JOB_NAME>.<STEP_NAME>.Name}
Step Name
${job:<JOB_NAME>.<STEP_NAME>.BatchStatus}
Step Batch Status
Table 14. Properties for MQTT jobs
MQTT job properties that can be passed to another job Label
${job:<JOB_NAME>.Message}
Message
Table 15. Properties for Apache Oozie jobs
Apache Oozie job properties that can be passed to another job Label
{job:<JOB_NAME>.id}
id
{job:<JOB_NAME>.appName}
appName
{job:<JOB_NAME>.appPath}
appPath
{job:<JOB_NAME>.status}
status
{job:<JOB_NAME>.externalId}
externalId
{job:<JOB_NAME>.user}
user
{job:<JOB_NAME>.conf}
conf
{job:<JOB_NAME>.createdTime}
createdTime
{job:<JOB_NAME>.startTime}
startTime
{job:<JOB_NAME>.endTime}
endTime
{job:<JOB_NAME>.run}
run
${job:<JOB_NAME>.action.<INDEX>.name}
action.<INDEX>.name
${job:<JOB_NAME>.action.<ACTION_NAME>.id}
action.<ACTION_NAME>.id
${job:<JOB_NAME>.action.<ACTION_NAME>.
type}
action.<ACTION_NAME>.type
${job:<JOB_NAME>.action.<ACTION_NAME>.
   status}
action.<ACTION_NAME>.status
${job:<JOB_NAME>.action.<ACTION_NAME>.
   transition}
action.<ACTION_NAME>.transition
${job:<JOB_NAME>.action.<ACTION_NAME>.
   startTime}
action.<ACTION_NAME>.startTime
${job:<JOB_NAME>.action.<ACTION_NAME>.
   endTime}
action.<ACTION_NAME>.endTime
${job:<JOB_NAME>.action.<ACTION_NAME>.
   externalId}
action.<ACTION_NAME>.externalId
${job:<JOB_NAME>.action.<ACTION_NAME>.
   externalStatus}
action.<ACTION_NAME>.externalStatus
${job:<JOB_NAME>.action.<ACTION_NAME>.
conf}
action.<ACTION_NAME>.conf
${job:<JOB_NAME>.action.<ACTION_NAME>.
   retries}
action.<ACTION_NAME>.retries
${job:<JOB_NAME>.action.<ACTION_NAME>.
   consoleUrl}
action.<ACTION_NAME>.consoleUrl
${job:<JOB_NAME>.action.<ACTION_NAME>.
   trackerUri}
action.<ACTION_NAME>.trackerUri
${job:<JOB_NAME>.action.<ACTION_NAME>.
   errorCode}
action.<ACTION_NAME>.errorCode
${job:<JOB_NAME>.action.<ACTION_NAME>.
   errorMessage}
action.<ACTION_NAME>.errorMessage
Table 16. Properties for Cloudant jobs
Cloudant job properties that can be passed to another job Label
${job:<JOB_NAME>.size} Database Size
${job:<JOB_NAME>.document} Document ID
${job:<JOB_NAME>.rev} Document Revision
${job:<JOB_NAME>.source} Source Database
${job:<JOB_NAME>.target} Target Database
${job:<JOB_NAME>.replication_id} Replication ID
${job:<JOB_NAME>.attachName} Attachment Name
Table 17. Properties for OpenWhisk jobs
OpenWhisk job properties that can be passed to another job Label
${job:<JOB_NAME>.actionName} Action Name
${job:<JOB_NAME>.triggerName} trigger Name
${job:<JOB_NAME>.namespace} Namespace
${job:<JOB_NAME>.operationType} Operation Type
${job:<JOB_NAME>.parameters} Parameters
${job:<JOB_NAME>.success} Success
${job:<JOB_NAME>.status} Status
${job:<JOB_NAME>.activationId} Activation ID
Table 18. Properties for Job Management jobs
Job Management job properties that can be passed to another job Label
${job:<JOB_NAME>. jobName} jobname
${job:<JOB_NAME>. jobstreamId} jobstreamid
${job:<JOB_NAME>.workstation} workstation
${job:<JOB_NAME>.user} userName
${job:<JOB_NAME>.url} Url
Table 19. Properties for Job Stream Submission jobs
Job Stream Submission job properties that can be passed to another job Label
${job:<JOB_NAME>.Url} Url
${job:<JOB_NAME>.workstation} Workstation
${job:<JOB_NAME>. jobstreamname} Job Stream Name
${job:<JOB_NAME>.datetime} Earliest Start DateTime
${job:<JOB_NAME>.variabletablename} Variable Table Name
${job:<JOB_NAME>.variablelistValues} Variable Table Values {"key1":value1,"key2":value2,...}
Table 20. Properties for database jobs
Database job properties that can be passed to another job Label
${job:<JOB_NAME>.NumberOfRows} Number of rows
Start of change
Table 21. Properties for Apache Spark jobs
Apache Spark job properties that can be passed to another job Label
${job:<JOB_NAME>.sparkmaster} Master URL
End of change
Start of change
Table 22. Properties for Amazon EC2 jobs
Amazon EC2 job properties that can be passed to another job Label
${job:<JOB_NAME>.instancename} Instance name
${job:<JOB_NAME>.action} Action
${job:<JOB_NAME>.region} Region
${job:<JOB_NAME>.imagename} AMI name
${job:<JOB_NAME>.instanceIp} Instance IP address
End of change
Start of change
Table 23. Properties for IBM SoftLayer jobs
IBM SoftLayer job properties that can be passed to another job Label
${job:<JOB_NAME>.action} Action
${job:<JOB_NAME>.username} User name
${job:<JOB_NAME>.virtualServerName} Virtual server name
${job:<JOB_NAME>.hostname} Virtual server hostname
${job:<JOB_NAME>.virtualServerId} Virtual server identifier
End of change
Start of change
Table 24. Properties for Microsoft Azure jobs
Microsoft Azure job properties that can be passed to another job Label
${job:<JOB_NAME>.virtualmachinename} Virtual machine name
${job:<JOB_NAME>.action} Action
${job:<JOB_NAME>.client} Client
${job:<JOB_NAME>.imagename} Image name
End of change