Skip to main content
Skip table of contents

Paramétrer un message entrant XML


Des fichiers au format XML sont déposés régulièrement dans un dossier, et on souhaite pouvoir les récupérer depuis ce dossier et les importer dans DIAPASON.

➡️ On va donc paramétrer un message entrant !!! 📂 -->📄--> 💻

Comment faire ? 🧐

Créer le modèle de XML ( et le compléter 😉)

Vous disposez d’un exemple type du fichier XML à importer dans DIAPASON. La première étape va être de “reconstruire” ce fichier XML dans DIAPASON !

En gros, toutes les balises du fichier XML devront être recréées dans un modèle XML dans DIAPASON.

Il faudra donc bien faire attention à prendre le fichier XML le plus complet possible, avec toutes les balises qu’il est possible d’avoir, pour le traduire dans DIAPASON !

A noter qu’on va pouvoir simplement importer ce fichier XML modèle pour construire la trame dans DIAPASON ! 💪

Dans DIAPASON, ça se passe par ici :

image-20251105-134741.png

On va donc pouvoir créer un nouveau modèle en important notre fichier modèle :

image-20251105-135526.png

  • Modèle XML : on vient nommer le modèle XML de manière logique

  • Balise départ : on doit rentrer ici la balise de départ de notre fichier modèle XML, sans quoi il ne pourra pas être lu !

C'est à dire ?

C’est la balise tout en haut !

image-20251106-145933.png

  • Fichier Exemple : on entre ici l’adresse du fichier XML “exemple type” qu’on veut importer pour construire la trame de notre modèle XML !

Voir la description complète des champs du modèle XML ici Définition des modèles XML

Une fois le modèle XML créé à partir de notre fichier XML type, on peut aller consulter la structure qui a été construite via “Visualisation structure” :

image-20251105-141234.png

Et on a donc accès à la structure du modèle XML.

On y trouve:

  • des balises

  • des balises valeur

  • des attributs

Détail des champs de la structure

Mais ce modèle XML n’est pas forcément complet ! Cela dépend du fichier XML type qu’on a utilisé pour le créer.. il est donc possible de venir le modifier pour ajouter des branches !

Pour cela, on clique sur “Définition structure” depuis le modèle XML :

image-20251105-153151.png

On peut ainsi rajouter des balises dans le modèle XML ! Voir Structure des modèles XML

Basculer le modèle de XML en exploitation

Pour simplifier les mises à jour sur les modèles XML, on a séparé dans DIAPASON les modèles “en développement” et les modèles “en exploitation”.

Les mises à jour se font en développement, pour éviter d’avoir des soucis si les modèles en exploitation sont utilisés.

Une fois le modèle créé en développement, il faut donc le basculer en exploitation ! Pour cela, on va lancer l’action “Transfert en exploitation” :

image-20251106-151614.png

Si on repasse en Exploitation un modèle XML qui a été beaucoup modifié, il peut arriver que ça tombe en erreur. Il faut alors utiliser l’action “Transfert en Exploitation forcé”.

On retrouvera donc notre modèle dans le menu suivant :

image-20251110-162916.png

Créer les correspondances et les variables XML

Une fois le modèle XML créé, on va pouvoir associer des variables XML aux différentes balises. On pourra ensuite transférer les valeurs des balises dans les variables XML et on les récupèrera ainsi dans DIAPASON ( c’est une étape suivante ! 😉 ).

Dans cette étape, la première question a se poser est : quelles informations souhaite-t-on récupérer dans DIAPASON depuis notre XML ? Toutes les informations du XML ne nous intéressent pas !!!

Pour notre exemple, on veut récupérer les informations suivantes :

Une correspondance peut correspondre à une balise nœud, ou à une balise valeur selon le cas. On va définir les correspondances de manière à identifier de manière unique les informations que l’on souhaite récupérer.

Ici, le numéro et la date de la facture sont présents une seule fois chacun dans le XML: aucune autre balise des autres blocs ne porte le nom <ram/ID> et <udt:DateTimeString>. Ces deux informations sont placées sous le même nœud <rsm:ExchangedDocument>.

