Développement > Dictionnaire scripts > Transactions de mise à jour 

Cette fonction permet de créer des transactions système dans le dictionnaire. Ces transactions seront utilisées par la fonction d’exécution de transactions système pour effectuer une mise à jour de masse de la base de donnée (création, modification ou suppression de lignes).

Par ailleurs, il est important de noter que les transactions système font partie du dictionnaire des données. Ceci signifie qu’une revalidation de dossier supprime toutes les transactions système qui n’auraient pas été protégées par un code activité spécifique, et est susceptible de transférer dans le dossier des transactions système standard, si l’éditeur décide d’en livrer un jour dans le dossier de référence du progiciel (actuellement, ce n’est pas le cas).

Pré-requis

SEEREFERTTO Reportez-vous à la documentation de Mise en oeuvre

Gestion de l'écran

La définition d'un écran se fait à l'aide de 2 onglets : l'onglet général de définition de la transaction, et l'onglet comprenant les formules de sélections des enregistrements à traiter et les tables à mettre à jour.

En-tête

Présentation

L'en-tête permet d'identifier la transaction.

 

Champs

Les champs suivants sont présents dans cet onglet :

  • Code (champ COD)

Ce code identifie la transaction système à lancer.

  • Intitulé (champ ZINTIT)

 

 

Onglet Général

On définit, dans cet onglet, le contexte général lié à la transaction système :

  • d'une part, la table principale et des tables liées éventuelles qui pourront être mises à jour.
  • d'autre part, des paramètres éventuels à saisir (dans un tableau de 6 lignes maximum). Ces paramètres sont ensuite utilisables sous la forme de variables nommées V1 à V6 dans le tableau du deuxième onglet.

 

Champs

Les champs suivants sont présents dans cet onglet :

Bloc numéro 1

  • Module (champ MODULE)

Sélectionnez un module pour le paramétrage.

Ce champ vous permet de renseigner si l'écran doit être créé dans la base de données du dossier. Il l'est si le module auquel l'écran est rattaché est actif pour le dossier.

  • Intitulé court (champ ZINTITSHO)

 

Un code activité vous permet de :

  • rendre optionnel un élément du dictionnaire si la valeur associée au code activité est nulle,
  • signer les éléments spécifiques dès lors qu'ils sont marqués par un code commençant par X, Y ou Z,
  • dimensionner un nombre de lignes maximum lorsque le code activité marque des éléments d'un tableau,

Si le code activité est désactivé :

  • l'élément marqué n'est pas utilisable,
  • le code associé n'est pas généré ou activé.

Ce code d'accès permet d'interdire l'accès à la fiche courante pour certains utilisateurs.

Si le champ est alimenté, seuls les utilisateurs qui ont des droits de lecture sur ce code d'accès peuvent visualiser l'enregistrement ; et seuls les utilisateurs avec des droits d'écriture peuvent le modifier.

Le droit d'exécution qui peut être attaché au code accès permet d'autoriser l'exécution de la transaction système.

Compte tenu du fait que cette fonction est sensible, il est conseillé de renseigner un code d'accès et de limiter soigneusement le nombre d'utilisateurs ayant le droit d'exécution. 

Définit la table principale sur laquelle la transaction va être exécutée.

Tableau Tables liées

Identifie les tables liées à la table principale.

  • Lien (champ LNKEXP)

Ce champ est défini comme une ou plusieurs expressions calculées et séparées par un point-virgule. Chaque expression est évaluée, et le résultat permet de connaître la valeur de la clé utilisée pour réaliser la jointure. Lorsque les jointures multiples sont autorisées, vous ne pouvez donner que les premiers segments de clé.

Dans les expressions, vous pouvez utiliser des constantes, et des champs issus des tables précédemment définies dans la liste des liens.

Tableau Paramètres

Définit le type de données correspondant au paramètre saisi. Ceci permet de contrôler sa valeur par le biais d'une table, le cas échéant.

  • Intitulé (champ ZVARINTIT)

 

  • Long (champ VARLNG)

Définit le nombre de caractères maximum devant être saisis pour renseigner le paramètre.

  • Menu (champ VARMEN)

Lorsque le paramètre à saisir est de type menu local, on définit ici le numéro du menu concerné.

  • Paramètre objet (champ VARPAR)

Ce champ définit un complément nécessaire à la définition du type de données, lorsqu'il est nécessaire. Dans le cadre d'une table diverse, le complément définit le numéro de la table, par exemple.

  • Valeur par défaut (champ VARDEF)

Permet de définir une valeur par défaut par le biais d'une expression calculée pouvant contenir des constantes et des variables.

Le code d'une table de contrôle peut être saisi dans ce champ pour réaliser un contrôle de validité particulier associé au paramètre défini dans la transaction système.

 

Onglet Détails

Présentation

Cet onglet permet de préciser par des critères de sélection les lignes de la jointure parcourues, et de détailler les mises à jour faites par la transaction système sur ces lignes. Ce peut être :

  • une création d'enregistrement à partir d'un enregistrement sélectionné ( il faudra paramétrer une seule ligne de ce type par création demandée, pour le champ clé correspondant). C'est l'équivalent d'une duplication d'enregistrement.
  • une modification de la valeur d'un ou plusieurs champs (une ligne par champ).
  • une suppression d'enregistrement ( on ne précise rien pour les champs).

 

Champs

Les champs suivants sont présents dans cet onglet :

Tableau Sélections

  • Formules (champ SELFRM)

Ce champ permet de définir des expressions logiques pour filtrer les enregistrements à mettre à jour ou à supprimer. Il est possible d'utiliser les champs de la table principale, des tables liées et des variables définiEs dans le tableau des paramètres de lancement du premier onglet (V1 à Vn).

