Définir le flux de consolidation
Procédure
-
Double-cliquez sur le tRuleSurvivorship pour ouvrir sa vue Component.
- Sélectionnez GRP_ID dans la liste Group Identifier et GRP_SIZE dans la liste Group size.
-
Dans le champ Rule package name, remplacez le nom par défaut, org.talend.survivorship.sample par le nom de votre choix, si nécessaire.
Le flux de validation de consolidation est généré et sauvegardé sous son nom, dans la vue Repository de la perspective Integration.
-
Dans la table Rule table, cliquez sur le bouton [+] pour ajouter une ligne par règle.
Dans cet exemple, définissez une règle et complétez-la comme suit :
Ordre
Nom de la règle
Colonne de référence
Fonction
Valeur
Colonne cible
Sequential
"Rule1"
Fichier
Expression
.equals("1")
Acctname
Une règle, "Rule1", est générée et exécutée par le composant tRuleSurvivorship. Cette règle valide les enregistrements dans la colonne File qui correspondent à l'expression saisie dans la colonne Value de la table Rule table. Le composant sélectionne la valeur correspondante comme étant la meilleure de la colonne cible Acctname. -
A côté du champ Generate rules and survivorship flow, cliquez sur l'icône pour générer l'ensemble de règles selon les conditions définies.
L'ensemble de règles est généré et sauvegardé sous les nœuds Metadata > Rules Management > Survivorship Rules dans la vue Repository de la perspective Integration.
-
Dans la vue Repository, parcourez votre système jusqu'au dossier Survivorship Rules et double-cliquez sur "Rule1" pour l'ouvrir.
Cette règle sélectionne les valeurs provenant du fichier 1. Cependant, vous pouvez également consolider des enregistrements selon des critères spécifiques, par exemple, si Acctname a une valeur dans le premier fichier, vous pouvez utiliser cette valeur ou utiliser celle du fichier 2. Pour ce faire, vous devez modifier le code manuellement dans le fichier de règle.
-
Modifiez la règle avec le code Drools suivant :
package org.talend.survivorship.sample rule "ExistInFile1" no-loop true dialect "mvel" ruleflow-group "Rule1Group" when $input : RecordIn( file.equals("1"), acctname!= null, !acctname.trim().equals("") ) then System.out.println("ExistInFile1 fired\t" + $input.record_id); dataset.survive( $input.TALEND_INTERNAL_ID, "Acctname" ); dataset.survive( $input.TALEND_INTERNAL_ID, "File" ); end rule "NotExistFile1" no-loop true dialect "mvel" ruleflow-group "Rule1Group" when $input : RecordIn( file.equals("2"), acctname!= null && !acctname.trim().equals("") ) (not (exists (RecordIn( file.equals("1") ))) or exists( RecordIn( file.equals("1"), acctname== null || acctname.trim().equals("") ) )) then System.out.println("NotExistFile1 fired\t" + $input.record_id); dataset.survive( $input.TALEND_INTERNAL_ID, "Acctname" ); dataset.survive( $input.TALEND_INTERNAL_ID, "File" ); end
Note InformationsAvertissement :Après avoir modifié le fichier de règle, vous ne devez pas cliquer sur l'icône . Sinon, vos modifications seront remplacées par la nouvelle génération de l'ensemble de règles.
Cette page vous a-t-elle aidé ?
Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.