Aller au contenu
  • 0
stairway

Import Xml Erreur Dans Xlst Nouveau

Question

Bonjour,

j'ai une erreur lorsque je veux importer des données depuis un fichier xml dans un base FMP

à l'aide d'un fichier xslt .

L'erreur est causée par le tag <Document.... > au tout début du fichier xml

Je n'arrive pas à résoudre ce problème merci de m'aider

Ci dessous les fichiers

test4.fmp12

Test2.xslt

camt.054-ESR.xml

camt.054-ESRok.xml

Partager ce message


Lien à poster
Partager sur d’autres sites

19 réponses à cette question

Messages recommandés

  • 0

Bonjour,

Je vois qu'il n'y a pas eu de réponse à ce problème qui concerne ce que l'on appelle un espace de nom (xmlns).

Dans le fichier camt.054-ESR.xml la balise Document est associée à un espace de nom, il faut donc spécifier au parser (celui qui interprète le fichier xml avec la feuille de transformation xsl-t) que lorsque nous souhaitons traiter la balise Document, et ses enfants, c'est celui de tel espace de nom et pas de tel autre. Pour cela on déclare l'espace de nom avec l'attribut xmlns:doc = "" (c'est comme une clef primaire) et on l'y associe le même uri (urn:iso:std:iso:20022:tech:xsd:camt.054.001.04). Doc est arbitraire.

Et ensuite pour indiquer au parser que je veux telle ou telle balise qui correspond au fichier xml, je la précède d'un doc:.

Test_corrigé.xslt

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0
Le 13/02/2017 à 11:18, David Julot a dit :

Bonjour,

Je vois qu'il n'y a pas eu de réponse à ce problème qui concerne ce que l'on appelle un espace de nom (xmlns).

Dans le fichier camt.054-ESR.xml la balise Document est associée à un espace de nom, il faut donc spécifier au parser (celui qui interprète le fichier xml avec la feuille de transformation xsl-t) que lorsque nous souhaitons traiter la balise Document, et ses enfants, c'est celui de tel espace de nom et pas de tel autre. Pour cela on déclare l'espace de nom avec l'attribut xmlns:doc = "" (c'est comme une clef primaire) et on l'y associe le même uri (urn:iso:std:iso:20022:tech:xsd:camt.054.001.04). Doc est arbitraire.

Et ensuite pour indiquer au parser que je veux telle ou telle balise qui correspond au fichier xml, je la précède d'un doc:.

Test_corrigé.xslt

Bonjour et merci pour le test corrigé xlst. Mais j'ai un problème non résolu: le test fonctionne pour une rubrique, en l'occurrence <Ref>. Mais je n'arrive pas à importer d'autres rubriques, comme par exemple les montants ou la date. J'ai de la peine avec la grammaire des documents type camt.54 et suis donc totalement incapable de reporter ces rubriques dans FileMaker via .xlst. Je ne suis hélas qu'un amateur fidèle à FileMaker, mais dès que j'en sors je suis passablement perdu. Merci…

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0
Le 26/04/2017 à 17:16, Macdan a dit :

Bonjour et merci pour le test corrigé xlst. Mais j'ai un problème non résolu: le test fonctionne pour une rubrique, en l'occurrence <Ref>. Mais je n'arrive pas à importer d'autres rubriques, comme par exemple les montants ou la date. J'ai de la peine avec la grammaire des documents type camt.54 et suis donc totalement incapable de reporter ces rubriques dans FileMaker via .xlst. Je ne suis hélas qu'un amateur fidèle à FileMaker, mais dès que j'en sors je suis passablement perdu. Merci…

Bonjour,

Dans le XSLT fourni, tu descends au niveau de la balise <CdtrRefInf>

Donc si tu veux une info qui est au dessus, il faut remonter, tu veux intégrer quel champ ?

Tom

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0
Il y a 13 heures, Tomassia_fm a dit :

Bonjour,

Dans le XSLT fourni, tu descends au niveau de la balise <CdtrRefInf>

Donc si tu veux une info qui est au dessus, il faut remonter, tu veux intégrer quel champ ?

Tom

Merci Tom,

J'ai besoin d'importer la date du paiement et son montant en plus du BVR. J'ai rajouté les 2 lignes dans les <METADATA> mais il faut visiblement compléter <RESULTSET> et je n'y arrive pas. Pour info actuellement, je reçois des fichiers .esr desquels j'extrais les données pour les importer dans des rubriques FileMaker. Avec l'arrivée d'ISO 20022, ces fichiers sont remplacés par des XML. 

Macdan

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0
Le 27/04/2017 à 18:32, Tomassia_fm a dit :

Bonjour,

Dans le XSLT fourni, tu descends au niveau de la balise <CdtrRefInf>

Donc si tu veux une info qui est au dessus, il faut remonter, tu veux intégrer quel champ ?

Tom

J'y suis finalement parvenu. Merci!

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0
Le 13/02/2017 à 11:30, stairway a dit :

Meeeerciiii !!

J'ai testé et tout est Ok

Cordialement

Stairway

Philippe Sautel

Salut Stairway, 

