Introduction

Une action utilisateur XTEND se traduit soit par une action effectuée directement par le serveur XTEND, soit par l'appel d'un web service X3 qui peut être soit un sous-programme soit une action associée à un objet X3.

L'action utilise les web services X3 lorsqu'elle est associée à une interface.

Une action Web attend des paramètres en entrée, effectue un traitement et valorise un certain nombre de paramètres en retour comme l'appel d'un sous-programme en L4G.

Dans le cas d'une application XTEND, les paramètres en entrée sont généralement saisis par l'utilisateur dans un formulaire HTML et les valeurs renvoyées par le sous-programmes sont stockées en mémoire dans la session utilisateur (mapping) dans le but d'être affichées dans une page HTML ou utilisées comme paramètres d'autres actions.

Ce document indique la méthode à suivre pour créer de nouvelles actions utilisateurs.

Programmation et test dans X3

La première étape consiste à programmer et TESTER en mode client X3 le traitement L4G ou l'objet X3 qui sera appelé par l'action XTEND.

Cas des objets X3

Avant d'utiliser un objet X3 dans une application XTEND il est nécessaire de s'assurer que cet objet X3 peut être utilisé au travers des web service.

En particulier il faut s'assurer que le traitement des actions ne nécessite pas la présence d'un utilisateur (humain) devant un écran pour répondre aux éventuels questions ou messages renvoyés par le serveur X3.

Messages utilisateurs

Le traitement AWEB contient des sous-programmes utilitaires pour la gestion des messages utilisateurs.

Envoie de message d'information, de warning ou d'erreur :

  • Subprog ADDMESSINF(MESSAGE)
  • Subprog ADDMESSWARN(MESSAGE)
  • Subprog ADDMESSERR(MESSAGE)

En mode test

  • Subprog INITABMES
  • Subprog VISUALLMES

Une action utilisateur est considérée comme validée si l'appel du web service n'a renvoyé aucun message d'erreur.

Les messages d'erreur sont postés en L4G via le sous programme ADDMESSERR (Call ADDMESSERR("Message") From AWEB)

L'affichage des messages X3 est effectué via le token AXUSERMSG.

Ex : <span id="userMsg" class="userMsg" adx="aMsgUser"></span>

Cas des sous-programmes

Il est important de bien noter que l'appel d'un traitement X3 via un web service est 'sans état' (stateless) c'est à dire que le contexte de la session X3 (globales) utilisée pour traiter un web service n'est valide que pendant le traitement du service. Ce contexte est perdu après exécution du traitement. Il est réinitialisé à chaque appel.

Toutes les données contextuelles doivent être transportées dans les paramètres d'appel du web service.

Lors de l'appel d'un web service de type sous-programme le serveur XTEND ajoute les paramètres contextuels à l'appel de ce sous programme en valorisant les paramètres AXPARCOD et AXPARVAL du groupe de publication AX_PAR si le groupe AX_PAR a été défini lors de la publication du sous-programme.

Les paramètres dont contextuels par défaut sont les suivants:

 Code

Description

SITCOD

Code du site XTEND

USRCOD

Code utilisateur XTEND si l'utilisateur est identifié

USRPRF

Code profile utilisateur XTEND si l'utilisateur est identifié

USRLANG

Code langue XTEND (langue du site)

Publication et test des web services

Cette étape permet de s'assurer que les web services sont bien disponibles et qu'il fonctionnent correctement.

Voir la page web services.

Création d'une action

-1- Paramétrage de l'interface

Créer une fiche interface via la fonction Développement/Safe X3 WAS/Lien SAFE X3/Interface.

-2- Création des champs

L'appel d'un web service de type Action renvoie des données qui sont soit des paramètres d'un sous-programme soit des champs d'un objet X3.

Tous les champs utilisés pour l'affichage ou le passage de paramètres de type web ou XTEND doivent être déclarés dans le dictionnaire des champs.

Après avoir créé l'interface il est recommandé de créer tous les champ renvoyés par le web service via le menu 'Outils/Création token champ' de la fiche interface.

-3- Création des entités

Les paramètres en sortie, renvoyés par le web services sont regroupés par groupes de publication.

Cette étape consiste à créer une entité XTEND par groupe de publication.

Pour créer les entités utiliser la fonction utilitaire création des entités accessible via le menu 'Outils\Aide au remplissage' de la fiche entité.

-4- Création de l'action web

Cette étape consiste à créer l'action web pour définir le mapping entre les paramètres du web service et les entités XTEND.

Le mapping concerne:
  • Les paramètres (en entrée) qu'il faut valoriser lors de l'appel du web service
  • Les paramètres (en sortie) renvoyé par le web service, qu'il faut conserver en mémoire et à partir desquels seront créés les entités XTEND de type session

-5- Création du lien dynamique

Cette étape consiste à créer le token lien dynamique qui sera inséré dans la page html soit dans une bouton soit dans un ancre pour permettre à l'utilisateur de déclencher l'action via un clique souris.

Le lien dynamique permet aussi d'indiquer comment seront valorisés les paramètres d'appel de l'action web soit à partir de données saisies par l'utilisateur (champs web) soit à partir de données stockée en mémoire (champs XTEND).

