Introduction

Qu'est que XTEND ?

XTEND est un atelier de développement d'applications web intégré à la plateforme technologique SAFE X3. Il est fortement couplé aux solutions SAFE X3 (applications Sage X3, Sage Warehousing, Sage RH).

Il a été conçu pour permettre aux développeurs X3 :

  • De réaliser des applications web avec un minimum de compétences dans le domaine des technologies Internet
  • De maîtriser l'ensemble des processus de l'application (administration, traitements, accès aux données...) via des fonctions X3

Il permet de réaliser de nouvelles interfaces web remplaçant les interfaces standardisées des solutions SAFE X3.

Il permet aussi de réaliser tout type d'application web cross-browsers :

  • Des sites web institutionnels
  • Des sites d’e-commerce en B to B et en B to C
  • Des sites intranet pour la saisie ou la consultation de données de l'ERP

Le concept

Le concept utilisé par XTEND pour 'dynamiser' les pages HTML est l'insertion de tokens dans le code source HTML qui permettent de modifier dynamiquement les propriétés des tags HTML (a, input,span, td, div...).

Tous les éléments qui interviennent dans la construction d'un site web (tokens, pages, bloc d'itération, accès aux données, action utilisateurs...) sont modélisés sous la forme d'objets X3 et paramétrables via un ensemble de fonctions X3. Ces éléments constituent un référentiel appelé dictionnaire ou repository sur lequel s'appuie le moteur XTEND pour 'dynamiser' les pages HTML.

Un site XTEND est rattaché à un dossier X3. Il est constitué des éléments suivants :

  • un dictionnaire ou référentiel
  • un ensemble de pages html et ressources graphiques
  • un ensemble de web services pour l'accès données et le traitements des actions utilisateurs.

SEEINFOBien qu'étant défini au niveau d'un dossier X3, un site XTEND peut accéder aux données et traitements d'autres solutions/dossiers X3 via l'appel de web services.

 Pré-requis

Pour développer des sites web standards avec XTEND il est nécessaire de disposer des compétences suivantes:

  • Développement X3 (indispensable)
  • Paramétrage XTEND (indispensable)
  • Web services X3
    • Architecture et publication (indispensable)
    • Aucune compétence en programmation
  • Design HTML
    • HTML (standard)
    • Logiciel de création web type Dreamweaver (basique)
    • La maîtrise des styles css est un plus
  • JavaScript (basiques)
    • Utilisé pour les contrôles de saisies

Architecture fonctionnelle

Le design des pages HTML

XTEND est indépendant du logiciel de création des pages HTML qui est laissé au choix du développeur.

Généralement le design du site est réalisé par une agence spécialisée qui livre un projet HTML composé d'un ensemble de pages (statiques) et de composants graphiques conformes à la charte graphique.

La dynamisation des pages HTML

L'intérêt et le succès d'un site web est fortement lié à sa capacité à publier des informations personnalisée et rafraichies en temps réel.

Avec les environnements de développement web classiques (PHP, ASP.NET, JSP...), l'accès et l'affichage des données 'dynamiques' ainsi que les traitements des actions utilisateur sont effectué par programmation sur le serveur web et demandent de bonnes compétences dans ces technologies.

XTEND propose un mode de développement web par paramétrage et insertion de tokens, facile d'accès et accessible aux développeurs non spécialistes.

Exemple

<table>
<tr><td>Ref</td><td>Price</td><td>Stock</td></tr>
<!adx='blocIteration'>
   
<tr>
         
<td><a adx="gotoDetail"><span adx'REFNUM'></span></a></td>
         
<td adx="PRICE"></td>
         
<td adx="STOCK"></td>
   
</tr>
<!adx='blocIteration'>
</table>

Ref 

Price

Stock

 PUZ001

13.78

10

 PUZ002

2.30

5

PUZ003

6.52

0

Les traitements et l'accès aux données

L'accès aux données ainsi que tous les traitements déclenchés par les actions utilisateurs sont effectués dans X3 via l'appel de web services.