J'ai le mémé problème que toi je doit importer des fichier camt de posfinance, je n'ai pas encore commencé le dev, je doit juste upgader ma solution d'import des fichier v11 vers les fichier camt (xml), et comme il me semble que tu as solutionné le problème, j'aimerai te demander si tu peux m'aider avec ce que tu as déjà fait.

Christian

 

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Bonjour,

Est-ce qu'un a fait le fichier final XLT avec toutes rubriques pour importer le fichier CAMT ?? 

Je vous serais vraiment reconnaissant

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Bonjour,

Nous en avons réalisé un avec un collègue qui fonctionne. Vous le trouverez en pièce jointe. Ce fichier est placé dans le dossier document et FileMaker s'y réfère par le script, mais il faut évidemment éviter de le supprimer!

Cordialement

Camt.xslt

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Merci Beaucoup Macadm, c'est parfait, cela m'as bien aidé, et surtout gagner du temps.

J'ai amélioré ton fichier Filemaker avec les valeurs manquante, Expéditeur et Banque. voir les annexes, et un script d'importation

Mais j'ai encore un petit problème dans le fichier d'import la balise "Amt"  contenant le montant <Amt Ccy="CHF">100.00</Amt> contient la monnaie "CHF"

J'aimerai pouvoir récupérer la valeur CHF dans une rubrique, car il est possible que je reçoivent aussi des Euros, je sais pas si un montant payé en euro sera converti en CHF ??

Est-ce que qu'un à une idée

 

camt.054-ESR.xml

Camt.xslt

Import Camt_xml.fmp12

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Bonjour,

Pour récupérer la valeur de l'attribut "Ccy", ajoute à ton RESULTSET:

<COL><DATA><xsl:value-of select="doc:Amt/@Ccy"/></DATA></COL>

Il va de soit que tu auras aussi ajouté dans le METADATA le FIELD:

<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Ccy" TYPE="TEXT"/>

Pour la conversion €->CH, je crains que tu ne sois obligé de télécharger les cours en vigueur au jour n (à le date de transaction?, date de valeur? …etc…) et de faire la conversion de par toi-même.

Tu devrais trouver sur le forum deux XSLT qui se chargent de ce boulot.

Recherche dans mes documents "EuropeanCentralBank.fp7" ou encore "SwissQuote.fp7"

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Merci beaucoup Clem, 

C'est tout bon, génial

J'ai encore un petit souci, j'ai copié le code de ma feulle de style XSL dans une rubrique texte globale "Camt XSL", et j'indique indique ma rubrique comme requête HTTP.

Mais Filemaker me dit: Vos autorisation d'accès ne vous permettent pas d^effectuer cette opération, j'ai les accès intégral et mis tous les privilèges étendus 

Est-ce qqu'un à une idée d'ou vient le problème ??

5a0dba8a74685_16-11-201717-11-41.png.1837d2276ace734e1174b58b9ac3d693.png

camt.054-ESR.xml

Import Camt_xml.fmp12

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Bonsoir,

On ne peut pas mettre le contenu d'une feuille XLS-T dans le champ Requête HTTP ou dans la formule de calcul pour la requête HTTP, même contenue dans une rubrique.

La feuille XSL-T doit être soit présente sur le disque de votre ordinateur (option Fichier), soit présent sur un serveur HTTP (champ Requête HTTP ou calcul Requête HTTP). Dans tous les cas on doit spécifier un chemin d'accès (local ou HTTP) pour indiquer au parser où se trouve cette feuille de transformation.

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

oh pardon doublon

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Merci David pour cette précision,

Ben je trouve bien dommage que Filemaker n'ai pas prévu ce cas de figure, alors que l'on peux mettre du code HTML dans des rubriques et l'utiliser avec le Webviewer.

Faudrait remonter ça au développement.

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Je veux remercier David JulotClem, et Macdan pour leur contribution au développement de cette solution.

Il faut savoir que cette solution peux rendre service à beaucoup de monde en suisse.

De ce fait j'aimerai partager le fichier de la solution finale complète  qui permet d'importer les fichier xml Camt ISO 20022, qui peut être adapté facilement dans une solution existante de gestion de facturation, pour l'importation des paiement via Ebanking.

Le passage à la norme ISO 20022, En Suisse, le trafic national des paiements fait l'objet d'une harmonisation d'ici 2018. Cela concerne toutes les entreprises qui envoient et reçoivent des factures. ISO 20022 (client-banque et banque-client) doivent être construits en conformité avec les Swiss Payment Standards pour les cas d'utilisation les plus courantes (types de paiement), proposant des règles de champ et des exemples afin d'illustrer l'ensemble du processus de bout en bout. voir https://www.six-interbank-clearing.com/fr/home/standardization/iso-payments/customer-bank/implementation-guidelines.html

Je vous met à disposition un fichier Filemaker qui utilise la feuille de style en ligne, sur l'adresse http://malera.com/filemaker/Camt.xslt, avec les script  qui permettent aussi d’importer 1 fichier ou plusieurs fichier à la volée en une fois, (cette importation à la volé n'as pas été testée sur Filemaker Mac), ainsi que toutes les explications sur le fonctionnement.

 

 

Import_Camt_ISO 20022_xml.fmp12

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant


  • En ligne récemment   0 membre est en ligne

    Aucun utilisateur enregistré regarde cette page.

×