====== Mise-à-jour multi-lignes ====== Fichier script : multilineupdate.py ===== Prérequis ===== Doit être insérée en dernière étape (en tout cas après l'insertion cold). ===== Paramètres ===== ^ Paramètre ^ Valeur par défaut ^ Description ^ | instance | $instance$ | Evalué avec le nom de l'instance EzGED | | jobqueueid| $jobqueueid$ | Evalué avec le numero de travail cold | | secusrid | $secusrid$ | Evalué avec l'id de l'utilisateur propriétaire du travail | | coldmdlid | | Le modèle d'analyse texte COLD | | qryid | | L'ID de la requête sur laquelle apparaît la fiche APRES indexation | | srcfld | | Nom du champ source pour aller chercher la valeur qui sera mise-à-jour | | srcfkeylist | | Le champ qui liste les clés (= les ID) identifiant chaque ligne de destination qu'il faudra mettre à jour | | dsttbl | | Le nom de la table de destination | | dstfld | | Le nom du champ de destination | | dstfkey | Aucun | Le nom du champ clé dans la table destination | | separator | | Le caractère utilisé comme séparateur entre les clés | *srcfkeylist : les valeurs possibles ===== Description ===== Ce script COLD permet de mettre à jour la valeur d'un champ d'une table sur plusieurs lignes. La valeur servant à la mise à jour est récupérée via la fiche descriptive en cours de traitement dans le travail COLD. Afin de savoir si la ligne d'indexation (i.e la fiche descriptive) a bien été complétée, le script prend en entrée un ID de requête. Des que votre fiche apparaît dans cette vue elle est considérée comme complétée. Dès lors la mise-à-jour peut avoir lieu. Ceci veut donc dire que la MAJ est déclenchée par l'action consistant à remplir la fiche (via une requête d'indexation). Le script détermine les lignes (dans la table de destination) à mettre à jour en allant lire une liste de clés enregistrées dans un champ de la table source. ===== Exemple ===== Supposons l'existence des tables suivantes: ^ FACT_ID ^ FACT_LISTBL ^ FACT_NUM ^ | 13 | 54;68 | HAL9000 | ^ BL_ID ^ BL_NUMBL ^ BL_NUMFACT ^ | 3 | 54 | NULL | | 4 | 74 | NULL | | 5 | 68 | NULL | Supposons par ailleurs qu'une requête "Factures fournisseur" existe et a pour ID 2. Nous paramétrons l'étape de cold de la manière suivante: ^ Paramètre ^ Valeur par défaut ^ | instance | $instance$ | | jobqueueid| $jobqueueid$ | | secusrid | $secusrid$ | | coldmdlid | 150 | | qryid | 2 | | srcfld | FACT_NUM | | srcfkeylist | FACT_LISTBL | | dsttbl | bl | | dstfld | BL_NUMFACT | | dstfkey | BL_NUMBL | | separator | ; | Sous réserve que la fiche descriptive soit complétée (d'après les conditions établies par la requête 2) on obtiendra le résultat suivant : ^ BL_ID ^ BL_NUMBL ^ BL_NUMFACT ^ | 3 | 54 | HAL9000 | | 4 | 74 | NULL | | 5 | 68 | HAL9000 |