Skip to main content
Skip table of contents

Principe ENR-ACT-ENT


BUT

Ce mot clé permet d’exécuter des actions de mise à jour par macro-langage sur les entités DIAPASON (informations gérées par GFD), sur certaines informations gérées par GFG, et sur d’autres entités particulières (en-cours de fabrication, etc.).

PRINCIPE

Le principe de mise à jour par macro-langage est de simuler des saisies au clavier, ou plus généralement de remplacer le comportement de la partie « client » (interactive) de DIAPASON. Pour une modification, par exemple, le déroulement va être le même qu’une modification faite manuellement, c’est-à-dire exécution du bloc de mise à jour avant enregistrement, puis prise en compte zone à zone des informations avec contrôle local sur chacune, puis déclenchement du contrôle global et de l’enregistrement. Comme dans une saisie manuelle, le déroulement s’interrompra dès la première erreur.

SYNTAXE

ENR-ACT-ENT( )

EXEMPLE

Cette requête permet de modifier le nom du Client de réseau commercial « 0 » et de référence « Client1 ».

UTILISATION

Cette fonction est accessible dans une requête de type REB (Tableur Dynamique, Document, etc.), dans une requête de type RCT (Tableur Dynamique, etc.) ou dans une requête de type PSD (Procédure de Saisie Dynamique).

L’alimentation de deux listes est nécessaire : WfEntAct contient les actions à réaliser, alors que WfEntVar contient les variables à manipuler. La structure des listes est la suivante :

Structures utilisées

Liste standard : WfEntAct (Liste des actions à réaliser sur des entités)

Champ

Type

Description

ActNOr 

Caractère

Ordre traitement des actions

Action

Caractère

Action à réaliser (CRE, MOD, DUP, SUP, INI).

Il est aussi possible de spécifier une Action de Modification Globale (AMG=xxx, AMGL=xxx) - voir chapitre dédié ci-dessous.

ActCle

Caractère

Clé de lien avec WfEntVar. Evite de renseigner EntTEn, EntCl1, EntCl2 et EntCl3 sur WfEntVar.

Attention, si elle renseignée dans cette liste, elle doit l’être obligatoirement dans la liste WfEntVar et le lien entre les listes ne se fera que par cette clé !

ActRes

Caractère

Résultat action

ActErr

Caractère

Libellé erreur éventuelle

EntTEn

Caractère

Type Entité

EntCl1

Caractère

Clé 1 entité

EntCl2

Caractère

Clé 2 entité

EntCl3

Caractère

Clé 3 entité

EntCom

Caractère

Commentaire libre

GFDPre

Caractère

Présentation associée pour mise à jour, quand il s’agit d’une GFD

GFDPrV

Logique

Prise en compte valeurs de création de la Présentation spécifiée

GFDPrFS

Logique

Mise à jour uniquement des champs spécifiques utilisés dans la présentation spécifiée

DupCl1

Caractère

Clé 1 entité à dupliquer (idem EntCl1 pour duplication)

DupCl2

Caractère

Clé 2 entité à dupliquer (idem EntCl2 pour duplication)

DupCl3

Caractère

Clé 3 entité à dupliquer (idem EntCl3 pour duplication)

Liste standard : WfEntVar (Détail variables entités)

Champ

Type

Description

EntTEn

Caractère

Type Entité

ActCle

Caractère

Clé de lien avec WfEntAct

EntCl1

Caractère

Clé 1 entité

EntCl2

Caractère

Clé 2 entité

EntCl3

Caractère

Clé 3 entité

EntTVa

Caractère

Type variable

EntVar

Caractère

Nom variable

EntVaC

Caractère

Valeur variable caractère

EntVaN

Décimal

Valeur variable numérique

EntVaL

Logique

Valeur variable logique

EntVaD

Date

Valeur variable date

Le principe consiste à initialiser ces listes avant l'utilisation de la fonction; après l'exécution de la fonction, le code erreur par entité peut être récupéré sur la liste WfEntAct dans les zones ActRes et ActErr. La zone ActRes contient dans le cas des créations d’entités avec génération de clé (Commande, Série, etc.) le numéro généré. Ceci est utile pour la création de commande et de lignes rattachées.

Dans le cadre de l'appel de cette fonction dans une boucle, il est nécessaire de supprimer le contenu des listes après chaque utilisation de la fonction.

Exemple :

PC DDArtic AVEC ...

...

CREATION LISTE WfEntAct.

PRENDRE ...

...

CREATION LISTE WfEntVar.

PRENDRE ....

...

VLO.Resultat = ENR-ACT-ENT().

COMMENTAIRE "Traitement Erreur Fonction ou Dans Liste WfEntAct"

EFFACER LISTE WfEntAct

EFFACER LISTE WfEntVar.

FPC

Remarque : Dans le cadre d'une boucle, il vaut mieux sortir la fonction ENR-ACT-ENT.

L'exemple ci-dessus devient alors :

PC DDArtic AVEC ...

...

CREATION LISTE WfEntAct.

PRENDRE ...

...

CREATION LISTE WfEntVar.

PRENDRE ....

...

FPC

VLO.Resultat = ENR-ACT-ENT().

COMMENTAIRE "Traitement Erreur Fonction ou Dans Liste WfEntAct"

Fonctions générales du ENR-ACT-ENT

