Setting up the parent Job - 7.3

System

Version
7.3
Language
English
Product
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Real-Time Big Data Platform
Module
Talend Studio
Content
Data Governance > Third-party systems > System components
Data Quality and Preparation > Third-party systems > System components
Design and Development > Third-party systems > System components
Last publication date
2024-02-21

Procedure

  1. Create a new Job named ParentJob and add a tFileInputDelimited component, a tFlowToIterate component, a tRunJob, and two tJava components to it.
  2. Connect the tFileInputDelimited component to the tFlowToIterate component using a Row > Main connection; the tFlowToIterate component to the second tJava component using a Row > Iterate connection; the second tJava component to the first tJava component using a Trigger > Run if connection; and the second tJava component to the tRunJob component using a Trigger > Run if connection.
  3. Double-click the tFileInputDelimited component to open its Basic settings view.
    • Click the [...] button next to Edit schema and in the pop-up dialog box, define the schema of the input data by adding two columns: Job_Name of String type and Execute of Boolean type. When done, click OK to close the dialog box.
    • Click the [...] button next to File name/Stream frame; navigate to the folder where the file File_For_Execute.txt resides; and select the file.
    • Type the character used to separate fields in the the file File_For_Execute.txt in Field Separator ("," in this example).
    • Set the Header field to 1.
  4. Select the connection between the two tJava components. Enter the following in the Condition field in the Component view to catch the rejected Jobs:
    !((Boolean)globalMap.get("row1.Execute"))
  5. Select the connection between the tJava_2 component and the tRunJob_1 components. Enter the following in the Condition field in the Component view to trigger the execution of the Jobs with the Execute field being true:
    ((Boolean)globalMap.get("row1.Execute"))
  6. Double-click the tRunJob component to open its Basic settings view.
    • Select the Use dynamic job check box and in the Context job field displayed, press Ctrl+Space and from the list of variables select the iterative global variable created by the tFlowToIterate component, tFlowToIterate_1.Job_Name in this example. The Context job field is then filled with ((String)globalMap.get("row1.Job_Name")). Upon each iteration, this variable will be resolved as the name of the Job to be called.
    • Click the [...] button next to the Job field and in the [Select Job] dialog box, select all the Jobs you want to run and click OK to close the dialog box. In this example, they are ChildJob1 through ChildJob5.
  7. Double-click the tJava_1 component to open its Basic settings view. Enter the following in the Code field to log the rejected child Jobs.
    System.out.println("----------------------------------");
    System.out.println("MESSAGE : " + ((String)globalMap.get("row1.Job_Name")) + " JOB hasn't been selected for execution ... ");
    System.out.println("----------------------------------");