Aucun traitement fonctionnel n'est effectué sur le serveur web ce qui donne au développeur X3 une entière maîtrise sur les programmes mis en oeuvre.

La sécurité

L'authentification des utilisateurs (login) est effectuée dans X3 via l'appel d'un sous-programme spécialisé.

L'accès aux ressources (pages ou web services) ainsi que le cryptage des données (formulaires, consultation de données confidentielles) est effectué par paramétrage X3.

L'administration

Les sites web développés avec XTEND sont complètement intégrées à une solution SAFE X3, ce qui signifie que les composants du site (design HTML, traitements, données) font partie du dossier X3 auxquels ils sont rattachés.

XTEND met à disposition du webmaster un ensemble de fonctions X3 pour l'administration, en particulier une fonction de copie d'un site web d'un dossier de développement vers un dossier de production.

Architecture technique

XTEND s'appuie sur une architecture multi-tiers constituée de :

  • Un serveur HTTP frontal du serveur X3WEB(serveur HTTP front-office)
  • Un serveur XTEND du serveur X3WEB(moteur de publication des pages HTML appelé aussi moteur XTEND)
  • Un serveur d'application X3
  • Un (ou plusieurs) serveur de web services

Le serveur XTEND est hébergé dans le serveur X3WEB sous la forme d'une nouvelle application web.

Comme pour les autres applications web (web services, VT...) la configuration du serveur XTEND est effectuée via la console d'administration X3.

La publication d'un site XTEND sur un serveur est automatique. Elle est effectuée via une fonction X3 et ne nécessite aucun redémarrage du serveur X3WEB.

Le serveur HTTP frontal

Il s'agit du serveur HTTP Apache installé avec le serveur X3WEB. Il est configuré pour rediriger les requêtes XTEND vers le moteur XTEND.

Le serveur XTEND

