Loading

Annullamento o pubblicazione delle voci in fattura in stato Bozza mentre la fattura è nello stato 'Pubblicata'

Data pubblicazione: Sep 27, 2025
Descrizione
In determinate condizioni, è possibile pubblicare una fattura con le voci in stato Bozza. In questo caso, i prodotti ordinati non vengono aggiornati e non sono disponibili per creare un'altra fattura. Quindi, l'ordine è bloccato. Di seguito viene descritto come risolvere questa situazione mantenendo l'integrità dei dati.

La pubblicazione di una fattura ha effetto su almeno quattro oggetti. È possibile che una fattura venga inviata e le voci in fattura rimangano nello stato Bozza quando le combinazioni di convalide personalizzate e/o automazioni risultano in un errore di processo, che non viene completato. Questa fattura ora è in uno stato in cui l'annullamento e la rifatturazione non funzionano e non è possibile pubblicare separatamente le voci in fattura. Poiché dallo stato delle voci in fattura dipende l'aggiornamento del prodotto ordinato correlato, questa fattura deve essere corretta prima di poter creare altre fatture dall'ordine.

Tenere presente che Salesforce Billing dispone di convalide che impediscono la modifica dello stato della fattura da Inviato o la pubblicazione separata delle voci in fattura. Il comportamento è in linea con la progettazione. 
 
Quando la voce in fattura viene inviata, vengono aggiornati i seguenti campi nel prodotto ordinato:
  • Lo stato elaborazione esecuzione fattura passa da In corso a Fatturazione in sospeso o Completata
  • Prossima data di fatturazione, Data di addebito successivo e Ultima data di addebito sono aggiornate per il periodo successivo
  • Vengono calcolati i campi delle metriche di fatturazione, ad esempio Ammontare fatturato (senza imposta), Ammontare fatturazione in sospeso (senza imposta), Imposta fatturata e Fatturazioni totali.
Risoluzione
L'unico modo per risolvere il problema mantenendo l'integrità dei dati è aggiornare lo stato della fattura da Pubblicata a Bozza e impostare il campo Fattura pubblicata su null con i trigger di Billing disattivati. Questa operazione può essere eseguita con le impostazioni del pacchetto, ma viene eseguita meglio tramite Apex anonimo, utilizzando TriggerControl dell'API Apex globale per disabilitare manualmente i trigger CPQ e Billing.  

Di seguito è riportato un esempio di codice per eseguire questa operazione. Prima di utilizzarlo in produzione eseguire la verifica in un ambiente Sandbox. Sostituire con l'ID record della fattura. 
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);
}

NOTA: Non aggiornare il campo Stato nella voce in fattura con i trigger disabilitati. Ciò può causare problemi di integrità dei dati e potrebbe causare voci in fattura non corrette per quel prodotto ordinato. Una sola eccezione è l'aggiornamento delle voci in fattura da Bozza a Annullata dopo l'uso di Pulitura in una serie di fatture. Questa è una modifica valida a condizione che lo stato della fattura sia stato correttamente modificato in Annullato.

VEDERE ANCHE
Disable CPQ and Billing triggers in Apex (Disabilitazione dei trigger CPQ e Billing in Apex)
Best Practices to Implement Invoice Runs With Salesforce Billing (Procedure ottimali per l'implementazione delle esecuzioni fatture con Salesforce Billing)
Numero articolo Knowledge

000380799

 
Caricamento
Salesforce Help | Article