What is the difference between the createJob and createJobStep commands in ectool? How are they used within Flow?
createJobStep is used to create dynamic steps
|ectool createJobStep --parallel 1 --projectName Default --subprocedure coolProcedure --actualParameter input=helloWorld|
createJob is used to report in Flow about external jobs, usually in conjunction with a grid engine like LSF. The createJob command creates a job within Flow that tracks something that runs completely outside of Flow (perhaps some type of QA tests as an example).
|ectool createJob --projectName "Sample Project" --status running|
After you set the status to Running, the step is effectively running. A job step will only be marked completed when the completeJobStep API is called on the step and any child steps have completed. The job's completion is similarly dependent on the completeJob API being called.
- If you want to run something from the command field in a step created with createJobStep, you must not specify the --external option on your createJobStep command because that will assume that it's an external command and will not execute the commands in the command field.
- You cannot use createJobStep in combination with createJob because createJob assumes an external command, so the steps created in that job are not executed.
- createJobStep commands are dynamic commands that can be created from a procedure to run in an existing Flow job (not an external job created with createJob as previously stated).