Mode web : référentiel des actions (fichier de configuration)

Généralités

Définition

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.

Référentiel des Actions

Étant construites selon le même modèle, les actions présentent néanmoins des signatures différentes :

  • Action sans paramètre.
  • Action avec paramètres obligatoires
  • Action avec paramètres obligatoires et optionnels. (les paramètres optionnels sont systématiquement situés en dernières positions).

nomAction ( )

nomAction ( [paramObligatoire+] [, paramOptionnel]* )

Session

login

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’à :

  • Fermeture par l’utilisateur de son navigateur (browser),
  • Détection d’un time-out (période d’inactivité de l’utilisateur trop importante),
  • Arrêt du serveur sur lequel est hébergé le produit en mode web.

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)

  • L’action login est une solution transitoire n’offrant pas toutes les garanties de sécurité.
  • Les paramètres user et password sont écrits impérativement en majuscules.

logout

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)

  • Si, à la suite d'une url qui contient l'action "logout", on se trouve sur une BusinessView privée, alors la BV privée sera affichée avec les informations liées à l'utilisateur "GUEST".
  • Dès la prochaine URL, si on tente d'atteindre une BV privée, il y aura une nouvelle demande de login.
  • C'est au concepteur de scénario d'imaginer s'il désire ce fonctionnement ou non. En effet, il est plutôt utile de terminer la chaîne d'action comprenant un "logout" par un "display" vers une BusinessView publique.

Visualisation

display

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)

  • L’action display est la seule action obligatoire devant systématiquement figurer en dernière position dans la chaîne de cinématique.

retrieve

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 :

  • public : La valeur du critère fait référence à un paramètre passé au niveau de l’URL ayant la même dénomination. En l’absence de ce dernier, une erreur sera provoquée.
  • business : La valeur du critère fait référence à un champ présent au niveau de la View mère uniquement. (correspond à la mise en place d’un maître/détail).
  • value : La valeur du critère est une constante sans plus d’information sur son typage.

Syntaxe

retrieve ( businessViewRef, clefRef )

Paramètre

  • businessViewRef : Le paramètre obligatoire businessViewRef fait référence à la BusinessView pour laquelle on veut appliquer une restriction sur l’ensemble de ses View.
  • clefRef : Le paramètre optionnel clefRef permet de préciser qu’elle clé choisir. Si ce paramètre est omis, le système se référera à la valeur par défaut définie au niveau du fichier de configuration.

Remarque(s)

  • La demande de restitution des données sans le recours préalable à l’action retrieve équivaut à la requête SQL : select * from <table>.
  • Il n’est pas possible de sélectionner les critères de sélection d’une seule View indépendamment des autres.
  • Dans les versions antérieures, cette action s’appelait where.
  • Pour éviter d’écrouler de manière intempestive le serveur de données, un attribut fixe le nombre maximum d’enregistrements à fournir. (voir le document sur le fichier de configuration, rubrique Viewobject, attribut maxFetchSize).

sort

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

  • businessViewRef : Le paramètre obligatoire businessViewRef fait référence à la BusinessView pour laquelle on veut appliquer un tri sur l’ensemble de ses View.
  • triRef : Le paramètre optionnel triRef permet de préciser qu’elle clé choisir. Si ce paramètre est omis, le système se référera à la valeur par défaut définie au niveau du fichier de configuration.

Remarque(s)

  • Il n’est pas possible de sélectionner les critères de tri d’une seule View indépendamment des autres.
  • Dans les versions antérieures, cette action s’appelait orderby.

init

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.

forward

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.

invalidate

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)

Saisie

propose

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)

  • L’action propose n’effectue aucun contrôle d’intégrité des données.
  • Tout champ inconnu sera ignoré.

assimilate

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 …

integrate

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

Creation : create

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)

Suppression : delete

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

Compatibilité et ordre d'écriture des actions de cinématique

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.

Navigation

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.

actions sur la page

firstPage

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)

lastPage

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)

  • Dans le cas de la dernière page d'une collection, vous n’êtes pas assuré d’obtenir un nombre de lignes égale au scope de la page.
  • Dans le cas où la dernière page est incomplète, le résultat peut être différent d’une action bottom (cf. figure de l’action bottom).

setPage

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

  • viewRef : Le paramètre obligatoire viewRef fait référence au nom de la vue sur laquelle on souhaite appliquer cette action.
  • indicePage : Le paramètre obligatoire indicePage indique le numéro de la page sur lequel on souhaite se positionner (les numéros de page commencent à 1).

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.

top

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)

bottom

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

previousPage

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)

nextPage

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

  • 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

Avancer de 3 pages dans la collection associée à la liste des clients (vueClient).

url : …?cinematic=nextPage(vueClient, 3);display(0)

scrollPage

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

  • viewRef : Le paramètre obligatoire viewRef fait référence au nom de la vue sur laquelle on souhaite appliquer cette action.
  • decalageLigne : Le paramètre obligatoire decalageLigne indique le nombre de lignes provoquant ce décalage (nécessairement positif, sinon ?).

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

actions sur la ligne courante

firstLine

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)

lastLine

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)

setLine

Description

Place la ligne courante sur la ligne numLigne dans la page courante.

Syntaxe

setLine ( viewRef, indiceLigne )

Paramètre

  • viewRef : Le paramètre obligatoire viewRef fait référence au nom de la vue sur laquelle on souhaite appliquer cette action.
  • indiceLigne : Le paramètre obligatoire indiceLigne indique le numéro de la ligne que l’on souhaite rendre active.

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)

previousLine

Description

Déplace la ligne courante d'un certain nombre de lignes vers le haut de la collection.

Syntaxe

previousLine ( viewRef, intervalLigne )

Paramètres

  • viewRef : Le paramètre obligatoire viewRef fait référence au nom de la vue sur laquelle on souhaite appliquer cette action.
  • intervalLigne : Le paramètre obligatoire intervalLigne indique le nombre de ligne séparant la ligne courante de la ligne désirée.

Exemple

Remonter de 5 lignes dans la page courante (associée à la liste des clients).

url : …?cinematic=previousLine(vueClient, 5);display(0)

nextLine

Description

Déplace la ligne courante d'un certain nombre de lignes vers le bas de la collection.

Syntaxe

nextLine ( viewRef, intervalLigne )

Paramètre

  • viewRef : Le paramètre obligatoire viewRef fait référence au nom de la vue sur laquelle on souhaite appliquer cette action.
  • intervalLigne : Le paramètre obligatoire intervalLigne indique le nombre de ligne séparant la ligne courante de la ligne désirée.

Exemple

Descendre de 2 lignes dans la page courante (associée à la liste des clients).

url : …?cinematic=nextLine(vueClient, 2);display(0)