On va donc pouvoir créer une correspondance au niveau du nœud <rsm:ExchangedDocument>, qui englobera le numéro et la date de facture !

Ici, la balise <ram:GlobalID> est présente plusieurs fois dans le bloc <ram:SellerTradeParty>, mais également dans d’autres blocs ( dans le bloc des informations de l’acheteur notamment !)

  • On va donc positionner une correspondance sur la balise <ram:GlobaleID> pour pouvoir boucler dessus et récupérer les différentes valeurs.

  • On va également positionner une correspondance sur la balise <ram:SellerTradeParty>, pour pouvoir identifier de manière unique la balise <ram:GlobaleID> et ne pas la confondre avec les balise de même nom qui sont dans d’autres blocs.

Une fois qu’on a identifié les correspondances “en théorie”, on va les créer dans DIAPASON. Ca se passe par ici :

image-20251106-090202.png

On crée une nouvelle correspondance et on remplit ainsi :

image-20251106-095309.png
  • Modèle : on entre ici le nom du modèle XML crée précédemment et passé en exploitation

  • Version : on entre ici la version du modèle XML crée précédemment et passé en exploitation

  • Correspondance : on vient nommer notre correspondance. On va lui donner un nom logique pour pouvoir l’identifier facilement ! Ici on a choisit “E-” pour “Entrant” et “STPGI” pour le nom de la balise du fichier XML, qui est “SellerTradePartyGlobalID”. Il n’y a pas d’obligations là-dessus, mais il faut pouvoir s’y retrouver par la suite !

  • Désignation : on va nommer notre correspondance de manière logique pour s’y retrouver ! Ici, le plus évident c’est de lui donner le même nom que la balise.

  • Commentaire Zone de texte libre permettant de données des informations complémentaires à titre d’information.

image-20251106-095324.png
  • Type correspondance : on met évidemment “Entrant”, car c’est un message entrant qu’on est entrain de paramétrer 😉

  • Balise début : on vient dérouler le fichier XML pour sélectionner la balise de départ de la correspondance.

C'est à dire ?

Dans nos exemples présentés plus haut, on aura donc :

-pour cette correspondance, balise de départ -> <rsm:ExchangedDocument>

-pour cette correspondance, balise de départ -> <rsm:GlobalID> car on a directement placé la correspondance dessus

  • Action interne : on met “INI-CTX- Initialisation Contexte/Variable

Pour plus de détails sur cette étape voir Définition des correspondances

Est-ce que cette correspondance comporte une valeur qu’on veut récupérer dans DIAPASON ?

  • Si c’est une balise nœud => non !

  • Si c’est une balise valeur => logiquement oui !

Si oui, on va aller associer la/les balises à des variables XML ! Pour cela, depuis la correspondance, on clique sur “Définition / Modèle”:

image-20251106-100546.png

Le modèle XML s’affiche: on le déroule pour trouver la balise sur laquelle on a la correspondance, qui est en vert :

Description de la fiche de définition du détail de correspondances :

Onglet « Définition » :

  • Ordre : Numéro ordre de traitement de la correspondance. Cet ordre permet de prioriser lors du traitement du message les affectations des variables et permet donc de se détacher de la structure du message lui-même. Par exemple, il est tout à fait envisageable d’avoir un message XML présentant une balise <OF> suivie d’une balise <Etape> et de vouloir d’abord initialiser la variable réceptionnant la valeur de la balise <Etape>.

  • Variable : Référence variable associée à la balise. Les variables possibles sont déterminées en fonction de l’action interne (définie sur l’entête de correspondance). Le tableau ci-dessous présente un récapitulatif des variables par action interne :

Action

Type

Description

O ?

ACT-AP-RE

VFL

SFL

XML

Variables Standard (APL)

Variables Spécifiques (APL)

Variables XML

Variables de l’action :

AppLigDatRec => Date réception

AppLigQteIntRec => Quantité Interne Déclarée

AppNumBL => Numéro de BL

