Loading

Cancelar o registrar partidas de factura en estado de Borrador mientras la factura está en el estado "Registrado"

Fecha de publicación: Sep 27, 2025
Descripción
Bajo determinadas condiciones, una factura puede registrarse con las partidas de factura que permanecen en el estado Borrador. Cuando sucede esto, los productos de pedido no se actualizan y no están disponibles para crear otra factura. El pedido se atasca de forma efectiva. Aprenda cómo recuperarse de esta situación y cómo mantener la integridad de los datos.

El registro de una factura toca al menos cuatro objetos. Es posible que experimente que una factura que se registre y las partidas de facturas permanezcan en estado Borrador cuando las combinaciones de validaciones personalizadas y/o automatizaciones dan como resultado que el proceso falle sin completarse. Ahora, esta factura está en un estado en el que la función Cancelar y refacturar no funciona, y las partidas de la factura no se pueden registrar por separado. Dado que el estado de las partidas de factura controla la actualización del producto de pedido relacionado, esta factura debe ser fija antes de que se puedan crear facturas adicionales desde el pedido.

Tenga en cuenta que Salesforce Billing incluye validaciones que impiden que el estado de la factura cambie de registrado o registrar las partidas de la factura por separado. Esto es por diseño. 
 
Cuando se registra la partida de factura, se actualizan los siguientes campos en el producto de pedido:
  • El estado de procesamiento de la ejecución de factura pasa de En curso a Pendiente de facturación o Completado.
  • Próxima fecha de facturación, Próxima fecha de cargo y Última fecha de cargo hasta se actualizan para el siguiente periodo
  • Los campos Mediciones de facturación, como Importe facturado (sin impuestos), Importe de facturación pendiente (sin impuestos), Impuestos facturados y Facturaciones totales se calculan
Solución
La única forma de solucionar esto y conservar la integridad de los datos es actualizar el Estado de factura de Registrado a Borrador y establecer el campo Factura registrada a nulo con los desencadenadores de Billing desactivados. Esto se puede realizar con la configuración del paquete, pero se hace mejor mediante Apex anónimo mediante el TriggerControl de API de Apex global para desactivar manualmente desencadenadores de CPQ y Billing.  

Lo siguiente es un código de muestra para hacer esto. Verifique en sandbox antes de utilizar en producción. Sustituya por el Id. del registro de la factura. 
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: No actualice el campo Estado en la partida de factura con los desencadenadores desactivados. Esto puede provocar problemas de integridad de datos y puede dar como resultado partidas de factura incorrectas para ese producto de pedido. Una excepción de este proceso es la actualización de las partidas de facturas de Borrador a Cancelado tras utilizar Limpieza en una ejecución de factura. Este cambio es válido siempre que la factura tenga el cambio de estado Cancelado correctamente.

CONSULTE TAMBIÉN
Número del artículo de conocimiento

000380799

 
Cargando
Salesforce Help | Article