2. Comprendre les mécanismes
2.1 Fonctionnement de l'assistant de création
Accès au module : Projets Conception
L'assistant de création de formulaire a généré automatiquement les écrans d'insertion et de modification des données, ainsi que les comportements d'exécution associés.
Les écrans générés sont visibles depuis le module Conception de l'application, dans le sous-module IHM : Concevoir les écrans en cliquant sur l'un des dossiers de la liste des écrans à gauche.
Les écrans sont classés par dossier
L'assistant a également créé les déclencheurs permettant d'associer des actions aux boutons présents sur les écrans. L'écran Contact comporte deux boutons : Nouveau et Importer. En cliquant sur le bouton Mode création, il est possible de basculer sur la vue permettant de modifier le contenu de l'écran. Sur la gauche se trouve la liste des contrôles présents sur l'écran Contact. Cliquer sur Centre pour voir les contrôles présents sur la partie centrale de l'écran : les boutons Nouveau et Importer ainsi que le tableau des contacts. Cliquer sur btnNew Nouveau pour afficher les déclencheurs associés au bouton.
Un déclencheur exécutant deux actions est associé au bouton
Le déclencheur À la validation exécute des actions lorsque l'utilisateur clique sur le bouton Nouveau. Les actions associées ont également été créées par l'assistant de création et sont les suivantes:
- Set variables insertion and clear selection Contact
- Goto screen form contact
Faire un clic droit sur l'une des deux actions puis cliquer sur Aller vers.
Redirection vers le module de gestion des comportements depuis le module de création d'écran
Le nouvel écran présente la liste des comportements utilisés par l'application. Ils ont tous été créés par l'assistant de création de formulaire. Un comportement comporte une ou plusieurs règles.
Une règle est un ensemble de conditions et d'actions. Dans la capture ci-dessus, la règle Set variables insertion and clear selection Contact ne comporte aucune condition mais contient deux actions d'affectation de variables :
- la première affecte une valeur nulle à la variable id contact via l'utilisation d'une constante vide ;
- la deuxième affecte la valeur false à la variable Consult contact.
Le deuxième comportement associé au bouton Nouveau est une redirection vers l'écran Form contact.
L'écran Form contact est celui qui permet de saisir un nouveau contact via un formulaire. Le bouton Sauvegarder de cet écran est associé à des règles d'insertion et de mise à jour de lignes dans une base de données.
Cette règle permet d'enregistrer la saisie du contact dans la base
Déclencheurs à l'initialisation : L'écran Contact comporte également un déclencheur de type À l'initialisation qui permet de remplir le tableau avec les données des contacts lors du chargement de l'écran.
Le tableau des contacts n'est pas directement rempli avec les données du modèle de données MDD Formation, mais utilise à la place un jeu de données créé par l'assistant.
Les jeux de données sont constitués de champs faisant la plupart du temps référence à des colonnes de tables du modèle de données. Leur fonctionnement est donc très similaire à une table de base de données. Ils ont pour utilité de s’associer à un tableau, une liste ou autre, et ainsi de pouvoir obtenir une représentation de plusieurs lignes d’une table dans ces contrôles.
Pour voir ou modifier le jeu de données associé au tableau des contacts, faire un clic droit sur le tableau en mode Création puis cliquer sur Modifier. Les propriétés du contrôle s'affichent dans une colonne à droite de l'écran. Cliquer sur l'onglet pour accéder à la gestion du jeu de données.
Gestion du jeu de données associé au tableau des contacts
Il est possible de modifier le jeu de données et de sélectionner les attributs à afficher ou non.
Pour savoir quelles entités utilisent un contrôle, faire un clic droit sur le contrôle et cliquer sur Hiérarchie d'appels.
La hiérarchie d’appel est une fonctionnalité qui permet de consulter rapidement les éléments liés au composant sélectionné. Elle peut être utilisée sur toutes les entités d’une application (modèle de données, écran, contrôles, boite de message, service métier, etc.). La hiérarchie d’appel peut être utilisée de manière descendante (consulter les éléments qui utilisent le composant) via l'onglet Hiérarchie des appelants ou ascendante (consulter les éléments utilisés par le composant) via l'onglet Hiérarchie des appelés.
2.2 Le débogueur
Accès au module : Projets Conception
Ontomantics fournit un module de débogage avancé qui permet de modifier n’importe quel élément de l’application pendant l’exécution de celle-ci. Il est accessible en exécutant l'application depuis le module Projets : sélectionner Application Formation, puis cliquer sur Déboguer l’application.
Le bandeau situé en bas de l’écran affiche tous les boutons du débogueur. Cliquer sur un bouton ou sur l’icône pour afficher le cadre de débogage. Cliquer sur permet de le minimiser à nouveau.
Le débogueur est scindé en deux parties :
- le cadre de gauche contenant :
- une console permettant de consulter le journal de l'application ;
- la liste des derniers comportements exécutés ;
- des boutons de contrôle de l'exécution de l'application (recharger, interrompre, reprendre, etc.) ;
- un onglet présentant les rôles qui n'est présent que si l'application contient des rôles applicatifs.
- le cadre de droite contenant :
- la liste des variables locales qui affiche tous les composants de l’écran courant avec leur valeur, lorsqu’aucun événement n’est exécuté. Si un comportement est en cours d’exécution, le cadre affiche les valeurs actuelles des variables de la règle courante. Un champ de recherche permet de filtrer les composants affichés ;
- un onglet Environnement qui affiche les valeurs de l'ensemble des composants de l'application ;
- un onglet Observer qui affiche les valeurs du composant sélectionné ;
- un onglet Points d'arrêt qui affiche les actions ou conditions sur lesquelles ont été définis des points d’arrêts. Ces points permettent de définir les endroits où l’on veut mettre en pause un comportement ;
- un bouton Sélectionner un contrôle qui permet d'analyser en temps réel le comportement d'un contrôle via l'onglet Observer.
2.3 Ajout manuel d'un champ
Accès au module : Projets Conception
Nous allons à présent ajouter un champ Numéro SIRET dans le modèle de données, puis dans le formulaire d'ajout d'un tiers ainsi que dans la liste des tiers de l'application. Il faudra ensuite aller modifier le comportement créé par l'assistant (insertion et modification).
Cliquer sur le modèle de données MDD Formation depuis le projet Formation. Faire un clic droit sur l'entité Tiers, puis cliquer sur Nouvel attribut. Renseigner le titre numero_siret, et sélectionner le type Integer (Entier). Cliquer sur Sauvegarder pour valider la saisie de l'attribut.
Attention ! Penser à cliquer sur Mettre à jour le déploiement pour resynchroniser le modèle à la base de données.
Retourner sur le module Conception de l'application, puis dans la liste des écrans, cliquer sur l'écran Tiers. Dans le cadre de droite, cliquer sur Mode création pour pouvoir modifier l'écran.
Dans la liste des contrôles de l'écran à gauche, faire un clic droit sur le contrôle TableTiers puis cliquer sur Modifier. Le cadre des propriétés du tableau s'affiche à droite. Cliquer sur l'onglet Données puis sur Modifier le jeu de données >>.
Le module de gestion des jeux de données s'affiche à l'écran. Le jeu de données du tableau des tiers est sélectionné. Faire un clic droit dessus, puis cliquer sur Ajouter un champ au jeu de données. Renseigner le titre Numero siret et sélectionner le type Entier, puis cliquer sur Sauvegarder.
Pour que le nouveau champ soit pris en compte lors du remplissage du jeu de données, il est nécessaire que le comportement associé soit modifié. Dans le bandeau en haut de l'écran, cliquer sur l'icône Gérer les comportements. Dans la liste des comportements du nouvel écran, cliquer sur Load table Tiers puis sur la règle Populate table Tiers. Dans le cadre central, cliquer sur Déplier pour voir la règle en entier. Dans la liste des conditions, cliquer sur Liste des valeurs retournées (7). Cocher le champ numero_siret puis cliquer sur Sauvegarder.
Il faut enfin modifier l'action de remplissage du jeu de données. Dans la liste des actions, cliquer sur Liste des champs (7) et cocher Numero siret Entier et cliquer sur Sauvegarder.
Le numéro de Siret est apparu dans la liste des champs de l'action. Cliquer sur l'icône située sous le champ Numero siret Entier. Dans le cadre de droite, cliquer en haut sur Ajouter un opérande. Sélectionner le type d'opérande Valeur retournée par une sélection de données puis cliquer sur numero_siret et cliquer sur Sauvegarder.
La règle de remplissage du jeu de données prend désormais en compte le champ Numéro de Siret.
Revenir ensuite au module de création de l'écran via la flèche Précédent à gauche de Gérer les jeux de données. Le champ nouvellement créé Numero siret est apparu dans la liste des attributs du tableau. Cocher la case Visible de l'attribut puis cliquer sur Sauvegarder pour qu'il apparaisse en tant que colonne du tableau.
Cliquer sur Quitter le mode création. Dans la liste des écrans à gauche, cliquer sur l'écran Form tiers. Basculer en mode création. Sur la gauche de l'écran, cliquer sur l'onglet Boîte à outils. Sélectionner le contrôle Saisie de texte en le déplaçant depuis la boîte à outils vers l'écran de formulaire. Relâcher le clic à l'endroit où le contrôle doit apparaître.
Les contrôles de type Saisie de texte sont automatiquement accompagnés d'un champ Label qui permet d'afficher le texte à côté du champ de saisie. Faire un clic droit sur le label, puis cliquer sur Modifier. Le cadre des propriétés du contrôle s'affiche à droite. Dans le champ Valeur initiale, saisir Numéro Siret~:. C'est ce texte qui sera affiché à côté du champ de saisie.
Faire ensuite un clic droit sur le champ de saisie de texte, puis sur Modifier . Le cadre des propriétés du contrôle s'affiche à droite. Dans le champ Titre, saisir Numéro siret. Ce champ permettra d'identifier plus facilement le contrôle dans le module de gestion des comportements.
Une fois le numéro Siret ajouté dans le modèle de données et dans les IHM, il est nécessaire d'aller modifier le comportement d'insertion et de modification d'un tiers créé par l'assistant.
La fonction de hiérarchie d'appel peut aider à identifier le comportement à modifier. Faire un clic droit sur l'un des autres champs de saisie du formulaire, et cliquer sur Hiérarchie d'appel. Un popup affiche les règles qui manipulent le champ de saisie.
Les règles Load screen from Tiers et Update or create row Tiers utilisent les champs de saisie de l'écran. La première sert à charger l'écran de formulaire. La seconde sert à insérer ou mettre à jour les valeurs saisies depuis le formulaire dans la base de données. Cliquer sur la règle Load screen from Tiers pour être redirigé vers le module de gestion des comportements.
Dans le cadre central de l'écran, cliquer sur Déplier pour voir l'ensemble de la règle. La règle Load screen from Tiers est composée d'une condition Si et d'une action exécutée lorsque la condition est vérifiée. Cette action appelle elle-même une sous-règle comprenant une condition et six actions d'affectation de contrôle dans le cas où la condition est vérifiée, et quatre actions exécutées dans le cas contraire. Les six actions correspondent aux six contrôles du formulaire. Nous allons mettre à jour la condition d'exécution et ajouter une action aux six précédentes afin d'affecter le contrôle Numéro Siret.
Dans la liste des conditions, cliquer sur Liste des valeurs retournées. Cocher l'attribut numero_siret Integer et cliquer sur Sauvegarder. La condition a été mise à jour pour prendre en compte le numéro de Siret.
Faire un clic droit sur Liste des actions si conditions vérifiées (1) et cliquer sur Nouvelle action. Sélectionner le type d'action Affecter un contrôle puis sélectionner l'écran Form Tiers puis le contrôle Numéro siret (attention : sélectionner le contrôle et non le label). Cliquer sur Sauvegarder.
Dans le cadre à droite de l'écran, cliquer sur Ajouter un opérande. Sélectionner le type Valeur retournée par une sélection de données puis sélectionner la valeur numero_siret. Cliquer sur Sauvegarder.
La liste des actions a été mise à jour pour prendre en compte le numéro de Siret. Il s'agit à présent de mettre à jour la règle d'insertion ou de mise à jour de données en base.
Dans la liste des comportements à gauche de l'écran, cliquer sur Update or create row Tiers. Cliquer ensuite sur la règle du même nom, juste en-dessous. Dans le cadre central de l'écran, cliquer sur Déplier pour voir l'ensemble de la règle.
La règle est constituée d'une condition Si comprenant la variable Id tiers et un opérateur logique Is not null. La condition est donc Si l'identifiant du tiers existe déjà. L'action exécutée lorsque cette condition est vérifiée est une action de mise à jour de lignes dans la base de données. En revanche, si la condition n'est pas vérifiée (si l'identifiant du tiers n'existe pas), l'action exécutée est une action d'insertion de lignes dans la base. Nous allons mettre à jour ces deux actions pour prendre en compte le numéro de Siret.
Cliquer sur Liste des attributs (6) et cocher l'attribut numero_siret. Cliquer sur Sauvegarder. L'attribut a été ajouté à la liste. Cliquer sur l'icône située sous l'attribut dans le cadre central de l'écran, puis cliquer sur Ajouter un opérande dans le cadre de droite. Sélectionner le type d'opérande Contrôle. Sélectionner l'écran Form tiers puis le contrôle Numéro siret, et cliquer sur Sauvegarder.
Répéter l'opération dans l'action située sous Liste des actions si conditions non vérifiées (2) pour mettre à jour la règle d'insertion de lignes en base de données. Cliquer sur Liste des attributs (6) et cocher l'attribut numero_siret. Cliquer sur Sauvegarder. L'attribut a été ajouté à la liste. Cliquer sur l'icône située sous l'attribut dans le cadre central de l'écran, puis cliquer sur Ajouter un opérande dans le cadre de droite. Sélectionner le type d'opérande Contrôle. Sélectionner l'écran Form tiers puis le contrôle Numéro siret, et cliquer sur Sauvegarder.
Les actions d'insertion et de mise à jour du numéro de Siret depuis le formulaire des tiers doivent désormais fonctionner.
2.4 Ajout d'un filtre
Accès au module : Projets Conception
L'exercice suivant consiste à ajouter un champ de recherche sur l'écran Liste des tiers. Il s'agit de créer un cadre permettant de rechercher une société selon son nom et / ou son numéro de Siret. Le nom est un champ texte alors que le Siret est une liste déroulante. Un bouton Rechercher permet de lancer la requête et de filtrer le tableau avec le résultat.
L'exercice consiste à ajouter le cadre de recherche, le champ Nom, la liste déroulante des Siret ainsi que le bouton de recherche. Il faut ensuite créer le comportement associé exécuté lors du clic sur le bouton Rechercher.
Depuis le module Conception de l'application, cliquer sur l'écran Tiers dans la liste des écrans à gauche. Cliquer ensuite sur Mode création. Cliquer ensuite sur l'onglet Boîte à outils pour commencer à ajouter les composants d'écran.
Les éléments à placer sur l'écran sont :
- un cadre de recherche comprenant :
- un conteneur de type Formulaire, lui-même comprenant :
- un champ de saisie de texte ;
- une liste déroulante ;
- un bouton Rechercher.
- un conteneur de type Formulaire, lui-même comprenant :
Pourquoi un formulaire ? L'ajout du conteneur formulaire est nécessaire car un cadre ne peut contenir qu'un seul élément. En y insérant un conteneur qui lui-même contient les autres contrôles, nous contournons ainsi cette limitation.
Depuis la boîte à outils, sélectionner d'abord l'élément conteneur Cadre, puis le déplacer vers l'écran à l'endroit souhaité. Relâcher le clic pour valider le déplacement du contrôle. Sélectionner ensuite l'élément conteneur Formulaire et le déplacer à l'intérieur du cadre précédemment créé. Ensuite, sélectionner un champ de saisie de texte, une liste déroulante et un bouton, et les déplacer à l'intérieur du conteneur formulaire.
Faire un clic droit sur le cadre et cliquer sur Modifier. Le cadre des propriétés du contrôle s'affiche à droite. Dans le champ Label, saisir Recherche, et cliquer sur Sauvegarder. Sélectionner le champ de saisie de texte. Dans le champ Titre, saisir Recherche nom, et cliquer sur Sauvegarder. Sélectionner ensuite la liste déroulante. Dans le champ Titre, saisir Liste numéro siret, et cliquer sur Sauvegarder. Sélectionner enfin le bouton. Dans le champ Valeur initiale, saisir Rechercher, et cliquer sur Sauvegarder.
Désormais, les éléments visuels permettant la recherche d'une société sont créés. Il reste maintenant à leur associer un comportement.
Le bouton contient un déclencheur de type À la validation. Il est possible d'y ajouter un comportement qui sera exécuté lors du clic sur le bouton. Dans la liste des contrôles à gauche de l'écran, faire un clic droit sur le bouton et sélectionner Comportement existant.
Dans le popup qui vient de s'afficher, sélectionner le comportement Load table tiers. C'est celui-ci qui sera exécuté au clic sur le bouton. Nous allons à présent modifier ce comportement créé par l'assistant afin qu'il prenne en compte le filtre de recherche. Le comportement comporte trois règles. Faire un clic droit sur la règle Populate table tiers et cliquer sur Aller vers.
Le filtre est à ajouter dans la condition de la règle Populate table tiers. Cliquer sur la condition Select data tiers et cliquer sur Filtrer les résultats dans le cadre à droite de l'écran. Le filtre WHERE est créé. Nous désirons créé un filtre qui prenne en compte le nom du tiers, son siret, et pour chacun d'eux, s'ils sont laissés vides ou non. La structure finale de la requête ressemble à cela :
WHERE ((Recherche nom.Valeur IS NULL) OR (Recherche nom.Valeur = tiers.nom)) AND ((Liste numéro siret.Valeur IS NULL) OR (Liste numéro siret.Valeur = tiers.numero_siret))
L’ordre de création de la requête est le suivant :
- Création du AND
- création du OR à gauche du AND
- création de l’expression Recherche nom.Valeur IS NULL
- création de l’expression Recherche nom.Valeur = tiers.nom
- création du OR à droite du AND
- création de l’expression Liste numéro siret.Valeur IS NULL
- création de l’expression Liste numéro siret.Valeur = tiers.numero_siret
- création du OR à gauche du AND
Sélectionner l’opérateur logique AND et cliquer sur Sauvegarder. Sélectionner ensuite le type d’opérande Expression pour créer le premier OR et sélectionner l’opérateur OR. Cliquer sur Sauvegarder. Sélectionner à nouveau le type d’opérande Expression pour créer le IS NULL et choisir donc IS NULL puis cliquer sur Sauvegarder. Il faut à présent assigner le champ de saisie Recherche nom au IS NULL. Sélectionner le type d’opérande Contrôle puis sélectionner le contrôle Recherche nom. Laisser la propriété sélectionnée sur Valeur en bas du cadre. Cliquer sur Sauvegarder.
La partie gauche du premier OR est créée, il faut désormais créer la partie droite qui consiste à assigner le champ de saisie Recherche nom à l'attribut Nom de la table Tiers. Dans la structure centrale de la règle, faire un clic droit sur Recherche nom.Valeur IS NULL et cliquer sur Insérer un opérande dessous.
Sélectionner le type d'opérande Expression puis l'opérateur logique = (égal). Cliquer sur Sauvegarder. Sélectionner ensuite le type d'opérande Contrôle puis sélectionner le contrôle Recherche nom. Laisser la propriété sélectionnée sur Valeur en bas du cadre. Cliquer sur Sauvegarder. Sélectionner alors le type d'opérande Attribut d'une table puis sélectionner l'attribut Nom de la table Tiers. Cliquer sur Sauvegarder.
La première partie de l'expression est désormais créée.
Pour créer la seconde partie de l'expression (à la droite du AND), nous allons utiliser la fonction de Copier - Coller intégrée au module. Cette partie de l'expression étant assez similaire à la première, cela permettra un gain de temps en évitant d'avoir à réécrire toute l'expression en modifiant seulement ce qui est nécessaire. Dans la structure centrale de la règle, faire un clic droit sur l'expression située sous le AND et cliquer sur Copier.
Puis, remonter au niveau du WHERE, faire un clic droit et cliquer sur Coller.
Il faut à présent modifier certains éléments de l'expression afin de remplacer Recherche nom par Liste numéro siret et tiers.nom par tiers.numero_siret.
Déplier la règle puis cliquer sur Tiers.Recherche nom.Valeur situé sous le IS NULL. Dans le cadre de droite, sélectionner le contrôle Liste numéro siret et cliquer sur Sauvegarder.
Cliquer ensuite sur Tiers.Recherche nom.Valeur situé sous le =. Dans le cadre de droite, sélectionner le contrôle Liste numéro siret et cliquer sur Sauvegarder. Enfin, sélectionner l'attribut \tiers.nom juste au-dessous et sélectionner numero_siret Integer et cliquer sur Sauvegarder.
Le filtre est à présent terminé.
No Comments