Aller au contenu principal

Jeux de règles

Un jeu de règles décrit une norme selon laquelle une facture est produite : les champs UBL qu'elle exige, ceux qu'elle exige sous condition, ceux qu'elle laisse facultatifs, et les jeux de validation qui la contrôlent. NomaUBL livre trois jeux, produits à partir des données de la référence UBL pour ne jamais s'en écarter. Un document désigne son jeu ; le validateur applique alors les contrôles de ce jeu, et l'onglet de mapping de l'éditeur XSL indique, balise par balise, ce que le jeu attend — quel que soit le système source, JD Edwards, SAP, NetSuite ou un ERP personnalisé.


Vue d'ensemble​

Éditeur XSL · Mapping des variablesJeu de règlesFrance étendu (CTC) ▾Toutes les balisesObligatoires et conditionnellesObligatoires manquantesAfficher les balises hors du jeu✓ Vérifier le mappingEN-TÊTE DE FACTUREObligatoires renseignées 4 / 5TAG_DOCUMENT_IDBT-1InvoiceNumberobligatoireTAG_ISSUE_DATEBT-2InvoiceDateobligatoireTAG_INVOICE_TYPE_CODEBT-3Nom de la balise XMLpar défautTAG_DUE_DATEBT-9Nom de la balise XMLconditionnelTAG_ORDER_REFBT-13OrderNumberoptionnelBR-CO-25 — date d'échéance ou conditions de paiement obligatoires si le montant dû est positifJeu de règlesprésélectionné sur celui du modèleComplétude du groupeobligatoires avec source ou défautBadge de statutobligatoire · conditionnel · optionnel…Note de conditionavec les identifiants de règleFiltrestoutes · obligatoires · manquantesVérifier le mappingchamps manquants + échantillon validéRempli par les défautsles défauts UBL couvrent le champ

Les jeux livrés​

JeuChampsIdentifiant de personnalisationJeux de validation
EN 16931 basique (en16931-basic)155 — le sous-ensemble BASIC que porte toute facture françaiseurn:cen.eu:en16931:2017EN 16931, Flux 2 (CIUS-FR), CPRO B2G, règles spécifiques
EN 16931 (en16931)243 — le modèle EN 16931 complet sous le CIUS françaisurn:cen.eu:en16931:2017EN 16931, Flux 2 (CIUS-FR), CPRO B2G, règles spécifiques
France étendu (CTC) (fr-extended-ctc)455 — EN 16931 plus l'extension française (champs EXT-FR-FE)urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extendedCTC-FR étendu (à la place d'EN 16931), Flux 2, CPRO B2G, règles spécifiques

Chaque champ d'un jeu porte un statut :

StatutSignification
obligatoireLe jeu exige le champ sur chaque facture.
conditionnelObligatoire sous condition — date d'échéance ou conditions de paiement quand un montant est dû (BR-CO-25), date ou code de période d'exigibilité de la TVA (BR-CO-03), identifiants du vendeur (BR-CO-26)… La note précise la condition et les identifiants de règle.
optionnelAutorisé, non exigé.
par défautObligatoire, et renseigné par les valeurs UBL par défaut quand le mapping le laisse vide.
hors du jeuLe jeu ne connaît pas le champ — par exemple les balises EXT-FR-FE sous les deux jeux EN 16931.

Un Schematron spécifique défini sur le document s'exécute toujours après les contrôles du jeu.


Choisir le jeu d'un document​

Dans l'onglet UBL du document, le champ Rule set désigne le jeu :

  • vide — Derived from the UBL defaults (customization id and profile) : le comportement d'un document qui ne désigne aucun jeu. Le jeu suit l'identifiant de personnalisation émis par les valeurs UBL par défaut — France étendu pour les profils étendus, EN 16931 sinon ;
  • un jeu — le validateur applique les contrôles de ce jeu dans toutes les chaînes : traitement par lot et unitaire, page Traiter un document, validation depuis la fenêtre de la facture et vérification de l'éditeur XSL.

Les deux jeux EN 16931 et le jeu France étendu reprennent exactement les contrôles du choix déduit : désigner le jeu d'un document existant ne change aucune anomalie. Un identifiant de jeu inconnu est signalé par un avertissement, et le choix déduit s'applique.


Dans l'éditeur XSL​

L'onglet Mapping des variables de l'éditeur XSL s'appuie sur un jeu de règles :

  • Jeu de règles — présélectionné sur le jeu du document, modifiable pour en prévisualiser un autre ; le choix est mémorisé dans le navigateur pour chaque fichier et ne modifie aucun fichier ;
  • un badge par balise — obligatoire, conditionnel, optionnel, par défaut, hors du jeu — avec la note de la condition en info-bulle ;
  • filtres — Toutes les balises, Obligatoires et conditionnelles, Obligatoires manquantes ; les balises hors du jeu restent masquées tant que Afficher les balises hors du jeu n'est pas cochée : les balises de l'extension française n'apparaissent donc que sous le jeu étendu ;
  • complétude par groupe — Obligatoires renseignées 4 / 5 : un champ obligatoire compte quand il a une source, une constante ou une valeur UBL par défaut ;
  • Vérifier le mapping — liste les champs obligatoires du jeu sans source ni valeur par défaut, puis transforme l'échantillon chargé avec le mapping en cours et le valide avec les contrôles du jeu et les contrôles spécifiques du document. Le rapport regroupe les anomalies par champ et met en évidence les balises concernées. Rien n'est écrit en base et rien n'est envoyé.

Ailleurs dans l'application​

  • Fenêtre de la facture — indique le jeu selon lequel la facture a été produite, lu dans son UBL archivé.
  • Référence UBL — un filtre par jeu affiche les champs d'un jeu avec leur statut.
  • Règles métier — le même filtre ne garde que les règles qui portent sur un champ du jeu.

Adapter un jeu​

Les jeux sont intégrés à l'application et produits à la construction à partir des données de la référence UBL. Un environnement peut en remplacer un par un fichier du même nom placé sous <env>/config/rulesets/ (par exemple en16931.json), lu avant le jeu intégré. Les autres normes fondées sur UBL — Peppol BIS Billing, XRechnung… — s'ajoutent sous forme de jeux intégrés avec leurs contrôles. Les formats nationaux qui ne sont pas en UBL passent par une post-transformation.


Conseils & bonnes pratiques​

  • Désigner le jeu de chaque document. Le choix déduit fonctionne, mais un jeu explicite indique la norme visée et garde l'onglet de mapping aligné sur elle.
  • Lancer Vérifier le mapping sur un échantillon réel avant le premier lot d'un nouveau document : les champs obligatoires manquants d'abord, puis les anomalies par champ.
  • Utiliser le filtre Obligatoires manquantes pendant le mapping. Le formulaire se réduit à ce qui bloque encore le jeu.
  • Garder un Schematron spécifique pour les règles propres au client. Le jeu de règles couvre la norme ; les contrôles propres au client restent dans les contrôles spécifiques du document.