Vérifier les coordonnées de l’établissement financier pour le paiement

Erreur CII-SR-464 Syntaxe (UBL/CII)

Un seul élément BT-86 est autorisé dans une facture.

Règle obligatoire : tant qu'elle n'est pas respectée, la facture est invalide et sera rejetée par les validateurs.
Ce qui ne va pas

Le texte du message indique qu’une seule occurrence de BT-86 est autorisée. Cependant, l’expression de test fournie ne rejette aucune combinaison de ces deux éléments : elle est vraie lorsqu’un élément ou les deux sont présents, et aussi lorsqu’aucun ne l’est. L’expression ne détecte donc pas l’erreur décrite dans le message.

Ce que signifie la règle

Le sens métier du message limite la facture à une seule occurrence de BT-86. La condition de test fournie n’applique toutefois pas cette limite.

Champs concernés BT-86
Veuillez vérifier les coordonnées de l’établissement financier pour le paiement

Le message limite les coordonnées de l’établissement financier à une occurrence de BT-86. Cependant, la condition de test fournie ne rejette aucune combinaison des deux éléments XML.

Que faire ?
  1. Comparez l’exigence du message à la condition de test concernant ram:PayeeSpecifiedCreditorFinancialInstitution et ram:PayerSpecifiedDebtorFinancialInstitution.
  2. Notez que la condition de test fournie ne rejette aucune combinaison de ces éléments.
  3. Vérifiez la définition de la règle si l’exigence « une seule occurrence » doit être appliquée.
  4. Générez de nouveau la facture et vérifiez-la à nouveau.
Détails techniques

L’expression (A or B) or (not A and not B) est vraie pour toutes les combinaisons de valeurs de vérité de A et B. Cette condition de test ne peut donc rejeter aucune combinaison des deux éléments indiqués.

Où la règle s'applique

La règle vérifie ram:PayeeSpecifiedCreditorFinancialInstitution et ram:PayerSpecifiedDebtorFinancialInstitution dans ram:SpecifiedTradeSettlementPaymentMeans.

Message d'origine du Schematron
Only one BT-86 element is allowed on an invoice.
Contexte (rule/@context)
//ram:SpecifiedTradeSettlementPaymentMeans
Expression de contrôle (assert/@test)
( ram:PayeeSpecifiedCreditorFinancialInstitution or ram:PayerSpecifiedDebtorFinancialInstitution ) or ( not(ram:PayeeSpecifiedCreditorFinancialInstitution) and not(ram:PayerSpecifiedDebtorFinancialInstitution) )