Loading

Annulation ou publication de lignes de facture présentant le statut Brouillon alors que la facture présente le statut « Publiée »

Date de publication: Sep 27, 2025
Description
Sous certaines conditions, une facture peut être publiée alors que ses lignes de facture présentent le statut Brouillon. Lorsque cela se produit, les produits de commande ne sont pas mis à jour et il n’est pas possible de les utiliser dans le cadre de la création d’une autre facture. La commande est bloquée. Apprenez à remédier à cette situation et à maintenir l’intégrité des données.

La publication d’une facture implique au moins quatre objets. Il est possible qu’une facture soit publiée et que ses lignes de facture présentent encore le statut Brouillon lorsque des associations de validations personnalisées et/ou d’automatisations provoquent l’échec du processus sans que celui-ci se termine. La fonctionnalité Annuler et refacturer n’est désormais plus utilisable sur cette facture, et les lignes de la facture ne peuvent pas être publiées séparément. Étant donné que le statut des lignes de facture contrôle la mise à jour des produits de commande leur correspondant, cette facture doit être corrigée pour que d’autres factures puissent être créées à partir de la commande.

Notez bien que Salesforce Billing dispose de validations qui empêchent de définir un statut autre que Publié pour la facture, ainsi que de publier séparément les lignes de facture. Ce comportement est normal. 
 
Lorsqu’une ligne de facture est publiée, les champs suivants du produit de commande sont mis à jour comme suit :
  • La valeur de Statut traitement d’exécution de facture passe de En cours à Facturation en attente ou à Terminé
  • Les champs Date de facturation suivante, Date de frais suivante et Date des derniers frais sont mis à jour pour correspondre à la période suivante
  • Les champs de métriques de facturation, tels que Montant facturé (sans taxe), Montant de facturation en attente (hors taxe), Taxe facturée et Facturations totales, sont calculés
Résolution
La seule façon de résoudre ce problème tout en préservant l’intégrité des données est de mettre à jour le statut de la facture en le faisant passer de Publiée à Brouillon, et de définir la valeur du champ Publication de la facture sur null tout en désactivant les déclencheurs Billing. Cela peut être effectué via les paramètres du package, mais il est préférable de le faire par l’intermédiaire d’un apex anonyme en utilisant l’API Apex globale TriggerControl pour désactiver manuellement les déclencheurs CPQ et Billing.  

Voici un exemple de code permettant d’obtenir ce résultat. Vérifiez son fonctionnement dans une sandbox avant de l’utiliser en production. Remplacez par l’ID de l’enregistrement de la facture. 
List invoice2Update = new list();
for(blng__Invoice__c inv : [SELECT id, blng__InvoiceStatus__c from blng__Invoice__c 
               WHERE id = '' and blng__InvoiceStatus__c = 'Posted' LIMIT 1 ]){

inv.blng__InvoiceStatus__c = 'Draft';
inv.blng__InvoicePostedDate__c = null;
invoice2Update.add(inv);
}
try {
    SBQQ.TriggerControl.disable();
    update invoice2Update;
    SBQQ.TriggerControl.enable();
} catch (DmlException e) {
   System.debug(e);
}

REMARQUE : ne mettez pas à jour le champ Statut dans la ligne de facture lorsque les déclencheurs sont désactivés. Cela peut provoquer des problèmes d’intégrité des données et entraîner à l’avenir l’apparition de lignes de facture erronées pour ce produit de commande. Il est toutefois possible de faire exception à cette règle lorsqu’il s’agit de faire passer le statut de lignes de facture de Brouillon à Annulée après avoir utilisé l’option Mettre à jour sur une exécution de facture. Cette modification est valide dès lors que le statut Annulée a été appliqué à la facture associée.

RUBRIQUES CONNEXES
Numéro d’article de la base de connaissances

000380799

 
Chargement
Salesforce Help | Article