XML-GENCOR : Génération correspondance XML
BUT
Cette fonction permet de générer le contenu d’une partie d’un message XML à partir du contexte courant de la requête et d’une correspondance sortante. Cette fonction permet de rendre totalement transparent la structure et l’arborescence d’un message XML.
TYPE CARACTERE
SYNTAXE
PARAMETRES
Paramètre | E/S | O | Type | Description |
REF-MESSAGE-XML | E | Oui | Caractère | Référence Message XML mémorisé dans la structure WfEIAXmlMes : cette structure contient le contenu du message XML dans un format lisible par DIAPASON. Cette structure a été pré-initialisée avant l’exécution de la requête (requêtes REB contextuelles dans le cas de l’EIA) ou est initialisée avec la fonction XML-LECMESFIC : l’initialisation permet de renseigner ou non une référence de message (utile uniquement dans le cas où il faut lire simultanément plusieurs messages). La valeur peut être MESSAGE-COURANT (cas où un seul message a été initialisé) ou bien peut être définie par une variable locale, une constante (locale ou globale) ou une variable contextuelle. |
MODELE-XML | E | Oui | Caractère | Référence modèle XML permettant d’identifier la correspondance à rechercher. Le modèle doit être défini dans la bibliothèque des modèles XML. La valeur peut être définie par une variable locale, une constante (locale ou globale) ou une variable contextuelle. |
VERSION-MOD-XML | E | Oui | Caractère | Version modèle XML permettant d’identifier la correspondance à rechercher. La version doit être définie dans la bibliothèque des modèles XML. La version peut être VERSION-DEFAUT ou peut être définie par une variable locale, une constante (locale ou globale) ou une variable contextuelle. |
CORRESP-MOD-XML | E | Oui | Caractère | Référence correspondance permettant d’identifier la correspondance à rechercher. La correspondance doit être définie dans la bibliothèque des modèles XML. La correspondance peut être définie par une variable locale, une constante (locale ou globale) ou une variable contextuelle. |
TYPE-INSERTION | E | Oui | Figé | Les valeurs possibles sont les suivantes (uniquement sélectionnables dans l’assistant DIALOG) :
|
VALEUR | E | Non | Entier | Pour les types d’insertions 2 et 3 (voir paramètre précédent), indique la valeur du décalage de niveau. Paramètre non visible pour les types d’insertions 0 et 1. |
CLE1 ENTITE | E | Non | Caractère | Permet d’indiquer les informations permettant d’identifier la clé de l’entité utilisée dans la correspondance. La définition suit le principe de la fonction ENR-ACT-ENT pour les actions sur les entités ; ce paramètre permet d’identifier la clé 1 de l’entité éventuelle utilisée dans la correspondance. L’option PAS DE CLE permet de ne pas renseigner les autres paramètres. Exemple : une variable contenant un numéro de commande commerciale. |
CLE2 ENTITE | E | Non | Caractère | Permet d’indiquer les informations permettant d’identifier la clé de l’entité utilisée dans la correspondance (pour limiter le nombre de paramètres à transférer à la correspondance). La définition suit le principe de la fonction ENR-ACT-ENT pour les actions sur les entités ; ce paramètre permet d’identifier la clé 2 de l’entité éventuelle utilisée dans la correspondance. L’option PAS DE CLE permet de ne pas renseigner les autres paramètres. Exemple : une variable contenant un numéro de ligne de commande commerciale. |
CLE3 ENTITE | E | Non | Caractère | Permet d’indiquer les informations permettant d’identifier la clé de l’entité utilisée dans la correspondance. La définition suit le principe de la fonction ENR-ACT-ENT pour les actions sur les entités ; ce paramètre permet d’identifier la clé 3 de l’entité éventuelle utilisée dans la correspondance. L’option PAS DE CLE permet de ne pas renseigner les autres paramètres. |
Suite à son exécution, cette fonction retourne une valeur sous forme de variable pour préciser si le déroulement a été correct ou non : la variable retournée est vide si la fonction s’est déroulée correctement, sinon la variable contient *ERR suivie d’un code et libellée d’erreur ou *INC si l’exécution n’a pas pu être réalisée correctement.
EXEMPLE
VLO.Fonction = XML-GENCOR( REF-MESSAGE-XML= MESSAGE-COURANT , MODELE-XML= CLO."Modele_XML" , VERSION-MOD-XML= VERSION-DEFAUT , CORRESP-MOD-XML= CLO."Correspondance" , TYPE-INSERTION= NIVEAU CORR. , CLE1 ENTITE= PAS DE CLE )
Cette instruction permet de générer dans le message XML courant en cours de constitution, la correspondance référencée Correspondance en s’appuyant sur le modèle XML Modele_XML (en version défaut) ; le bloc de message XML est inséré au niveau défini sur la correspondance ; il n’y a pas de gestion de clé.
VLO.Fonction = XML-GENCOR( REF-MESSAGE-XML= MESSAGE-COURANT , MODELE-XML= CLO."Modele_XML" , VERSION-MOD-XML= VERSION-DEFAUT , CORRESP-MOD-XML= CLO."Correspondance" , TYPE-INSERTION= DERNIER NIVEAU GENERE , CLE1 ENTITE= VLO.Numero_Commande , CLE2 ENTITE= VLO.Ligne_Commande , CLE3 ENTITE= PAS DE CLE )
Cette instruction permet de générer dans le message XML courant en cours de constitution, la correspondance référencée Correspondance en s’appuyant sur le modèle XML Modele_XML (en version défaut) ; le bloc de message XML est inséré à partir du niveau courant de la dernière balise du message XML; il y a gestion de clé transmis à la correspondance (numéro de commande et numéro de ligne de commande).
Pour le principe de fonctionnement plus détaillé, voir la bibliothèque d’exemples DIAPASON.
NOTE
Dans une requête permettant de générer un message XML complexe à partir de transactions sortantes à générer, il est possible d’indiquer que ces transactions sortantes sont traitées ; pour cela , utiliser la liste standard WfEntSel telle que :
TEn : *TRS
Cl1 : Identifiant de la transaction sortante dans la boîte aux lettres du moniteur EIA