Définir un composant filtrant les enregistrements - 6.5

Guide de référence des scripts de Jobs Talend

EnrichVersion
6.5
EnrichProdName
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
EnrichPlatform
Studio Talend
Talend CommandLine
task
Création et développement > Création de Jobs

Procédure

  1. À côté de la définition du composant tFilterColumns, saisissez une autre fonction addComponent {} et sa sous-fonction setComponentDefinition {} pour ajouter le composant tFilterRow.
    // filter records - accept men between 10 and 80 whose names are shorter than 9 characters
    addComponent {
    	setComponentDefinition {
    		TYPE: "tFilterRow",
    		NAME: "tFilterRow_1",
    		POSITION: 640, 224
    	}
    }
  2. À côté de la fonction setComponentDefinition {}, saisissez la fonction setSettings {} pour définir les conditions de filtre et renommer le composant.
    	setSettings {
    		LOGICAL_OP : "&&",
    		CONDITIONS {
    			INPUT_COLUMN : "name",
    			FUNCTION : "$source == null? false : $source.length() $operator $target",
    			OPERATOR : "<",
    			RVALUE : "9",
    			INPUT_COLUMN : "gender",
    			FUNCTION : "",
    			OPERATOR : "==",
    			RVALUE : "\"M\"",
    			INPUT_COLUMN : "age",
    			FUNCTION : "",
    			OPERATOR : ">",
    			RVALUE : "10",
    			INPUT_COLUMN : "age",
    			FUNCTION : "",
    			OPERATOR : "<",
    			RVALUE : "80"
    		},
    		LABEL : "filter_records"
    	}
    Avertissement :

    Assurez-vous d'utiliser la barre oblique inversée (\) lorsque vous spécifiez un métacaractère.

  3. À côté de la fonction setSettings {}, saisissez le code du script suivant afin de définir les schémas pour les flux de sortie.

    Dans cet exemple, le composant tFilterRow a deux flux de sortie, un pour les enregistrements acceptés, qui possède la même structure du schéma que celle définie dans le composant précédent, tFilterColumns et l'autre pour les enregistrements rejetés, qui possède une colonne supplémentaire, errorMessage. La colonne errorMessage est obligatoire pour le flux de rejet et possède des propriétés fixes : même si vous ne définissez pas cette colonne, le Studio l'ajoutera automatiquement lors de la génération du Job.

    	// define the schema for the accepted records
    	addSchema {
    		NAME: "ACCEPT",
    		CONNECTOR: "FILTER"
    		addColumn {
    			NAME: "name",
    			TYPE: "id_String"
    		}
    		addColumn {
    			NAME: "gender",
    			TYPE: "id_String"
    		}
    		addColumn {
    			NAME: "age",
    			TYPE: "id_Integer",
    			LENGTH: 2
    		}
    		addColumn {
    			NAME: "city",
    			TYPE: "id_String"
    		}
    	}
    	
    	// define the schema for the rejected records
    	addSchema {
    		NAME: "REJECT",
    		CONNECTOR: "REJECT"
    		addColumn {
    			NAME: "name",
    			TYPE: "id_String"
    		}
    		addColumn {
    			NAME: "gender",
    			TYPE: "id_String"
    		}
    		addColumn {
    			NAME: "age",
    			TYPE: "id_Integer",
    			LENGTH: 2
    		}
    		addColumn {
    			NAME: "city",
    			TYPE: "id_String"
    		}
    		addColumn {
    			NAME: "errorMessage",
    			TYPE: "id_String",
    			NULLABLE: true,
    			LENGTH: 255,
    			PRECISION: 0
    		}
    	}