Actions Applicatives Métier (AME)
Introduction
L’objectif des Actions Applicatives Métier (AME) est de pouvoir utiliser des applications standard DIAPASON pour créer des objets pouvant être insérés comme action dans toute application standard ou paramétrée. Ainsi cet objet est sélectionnable comme un tableur, une PSD ou une commande système pour être inséré comme action métier dans toute application standard ou paramétrée. Cet outil est paramétrable au niveau de la condition d’affichage des données, au niveau actions standards ou métier disponibles, des conditions complexes initiales et disponibles, ainsi que des présentations pour les applications ayant l’accès à celles-ci.
Exemples :
Depuis l’application de gestion des articles, accéder directement par une action à la définition des unités de mesures.
Depuis l’application de gestion des articles, accéder au stock prévisionnel de l’article courant.
Depuis l’application de gestion des fournisseurs, accéder aux provisions rattachées du fournisseur.
Depuis l’application de gestion des commandes d’approvisionnement, accéder au stock global filtré exclusivement pour les articles qui sont définis dans la commande.
Depuis l’application de gestion des commandes fournisseurs, accéder à la liste des fournisseurs correspondant à la liste des commandes sélectionnées.
Définition
![](../__attachments/105673458/att_43_for_206176503.png?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
L’application de définition des AME est disponible depuis l’explorateur applicatif « STUDIO DIAPASON », branche « Listes », rubrique « Applications Métier ».
![]() |
|
![]() |
Pour les modes consultation, création, duplication et modification fiche, il est obligatoire d’initialiser dans la règle REB de démarrage la SCR.IAP_IdeObj avec l’identifiant de l’enregistrement souhaité dans la fiche.
Remarque : Le fait de limiter la communication entre une application et l’AME qui démarre réduit le transit réseau et est donc plus optimisée.
Remarque : Le fait de limiter la communication entre une application et l’AME qui démarre réduit le transit réseau et est donc plus optimisée.
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
Pour les applications de type GFD double (commandes et lignes, etc.), paramétrage des actions disponibles sur l’entité lignes associée.
Gestion des actions et des boutons
Des actions sont disponibles pour gérer les actions affichées dans la barre de commande ainsi que des actions sous la forme de bouton.
Gestion groupes
Lance l’application de définition des groupes spécifiques d’action pour la barre de commande.
Gestion des correspondances Entête
Lance un tableur qui affiche la liste des actions qui apparaitront dans la barre de commande avec leur code action. L’objectif de ce tableur est faire le lien entre les actions qui vont s’afficher et les actions qui ont été paramétrées. Cette action s’occupe que des actions de l’entête.
Gestion des correspondances Ligne
Lance un tableur qui affiche la liste des actions qui apparaitront dans la barre de commande avec leur code action. L’objectif de ce tableur est faire le lien entre les actions qui vont s’afficher et les actions qui ont été paramétrées. Cette action s’occupe que des actions des lignes.
Gestion des boutons Entête
Lance l’application de gestion des boutons pour l’entête de l’application.
Gestion des boutons Ligne
Lance l’application de gestion des boutons pour les lignes de l’application.
Constitution de la condition d’une AME
Résumé de la condition de la liste en fonction de sa définition sur l’onglet « Démarrage » :
Condition Standard (liée au contexte) | et | Filtre et Tri complexe | et ou | Liste DIALOG |
Liste sur Entité |
Condition d’origine de la liste
Cette condition est dépendante du contexte applicatif choisi, et est immuable. Exemple : les articles standard.
![](../__attachments/105673458/att_23_for_206176503.png?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
Condition avec Filtre&Tri complexe
Cette condition comprend celle du contexte applicatif choisi, plus un filtre&tri appliqué. Exemple : les articles standard gérés en stock.
![](../__attachments/105673458/att_24_for_206176503.png?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
Condition avec liste sur entité
Cette condition comprend celle du contexte applicatif choisi, plus un filtre sur le contenu d’une liste sur entité.
Exemple : les articles standard disponibles créés ou modifiés depuis 2005.
![](../__attachments/105673458/att_25_for_206176503.png?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
Condition avec liste sur entité et Filtre&Tri complexe
Cette condition comprend celle du contexte applicatif choisi, un filtre&tri appliqué, plus un filtre sur le contenu d’une liste sur entité.
Exemple : les articles standard gérés en stock, disponibles, créés ou modifiés depuis 2005.
![](../__attachments/105673458/att_26_for_206176503.png?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
Condition donnée par liste DIALOG
Cette condition comprend celle du contexte applicatif choisi, plus un filtre sur le contenu d’une liste DIALOG (WfEAPSorSel) issue de la règle de démarrage.
Exemple : les articles standard modifiés dans le mois.
![](../__attachments/105673458/att_27_for_206176503.png?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
Règle DIALOG donnant cette condition :
![](../__attachments/105673458/att_28_for_206176503.png?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
Condition donnée par liste DIALOG et Filtre&Tri complexe
Cette condition comprend celle du contexte applicatif choisi, plus un filtre sur le contenu d’une liste DIALOG (WfEAPSorSel) issue de la règle de démarrage, plus un filtre&tri complexe.
Exemple : les articles standard gérés en stock modifiés dans le mois.
![](../__attachments/105673458/att_29_for_206176503.png?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
Procédure de définition d’une AME
La création d’une action applicative métier suit la procédure :
Identifier l’application à lancer
Créer l’AME
Intégrer l’AME dans l’application père
Cette procédure sera détaillée suivant les exemples précisés dans le tableau qui suit, résumant les différentes combinaisons de communication entre une application père et une AME.
Application Père | AME | Commentaire | Détail de l’exemple |
Articles | Unités de mesures | Liaison simple : aucune donnée nécessaire au démarrage de l’application. | 3.6.1 |
Articles | Stock prévisionnel article | Liaison par variables contextuelles : L’application fille nécessite la variable SCR.GenRefArt, dont elle hérite directement de l’application père Articles. | 3.6.2 |
Fournisseurs | Provisions rattachées | Liaison par variable contextuelle pour condition complexe : La variable contextuelle SCR.AppFouRef sert à initialiser une condition complexe sur la liste. | 3.6.3 |
Entête de commandes fournisseurs | Stock global | Liaison par identifiant : La liste des articles de l’application de stock global est initialisée par tous les articles des lignes de l’entête de commande. | 3.6.4 |
Entête de commandes fournisseurs | Fournisseurs | Liaison par liste de sélection : La liste des fournisseurs est initialisée via la liste des entêtes de commandes fournisseur sélectionnées. | 3.6.5 |
Les combinaisons de communication ne feront varier que la création de l’AME en fonction de la complexité de la liaison entre application père et fille.
Identification de l’Application à lancer
Pour connaître l’application standard à la base de l’AME à créer, il faut repérer celle-ci dans DIAPASON. Une fois l’application trouvée, il suffit d’afficher le menu contextuel principal de la liste (le coin supérieur à gauche pour les listes multiples, un des titres de colonnes pour les listes simples), menu « Chargement », action « Propriétés ».
![](../__attachments/105673458/image-20230209-093437.png?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
La référence de l’application figure sur la fenêtre « Propriétés de la Condition», dans l’onglet « Avancé ».
![](../__attachments/105673458/image-20230209-093506.png?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
Exemples d’AME
Liaison simple (article unités de mesure)
Cet exemple présente la création d’une AME sans échange de contexte entre l’application d’où elle est appelée (le père) et l’AME (application fille). Cet exemple sera déroulé sur l’application « Unités de mesure et devises ».
![](../__attachments/105673458/att_49_for_206176503.png?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
Cet onglet va permettre de choisir la référence application repérée précédemment : « FCUND ». Cette application a deux contextes « Unités de mesures » ou « Devises ».
![](../__attachments/105673458/att_30_for_206176503.png?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
![](../__attachments/105673458/att_50_for_206176503.png?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
« Mode Dém. » a pour valeur « Mode gestion libre », afin de pouvoir créer, modifier, dupliquer des unités de mesure depuis l’AME (gestion) sans bloquer l’application appelante (libre).
« Typ. Ctx. App. » a pour valeur « Pas de relation », car on n’a pas besoin de données de l’application père pour démarrer cette AME, il vaut mieux donc choisir de ne pas les recevoir (optimisation).
Remarque : la valeur de « Typ. Ctx. DIALOG » n’a pas d’importance tant que l’AME n’est pas lancée depuis une application père gérée par DIALOG (Tableurs, listes paramétrées, sur entités...).
![](../__attachments/105673458/att_51_for_206176503.png?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
On coche le champ « Act. Std. ?» pour que notre AME ait toutes les actions standard disponibles. Dans l’exemple il n’y a pas d’ajout d’actions métier ni de spécifications d’actions onglet par défaut.
En cochant « Sél Cond ? » et en ne spécifiant pas de conditions dans le champ « Liste Cond. », l’AME aura tous les filtres et tris qui ont été définis sur l’application standard
Liaison par variables contextuelles (Article Stock prévisionnel)
Cet exemple présente la création d’une AME échangeant avec son père une variable critère, il se fera dans le cas d’une action de visualisation du stock prévisionnel pour un article.
![](../__attachments/105673458/att_52_for_206176503.png?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
![](../__attachments/105673458/att_31_for_206176503.png?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
On choisit donc l’application « StkVisPr » dans DIAPASON. Lors du choix du contexte pour l’application, on voit que dans la colonne « Variables Critères » figure « SCR.GenRefArt », ce qui signifie que pour démarrer cette AME, il va falloir initialiser cette variable au démarrage.
![](../__attachments/105673458/att_53_for_206176503.png?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
Dans l’onglet « Démarrage », on choisit comme mode de démarrage « Mode visualisation », on ne pourra donc pas effectuer d’actions de gestion (création, modification, duplication, suppression) sur cette AME.
Le champ « Typ. Ctx. App. » a pour valeur « Identifiant et variables contextuelles » ce qui signifie que l’on récupère ces informations du père si elles sont disponibles. Dans notre cas, si l’AME est lancée depuis la GFD des articles, nous récupèrerons l’identifiant de l’enregistrement courant ainsi que la variable SCR.GenRefArt. Le contexte de démarrage de l’AME pourra donc s’initialiser avec cette variable.
En conséquence, il n’y a pas de « Typ. Ctx. DIALOG » particulier.
Liaison par variable contextuelle pour condition complexe (Fournisseur Provisions comptables rattachées)
Cet exemple présente le lancement d’une AME sur laquelle on applique une condition complexe au démarrage qui nécessite une initialisation par variable contextuelle. La liste sera celle de l’application des provisions sur laquelle sera appliqué un filtre par rapport à un fournisseur donné (cette condition nécessite la variable SCR.AppFouRef).
![](../__attachments/105673458/att_54_for_206176503.png?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
On utilise le contexte de démarrage « Provisions Tout Gestionnaire » afin d’avoir toutes les provisions disponibles.
![](../__attachments/105673458/att_55_for_206176503.png?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
Le champ « Typ. Ctx. App. » a pour valeur « Identifiant et variables contextuelles » afin de récupérer la variable contextuelle permettant d’initialiser la condition complexe saisie dans le champ « Cond.Défaut ».
Liaison par identifiant (Commande d’approvisionnement Stock global)
Cet exemple présente le cas du lancement d’une AME, qui via une requête REB, va à partir de l’identifiant de l’application père (ici les entêtes de commandes) présenter une liste d’enregistrements définie par la requête DIALOG (liste des stocks prévisionnels pour tous les articles faisant partie d’une commande).
![](../__attachments/105673458/att_56_for_206176503.png?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
On va choisir comme application la « Consultation globale des stocks » avec le contexte applicatif « 001 » représentant tous les articles.
![](../__attachments/105673458/att_57_for_206176503.png?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
Le champ « Typ. Ctx. App. » a pour valeur « Identifiant et variables contextuelles » afin de récupérer l’identifiant de l’application père que l’on va utiliser dans la requête REB d’initialisation.
Dans le champ « Règle Dém. » on va choisir la requête de démarrage dont le contenu est le suivant :
INIT SCR.IAP_LisFil = CGL.OUI
RECH TBD DTD APFoEn (LECTURE EN BASE) AVEC IDENTIFIANT= SCR.IAP_IdePere :
POUR CHAQUE/SOC DTD APFoLi AVEC DTD APFoLi.AppNumCom = DTD APFoEn.AppNumCom :
RECH TBD/SOC STO STGlobal AVEC STO STGlobal.RefArt = DTD APFoLi.GenRefArt :
VLO.Identifiant = IDENTIFIANT( STO STGlobal )
CREATION Liste WfEAPSorSel :
PRENDRE WfEAPSorSel MDi = DTD APFoLi.AppNumLig
PRENDRE WfEAPSorSel EntIde = VLO.Identifiant
FIN_BLOC
FIN_BLOC
FIN_BLOC
FIN_BLOC
La variable « SCR.IAP_LisFil » permet d’afficher les enregistrements communs entre la LISTE.WfEAPSorSel et le contexte de l’application standard à l’origine de l’AME. Si cette variable à pour valeur « NON », seuls les enregistrements correspondant au contexte applicatif seront affichés.
La variable « SCR.IAP_IdePere » correspond à l’identifiant de l’enregistrement sur lequel est positionnée l’application père lors du démarrage de l’AME.
Dans cette requête, le positionnement sur la commande se fait à partir de l’identifiant des entêtes de commandes :
RECH TBD/SOC DTD APFoEn AVEC IDENTIFIANT= SCR.IAP_IdePere
Puis la récupération des lignes de la commande s’effectue à partir d’une instance de la liste « WfEAPSorSel ». Le champ « MDi » sert à trier le résultat. Dans l’exemple la liste sera triée par numéro de ligne.
Liaison par liste de sélection (Liste de Commandes d’approvisionnement Liste des Fournisseurs concernés)
Cet exemple va montrer le lancement d’une AME pour laquelle on va, à partir de la liste des sélections sur l’application père (Entêtes de commandes fournisseurs) et via une requête REB, générer une liste d’enregistrements de fournisseurs.
![](../__attachments/105673458/att_58_for_206176503.png?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
On va choisir comme application les « Gestion des fournisseurs » avec le contexte applicatif « M01 » représentant tous les fournisseurs.
![](../__attachments/105673458/att_59_for_206176503.png?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
Le champ « Typ. Ctx. App. » a pour valeur « Identifiant et variables contextuelles et liste sélection» afin de récupérer la liste des enregistrements sélectionnés dans l’application père que l’on va utiliser dans la requête REB d’initialisation.
Dans le champ « Règle Dém. » on va choisir la requête de démarrage dont le contenu est le suivant :
INIT SCR.IAP_LisFil = CGL.OUI
POUR CHAQUE LST WfEAPPerSel :
VLO.Identifiant = WfEAPPerSel.EntIde
RECH TBD DTD (LECTURE EN BASE) AVEC IDENTIFIANT= VLO.Identifiant :
RECH TBD/SOC DTD APFour AVEC DTD APFour.AppRefFour = DTD APFoEn.AppRefFour :
VLO.IdFour = IDENTIFIANT( DTD APFour )
CREATION Liste WfEAPSorSel :
PRENDRE WfEAPSorSel MDi = DTD APFour.AppRefFour
PRENDRE WfEAPSorSel EntIde = VLO.IdFour
FIN_BLOC
FIN_BLOC
FIN_BLOC
FIN_BLOC
Cette requête diffère du cas précédent seulement sur l’instruction :
POUR CHAQUE LST WfEAPPerSel :
VLO.Identifiant = WfEAPPerSel.EntIde
C’est à dire que l’on va créer la liste des enregistrements (WfEAPSorSel) à partir des identifiants de tous les enregistrements sélectionnés du père.
Intégrer l’action dans l’Application père
Pour intégrer une AME dans une application, il existe deux méthodes. Si l’application appelante permet de choisir ses actions (AME, LAP, …), on peut donc passer par la liste des actions métier de l’onglet « Actions ». Sinon pour toutes les applications, il est possible de passer par le menu contextuel de la liste.
Prenons comme exemple l’AME « A_FouProCr » décrite précédemment, que l’on va intégrer dans l’application des « Articles Standards ».
Tout d’abord, lancer l’application appelante :
![](../__attachments/105673458/image-20230207-164828.png?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
Puis grâce au clic droit de la souris dans le coin haut gauche de la liste, un menu contextuel s’ouvre et offre différentes actions dont « Définition des Actions ». Cette action permet d’ajouter ou supprimer les applications pouvant être des actions (ADM, AME, CSY, DOC, PMS, PSD, TAB, TAV, TRT). Ce choix est géré à l’aide d’une liste qui regroupe les actions que l’application pourra lancer.
![](../__attachments/105673458/att_68_for_206176503.jpeg?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
Depuis le menu contextuel de la liste ou depuis la Barre de Commande, il est possible d’ajouter, de supprimer, de modifier et même d’ordonner ces actions. L’ajout d’une action s’effectue via une liste des actions existantes qui s’ouvre après le lancement de l’action « Ajouter Après ».
![](../__attachments/105673458/att_60_for_206176503.png?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
Il s’agit d’une liste à sélection multiple, ce qui permet d’insérer plusieurs actions. Il est impératif de sélectionner la ou les lignes souhaitées, sinon rien ne sera pris en compte. Après validation, on obtient la nouvelle liste des actions de l’application.
![](../__attachments/105673458/att_32_for_206176503.png?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
On peut ordonner les actions, les actions les plus hautes apparaîtront en premier dans le menu contextuel de l’application ainsi que dans la Barre de Commande. Afin de personnaliser l’action, il est possible de modifier le libellé court qui s’affichera dans la barre de commande et dans l’onglet action, depuis l’action « Modification » du menu contextuel de cette liste.
![](../__attachments/105673458/att_61_for_206176503.jpeg?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
Il ne reste plus qu’à fermer la liste et redémarrer l’application pour voir la ou les nouvelles actions.
AVANT | APRES |
---|---|
![]() | ![]() |
Intégrer l’action dans une application paramétrée
Pour intégrer une AME dans une application paramétrée (Tableur Dynamique, Liste Paramétrée, Couplage, etc.), il faut commencer par définir une action sur l’application paramétrée. Voir définition des actions sur application paramétrée.
Déroulement
Depuis la Barre de Commande :
![](../__attachments/105673458/att_62_for_206176503.jpeg?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
Depuis le menu contextuel :
![](../__attachments/105673458/att_63_for_206176503.jpeg?inst-v=09dfe42a-f44a-435c-b623-a97cc740bc9d)
Remarque : une action applicative métier peut également être représentée sous la forme d’une action onglet.