| Annexes / Application Web : une couverture fonctionnelle sans limite ! | |
Une action représente un événement de cinématique.
Utilisée au niveau du fichier de configuration, elle est indissociable dans son fonctionnement.
Il existe aussi une notion de macro-actions. qui sont le regroupement d'actions (y compris de macro actions).
Il est possible de définir de nouvelles actions.
La non résolution d’une action stoppe irrémédiablement le processus de traitement de la cinématique et provoque la restitution complète des données telles qu’elles étaient avant le démarrage de ce processus.
Étant construites selon le même modèle, les actions présentent néanmoins des signatures différentes :
nomAction ( )
nomAction ( [paramObligatoire+] [, paramOptionnel]* )
Description
L’action login permet à l’utilisateur de s’authentifier au sein du système d’information et ainsi d’accéder à l’ensemble des BusinessView privées. Cette action peut être automatisée par l’utilisation d’un cookie qui s’acquittera de cette tâche lors de la prochaine connexion de l’utilisateur. Cette authentification (sans l’utilisation du cookie) est maintenue jusqu’à :
L’action login fonctionne de paire avec l’utilisation de deux champs utilisateurs : USER et PASSWORD.
Syntaxe
login(viewRef)
Paramètre
viewRef : Le paramètre obligatoire viewRef est la référence à la View associée au Login.
Exemple
Identification de l’utilisateur scott.
url : …?cinematic=login(LOGIN)&chp:USER=scott&chp:PASSWORD=tiger
Remarque(s)
Description
L’action logout permet à l’utilisateur de redevenir anonyme. L'utilisateur qui représente l'utilisateur anonyme est l'utilisateur "GUEST".
Néanmoins, la session logique n’est pas supprimée et l’utilisateur pourra de nouveau être reconnu automatiquement lors d'une prochaine session.
Syntaxe
logout()
Exemple
Identification de l’utilisateur scott.
url : …?cinematic=logout();display(1)
Remarque(s)
Description
L’action display représente l’opération minimale présente à chaque requête de cinématique et permet d’identifier la BusinessView de travail (communément appelée la BusinessView courante).
Syntaxe
display(businessViewRef)
Paramètre
businessViewRef : le paramètre obligatoire businessViewRef fait référence à l’indice de la BusinessView à qui l’on attribue le focus.
Exemple
Affichage des données associées à la BusinessView courante.
url : … ?cinematic=display(0)
Remarque(s)
Description
De part sa définition, une View est associée à un ensemble d’ordres combinant des critères de sélection, activés au niveau de la BusinessView. L’action retrieve permet d’effectuer cette sélection pour l’ensemble des View qui composent la BusinessView.
La restriction mise en place concerne la valeur de certains champs de la/les View. L’alimentation de ces critères s'accomplit selon trois modes :
Syntaxe
retrieve ( businessViewRef, clefRef )
Paramètre
Remarque(s)
Description
Une View est associée à un ensemble d’ordres de tris des données, activés au niveau de la BusinessView. L’action sort permet d’effectuer ce tri pour l’ensemble des View qui composent la BusinessView. Celle-ci rend opérationnelle l’ordre de tri mais ne l’active pas; il le sera le moment venu, décidé automatiquement par le système, pour fournir les informations requises.
Syntaxe
sort ( businessViewRef, triRef )
Paramètre
Remarque(s)
C'est une macro-action qui réalise retrieve() et sort(). Le fait de pouvoir appeler indépendamment retrieve() et sort() permet de changer la sélection indépendamment de l'ordre et réciproquement.
select(n,x,y) = retrieve(n,x);sort(n,y)
n : numéro de BusinessView.
x : clé de retrieve.
y : clé de sort.
C'est une macro-action qui réalise init() et display().
forward(n,x,y) = init(n,x,y);display(n)
n : numéro de BusinessView.
x : clé de retrieve.
y : clé de sort.
Description
L’action invalidate invalide « l’état de sélection » de l’objet métier manipulé pour re-prendre en considération la/les mises à jours opérées au niveau de la base de données.
Syntaxe
invalidate ( viewRef )
Paramètre
viewRef : Le paramètre obligatoire viewRef fait référence à la View pour laquelle on veut réactualiser les informations détenues.
Exemple
Réactualisation des données associées à la BusinessView courante pour la vue représentant (REP).
url : … ?cinematic=invalidate(REP);display(0)
Description
L’action propose gère les buffers de saisie jusqu’à validation et mise à jour effective des données dans la base par l’action assimilate.
Syntaxe
propose ( businessViewRef )
Paramètre
businessViewRef : Le paramètre obligatoire businessViewRef fait référence à la BusinessView de travail.
Voir également
assimilate, create, delete
Exemple
Voir action assimilate.
Remarque(s)
Description
L’action assimilate transpose les données de l’utilisateur dans la base de données. Ces données ayant été conditionnées auparavant par l’action propose. L’opération effectue les contrôles de validité des données et génère le cas échéant un message d’erreur pour l’ensemble des champs utilisateurs incriminés.
Syntaxe
assimilate()
Paramètre
L’action assimilate ne prend pas de paramètre. Elle manipule directement et uniquement la BusinessView courante.
Exemple
Saisie des données d’un tiers.
url : … ?cinematic=propose(0);assimilate();display(0)&chp:Sigtie=Juste& chp:Nomtie=Leblanc …
Saisie en tableau des données de plusieurs tiers.
url : … ?cinematic=propose(0);assimilate();display(0)&chp:Sigtie-1=Juste&chp:Nomtie-1=Leblanc&chp:Sigtie-2=Lagaffe&chp:Nomtie-2=Gaston …
Description
La macro action integrate fait appel à l'intervention simultanée des actions propose et assimilate.
Nous déconseillons l'utilisation de cette action qui risque d'être supprimée dans une prochaine version.
Syntaxe
integrate ( businessViewRef ) := propose(businessViewRef);assimilate()
Il était question dans de précédentes études de passer en création tous les documents de toutes les View non "détail". Maintenant que nous avons un moyen explicite de définir les View qui passent en création, nous pourrons passer de cette méthode trop implicite. C'est la configuration qui permet de définir pour une ViewStruct, les View qui sont concernées par la création.
Le 02/03/01, la question suivante a été posée à LEE : "doit-on passer en création systématiquement dans les détails, quand on passe en création dans une View maître".
A priori, une donnée créée par cette action, n'est pas dans la base de données. Elle y sera dès la première mise-à-jour. C'est plutôt un moyen d'initialiser les valeurs d'un document dans le but d'une création.
Le "assimilate" devra faire la différence entre un document qui est en création et un document en mise-à-jour.
Description
Passe en mode "création" les documents marqués comme sensibles à la création dans la BusinessView passée en paramètre.
Les valeurs par défaut métier sont calculées au moment où un traitement les demandera au document (chargement "paresseux").
Syntaxe
create ( businessViewRef )
Paramètre
businessViewRef : Le paramètre obligatoire businessViewRef fait référence à la BusinessView de travail.
Exemple
url : … ?sourceview=BV1&cinematic=create(0);display(0)
Description
L’action delete supprime les données sélectionnées de la BusinessView courante.
Syntaxe
delete()
Paramètre
L’action delete ne prend pas de paramètre. Elle manipule uniquement la BusinessView courante (on ne supprime que ce que l'on voit). Si le besoin de suppression est plus complexe, il faut s'orienter vers l'écriture d'une API de suppression.
L'espace de nommage de sélection "sel:" permet de sélectionner les lignes visibles que l'utilisateur désire supprimer.
Exemple
url : … ?cinematic=delete(0);display(0)&sel:vue1-1=on&sel:vue1-2=off&sel:vue1-3=on
Les deux graphes suivants représentent l'ordre d'écriture recommandé sur une cinématique.
Cette recommandation est basée sur l'étude de la combinatoire possible des actions, sur les effets indésirables associés à certaines combinaisons et sur les limites du cahier des charges du socle technique v4.4.0. Dans une version future du socle, ces règles d'écriture pourraient être vérifiées automatiquement.
Une notion importante qu’il faut garder à l’esprit lorsque l’on utilise les actions de navigation c’est la valeur du scope de la page définie au niveau du fichier de configuration (élément "View", attribut "nbline"). En fonction de sa valeur, le résultat pourra être différent.
Dans la suite du document, on parlera
Les index et les curseurs commencent à 1.
Les actions de navigations sont définies dans les paragraphes suivants.
Description
Positionne l’index de page sur la première page de la collection sans intervenir sur la ligne courante qui reste inchangée dans la page.
Syntaxe
firstPage ( viewRef )
Paramètre
viewRef : Le paramètre obligatoire viewRef fait référence au nom de la vue sur laquelle on souhaite appliquer cette action.
Exemple
Se positionner sur la première page de la liste des clients (vueClient).
url : …?cinematic=firstPage(vueClient);display(0)
Description
Positionne l’index de page sur la dernière page de la collection sans intervenir sur la ligne courante qui reste inchangée dans la page..
Syntaxe
lastPage ( viewRef )
Paramètre
viewRef : Le paramètre obligatoire viewRef fait référence au nom de la vue sur laquelle on souhaite appliquer cette action.
Exemple
Se positionner sur la dernière page de la liste des clients (vueClient).
url : …?cinematic=lastPage(vueClient);display(0)
Remarque(s)
Description
Positionne l’index de page sur la page de la collection dont l’indice est passé en paramètre sans intervenir sur la valeur du curseur de ligne qui reste inchangé par rapport à l’action précédente.
Syntaxe
setPage ( viewRef, indicePage )
Paramètre
Exemple
Se positionner sur la 5ième page de la liste des clients (vueClient).
url : …?cinematic=setPage(vueClient, 5);display(0)
Remarque :
Si la page désirée est la dernière page, voir la remarque formulée pour l’action lastPage.
Description
Positionne l’index de page sur la première page de la collection et fixe la valeur du curseur de ligne sur sa première position.
C'est une macro action de firstPage() et firstLine().
Syntaxe
top ( viewRef )
Paramètre
viewRef : Le paramètre obligatoire viewRef fait référence au nom de la vue sur laquelle on souhaite appliquer cette action.
Exemple
Se positionner sur la 1ière ligne de la 1ière page de la liste des clients (vueClient).
url : …?cinematic=top(vueClient);display(0)
Description
Positionne l’index de page sur la dernière page de la collection et fixe la valeur du curseur de ligne sur sa dernière position. Si la dernière page de la collection comporte un nombre plus petit de lignes, le résultat de l’action fait apparaître un effet de bord identique à l’action scrollPage et produit un comportement différent de l’action lastPage.
Syntaxe
bottom ( viewRef )
Paramètre
viewRef : Le paramètre obligatoire viewRef fait référence au nom de la vue sur laquelle on souhaite appliquer cette action.
Exemple
Se positionner sur la dernière ligne de la dernière page de la liste des clients (vueClient).
url : …?cinematic=bottom(vueClient);
Remarque :
L’opération bottom peut donner un résultat différent de la composition lastPage(<View>);lastLine(<View>).
Description
Positionne l’index de page sur la page précédant la page courante et distante du nombre de pages précisé par le paramètre intervalPage. Ce paramètre doit être obligatoirement positif. Cette action ne modifie en rien la valeur du curseur de ligne qui reste inchangé par rapport à l’action précédente.
Syntaxe
Action = previousPage ( viewRef, intervalPage )
Paramètre
viewRef : Le paramètre obligatoire viewRef fait référence au nom de la vue sur laquelle on souhaite appliquer cette action.
intervalPage : Le paramètre obligatoire intervalPage précise le nombre de pages qui sépare la page courante de celle recherchée.
Exemple
Reculer de 3 pages dans la collection associée à la liste des clients (vueClient).
url : …?cinematic=previousPage(vueClient,3);display(0)
Description
Positionne l’index de page sur une page succédant à la page courante et distante du nombre de pages précisé par le paramètre intervalPage. Ce paramètre doit être obligatoirement positif. Cette action ne modifie en rien la valeur du curseur de ligne qui reste inchangé par rapport à l’action précédente.
Syntaxe
Action = nextPage ( viewRef, intervalPage )
Paramètres
Exemple
Avancer de 3 pages dans la collection associée à la liste des clients (vueClient).
url : …?cinematic=nextPage(vueClient, 3);display(0)
Description
Action dont l'unité de déplacement est la ligne, mais dont l'effet se situe au niveau des pages. L’application d’un décalage de <decalageLigne> lignes sur la page courante provoque l’affichage partielle de deux pages mais ne modifie pas l’état de la page courante (cf. remarques).
Syntaxe
scrollPage ( viewRef, decalageLigne )
Paramètre
Exemple
Décaler la visibilité de 15 lignes sur la liste des clients (vueClient).
url : …?cinematic=scrollPage(vueClient, 15);display(0)
Remarque :
scrollPage est une action qu’il faut manipuler avec précaution notamment en collaboration des actions "previousPage" et "nextPage". Dans la démonstration ci-dessus, le recourt à l’action nextPage après l’utilisation de scrollPage provoque l’affichage complet de la deuxième page (et non de la troisième page comme on aurait pu l'imaginer).
Description
Place l'état courant sur la première ligne de la page courante.
Syntaxe
firstLine ( viewRef )
Paramètre
viewRef : Le paramètre obligatoire viewRef fait référence au nom de la vue sur laquelle on souhaite appliquer cette action.
Exemple
Se positionner sur la première ligne de la page courante associée à la liste des clients (vueClient).
url : …?cinematic=firstLine(vueClient);display(0)
Description
Place l'état courant sur la dernière ligne de la page courante.
Syntaxe
lastLine ( viewRef )
Paramètre
viewRef : Le paramètre obligatoire viewRef fait référence au nom de la vue sur laquelle on souhaite appliquer cette action.
Exemple
Se positionner sur la dernière ligne de la page courante associée à la liste des clients (vueClient).
url : …?cinematic=lastLine(vueClient);display(0)
Description
Place la ligne courante sur la ligne numLigne dans la page courante.
Syntaxe
setLine ( viewRef, indiceLigne )
Paramètre
Exemple
Se positionner sur la 3ième ligne de la page courante (associée à la liste des clients).
url : …?cinematic=setLine(vueClient, 3);display(0)
Description
Déplace la ligne courante d'un certain nombre de lignes vers le haut de la collection.
Syntaxe
previousLine ( viewRef, intervalLigne )
Paramètres
Exemple
Remonter de 5 lignes dans la page courante (associée à la liste des clients).
url : …?cinematic=previousLine(vueClient, 5);display(0)
Description
Déplace la ligne courante d'un certain nombre de lignes vers le bas de la collection.
Syntaxe
nextLine ( viewRef, intervalLigne )
Paramètre
Exemple
Descendre de 2 lignes dans la page courante (associée à la liste des clients).
url : …?cinematic=nextLine(vueClient, 2);display(0)