RefPalette => Numéro de palette

RefTypePalette => Type Palette

ACT-FA-DE

XML

Variables XML

Variables de l’action :

CdeNumCom => Numéro de cde de production

CdeNumLig => Numéro de ligne de cde.

GamEtaRef => Référence étape file d'attente

GenEnrRefUtilCre => Utilisateur origine Déclaration

GenRefArt => Référence article

GenRefTypeArt => Type article (C ou R)

LanSerCTRef => Référence Caractéristique Technique

LanSerFabDecCtx => Contexte Déclaration de fabrication

LanSerFabDecMod =>Mode de déclaration

LanSerFabOF => Numero d'OF

LanSerFabQteDec => Qte déclarée.

LanSerFabQteTyp => Déc. / Reste à Fabriquer ou /Qté Condi.

LanSerFabQteUnMe => Unité de mesure déclaration.

LanSerReeDecDat => Date de déclaration.

LanSerReeDecHeu => Heure Réelle de déclaration

LanSerRef => Référence Série

LanSerRLRef =>Référence Regroupement Local

RefEmplaStock =>Reference emplacement stock.

RefPalette => Numéro de palette.

RefTypePalette => Type palette.

ResGenRef => Référence ressource Déclaration

StoFluSecEntRef => Section entrée en stock.

SuiIdeRef =>Identifiant annulation de déclaration

ACT-INF-SUI

XML

Variables XML

Variables de l’action :

Action => Action à mener

FatCatDecCl2 => Référence Etape

FatCatDecEnt =>Entité pour Informations Suivies

FatCatDecEntRef => Référence Entité

FatCatDecRef =>Référence Famille Informations Suivies

LanModTyp =>Mode Lancement sur Entité.

+

+

+

+

ACT-ORDO

XML

Variables XML

ACT-PRO

XML

Variables XML

ACT-STO-IND

XML

Variables XML

Variables de l’action :

Action => Action à mener

EntCl1 => Référence Inventaire

InvDes => Désignation Inventaire

InvGenListePrevDate => Date Prévue Gén. Liste Comptage

InvGenListePrevHeure => Heure Prévue Gén. Liste Comptage

InvPhotoPrevDate => Date Prévue pour Photo.

InvPhotoPrevHeure => Heure Prévue pour Photo

InvTyp => Référence Inventaire Type

+

+

+

ENT-MAJ

XML

Variables XML

Variables de l’action :

Action => Action à réaliser

Présentation => Présentation

INI-CTX

XML

SCR

VCR

Variables XML

Variables Standards Critères

Variables Spécifiques Critères

INI-REB

XML

SCR

VCR

Variables XML

Variables Standards Critères

Variables Spécifiques Critères

Champs de la liste de la requête REB définie sur l’entête

INI-REN

XML

SCR

VCR

Variables XML

Variables Standards Critères

Variables Spécifiques Critères

  • Balise : Bouton permettant de sélectionner la balise sur laquelle la correspondance doit s’effectuer. Cette zone est inactive dans ce cadre de définition puisque le choix de la balise se fait en se positionnant dessus dans le tree-view.

  • Visib. Bal. Sup. Si coché, ce flag indique que si la balise en cours de définition n’est pas présente dans le message (occurrence 0/1 ou 0/n), DIAPASON remontera les niveaux d’arborescence du message XML traité et cherchera la première balise ayant le même nom. Si il en trouve une, il affectera alors la valeur à la variable rattachée à la balise non présente.

  • Formule Référence formule. Possibilité de re-travailler la valeur de la balise courante par rapport à des règles données (exemple, calcul d’une variable date à partir de trois balises <jour>, <mois>, <annee>). Voir chapitre détaillant la définition des formules.

  • Par. 1 Formule Paramètre d’entrée éventuel de la formule.

  • Par. 2 Formule Paramètre d’entrée éventuel de la formule.

  • Par. 3 Formule Paramètre d’entrée éventuel de la formule.

  • Par. 4 Formule Paramètre d’entrée éventuel de la formule.

  • Par. 5 Formule Paramètre d’entrée éventuel de la formule.

  • Valeur Alpha. Valeur défaut alphanumérique. Ce champ est actif si la variable associée est de type alphanumérique.

  • Valeur Num. Valeur défaut numérique. Ce champ est actif si la variable associée est de type réel ou entier.

  • Valeur Date Valeur défaut date. Ce champ est actif si la variable associée est de type date.

  • Valeur Log. Valeur défaut logique. Ce champ est actif si la variable associée est de type logique.

