Le serveur XTEND n'accède au back-office X3 qu'au travers de l'appel de web services X3 pour l'accès aux données ou le traitement des actions utilisateurs.
Le développeur XTEND doit avoir acquis une bonne connaissance de la mise en oeuvre des web services X3 avant d'entreprendre la réalisation d'une application XTEND (architecture, pools de connexions, publication, tests...).
Par contre aucune compétence en développement n'est requise pour programmer l'appel des web services via les classes stub/proxy.
Il est indispensable de disposer d'au moins un serveur de web services sur lequel seront publiés les sous-programmes ou objets X3 utilisés par les applications XTEND.
On peut choisir par exemple le même serveur X3WEB que celui qui héberge le serveur XTEND.
La première étape consiste à s'assurer que ce serveur est correctement configuré.
Le serveur de web service est identifié par un hostname et un port tcp. Pour la suite du document nous utiliserons l'adresse hostname:28880.
Simple Object Access Protocol et Hypertext Transfer Protocol sont les protocoles utilisés pour l'appel des web services X3
S'assurer que l'adresse hostname:port est accessible à partir du serveur XTEND.
port est le port du serveur web frontal. la valeur par defaut est 28880
Pour cela il suffit de vérifier que l'adresse http://hostname:28880/root/ affiche bien la page d'accueil du serveur d'administration après saisie du mot de passe (sage/sage) par défaut.
Toutes les solutions/dossiers X3 auxquels accèdent les applications XTEND doivent être publiés sur le serveur X3WEB qui héberge le serveur de web services.
Cette opération est effectuée par l'administrateur via la console X3 lors de la configuration du serveur X3WEB.
La liste des applications publiées et accessible via le menu 'Home/Administration'
Le serveur de web services met à disposition des applications tierces un ensemble de connexions X3 (client X3 de type web service) regroupés par 'groupe d'entrée' ou 'pool'.
Les pools de connexions sont créés et configurés via la console X3. La console permet entre autre de paramètrer le nombre de connexions du pool.
Le nombre de connexions attribué au pool détermine le nombre de requêtes (SOAP) qui peuvent être traitées simultanément par ce pools. Lorsque toutes les connexions sont occupées, les requêtes sont mises en file d'attente.
Le serveur de web service doit disposer d'au moins un pool de connexion (groupe d'entrées) par solution/dossier qui publie des web services à destination des applications XTEND.
Ces pools de connexion doivent être dans l'état 'démarré'et doivent disposer d'au moins une connexion libre (<poolentry>) .
La liste des pools de connexions est accessible via la fonction 'Serveur de web services/Pools de connexions'.
Les temps de réponse d'une application XTEND et donc la 'fluidité' du site web dépendent fortement des temps de réponse obtenus lors de l'appel des web services. Nous recommandons de contrôler régulièrement :
La publication des web services est effectuée par la fonction X3/
'Développement>Dictionnaire traitements>Traitements>Web services'.
Pour publier un web service objet il suffit de créer une fiche web service en indiquant le nom de publication (appelé aussi alias) et le code de l'objet (plus le code transaction).
La publication d'un objet X3 donne accès à toutes les actions de l'objet (lire, créer, enregistrer, supprimer par défaut) et à la liste gauche.
Le bouton d'action 'Supprimer' permet de 'dépublier' le web service.
Pour publier un web service sous-programme il faut tout d'abord créer une fiche sous-programme qui permet de déclarer les paramètres et les groupes de publication via la fonction:
'Développement>Dictionnaire traitements>Traitements>Sous-programmes'
Il faut ensuite publier ce web service (bouton publication) et lui attribuer un alias comme pour le web service objet.
Les groupes de publication permettent d'associer logiquement des paramètres (de même dimension) pour former des entités distinctes.
Chaque groupe (ou entité) peut être considéré comme un enregistrement d'une table ou comme un type structure ou record.
Ils sont utilisés dans le paramétrage XTEND pour effectuer les 'mappings' entre les paramètres des web services et les entités XTEND.
Exemple pour un sous programme qui renvoie 6 paramètres qui représentent une liste d'adresses de livraison (shipaddr, shipcity, shipzip) et une liste d'adresses de facturations (invaddr, invcity, invzip). Ces paramètres pourront être regroupés en 2 entités ou groupes logiques SHIPADDR et INVADDR.
Les noms des groupes de publication sont générés par X3. Ils correspondent aux codes des blocs des écrans.
Il est fortement recommandé de tester les web services sous-programmes ou objets X3 via la fonction 'Testeur de web services' du serveur X3WEB avant de les utiliser dans une application XTEND.
XTEND localise un web service par un identifiant unique valable pour tous les sites XTEND du dossier X3.
Cet identifiant fait référence à la fiche de localisation d'un web service qui contient entre autre les coordonnées du serveur de web service (hostname et port) et l'alias du pool de connexions.
Fonction
'Développement>Utilitaire>Divers>Pools Web services'