Web services
Cette fonction permet de générer simplement des web services SOAP à des applications extérieures à SAFE X3.
Pour publier un web service, les compétences requises sont celles d'un développeur SAFE X3.
Cette fonction gère les éléments suivants :
- Le nom du web service est le nom de publication qui sera fourni à l'extérieur
- Génération du traitement qui sera executé à l'appel du web service (appelé programme Wrapper WJ+nom du web service, si le nombre de champs à publier est très important le programme wrapper sera scindé en deux et il y aura un second traitement de nom WK + nom du web service)
- Le mapping est défini dans un onglet dédié, dans lequel il est possible, avec certaines règles, de renommer les champs et les groupes, de désélectionner des champs, de préciser des options permettant de générer des contrôles de type dans le fichier XSD (dont le but est de permettre un premier niveau de validation des flux produits par des applications tierces avant entrée dans le progiciel)
- Génération des fichiers xml d'écrivant le web service au format SAFE X3 et au format XSD
Il existe deux types de web services :
Sous-programme
Le nom du sous-programme doit être renseigné. Il doit avoir été préalablement crée dans le dictionnaire des sous-programme.
Les champs du web service sont les paramètres du sous programme. Ils sont assemblés en groupe, par défaut selon leur ordre et leur cardinalité, il est ensuite possible de modifier le regroupement dans l'onglet de mapping
Objet
Un code objet, et éventuellement un code transaction, doivent être renseignés.
Les champs du web service sont les champs des écrans de l'objet
Il est possible, mais déconseillé pour ne pas surcharger le flux envoyé, de publier les champs invisibles associés à la fenêtre de visualisation publiée.
Cas du serveur XTEND
En paramétrant une interface XTEND, le web service est généré automatiquement en appuyant sur l'icone "Générer l'accès"
Pré-requis
Reportez-vous à la documentation de Mise en oeuvre
Gestion de l'écran
En-tête
Nom de publication (champ PUBLI) |
Identifiant du résultat de la publication |
champ LIBW |
Type (champ TYPOBJ) |
Type de fonction à publier (objet ou non objet) |
Onglet Définition
Objet
Objet (champ OBJET) |
Objet à publier. |
Transaction (champ VARIANTE) |
Choix de la transaction, pour un objet ayant des transactions. |
champ LIBVAR |
Zones invisibles (champ INVISIBLE) |
Flag permettant la publication ou non des champs invisibles transmissibles. |
Service
Script (champ PRG) |
Pour une fonction non objet, on publie le traitement et sous-programme qui lui sont associé. |
Sous-programmes (champ SUBPRG) |
Informations
Publié le (champ DATPUB) |
Informations générées par la publication. |
Par (champ USERP) |
Programme (champ NOMPG) |
Onglet Mapping
L'onglet mapping permet :
- De sélectionner les champs à publier
- De renommer les noms de groupes et les noms de champs
- De réorganiser, avec certaines contraintes, les champs publiés dans de nouveaux groupes
- De définir des propriétés sur les champs permettant de créer des XSD plus complètes afin de permettre de valider des flux XML avant leur entrée dans le progiciel, ou avant de les soumettre à un logiciel tiers
Examinons les différentes valeurs qu'il est possible de renseigner dans cet onglet.
La colonne "Sélection" permet de sélectionner ou de sélectionner un champ du flux XML produit ou interprété par le serveur de web services. La déselection unitaire d'un champ de contrôle dans les tableaux (classiquement appelé champ numéro de ligne) est interdite.
La colonne "Groupe" permet de regrouper les champs dans des entités homogènes. Par défaut les champs sont intégrés dans des groupes :
- selon leur ordre de définition et tant qu'ils ont la même cardinalité pour les sous programmes. On trouvera ainsi par défaut des groupes G1, G2, ..Gn
- par bloc d'écran pour les objets, dont le nom par défaut est l'abréviation du masque d'écran suivi de "_" et du rang du bloc
Il est possible de renommer les groupes, individuellement ou pour tout le groupe existant pour les sous-programmes, pour tout le groupe pour les objets, et d'attribuer un même nom de groupe à plusieurs entités à la condition qu'elles soient contigues dans le flux produit et qu'elles soient de même cardinalité (Il n'est pas possible de regrouper un bloc liste avec un bloc tableau, ou une variable dimensionée avec une variable qui ne l'est pas).
La colonne "Niveau" est utilisée exclusivement pour produire les XSD adaptées aux modèles d'export, elle n'est pas saisissable.
La colonne "Code" est le nom de l'élément. par défaut c'est le nom du champ ou du paramètre du sous-programme. Il est possible de le renommer.
La colonne "Longueur" permet de définir (si elle n'est pas déjà alimentée par défaut) la longueur maximum du champ, et ce afin de permettre de faire un contrôle de la conformité du flux dans la XSD.
La colonne "No menu local" permet d'identifier les champs qui sont associés à des énumérations. Dans ce cas, la valeur attendue dans le progiciel est un entier correspondant à l'indice de la valeur choisie dans la liste. Si cette colonne est renseignée, la description du menu local sera renseignée dans la XSD et apparait selon une convention de nommage dans touts les langues du dossier. Il est à noter une exception pour le menu local 1 qui est traduit en type booléen.
Voici un exemple de contenu de XSD pour un champ de type menu local
-<xs:simpleType name="TYPIMP">-<xs:annotation> <xs:documentation>Local Menu 22</xs:documentation> <xs:documentation xml:lang="fr">AUS1_3~TYPIMP: Type</xs:documentation> <xs:documentation xml:lang="en">AUS1_3~TYPIMP: Type</xs:documentation> </xs:annotation>-<xs:restriction base="xs:string"> <xs:enumerationvalue="00:FRA:Non initialisé" /> <xs:enumerationvalue="01:FRA:Normal" /> <xs:enumerationvalue="02:FRA:Fax" /> <xs:enumerationvalue="03:FRA:Thermique" /> <xs:enumerationvalue="04:FRA:Couleur" /> <xs:enumerationvalue="00:ENG:Not initialized" /> <xs:enumerationvalue="01:ENG:Normal" /> <xs:enumerationvalue="02:ENG:Fax" /> <xs:enumerationvalue="03:ENG:Thermal" /> <xs:enumerationvalue="04:ENG:Colour" /> </xs:restriction> </xs:simpleType>Exemple pour un booléen
-<xs:simpleType name="USREXT">-<xs:annotation> <xs:documentation>Local Menu 1</xs:documentation> <xs:documentation xml:lang="fr">AUS5_1~USREXT: Utilisateur externe</xs:documentation> <xs:documentation xml:lang="en">AUS5_1~USREXT: External User</xs:documentation> </xs:annotation> <xs:restrictionbase="xs:boolean" /> </xs:simpleType>Cette méthode permet à l'application tierce de recevoir et de transmettre l'information sous forme de chaine de caractères, et le serveur de Web services traduira l'information en numérique ou en chaine en fonction des valeurs définies dans le menu local.
Les champs "Saisie mininum" , "Valeur" et "Inclue", et les 3 pendants pour la saisie maximum permettent de définir des restrictions dans la XSD pour vérifier la validité des flux. Il est ainsi possible de définir les bornes (inclues ou non) entre lesquelles la valeur doit être comprise.
Les champs "FractionDigits" et "TotalDigits" permettent, pour les champs numériques, de définir le nombre maximum de chiffres décimaux et le nombre de chiffres totaux de l'information manipulée.
Le champ "Pattern" permet de définir un modèle régulier de format (cf toute documentation sur les XSD).
Tableau
Sélection (champ SELECT) |
Groupe (champ GROUPE) |
Niveau (champ NIVEAU) |
Code (champ CHAMP) |
Intitulé (champ INTIT) |
Nom interne (champ GRPCHP) |
Type paramètre (champ TYPPAR) |
Longueur (champ LONG) |
No menu local (champ NOLIB) |
Dimension (champ DIME) |
Zone obligatoire (champ OBLIG) |
Type argument (champ TYPFCT) |
Saisie minimum (champ AUTMIN) |
Valeur (champ VALMIN) |
Inclue (champ MININCLU) |
Saisie maximum (champ AUTMAX) |
Valeur (champ VALMAX) |
Inclue (champ MAXINCLU) |
FractionDigits (champ FRACTIONDI) |
TotalDigits (champ TOTALDIGIT) |
Pattern (champ PATTERN) |
Déselectionner groupe |
Déselectionner groupe |
En étant positionné sur une ligne du tableau, cette action permet de désélectionner tous les champs du groupe. |
Sélectionner groupe |
En étant positionné sur une ligne du tableau, cette action permet de sélectionner tous les champs du groupe. |
Boutons spécifiques
Visu XML |
Permet de visualiser la description XML du web services dans une fenêtre browser. |
Visu XSD |
Permet de visualiser la description du XSD du web services dans une fenêtre browser. |
Copie |
Barre de menus
Ce bouton permet d'enchainer la publication de tous les web services définis dans la table AWEBSERVIC. Le compte rendu de validation est affiché dans une trace. |
Cette action est proposée une fois pour initialiser la table AWEBSERVIC à partir des web services anciennement définis uniquement sur disque. |