Table des matières

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