Principe d’affectation des valeurs défaut :

La variable associée est initialisée par sa valeur défaut définie sur sa définition. Si une valeur défaut est définie au niveau de la correspondance, alors elle lui est affectée. Enfin si la lecture du message renvoie une valeur par rapport à la balise donnée, alors elle lui est affectée.

Onglet « MàJ Complémentaires »

image-20240417-073018.png
  • MàJ Comp. Le bouton permet d’accéder à un éditeur en saisie pour insérer un bloc Progress exécuté en fin de traitement de la correspondance. Ainsi il est possible de re-travailler la valeur récupérée selon des règles de gestion éventuelles.

Onglet « Définition Balise »

Toutes les informations de cet onglet sont en consultation. Elles permettent d’avoir en ligne les informations inhérentes à la balise courante.

image-20240417-073037.png
  • Type Nœud: Indique le type de la balise. Les différents types sont :

    • ‘B’ : balise. Ce type défini un ensemble (fils) de balises de tout type.

    • ‘V’ : Valeur. Une balise valeur est une balise de dernier niveau (aucun fils) contenant une valeur.

    • ‘A’ : Attribut. Une balise attribut décrit plusieurs valeurs chacune étant décrite par Var = Valeur et ce, dans le référencement de la balise elle-même (exemple : <Balise_Attr Var1=Val1 Var2=Val2 ... /> )

  • N° Enfant : Numéro ordre de description dans le modèle XML par rapport à la balise père.

  • Modèle Pré-Défi. : Si renseigné, ce champ indique que la balise provient de ce dit modèle pré-défini. Voir chapitre détaillant la gestion des modèles XML.

  • Version Pré-Défi. : Si renseigné, ce champ indique que la balise provient de ladite version du modèle pré-défini sus renseigné. Voir chapitre détaillant la gestion des modèles XML.

  • Référence : Référence ou nom de la balise.

  • Désignation : Désignation de la balise.

  • Occurrence: Règle permettant d’indiquer si une balise est obligatoirement existante dans un message XML et si oui permet d’indiquer si elle peut se répéter ou non :

    • 1/1 : Balise obligatoirement présente dans le message. Elle y sera qu’une fois.

    • 1/n : Balise obligatoirement présente dans le message. Elle peut être répétée.

    • 0/1 : Balise non obligatoirement présente dans le message. Dans le cas où elle est présente, elle n’y sera qu’une fois.

    • 0/n : Balise non obligatoirement présente dans le message. Dans le cas où elle est présente, elle peut être répétée.

  • Format XML : Zone non gérée actuellement, Sert à titre d’information.

  • Format Diapaso. : Zone non gérée actuellement. Sert à titre d’information.

  • Commentaire : Texte libre permettant de donner des informations complémentaires éventuelles.

On y associe une variable XML créé pour l’occasion.

Où créer la variable XML ?

C’est par ici :

Et on va répéter ça pour toutes les correspondances créées préalablement ! On va venir leur associer à chacune une variable XML.

Une fois les correspondances créées, il faut impérativement les générer ! Sinon ça ne marchera pas 😉 Pour cela, sur la/les correspondances à générer, on lance l’action “Génération” puis “Correspondances Sélectionnées”:

image-20251106-163125.png

Pour plus de détails sur cette étape voir Définition du détail des correspondances .

Créer la requête REB

En reprenant notre exemple, on souhaite toujours récupérer les données suivantes, et comme expliqué précédemment, on a créé 3 correspondances :

Comment écrire la requête ?

image-20251106-163747.png