Action de login

Principe du login XTEND

XTEND prend en compte 2 types d'utilisateurs qui sont:

  • les utilisateurs anonymes
  • les utilisateurs identifiés

L'utilisateur s'identifie auprès du serveur XTEND via la page de login en fournissant un code utilisateur et un mot de passe.

L'action de login XTEND appelle un sous-programme L4G (web service) chargé de vérifier l'existence de l'utilisateur et la validité du mot de passe. Une erreur est postée (ADDMESSERR) pour invalider le login.

Une page XTEND 'protégée' sera visible uniquement par les utilisateurs identifiés.

On peut aussi protéger l'accès aux pages XTEND en fonction du profil XTEND dont le code est renvoyé par le programme de login (optionnel).

Voir login du site ASAMPLE.

Interface du sous-programme L4G de login

XTEND peut appeler tout sous-programme L4G dont les 12 premiers paramètres sont les suivants:

Subprog ACTION (AXPARCOD, AXPARVAL, AXUSERCODE, AXPWD, AXUSERPROF, AX3SOL,
 AX3FLDR, AX3LANG, AX3USER, AX3PWD, AXLOGCOD ,AXLOGVAL ...)
Variable Char     AXPARCOD()()
Variable Char     AXPARVAL()()
Variable Char     AXUSERCODE()
Value    Char     AXPWD()
Variable Char     AXUSERPROF()   
Variable Char     AX3SOL()()
Variable Char     AX3FLDR()()
Variable Char     AX3LANG()()  
Variable Char     AX3USER()()
Variable Char     AX3PWD()()
Variable Char     AXLOGCOD()()  
Variable Char     AXLOGVAL()()
...

Paramètre 

 Type

Description

AXPARCOD
AXPARVAL



Valorisé par le moteur XTEND




Paramètres contextuels clé/valeur valorisés par le serveur XTEND au moment de l'appel du sous-programme.
SITCOD : Code du site XTEND
USRCOD : Code utilisateur XTEND (vide si utilisateur anonyme)
USRPRF : Code profil XTEND
USRLANG: Code langue XTEND

AXUSERCODE

Saisi par l'utlisateur

Code utilisateur XTEND saisi par l'utilisateur

AXPWD

Saisi par l'utlisateur

Mot de passe saisi par l'utilisateur

AXUSERPROF

Renvoyé par X3

Code profil XTEND utilisé pour gérer l'accès aux pages

AX3SOL

Renvoyé par X3

Code solution X3

AX3FLDR

Renvoyé par X3

Code dossier X3

AX3LANG

Renvoyé par X3

Code langue X3 pour le login à AX3SOL/AX3FLDR

AX3USER

Renvoyé par X3

Code utilisateur X3 pour le login à AX3SOL/AX3FLDR

AX3PWD

Renvoyé par X3

Mot de passe X3 pour le login à AX3SOL/AX3FLDR

AXLOGCOD
AXLOGVAL

Renvoyé par X3

Informations complémentaires sur l'utilisateur, de type clé/valeur, qui seront stockées dans la session XTEND (bloc ASESSION).
Ex: NOM/DUPONT,TEL/0476232526,COMPANY/SAGE...

....

 

Le sous programme de login peut renvoyer d'autres informations qui pourront être 'mappées' sur des entités XTEND
Ex: Liste des adresses de livraison, liste des dernières factures ou commandes...

Fiche sous-programme

Fiche de description du sous-programme de login.

Les noms des groupes de publication des paramètres AX* doivent être respectés.

Code

Type

Dim

Type d'argument

Groupe de publication

 AXPARCOD

Char

20

Par adresse

AX_PAR

 AXPARVAL

Char

20

Par adresse

AX_PAR

 AXUSERCODE

Char

1

Par valeur

AXLOG_PAR

 AXPWD

Char

1

Par valeur

AXLOG_PAR

 AXUSERPROF

Char

1

Par adresse

AXLOG_PAR

 AX3SOL

Char

10

Par adresse

AXLOG_X3

 AX3FLDR

Char

10

Par adresse

AXLOG_X3

 AX3LANG

Char

10

Par adresse

AXLOG_X3

 AX3USER

Char

10

Par adresse

AXLOG_X3

 AX3PWD

Char

10

Par adresse

AXLOG_X3

 AXLOGCOD

Char

50

Par adresse

AXLOG_RES

 AXLOGVAL

Char

50

Par adresse

AXLOG_RES

Les paramètres suivants sont donnés à titre d'exemple et gérés par le développeur XTEND.
Une liste d'adresses de livraison et une liste d'adresses de facturation (10 lignes max) qui eront 'mappées' sur les entités SHIPADDR et INVADDR

SHIPADDR

Char

10

Par adresse

SHIPADDR

SHIPCITY

Char

10

Par adresse

SHIPADDR

SHIPZIP

Char

10

Par adresse

SHIPADDR

INVADDR

Car

10

Par adresse

SHIPADDR

INVCITY

Char

10

Par adresse

SHIPADDR

INVZIP

Char

10

Par adresse

SHIPADDR