Cegid XRP Ultimate | I3 Actualisé le 06/10/2022 |
|||
Données générales | |||
Paramétrage possible lors de la génération d'un fichier au format XML |
Principe |
Cette documentation explique les différentes possibilités de paramétrage pour la génération de fichiers au format XML, à partir de traitements langage Report. Les sujets présents : - les différents paramètres permettant d'externaliser des informations qui se retrouveront dans le fichier XML ; - la possibilité de transformer certains caractères pour qu'ils soient compréhensibles par tous les logiciels compatibles XML ; - la possibilité de préciser jusqu'à deux extensions de fichiers différentes ; - la possibilité de supprimer certaines rubriques (et sous-rubriques) ; - la possibilité de réduire la taille du fichier résultat. Le principe retenu, même s'il est complexe, couvre une majorité des cas. - Dans la gestion des messages, créer des messages de la forme XMLnnn (où nnn correspond à des plages de nombres). - Dans la gestion des paramètres, créer un paramètre par traitement concerné. Soit avec le nom du traitement (champ NUMGTTRB de GTRB, exemple "OCTSAF" pour le traitement TSAF), soit avec la valeur indiquée dans le paramètre "TYP" associé au mnémonique. - Dans la gestion des occurrences de paramètres, créer des occurrences (prévues à l'avance) avec, dans leur texte, un ou plusieurs numéros de message (GMES), séparés par des '";" (point-virgule). Remarque : certaines occurrences sont prévues pour générer plusieurs lignes en sortie. Les occurrences de ces paramètres ont une racine fixe à laquelle un numéro peut être concaténé (exemple : INFOTXTnnn où nnn peut varier de vide à "ZZZ"). L'ordre de tri, sera, soit l'ordre mis dans la gestion des occurrences de paramètres (GPAR), s'il est renseigné, soit l'ordre alphanumérique de l'occurrence. Le but final étant de récupérer le texte de ces messages (sans le numéro d'erreur), de les concaténer, et d'incorporer le résultat obtenu (en l'insérant entre "<" et ">") dans le fichier XML à des places déterminées (suivant l'occurrence). Quelques traitements utilisant ce principe : - TSAF - Constitution du fichier d'interface SAF-T ; - TSEP - Génération d'un virement SEPA Credit Transfert ; - TDES - Génération du fichier DES normalisé ; - TVGB - Virement générique belge. Chaque traitement n'utilise pas nécessairement tous les paramétrages présents dans cette documentation, Mais il est conseillé d'implémenter le code du traitement pour être capable de prendre en compte un de ces paramètres si le besoin s'en fait sentir. |
Messages (GMES) |
On utilise le texte des messages pour les concaténer, et incorporer le résultat obtenu dans le fichier XML. C'est le programme qui insèrera le résultat obtenu entre "<" et ">", il faut donc bien évidemment ne pas les mettre dans le texte du message. De plus, le programme ne va pas faire de substitution sur des caractères spéciaux, s'il y en a vraiment besoin, les gérer soi-même. Les numéros de messages sont de la forme : "XMLnnn" où nnn peut varier de 001 à 999. L'application est "GTI" pour que toutes les applications puissent les utiliser. Des plages de numéros sont prévues suivant leur utilisation : - de "XML001" à "XML499" : ils seront utilisés pour de véritables messages d'erreur dans le programme qui crée le fichier XML XML001 - Le contenu de la rubrique <$1> doit être renseigné XML002 - Le contenu ($1) est incompatible avec les contrôles de la rubrique <$2> - de "XML500" à "XML509" : ils seront utilisés pour le type d'encodage du fichier XML et se retrouveront dans le champ "Texte" des occurrences "ENCODING" XML500 - ?xml version="1.0" encoding="UTF-8" ? XML501 - ?xml version="1.0" encoding="ISO-8859-1" ? XML502 - ?xml version="1.0" encoding="windows-1252" ? - de "XML510" à "XML799" : ils seront utilisés pour toutes les autres informations à paramétrer dans le fichier XML et se retrouveront dans le champ "Texte" des occurrences "XMLSCHEMA" et "INFODTDnnn" XML510 - xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' XML511 - xmlns='urn:iso:std:iso:20022:tech:xsd:[XSD-VER]' XML512 - xmlns='urn:OECD:StandardAuditFile-Tax:PT_1.00_01' xsi:schemaLocation='urn:OECD:StandardAuditFile-Tax:PT_1.00_01 [CHM-XSD]SAF-T.xsd' xmlns:doc='urn:schemas-basda-org:schema-extensions:documentation' XML513 - xmlns='urn:iso:std:iso:20022:tech:xsd:[XSD-VER]' xsi:schemaLocation='urn:iso:std:iso:20022:tech:xsd:[XSD-VER] [CHM-XSD][XSD-VER].xsd' Remarque : le texte du message XML510, se retrouvant dans l'ensemble des schémas, nous avons créé un message dédié qu'il suffit de concaténer à un autre (non utilisé actuellement). "INFODTDnnn" - de "XML800" à "XML999" : ils seront utilisés pour toutes les autres informations que l'utilisateur souhaite paramétrer dans le fichier XML et se retrouveront dans le champ "Texte" des occurrences "INFOTXTnnn" et "INFOFINnnn". Attention : si vous créez des messages avec des numéros inférieurs à XML800, ils risquent d'être effacés lors des releases. |
Paramètres (GPAD) |
Pour pouvoir utiliser des paramètres, il faut les définir ainsi dans GPAD : Paramètre = soit nom du traitement dans GTRB, soit valeur indiquée dans le paramètre "TYP" associé au mnémonique ; Application = celle du traitement ; Type = V ; Taille = 10 ; Occurrence nulle = Gérée ; Etablissement nul = Facultatif Remarque : Ce paramètre existe déjà pour les traitements qui en ont besoin. Exemple : paramètre OCTSAF (à dupliquer si besoin). |
Occurrences de paramètres (GPAR) - Construire une chaîne de caractères à partir du champ "Texte" |
Les occurrences détaillées dans ce paragraphe permettent d'insérer des données dans le fichier XML. L'ordre d'apparition de ces lignes est fixe : Nombre de lignes Occurrence utilisée Explication [1-1] ENCODING Type d'encodage du fichier [1-1] aucun Commentaire (Fixé par le programme) [0-n] INFOTXTxxx Commentaire du client [0-n] INFODTDxxx Information pour DTD [0-1] XMLSCHEMA Information pour XSD ... Et à la fin du fichier [0-n] INFOFINxxx Commentaire du client |
Occurrence "ENCODING" |
Ce paramètre permet d'externaliser la ligne indiquant le type d'encodage du fichier XML que l'on retrouve en première position dans le fichier. |
Occurrence "INFOTXTnnn" |
où nnn peut varier de vide à "ZZZ" |
- Permet à chaque client de pouvoir mettre des commentaires personnels à partir de la troisième ligne du fichier XML (après le commentaire fixé par le programme). - Les messages à utiliser doivent être numérotés à partir de "XML800. - Le texte du message (GMES) doit obligatoirement être de la forme : !-- commentaire à afficher -- "!--" au début et "--" à la fin |
Occurrence "INFODTDnnn" |
où nnn peut varier de vide à "ZZZ" |
Non utilisé. - Permettrait de pouvoir mettre des informations DTD dans le fichier XML. |
Occurrence "XMLSCHEMA" |
Ce paramètre permet d'externaliser la ligne indiquant l'espace de nom et le schéma location des fichiers XSD. |
Explication technique |
- Gestion mono-occurrence (une seule occurrence par programme est possible). Pour une gestion multi-occurrences voir le paramétrage "SCH-<xxxx>" - Sert à renseigner la ligne indiquant l'espace de nom et le schéma location des fichiers XSD. - Il est conseillé d'utiliser un message supérieur ou égal à XML510 : XML510 - xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' XML511 - xmlns='urn:iso:std:iso:20022:tech:xsd:[XSD-VER]' XML512 - xmlns='urn:OECD:StandardAuditFile-Tax:PT_1.00_01' xsi:schemaLocation='urn:OECD:StandardAuditFile-Tax:PT_1.00_01 [CHM-XSD]SAF-T.xsd' xmlns:doc='urn:schemas-basda-org:schema-extensions:documentation' XML513 - xmlns='urn:iso:std:iso:20022:tech:xsd:[XSD-VER]' xsi:schemaLocation='urn:iso:std:iso:20022:tech:xsd:[XSD-VER] [CHM-XSD][XSD-VER].xsd' - Le texte de l'occurrence peut contenir plusieurs numéros de messages (séparés par des ";"). - Le texte de l'occurrence ou la concaténation de tous les textes des messages devra comporter tout le code dont il y a besoin, sauf les "<" et ">" qui sont ajoutés dans le programme. - Possibilité de modifier ce texte par programmation (par exemple pour mettre le nom de la rubrique père sur laquelle s'applique le .xsd). Remarque : la valeur "xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' " se retrouve souvent dans différents en-têtes, elle est donc présente dans le message XML510, ce qui permet de la concaténer avec d'autres messages (dans le texte : exemple : XML510;XML512). |
Occurrence "INFOFINnnn" |
où nnn peut varier de vide à "ZZZ" |
- Permet à chaque client de pouvoir mettre des commentaires personnels à la fin du fichier XML (après la fermeture de la balise de la rubrique père). - Les messages à utiliser doivent être numérotés à partir de XML800. - Le texte du message (dans GMES) doit obligatoirement être de la forme : !-- commentaire à afficher -- "!--" au début et "--" à la fin |
Occurrences de paramètres (GPAR) - Transcodage chaîne 1 en chaîne 2 (caractères spéciaux) |
Pour une meilleure compatibilité au niveau des logiciels qui recevront le fichier XML, certains caractères doivent être transformés. Fonctionnalités liées à ce paramétrage (include sqgesxml.srp) : - ajout de caractères autorisés supplémentaires suivant convention signée avec la banque (chaîne 1 = chaîne 2 = nouveau caractère supporté) ; - gestion plus précise des espaces ; - possibilité de supprimer des caractères ; - possibilité de préciser la rubrique et/ou le niveau (HEADER/LOT/DETAIL/...) où effectuer la substitution. |
Permet, pour une meilleure compatibilité, de remplacer certains caractères spéciaux dans les rubriques définies en chaînes alphanumériques. - La chaîne 1 contiendra le caractère origine (celui à modifier). - La chaîne 2 contiendra la valeur à substituer (celui qui remplacera). - L'ordre sera très utile si plusieurs substitutions sont à effectuer et qu'une substitution influe sur une suivante (soit la chaîne "ABA", si on change "B" en "A", puis "AAA" en "C", le résultat est "C", si on inverse l'ordre, le résultat est "AAA"). - Le texte pourra contenir, si besoin, le nom de la rubrique où faire la substitution suivi de ";" (point-virgule) si on veut indiquer le niveau où se trouve cette rubrique (HEADER/LOT/DETAIL/...). Par exemple "&" -> "&" ordre="1" et texte="AdrLine;HEADER" Pour la gestion des espaces, comme ils ne sont pas saisissables directement dans les chaînes de GPAR, il a été choisi d'utiliser obligatoirement : - "ESPACES" pour indiquer une suite d'au moins 2 espaces ; - "ESPACE" pour indiquer un seul espace. Par exemple : - "ESPACES" -> "ESPACE" ordre="100" et texte="" va transformer toutes les suites contiguës d'espaces en un seul. - "Z" -> "ESPACE" ordre="50" et texte="" va transformer tous les caractères "Z" en un espace. - "ESPACE" -> "_" ordre="110" et texte="" va remplacer chaque espace par le caractère "_". |
Occurrences de paramètres (GPAR) - Gérer l'extension du fichier résultat |
Chaque traitement gère lui-même l'extension du fichier résultat, mais dans certains cas il peut être intéressant de définir soi-même ces extensions. |
La chaîne 1 contient l'extension souhaitée : xml, txt, lis, etc. La chaîne 2 contient une occurrence (en majuscule) du paramètre "TYPGTFIJ" : SPL, XML, ERR, etc. Si elle est vide on prend "SPL" par défaut. Remarque : suivant la version de Cegid XRP Ultimate, il faudra peut-être créer l'occurrence "XML" du paramètre "TYPGTFIJ" (avec "SPL" dans sa chaîne 1). |
Occurrences de paramètres (GPAR) - Suppression de certaines rubriques |
Occurrence "RUBSUPnnn" |
où nnn peut varier de vide à "ZZZ" Lors de la création de vos propres occurrences, il est conseillé de commencer la numérotation à 500 ("RUBSUP500"). |
Permet de supprimer une rubrique, et ses sous-rubriques dans l'ensemble du fichier ou dans une partie précisée dans la chaîne 2. - Chaîne 1 = "S" (pour supprimer) - Chaîne 2 = Niveau du fichier où supprimer la rubrique (Exemple : "HEADER","LOT","DETAIL", et non renseigné pour tout le fichier) - Texte = nom de la rubrique à supprimer Pour faciliter les tests, il suffit de modifier la chaîne 1 pour supprimer ou non la rubrique. |
Permet de supprimer la ligne de commentaires en début de fichier. - Chaîne 1 = "S" (pour supprimer) |
Explication technique |
Gestion mono-occurrence (une seule occurrence par programme est possible). Pour une gestion multi-occurrences voir le paramétrage "COM-<xxxx>" |
Occurrences de paramètres (GPAR) - Paramétrage différent suivant chaque "Etablissement-Banque" ou "type de banque" |
Les fichiers XML générés sont normalisés et doivent se soumettre aux contraintes indiquées dans leur fichier XSD associé. Malheureusement, ces contraintes peuvent évoluées au fil du temps et deux versions, ou plus, peuvent coexister au même moment. Voire, pour une même version, certaines banques peuvent imposer des contraintes alors que d'autres non. Exemple : une banque A peut accepter un fichier XML au format 001.xsd, alors qu'une banque B n'accepte que le format 002.xsd (qui est une évolution du format 001.xsd) ; une banque C peut refuser un fichier s'il contient des commentaires ( à la norme XML : <!-- ... > ) ; une banque D n'utilise pas le même répertoire pour entreposer les fichiers de contrôle XSD. Remarque : le plus souvent ces modifications entraînent un changement dans le nom du fichier XSD, mais ce n'est pas obligatoire. Il faut donc que les programmes puissent gérer certaines modifications soit au niveau de la banque et de son établissement, soit au niveau du type de la banque (si le regroupement par type de banque est possible dans le traitement). Pour cela, différentes solutions sont proposées et dépendent des spécificités de chaque programme (voir leur documentation associée). Le paramètre utilisé sera en priorité celui qui correspond à la valeur indiquée dans le paramètre "TYP" associé au mnémonique, sinon le nom du programme ("OCTSEP", "OCTSDD", etc.). |
Gestion multi-occurrences (plusieurs occurrences par traitement sont possibles : BIC-BNQ, BIC-SG, etc.). Suite à l'évolution de certaines normes, certains fichiers XML n'ont plus l'obligation de contenir de numéro BIC (Bank International Code). Généralement, il y a 2 sortes de BIC, un pour la banque traitée, au niveau du "Lot"/"Enregistrement remise" et un pour chaque pièce ou regroupement, niveau du "Détail"/"Enregistrement paiement". On va donc utiliser les 2 premiers caractères de la chaîne 1. Le premier caractère de la chaîne 1 pour le niveau "Lot"/"Enregistrement remise". Le deuxième caractère de la chaîne 1 pour le niveau "Détail"/"Enregistrement paiement". Pour "OCTSEP" (TSEP et TSEPC) et "OCTSDD" (TSEPD) : - Si le caractère de la chaîne 1 de ce paramètre est égal à "O", le code BIC reste obligatoire. - Si le caractère de la chaîne 1 de ce paramètre est égal à "N" ou n'est pas défini, le code BIC n'est plus utilisé ou est remplacé par "NOTPROVIDED" si la rubrique reste obligatoire. - Si le caractère de la chaîne 1 de ce paramètre est égal à "F", le code BIC devient facultatif, s'il est présent il sera utilisé, sinon il n'y aura pas d'erreur. Pour "OCTSEPI" (TSEPI) : - Si le caractère de la chaîne 1 de ce paramètre est égal à "O", le code BIC reste obligatoire. Par défaut il est, jusqu'à ce jour, toujours considéré égal à "O" - Si le caractère de la chaîne 1 de ce paramètre est égal à "F", le code BIC devient facultatif, s'il est présent il sera utilisé, sinon il n'y aura pas d'erreur. La rubrique CdtTrfTxInf / CdtrAgt / FinInstnId / BIC ne sera pas renseignée, mais d'autres, liées à l'adresse de la domiciliation du tiers (GTID) le seront. |
Remarque : Pour "OCTSEP" (TSEP et TSEPC) et "OCTSDD" (TSEPD). Si aucune occurrence n'est présente, le comportement par défaut sera comme s'il y avait "FN" dans la chaîne 1 : - au niveau "Lot"/"Enregistrement remise", le code BIC devient facultatif ; - au niveau "Détail"/"Enregistrement paiement", le code BIC n'est plus utilisé ou est remplacé par "NOTPROVIDED" si la rubrique reste obligatoire. Pour "OCTSEPI" (TSEPI). Si aucune occurrence n'est présente, le comportement par défaut sera comme s'il y avait "OO" dans la chaîne 1 : - au niveau "Lot"/"Enregistrement remise", le code BIC reste obligatoire ; - au niveau "Détail"/"Enregistrement paiement", le code BIC reste obligatoire. |
Gestion multi-occurrences (plusieurs occurrences par traitement sont possibles : CHM-BNQ, CHM-SG, etc.). Le contenu, qui peut donc être vide, du texte du paramètre ainsi trouvé servira pour remplacer le mot-clé "[CHM-XSD]" (crochet compris) dans les messages (GMES) servant à la création de l'en-tête des fichiers XML (surtout au niveau du "xsi:schemaLocation" ). Par défaut, on génère ces fichiers XML avec comme répertoire contenant le fichier XSD de contrôle égal à "./schemas/", mais certaines banques bloquent le traitement de ces fichiers. Il faudra donc créer un paramètre et modifier son texte pour coïncider avec l'attente de ces banques. |
Occurrence "COM-<xxxx>" |
Les valeurs de "xxxx" dépendent de chaque programme (voir leur documentation associée). Mais généralement on prend le code de la banque ou le type de la banque si on utilise la possibilité de regroupement par type de banque. En règle générale, la recherche de la chaîne 1 se fait dans l'ordre suivant et s'arrête dès que l'on trouve un paramètre à l'état "Actif" (le contenu de la chaîne 1 peut donc être vide) : - Paramètre dans GPAR = {valeur du paramètre "TYP" associé au mnémonique} ; occurrence = "COM-<xxxx>" ; - Paramètre dans GPAR = {valeur du paramètre "TYP" associé au mnémonique} ; occurrence = "SUPCOM" ; - Paramètre dans GPAR = {nom du traitement} ; occurrence = "COM-<xxxx>" ; - Paramètre dans GPAR = {nom du traitement} ; occurrence = "SUPCOM". |
Gestion multi-occurrences (plusieurs occurrences par traitement sont possibles : COM-BNQ, COM-SG, etc.). Si la chaîne 1 de ce paramètre est égale à "S", cela permet de supprimer la ligne de commentaires mise par défaut dans les fichiers XML. <!-- Generated and Edited with ... > Cette ligne contenant des informations utiles en cas de recherche d'anomalie, il est déconseillé de la supprimer ; sauf lorsque la banque réceptrice du fichier ne sait pas gérer les lignes de commentaires. |
Occurrence "FRS-<xxxx>" |
Ce paramètre étant exclusivement utilisé dans le traitement des prélèvements SEPA SDD (SEPA Direct Debits) (TSEPD), les valeurs de "xxxx" seront soit le code de la banque, soit le type de la banque si on utilise la possibilité de regroupement par type de banque. La recherche du paramétrage lié aux FRST/RCUR et à leur date d'échéance se fait dans l'ordre suivant et s'arrête dès que l'on trouve un paramètre à l'état "actif" : - paramètre dans GPAR = {valeur du paramètre "TYP" associé au mnémonique} ; occurrence = "FRS-<xxxx>" ; - paramètre dans GPAR = {valeur du paramètre "TYP" associé au mnémonique} ; occurrence = "FRS-FIRST" ; - paramètre dans GPAR = {nom du traitement} ; occurrence = "FRS-<xxxx>" ; - paramètre dans GPAR = {nom du traitement} ; occurrence = "FRS-FIRST" ; - un défaut est livré dans les chaînes de cette dernière occurrence : chaîne 1 = "N" et chaîne 2 = "N". |
Gestion multi-occurrences (plusieurs occurrences par traitement sont possibles : FRS-BNQ, FRS-SG, etc.). Ce paramètre est étroitement lié aux occurrences du paramètre "PRVOEMDT". Pour la suite de l'explication, on considère que le paramètre utilisé sera "OCTSDD" occurrence "FRS-FIRST". |
- Paramètre "OCTSDD" occurrence "FRS-FIRST" - si sa chaîne 1 est égale à "O", on affectera qu'une seule pièce en tant que "FIRST", celle ayant le plus grand montant débiteur dans le cas d'un premier prélèvement et pour chaque {banque ou regroupement par type de banque}/mandat/{date d'échéance ou date calculée (cf. explication chaîne 2)}, si d'autres pièces à cette date étaient présentes, elles seront considérées comme des "RCUR" ; - si sa chaîne 1 est égale à "N" ou non présente, toutes les pièces à la même date constitueront le prélèvement "FRST" ; - si sa chaîne 2 est égale à "O", on donne la possibilité d'envoyer à la banque, dans le fichier XML, des dates de remise différentes des dates d'échéance des pièces. Pour calculer ces dates, on va lire le paramètre "PRVOEMDT", l'occurrence dépendant du type de prélèvement du mandat ("CORE"/"B2B" dans GMDT). - Paramètre "PRVOEMDT" occurrence "CORE" ou "B2B" : - sa chaîne 1 contiendra le calendrier qui sera utilisé pour ajouter un nombre de jours "ouvrés", si cette zone n'est pas renseignée, on prendra comme défaut le calendrier "MOR" ; Attention, ce calendrier est à générer pour chaque établissement où le TSEPD sera lancé. - pour les "FRST" et les "OOFF", la date de remise indiquée dans le fichier XML sera la plus grande date entre la date d'échéance de la pièce et une date calculée correspondant à la date du jour à laquelle on ajoute le nombre de jours ouvrés contenus dans la valeur 1 du paramètre "PRVOEMDT" occurrence "CORE" ou "B2B". - pour les "RCUR" et les "FNAL", la date de remise indiquée dans le fichier XML sera la plus grande date entre la date d'échéance de la pièce et une date calculée correspondant à la plus grande date entre la date du jour et la "date de première utilisation" du mandat (GAMT) à laquelle on ajoute le nombre de jours ouvrés contenus dans la valeur 2 du paramètre "PRVOEMDT" occurrence "CORE" ou "B2B". - la valeur testée 1, quand elle est égale à "O", permet de modifier réellement la date d'échéance des pièces avec la date calculée précédemment. Attention à utiliser en connaissance de cause, car aucun traitement ne permettra de revenir à l'état initial. |
Explication simplifiée |
Pour simplifier l'explication, considérons que : CH1_FRS = chaîne 1 de "OCTSDD" occurrence "FRS-FIRST" ou "FRS-xxx" CH2_FRS = chaîne 2 de "OCTSDD" occurrence "FRS-FIRST" ou "FRS-xxx" VA1_PRV = valeur 1 de "PRVOEMDT" VA2_PRV = valeur 2 de "PRVOEMDT" TS1_PRV = valeur testée 1 de "PRVOEMDT" DPU_AMT = date de première utilisation (dans GAMT) ECH_PIE = date d'échéance de la pièce XML = Fichier à la norme XML à envoyer à la banque Si CH1_FRS = "O", une seule pièce constituera le "FRST". Si CH2_FRS = "O", on va calculer une {nouvelle date}, et seules les pièces ayant leur ECH < {nouvelle date} pourront être sélectionnées/modifiées comme suit : - dans le XML pour les "FRST"/"OOFF", on aura une date de remise égale à la { "date du jour" + VA1_PRV jours ouvrés } ; et leur DPU_AMT sera modifiée avec { "date du jour" + VA1_PRV jours ouvrés} ; - dans le XML pour les "RCUR"/"FNAL", on aura une date de remise égale à la max{ ECH_PIE et [max("date du jour" et DPU_AMT) + VA2_PRV jours ouvrés ] } ; - de plus, si TS1_PRV = "O", on modifie réellement, en base, la date d'échéance des pièces qui en ont besoin avec celle que l'on vient de calculer ; - les jours ouvrés sont calculés grâce au calendrier présent dans la chaîne 1 du "PRVOEMDT" (on prendra "MOR" si rien n'est indiqué). |
Occurrence "SCH-<xxxx>" |
Les valeurs de "xxxx" dépendent de chaque programme (voir leur documentation associée). Mais généralement on prend le code de la banque ou le type de la banque si on utilise la possibilité de regroupement par type de banque. En règle générale, la recherche des messages (GMES) servant à la construction de l'en-tête du fichier XML se fait dans l'ordre suivant et s'arrête dès que l'on trouve un paramètre à l'état "Actif" avec le contenu de la zone texte renseigné : - Paramètre dans GPAR = {valeur du paramètre "TYP" associé au mnémonique} ; occurrence = "SCH-<xxxx>" ; - Paramètre dans GPAR = {valeur du paramètre "TYP" associé au mnémonique} ; occurrence = "XMLSCHEMA" ; - Paramètre dans GPAR = {nom du traitement} ; occurrence = "SCH-<xxxx>" ; - Paramètre dans GPAR = {nom du traitement} ; occurrence = "XMLSCHEMA". |
Gestion multi-occurrences (plusieurs occurrences par traitement sont possibles : SCH-BNQ, SCH-SG, etc.). Le contenu du texte du paramètre ainsi trouvé, qui ne doit pas être vide et doit contenir une suite de numéros de messages (GMES) séparés par des ";", servira pour aller rechercher le texte de ces messages (GMES) qui serviront à la création de l'en-tête des fichiers XML. Voir l'explication de "XMLSCHEMA". |
Gestion multi-occurrences (plusieurs occurrences par traitement sont possibles : XSD-BNQ, XSD-SG, etc.). Sert pour créer différentes sortes de fichiers XML à partir d'un même programme. Le texte du paramètre devra contenir une valeur prédéfinie permettant de gérer différents cas dans le programme. Cette valeur ainsi trouvée servira pour remplacer le mot-clé "[XSD-VER]" (crochet compris) dans les messages (GMES) servant à la création de l'en-tête des fichiers XML Par facilité, et quand cela est possible, on va utiliser le nom du fichier XSD qui doit être utilisé (pain.001.001.02, pain.001.001.03, SAF-T, etc.) sans l'extension (".xsd") et en tenant compte des majuscules/minuscules. |
Explication technique |
Prenons un exemple : Le traitement de génération d'un virement SEPA Credit Transfert (TSEP) peut générer des fichiers XML suivant deux normes (pain.001.001.02.xsd et pain.001.001.03.xsd, qui est une évolution de la première). Le programme a été écrit en se basant sur la première norme (à l'époque la deuxième n'existait pas), donc la norme par défaut du programme sera "pain.001.001.02". La banque "BNQ01" n'accepte de traiter que les fichiers XML qui suivent la norme "pain.001.001.02". La banque "BNQ02" n'accepte de traiter que les fichiers XML qui suivent la norme "pain.001.001.03". Le paramètre au mnémonique "TYP" n'est pas renseigné, on peut donc créer dans GPAR le paramètre : "OCTSEP" occurrence "XSD-BNQ02" avec le texte = "pain.001.001.03". Dans l'absolu, ça suffirait, mais pour bien différencier les 2 banques, on peut ajouter le paramètre "OCTSEP" occurrence "XSD-BNQ01" avec le texte = "pain.001.001.02". Allons un peu plus loin : Le programme pourra être utilisé ultérieurement pour envoyer des fichiers à d'autres banques, on suppose qu'elles accepteraient la norme la plus récente "pain.001.001.03", donc on peut ajouter le paramètre : "OCTSEP" occurrence "XSD-VER" avec le texte = "pain.001.001.03". |
Occurrences de paramètres (GPAR) - Paramétrage différent suivant chaque mnémonique ("TYP") |
La chaîne 1, en majuscule, permet de renseigner le contenu de la rubrique "CtgyPurp"/"Cd". Si cette chaîne 1 est vide (mais le paramètre lui, est défini et à l'état actif), les rubriques ne sont pas présentes car facultatives. |
Cette occurrence doit obligatoirement être définie sans établissement. - Si la valeur testée 1 est égale à "R" ou "RI", on génèrera un fichier en regroupant les banques sur tous les établissements de la sélection suivant le type de la banque. De plus, si la valeur testée 1 est égale à "RI", on regroupera les banques ayant pour leur tiers/domiciliation le même code IBAN (dans GTID) dans l'enregistrement "remise" (rubrique "PmtInf"). Dans ce cas, lorsque la chaîne 1 est renseignée, on affecte la rubrique "PmtInfId" avec la chaîne 1 concaténée avec le bordereau des pièces. - Sinon, on traitera chaque établissement et chaque banque indépendamment. - Si la valeur testée 2 est égale à "N" et si le traitement est "OCTSEP" (TSEP), on génèrera un fichier avec la nature du mode de règlement ("NATOERGM") comme regroupement supplémentaire. La nature est intégrée dans les fichiers générés : . si la valeur testée 1 est égale à "R" ou "RI" : type de la banque "-" nature de règlement "-" numéro de job avec l'extension ".xml" . sinon : code établissement "-" code banque "-" nature de règlement "-" numéro de job avec l'extension ".xml". Remarque : si on souhaite regrouper par type de la banque, il est fortement conseillé d'utiliser comme valeur de ce type seulement les chiffres de "0" à "9" et les lettres de "A" à "Z". |
Mnémoniques (GMNU) - Paramètres associés au mnémonique des traitements |
Paramètre "NIV" - (Indentation) |
Par défaut, sa valeur est égale à "O". |
En positionnant ce paramètre à "N" ou en le supprimant, on peut réduire la taille du fichier XML créé en supprimant les espaces servant à l'indentation. |
Paramètre "PRM" - (Edition rubriques facultatives) |
Remarque : n'est implémenté que dans "OCTSAF" et "OCTRTE" |
Si sa valeur est "O", permet d'éditer les rubriques facultatives qui ne contiennent aucune donnée. Possibilité de ne pas les éditer en positionnant ce paramètre à "N" ou en le supprimant. |
Permet d'utiliser un paramètre différent de celui livré en standard pour le paramétrage ("ENCODING", "XMLSCHEMA", etc.). Exemple : TSEP utilise le paramètre "OCTSEP" pour paramétrer le fichier XML. Si le paramètre "TYP" associé au mnémonique est défini avec la valeur "TSEP01", alors ce sont les occurrences du paramètre "TSEP01" définies dans GPAR qui seront utilisées. Ceci permet de dupliquer les mnémoniques de chaque traitement et de leur appliquer un paramétrage différent pour tout ce qui concerne la création du fichier XML. |