La requête sera lancée une fois qu’on aura récupéré notre fichier dans DIAPASON 😉 on met cette instruction en début de requête pour récupérer le fichier “en cours” !

image-20251106-163720.png

  • Le fonction XML-LECCOR permet d’aller se placer dans la correspondance “E-Invoice” qui nous intéresse, dans le modèle XML “Factur-X”.

  • Le mot-clé POUR CHAQUE COR-XML permet de parcourir les balises de cette correspondance.

  • On récupère alors le contenu des variables XML pour le numéro de la facture et la date de la facture, qu’on a créées dans l'étape précédente ! ✅

image-20251106-104505.png
  • Le fonction XML-LECCOR permet d’aller se placer dans la correspondance “E-STP”.

  • Le mot-clé POUR CHAQUE COR-XML permet de parcourir les balises de cette correspondance: on vient alors se placer sur la correspondance “E-STPGI”.

  • Le mot-clé POUR CHAQUE COR-XML permet de parcourir les balises de la correspondance “E-STPGI”.

  • On récupère alors le contenu des variables XML qu’on avait placé sur ces correspondances ! ✅

SUITE ? 😉

On a récupéré les variables qui nous intéressent ! Après, vous pouvez ne faire ce que vous voulez en fonction de ce que vous avez besoin de faire 🥳

Créer le type de message

Une fois la requête créé, on va venir créer le type de message. Il va permettre de faire le lien entre le modèle XML et la requête ! 🙂

Les types de messages sont multi-sociétés.

ça se passe par ici:

image-20251106-134613.png

On va donc créer un nouveau modèle, qu’on remplit de cette manière :

image-20251106-134747.png
  • Référence : On rentre ici la référence du type de message. On lui donne le même nom que notre modèle XML pour s’y retrouver 😉

  • Désignation :

  • Modèle XML : On y associe notre modèle XML ( qui porte le même nom 😉 )

image-20251106-134825.png

  • Requête traitement : on entre le nom de notre requête.

Pour plus de détails voir Définition des types de message.

Créer la règle d’identification

Quand DIAPASON va venir scruter le dossier dans lequel on a nos fichiers XML qui arrivent, s’il y a aussi d’autres fichiers XML qui correspondent à d’autres EIA, comment va-t-il savoir lesquels prendre ? 🧐

➡️ Il va falloir trouver un moyen d’identifier, parmi les fichiers XML que DIAPASON va chercher, ceux qui correspondent à notre message entrant !

Pour cela on va se servir de la balise de départ des fichiers XML : DIAPASON va venir lire la balise de départ de chaque fichier, et en fonction, il orientera vers les message entrant qui correspond !

On peut donc créer une nouvelle règle d’identification, et la remplir de la manière suivante :

image-20251106-144221.png
  • Balise de départ : on entre ici le nom de la balise de départ

  • Type de message : on entre le nom de notre message entrant créé précédemment

  • Modèle XML : on entre le nom de notre modèle XML entrant créé précédemment

Pour plus de détails voir Définition des règles d'identification.

Si on créé plusieurs type de réception avec la même balise de départ.. DIAPASON ne saura pas laquelle prendre ! On aura donc la coche “Ambiguïté” à oui, et il prendre en fonction de l’ordre ( colonne ordre).

image-20251106-170154.png

Créer le type de réception

Et il ne reste plus qu’une étape ! On a maintenant paramétré tout ce qui se passait dans DIAPASON, il ne reste plus qu’à mettre en place la scrutation du dossier qui contient les fichiers XML, et leur import dans DIAPASON. Pour ça, on va créer un type de réception. C’est par ici :

image-20251106-144452.png

Et on remplit de la manière suivante :

image-20251106-144542.png
  • Référence

  • Désignation

image-20251106-144558.png
  • Type :

  • Paramètre 0 : récupérer le fichier (par le biais d’une commande Unix du type ‘ls –1 [chemin]

  • Paramètre 1 :

Pour plus de détails voir Définition des type de réception

Et c’est terminé, il n’y a plus qu’a tester ! 👌

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.