Si le résultat d'une de ces expressions est faux, l'enregistrement ne sera pas affecté.

Tableau Mise à jour

Définit la table sur laquelle une opération doit être faite.

  • Transaction (champ FLDSUP)

L'opération réalisée peut être :

  • une modification (puis énumération des champs à modifier).
  • une suppression (aucune information supplémentaire au nom de la table est à fournir).
  • une création (dans ce cas, alimenter les champs enregistrement par enregistrement).
  • Champ (champ FLD)

Définit le champ dont on veut donner la valeur (en modification ou en création). Ce champ est issu de la table saisie sur la ligne.

  • Formules (champ FLDFRM)

Cette formule est évaluée pour donner la valeur au champ à affecter. On peut utiliser dans cette formule les champs des tables en lignes, des constantes, ainsi que les variables V1 à Vn définies par le tableau des paramètres de lancement du premier onglet.

 

Boutons spécifiques

La validation permet de générer le traitement automatique. Il contient tout le traitement personnalisé de la transaction :

  • Déclaration des variables nommées V1, V2,…, V6
  • Déclaration des tables
  • Liens entre toutes les tables ( instruction Link )
  • Filtre des enregistrements sur la table, si elle est unique, ou sur l'abréviation résultant du lien.
  • Transaction de mise à jour
  • Ecriture dans le fichier espion.tra dans le répertoire tmp

Les champs suivants sont présents dans la fenêtre ouverte par ce bouton :

Bloc numéro 1

  • Code (champ COD)

Ce code identifie la transaction système à lancer.

  • champ DES

Intitulé associé au code précédent

Bloc numéro 2

  • Mode test (champ TEST)

Si cette case est cochée, la transaction est exécutée sans aucune mise à jour des tables, la trace donnant les données qui seraient mises à jour si le traitement était lancé en réel.

On peut alors donner un nombre maximum de transactions à traiter.

  • Nombre de transactions (champ NOMBRE)

En mode test, ce champ limite le nombre de lignes de tables traitées.

Tableau

  • Variable (champ VARDES)

Intitulé de chaque variable pouvant être saisie comme paramètre de la transaction système.

  • Valeur (champ VALEUR)

Définit les valeurs associées aux paramètres de la transaction lors de son exécution.

Ce bouton permet d'exécuter directement la transaction. Il s'agit de l'utilitaire de transactions système.

Les champs suivants sont présents dans la fenêtre ouverte par ce bouton :

Bloc numéro 1

  • champ OBJET

 

  • champ CLES

 

Bloc numéro 2

  • Depuis le dossier (champ DOSORG)

Indiquez le dossier à partir duquel la fiche va être copiée. Les syntaxes possibles sont décrites dans l'annexe dédiée.

  • Tous dossiers (champ TOUDOS)

Cette option permet de copier la fiche vers tous les dossiers définis dans le dictionnaire (table ADOSSIER de la solution courante).

  • Vers le dossier (champ DOSDES)

Indiquez le dossier dans lequel la fiche va être copiée. Les syntaxes possibles sont décrites dans l'annexe dédiée.

Ce bouton permet de recopier la définition de la transaction vers un autre dossier. Attention, il faudra valider la transaction dans le dossier de destination.

Algorithme et traitement généré

Il est important de noter que l'on peut faire des duplications et modifications simultanées dans la même transaction, à condition de respecter l'ordre de déclaration. Par exemple, si on saisit les lignes suivantes :

 Table

Transaction

Champ

Formules

TABLE1

Modification

CHAMP1

EXPRESSION1

TABLE1

Création

CHAMP2

EXPRESSION2

TABLE2

Création

CHAMP3

EXPRESSION3

TABLE2

Modification

CHAMP4

EXPRESSION4

TABLE3

Modification

CHAMP5

EXPRESSION5

L'algorithme appliqué sera le suivant :

Pour [toutes les lignes de la jointure concernée]

Lecture de la ligne courante de TABLE1, Affectation de CHAMP1 et CHAMP2, puis création d'une ligne de TABLE1

Lecture de la ligne courante de TABLE2, Affectation de CHAMP3, puis création d'une ligne de TABLE2

Affectation de CHAMP4, puis modification par réécriture de la ligne courante de TABLE2

Lecture de la ligne courante de TABLE3, Affectation de CHAMP5, puis modification par réécriture de TABLE3

En tout état de cause, un développeur pourra visualiser le traitement généré par la validation. Son nom est défini par le code de la transaction, préfixé par les caractères WMAMI.

Messages d'erreur

Outre les messages génériques, les messages d'erreur suivants peuvent apparaître lors de la saisie :

Longueur incorrecte

La longueur d'une variable est contrôlée en fonction de son type.

Type

Longueur maximum

 Libellé

 30

 Entier court

 4

 Entier long

 8

 Caractères

 250

 Date

 4, 6 ou 8 (longueur autorisée )

 Décimal

 32 ( pour partie entière et décimale)

No Menu local incorrect

Le numéro renseigné correspond à un chapitre de messages et non à un menu local.

Menu local non défini

Le numéro renseigné ne correspond pas à un menu local existant.

Valeur incorrecte

On ne peut mettre à jour une table non définie en tant que table principale ou  table liée dans cette fiche transaction.

Champ inexistant

Le champ doit exister dans le dictionnaire de la table précisée sur cette même ligne.

Indice incorrect

La dimension exprimée pour ce champ ne doit pas excédée celle définie pour ce même champ dans le dictionnaire de la table.

Tables mises en oeuvre

SEEREFERTTO Reportez-vous à la documentation de Mise en oeuvre