Actions :

  • « CRE » pour création,

  • « MOD » pour modification,

  • « CMO » pour création ou modification (si l’enregistrement existe déjà).

  • « AMG=action » ou « AMGL=action » pour des actions de modification globale (voir chapitre dédié ci-dessous),

  • « DUP » pour duplication,

  • « SUP » pour suppression,

  • « REA » pour réactivation,

  • « RAF » pour ne rien faire sur un enregistrement (supprimer un ordre donné)

  • « APPROB » pour approbation d’un enregistrement sauvegardé

  • « INI » permet d’alimenter WfEntVar avec les valeurs d’un enregistrement.

  • « INI-PRE » lors de l’exécution d’un ENR-ACT-ENT en mode INI, seules les variables ayant une valeur renseignée (type caractère non vide, numérique différent de zéro, etc.) sont récupérées dans la liste WfEntVar. Pour récupérer l’ensemble des données de l’entité, le code « INI-PRE » est disponible. Celui-ci renvoie toutes les variables spécifiées dans la présentation passée en paramètre dans WfEntAct.GFDPre qu’elles soient vides ou non.

  • « INI-SOC » permet de faire l’équivalent de l’action INI mais pour des données définies sur une autre société de Diapason. Pour cela, il faut créer un élément dans WfEntVar tel que WfEntVar.EntVar = 'RefSocApp' et WfEntVar.EntVaC contient la société dans laquelle on souhaite récupérer les données.

➡️ Il est possible de piloter l’aspect transactionnel des actions, c’est-à-dire de définir des débuts (avec le code DTR) et fin de transaction (avec le code FTR). La notion de transaction permet de gérer l’intégrité de toutes les mises à jour effectuées entre le début transaction et la fin. Si le mot-clé LC-ERREUR est utilisé pendant une transaction, toutes les mises à jour effectuées entre le début et la fin de transaction sont annulées. Ces mots-clés ne sont pas valables sur plusieurs ENR-ACT-ENT.

➡️ Lorsque la fonction ENR-ACT-ENT est exécutée en mode batch (depuis un tableur dynamique, un document, etc.) la trace est présente dans la trace du traitement correspondant (selon le paramètre général TR-ISMLMAJ). Sinon, pour déclencher l'affichage de la trace il faut créer un enregistrement dans WfEntAct tel que WfEntAct.Action = ATR (activation trace) et WfEntAct.EntCl1 contient le nom du fichier trace.

➡️ Entités, Clés : voir tableau des clés entités.

➡️ ActCle : zone de texte libre permettant à la fonction de faire le lien entre une action (WfEntAct) et des variables (WfEntVar). Si ActCle est renseigné, il est inutile d’indiquer EntTEn, EntCl1, EntCl2 et EntCl3 sur WfEntVar. L’utilisation de ActCle permet donc de traiter plusieurs actions sur un même enregistrement (EntCl* identiques) sans mélanger les variables.

➡️ ActRes : vide (OK), *ERR (erreur DIAPASON dans ActErr), *ACT (action inconnue dans WfEntAct.Action), ou *INC (erreur inconnue).

Possibilités supplémentaires pour les GFDs

Il existe 2 modes de création et de modification. Les actions « CRF » et « MOF » permettent respectivement de créer et modifier un enregistrement en mode « forcé », c’est-à-dire sans passer par l’intégrité de chaque zone de DIAPASON. L’usage de ces modes est réservé à des cas particuliers, ils permettent de créer des éléments ne satisfaisant pas à l’intégrité de DIAPASON.

L’action « CMO » demande à DIAPASON de choisir automatiquement entre la création et la modification : si l’enregistrement spécifié avec l’entité + les clés existe, il fera l’objet d’une modification, sinon il sera créé.

Il est possible de spécifier une Présentation dans la zone GFDPre. Cette présentation servira à définir les seules zones qui vont être enregistrées. Il convient donc de l’utiliser pour optimiser le temps de traitement de la fonction si peu de zones doivent être maintenues (par défaut c’est la présentation « ISIA » qui est utilisée). Combinée avec GFDPrV, la présentation permet de définir les valeurs par défaut lors d’une création d’enregistrement.

De plus, une présentation dédiée peut permettre de traiter des variables non incluses par défaut dans la présentation standard « ISIA » : champs spécifiques, champs « masqués » (SDL.CdeLigComDesCFGVal, SDL.CdeLigComDesCFGVar…)

Il est possible d’exécuter les « Actions de Modification Globale » :

  • « AMG=action » permet d’exécuter une Action de Modification Globale définie sur l’entité.

  • « AMGL=action » permet d’exécuter une Action de Modification Globale définie sur l’entité liée pour tous les éléments rattachés (toutes les lignes d’une commande par exemple)

Par exemple, pour les commandes et lignes de commande commerciales :

WfEntAct

EntTEn

CDC

CDC-LIG

WfEntAct Action

AMG

Permet de lancer une AMG de type « Entête de commande » sur une commande

Permet de lancer une AMG de type « Ligne de commande » sur une seule ligne de la commande

AMGL

Permet de lancer une AMG de type « Ligne de commande » sur toutes les lignes de la commande

Sans objet

Exemple :

Instructions permettant de lancer l’AMG « AnnValLig » sur une seule ligne de commande commerciale.

EFFACER Liste WfEntAct

CREATION Liste WfEntAct :

PRENDRE WfEntAct Action = CLO."AMG" + CLO."=AnnValLig"

PRENDRE WfEntAct EntTEn = CLO."CDC-LIG"

PRENDRE WfEntAct EntCl1 = VLO.CdeNumCom

PRENDRE WfEntAct EntCl2 = VLO.CdeNumLig

FIN_BLOC

VLO.EAE = ENR-ACT-ENT( )


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.