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

Afficher tout Masquer tout

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

Codes activité

Les codes activités suivants (classés par type) peuvent avoir une influence sur le comportement de la fonction :

Codes activités dépendants

Ces codes ne sont jamais saisis en gestion de dossier, car leur valeur est calculée :

  AUDIT (Audit).

Fonctionnel

  ABI :  Business Intelligence

  ASD :  SData

  LEG :  Gestion multi-législations

Habilitations

Cette fonction est de type objet. Les opérations de création, modification, et suppression de fiche peuvent être activées ou désactivées pour un utilisateur donné. Des filtres par rôles peuvent également être mis en place sur cette fonction.

Un filtrage par code d'accès est effectué grâce au champ nommé ACS. Si un code d'accès s'y trouve, les droits de visualisation et de modification sont accordés conformément aux droits de lecture et d'écriture associés au code pour l'utilisateur, via son profil fonction.

Autres pré-requis

Tables à renseigner

Les tables suivantes sont utilisées par la fonction. Leur contenu doit donc être éventuellement mis à jour :

Table

Intitulé Table

ACTIV [ACV]

Codes activité

ATABLE [ATB]

Dictionnaire des tables

ACCES [ACC]

Accès par utilisateur

ATYPE [ATY]

Types de données

ACTL [ACL]

Tables de contrôles

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.

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

  • Code (champ COD)

Ce code identifie la transaction système à lancer.

  • Intitulé (champ ZINTIT)

Destiné notamment à figurer sur les états et les écrans dans lesquels le code de la fiche peut être saisi ou sélectionné. Ce texte permet de donner une description en clair de la fiche concernée.

Fermer

 

Onglet Général

Présentation

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.

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

Bloc numéro 1

  • Module (champ MODULE)

Module d'appartenance du paramétrage.

  • Intitulé court (champ ZINTITSHO)

Cet intitulé permet de donner une désignation à la fiche.
Il est utilisé dans certains écrans ou états lorsqu'il n'y a pas assez de place pour visualiser l'intitulé long.

Un code activité permet :

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

Ainsi, si le code activité est non actif, l'élément marqué ne sera pas utilisable, et le code associé (s'il y en a) ne sera pas généré ni activable.

Ce code d'accès permet de restreindre l'accès à la fiche courante à certains utilisateurs.
Si la zone est renseignée, seuls les utilisateurs disposant de ce code d'accès dans leur profil peuvent visualiser et modifier cette fiche.

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 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, on peut ne donner que les premiers éléments de la clé.

Dans les expressions, on peut 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.

Fermer

 

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).

Fermer

 

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.

Fermer

 

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.

Fermer

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)

Ce champ permet de définir 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)

Ce champ permet de définir le dossier dans lequel la fiche va être copiée. Les syntaxes possibles sont décrites dans l'annexe dédiée.

Fermer

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

Les tables suivantes sont mises en oeuvre par la fonction :

Table

Intitulé Table

ACTL [ACL]

Tables de contrôles

AMAINT [AMI]

Transactions système

AOBJET [AOB]

Objets de base

ATABIND [ATI]

Dictionnaire des index

ATABLE [ATB]

Dictionnaire des tables

ATABZON [ATZ]

Dictionnaire des champs

ATYPE [ATY]

Types de données