Le moteur XTEND gère les session utilisateurs, effectue le traitement des requêtes HTTP et délivre les pages HTML :

  • gestion des droits d'accès
  • appel des web services pour traiter les actions utilisateurs
  • appel des web services pour l'accès aux données
  • parsing de la page HTML et interprétation des tokens
  • construction dynamique de la page résultat
  • Le serveur d'application X3

    Le serveur X3 est vu par le moteur XTEND à la fois comme un serveur de ressources et un serveur de traitement.

    Serveur de ressources

    XTEND accède aux ressources fichiers au travers du serveur HTTP du serveur X3 principal(différent du serveur HTTP frontal). Ces fichiers sont stockés par dossier X3 sous le répertoire X3_PUB de la solution.

    Liste des fichiers utilisés par XTEND:

    • le dictionnaire du site
      • X3_PUB/NOMDOSSIER/X_TEND/X_GEN/NOMDOSSIER
      • le dictionnaire est constitué de fichiers XML qui sont générés lors de la validation des paramètres X3
    • les éléments du design HTML
      • X3_PUB/NOMDOSSIER/X_TEND/X_HTML/NOMDOSSIER/LANG
      • ce répertoire contient généralement la copie (FTP) du projet HTML
    • les menus locaux X3
      • X3_PUB/NOMDOSSIER/GEN/LANG/MENL
    • les fichiers de données utilisateur dont l'emplacement est paramétrable
      • /X3_PUB/NOMDOSSIER/X_TEND/X_FILAPP
      • /X3_PUB/NOMDOSSIER/X_TEND/X_FILES

    Serveurs de traitements

    L'ensemble des traitements fonctionnels utilisés par le serveur XTEND sont des sous-programmes L4G ou objets X3 qui ont été publiés sous la forme de web services.

    L'appel du traitement X3 est effectué via un ou plusieurs serveur(s) de web services qui est(sont) défini(s) par paramétrage.

    SEEINFO Il n'y a aucun lien direct entre le moteur XTEND et les serveurs de traitements X3. Tous les appels de services (accès aux données et traitement des actions utilisateur) passent par des serveurs de web services. XTEND n'accède d'aucune façon à la base de donnée X3.

    Les web services

    Comme nous l'avons vu précédemment, le moteur XTEND communique avec le monde X3 uniquement par des appels de web services. Aucun site XTEND ne peut fonctionner sans l'utilisation de web services.

    L'intérêt d'XTEND est qu'il masque complètement la complexité d'appel d'un web services comme l'utilisation des classes stubs ou proxy (en JAVA, ASP.NET ou PHP) et la création/traitement des paramètres/données XML.

    Toutes les opérations de publication, d'appel, de traitement du résultat XML et des messages applicatifs sont effectuées par paramétrage X3.

    Les fonctions de paramétrage XTEND permettent:

    • de déclarer les 'pools de web services' utilisés par les sites
    • Adresse/Port d'un serveur de web service et alias du 'pool de connexion'
    • de définir un 'pool de web services' par défaut pour chaque site
    • de définir si nécessaire un 'pool de web services' par action utilisateur

    Généralités

    Démarrage

    Avant de tout comprendre, on doit vérifier que le serveur XTEND fonctionne correctement.

    Ensuite  on peut apprendre comment créer rapidement son site XTEND par duplication du site exemple fourni.

    Voici la page Démarrage.

    Dépannage

    Dans le cas ou le serveur XTEND ne fonctionne pas correctement, voici quelques pistes pour son dépannage.

    Exemple de site ASAMPLE

    Le site

    Le site ASAMPLE fonctionne sur toutes les applications SAFEX3. il ny a aucune adhérence aux fonctions particulières des applications. Ce site s'appuie sur des données uniquement superviseur.

    Ce site est un exemple simple qui permet de tester le bon fonctionnement du serveur XTEND dans un environnement client et qui donne quelques utilisations simples.

    Cette page décrit les différents éléments fournis pour ce site.

    Gestion contenu

    Comment peut-on aller rechercher du contenu html paramétré dans une fonction XTEND? Voici la page expliquant cette gestion de contenu.

    Login

    Comment est géré la gestion du login dans XTEND pour le site ASAMPLE? Voici l'explication.

    Formulaire

    Comment peut-on mettre en oeuvre la saisie dans un formulaire de contact ? voici la page d'explication.

    Liste des pays

    La page 'liste des pays' du site ASAMPLE illustre le concept d'accès aux données proposé par XTEND.

    Comment peut-on facilement récupérer le résultat d'une table dans X3. Voici la page d'explication.

    Concepts

    Fonctionnement

    Comment fonctionne le serveur XTEND ?

    Comment sont récupérés les paramètres saisis dans X3?

    Comment le serveur XTEND interprète les pages html ?

    Voici la description du fonctionnement d'XTEND.

    Les tokens

    Comment inserer dans les pages html les éléments du back office ? commandes X3, ou tout élément fonctionnel d'une application SAFE X3. 

    Comment fonctionnent les tokens, les éléments html insérés dans ces pages ?

    Actions

    Comment est paramétrée une action utilisateur sur une page d'un site? Par exemple un clique sur un champ dans une page html. Voici l'explication.

    Accès données

    Comment récupère-t-on dans une page web les données d'une application SAFE X3 ?

    Voici l'explication.

    Outils

    Utilitaires X3

    Voici quelques fonctions X3 qui permettent de personnaliser le site Web.

    Aide développement

    Comment utiliser les outils et les rapports générés dans la page web pour aider au developpement.

    Suivi activité

    Comment utiliser les fichiers logs qui sont générés directement sur le serveur XTEND?

    Avancé

    Librairie standard

    Voici la description de la librairie javascript XTEND fournie.

    Web services REST

    Comment appeler un web service REST uniquement dans un site XTEND?

    Librairie AJAX

    Comment est constituer la librairie AJAX XTEND ?

    Scripting serveur

    Comment faire du javascript coté serveur ?

    Configuration

    Voici quelques configuration en dehors des paramètres dans X3.