Su Template de datos para el proceso de pedido a cobro, facturación y emisión de facturas
Su Template de datos para el proceso de pedido a cobro, facturación y emisión de facturas
- Atributos recomendados para recopilar
- Actividades clave que conviene seguir
- Guía de extracción para SAP S/4HANA
Atributos del proceso de pedido a cobro, facturación y emisión de facturas
| Nombre | Descripción | ||
|---|---|---|---|
| Número de factura InvoiceNumber | Identificador único de un documento de facturación, que sirve como identificador principal del caso en el proceso de facturación. | ||
| Descripción El número de factura, denominado número de documento de facturación en SAP, identifica de forma única cada transacción de facturación. Es la clave central que vincula todas las actividades relacionadas, desde la creación y contabilización de la factura hasta la recepción y conciliación del pago. En Process Mining, este atributo es esencial para relacionar los casos. Todos los eventos que comparten el mismo número de factura se agrupan en una única instancia del proceso, lo que permite analizar de principio a fin el ciclo de vida de cada factura. Así se pueden medir los tiempos de ciclo, detectar desviaciones y analizar el recorrido de cada factura. Por qué es importante Es el identificador fundamental que vincula todas las actividades de facturación relacionadas en un único caso y permite analizar el proceso de principio a fin. Dónde obtenerlo Tabla SAP: VBRK, campo: VBELN Ejemplos 900012349000567890009012 | |||
| Hora del evento EventTime | Marca de tiempo precisa que indica cuándo ocurrió una actividad o un evento. | ||
| Descripción La hora del evento proporciona la fecha y la hora de cada actividad y constituye la base cronológica del proceso. Esta marca de tiempo es fundamental para calcular las duraciones, los tiempos de ciclo y los tiempos de espera entre los distintos pasos del proceso de facturación. En el análisis, la hora del evento permite ordenar las actividades secuencialmente, calcular indicadores clave de rendimiento como los días pendientes de cobro y el tiempo de ciclo de generación de facturas, e identificar cuellos de botella relacionados con el tiempo. Ofrece una visión dinámica del proceso, muestra cómo cambia el rendimiento con el tiempo y cuánto dura cada etapa del ciclo de facturación. Por qué es importante Proporciona la secuencia cronológica de los eventos, esencial para calcular todas las métricas basadas en el tiempo, como los tiempos de ciclo y las duraciones. Dónde obtenerlo Se extrae de distintos campos de fecha y hora según la actividad, como la fecha y hora de creación (VBRK-ERDAT, VBRK-ERZET), las marcas de tiempo de modificación (CDHDR-UDATE, CDHDR-UTIME) o la fecha de contabilización (BKPF-BUDAT). Ejemplos 2023-04-15T10:30:00Z2023-04-20T14:00:00Z2023-05-10T09:15:00Z | |||
| Nombre de la actividad ActivityName | Nombre de la actividad o el evento empresarial que tuvo lugar en el proceso de facturación, como «Factura generada» o «Pago recibido». | ||
| Descripción El nombre de la actividad describe un paso o hito concreto del ciclo de vida de la facturación. Estas actividades se derivan de distintos datos de SAP, como códigos de transacción, cambios en el estado de los documentos o entradas específicas de los registros, para crear un flujo secuencial del proceso. Analizar la secuencia y la frecuencia de estas actividades es la base del Process Mining. Permite visualizar el mapa del proceso, descubrir las variantes habituales y poco frecuentes, identificar cuellos de botella entre los pasos y medir la frecuencia de actividades que no aportan valor, como los retrabajos o las cancelaciones. Por qué es importante Este atributo define los pasos del proceso y permite visualizar los mapas del proceso y analizar su flujo, sus variaciones y sus cuellos de botella. Dónde obtenerlo Se deriva de distintas fuentes, como los códigos de transacción (SY-TCODE), los estados de los documentos de modificación (tablas CDHDR/CDPOS) o los registros de Workflow empresarial (por ejemplo, SWW_WI2OBJ). Ejemplos Factura generadaFactura contabilizada en contabilidadPago del cliente recibidoFactura cancelada | |||
| Fecha de factura InvoiceDate | Fecha oficial en que se emitió la factura al cliente. | ||
| Descripción La fecha de factura, también denominada fecha de facturación en SAP, sirve como punto de partida para muchos cálculos financieros. A partir de ella se determinan las condiciones de pago, las fechas de vencimiento y la antigüedad de las cuentas por cobrar. Esta fecha es un atributo fundamental a nivel de caso para el análisis financiero. Sirve de referencia para calcular el KPI de días pendientes de cobro (DSO) y elaborar informes sobre la antigüedad de las facturas pendientes, herramientas esenciales para gestionar el flujo de caja y los cobros. Por qué es importante Es la fecha principal para los cálculos financieros y sirve de punto de partida para el DSO, las fechas de vencimiento de los pagos y el análisis de antigüedad de las facturas. Dónde obtenerlo Tabla SAP: VBRK, campo: FKDAT Ejemplos 2023-03-202023-04-012023-05-18 | |||
| Fecha de vencimiento del pago PaymentDueDate | Fecha límite en la que se espera que el cliente pague la factura. | ||
| Descripción La fecha de vencimiento del pago se calcula a partir de la fecha de factura y las condiciones de pago acordadas. Es la fecha límite para recibir el pago antes de que la factura quede vencida. Este atributo es esencial para supervisar la eficacia de los cobros y prever el flujo de caja. Se utiliza directamente para calcular el KPI de tasa de pagos puntuales y clasificar las facturas en los informes de antigüedad. Analizar las diferencias entre la fecha de vencimiento y la fecha real de pago ayuda a evaluar la eficacia de las distintas condiciones de pago. Por qué es importante Establece la fecha límite de pago del cliente, por lo que es fundamental para calcular las tasas de pago puntual y gestionar las cuentas por cobrar. Dónde obtenerlo Esta fecha no se almacena directamente, sino que se calcula a partir de la fecha de factura (VBRK-FKDAT) y la clave de condiciones de pago (VBRK-ZTERM), mediante las funciones estándar de SAP para determinar fechas. Ejemplos 2023-04-192023-05-012023-06-17 | |||
| Hora de fin EndTime | Marca de tiempo exacta que indica cuándo se completó una actividad o un evento. | ||
| Descripción La hora de fin marca la finalización de una actividad. En Process Mining, suele deducirse a partir de la hora de inicio de la actividad siguiente del caso, aunque también puede obtenerse directamente si el sistema registra los eventos de inicio y fin. Este atributo es esencial para calcular el tiempo de procesamiento de cada actividad. Al restar la hora de inicio de la hora de fin, se mide la duración de cada paso, un dato clave para el análisis de Bottleneck, por ejemplo, para identificar demoras en la aprobación de facturas. Por qué es importante Permite calcular la duración exacta (el tiempo de procesamiento) de cada actividad, un dato fundamental para el análisis de Bottleneck. Dónde obtenerlo Este atributo se obtiene mediante cálculos para Process Mining. Normalmente, se calcula a partir de la hora de inicio del siguiente evento en la secuencia del caso. En algunos casos, determinadas tablas pueden registrar las horas de finalización. Ejemplos 2023-04-15T11:00:00Z2023-04-20T14:05:00Z2023-05-10T09:45:00Z | |||
| Importe de la factura InvoiceAmount | Valor neto total de la factura. | ||
| Descripción Este atributo representa el valor monetario total de los bienes o servicios facturados, sin incluir los impuestos. Es un dato financiero fundamental de cada caso de factura. El importe de la factura se utiliza en muchos tipos de análisis. Permite segmentar el proceso por valor, por ejemplo, para comprobar si las facturas de importe elevado se procesan de otra manera o sufren más retrasos. También sirve de base para los informes financieros y para calcular el valor total de las cuentas por cobrar pendientes. Por qué es importante Cuantifica el valor financiero de cada factura y permite analizar por importe, priorizar los cobros y evaluar el impacto financiero. Dónde obtenerlo Tabla SAP: VBRK, campo: NETWR Ejemplos 1500.0025000.50125.75 | |||
| Nombre de usuario UserName | ID del usuario que ejecutó la actividad. | ||
| Descripción Este atributo registra el ID de usuario de SAP responsable de un evento concreto, como crear una factura, contabilizar un documento o compensar un pago. Vincula los pasos del proceso con las personas o los equipos que los realizan. Analizar los datos por nombre de usuario ayuda a identificar a quienes obtienen mejores resultados, las necesidades de formación y los desequilibrios en la distribución de la carga de trabajo. También es fundamental para el análisis de cumplimiento, ya que muestra quién realizó las actividades críticas y permite comprender las diferencias en la forma en que distintos usuarios ejecutan el mismo proceso. Por qué es importante Vincula las actividades del proceso con usuarios concretos y permite analizar la carga de trabajo, el rendimiento y el cumplimiento a nivel individual o de equipo. Dónde obtenerlo Para los eventos de creación, este dato se encuentra en VBRK-ERNAM. Para los cambios posteriores, figura en tablas del historial de modificaciones, como CDHDR-USERNAME, o en los registros de Workflow. Ejemplos CBURNSHSIMPSONLLEONARD | |||
| Nombre del cliente CustomerName | Nombre del cliente al que se emitió la factura. | ||
| Descripción Este atributo identifica la razón social del cliente al que se factura. Se obtiene de los datos maestros centrales de clientes de SAP. Analizar el proceso por cliente permite identificar patrones específicos de determinadas cuentas. Por ejemplo, puede revelar qué clientes suelen pagar tarde, cuáles presentan más reclamaciones o para cuáles es menos eficiente el proceso de facturación. Esto permite gestionar las relaciones con los clientes de forma más específica y adaptar las estrategias de cobro. Por qué es importante Permite analizar el proceso desde la perspectiva del cliente e identificar los hábitos de pago, la frecuencia de las reclamaciones y las ineficiencias del proceso en cuentas concretas. Dónde obtenerlo Se obtiene de los datos maestros de clientes de la tabla KNA1 (campo: NAME1), vinculados mediante el ID del pagador en la cabecera de la factura (VBRK-KUNRG). Ejemplos Central eléctrica de SpringfieldMinimercado Kwik-E-MartSistemas Cyberdyne | |||
| Región Region | Región geográfica del cliente. | ||
| Descripción El atributo de región indica el área geográfica, como un estado o una provincia, asociada a la dirección del cliente. Estos datos suelen formar parte del registro maestro del cliente. Este atributo es clave para el Dashboard de rendimiento regional de facturación. Permite comparar métricas clave, como los tiempos de ciclo, las tasas de error y el DSO, entre distintas regiones. La comparación puede revelar diferencias regionales en la ejecución del proceso, el cumplimiento o la eficiencia, y facilitar mejoras específicas y la estandarización de las mejores prácticas. Por qué es importante Permite comparar el rendimiento de la facturación entre distintas áreas geográficas, detectar diferencias regionales y estandarizar los procesos. Dónde obtenerlo Se obtiene de los datos maestros de clientes de la tabla KNA1 (campo: REGIO), vinculados mediante el ID del pagador en la cabecera de la factura (VBRK-KUNRG). Ejemplos CANYTXBA | |||
| Condiciones de pago PaymentTerms | El código que define las condiciones de pago, como el plazo concedido para pagar. | ||
| Descripción Las condiciones de pago son términos predefinidos acordados con un cliente que determinan cuándo debe pagarse una factura. Algunos ejemplos son «30 días netos» (pago en un plazo de 30 días) o «2/10, 30 días netos» (un descuento del 2 % si se paga en 10 días; de lo contrario, el pago vence en 30 días). Analizar los datos por condiciones de pago ayuda a evaluar su eficacia. Al relacionar las distintas condiciones con el tiempo real que se tarda en recibir el pago, una empresa puede determinar cuáles fomentan mejor los pagos puntuales y optimizarlas para mejorar el flujo de caja. Por qué es importante Define el calendario de pagos acordado y permite analizar qué condiciones son más eficaces para que los clientes paguen a tiempo. Dónde obtenerlo Tabla SAP: VBRK, campo: ZTERM Ejemplos Z030Z060ZB60 | |||
| Estado del pago PaymentStatus | Estado actual del pago de la factura, por ejemplo, pendiente, pagada o vencida. | ||
| Descripción El estado del pago muestra en qué punto del proceso de cobro se encuentra una factura. No corresponde a un único campo de SAP, sino que se obtiene al comprobar el estado de compensación del documento contable correspondiente. Este atributo es esencial para el Dashboard de antigüedad de facturas pendientes. Permite segmentar todas las facturas pendientes según su estado y antigüedad, para que el equipo de cobros pueda priorizar sus gestiones. También permite hacer un seguimiento de los cambios de estado y supervisar el propio proceso de cobro. Por qué es importante Muestra de forma clara y rápida el estado de cobro de una factura, un dato esencial para gestionar las cuentas por cobrar y priorizar las gestiones de cobro. Dónde obtenerlo Se obtiene al comprobar el estado de compensación del documento contable (VBRK-BELNR) en tablas financieras como BSID (partidas abiertas) y BSAD (partidas compensadas). Ejemplos PendientePagadaVencidaPagada parcialmente | |||
| Moneda Currency | Código de moneda del importe de la factura. | ||
| Descripción Este atributo especifica la moneda en la que se expresan los importes de las facturas, como USD, EUR o JPY. Aporta el contexto necesario para interpretar todos los valores monetarios. En una organización global, la moneda es esencial para realizar análisis e informes financieros correctos. Permite agregar adecuadamente los datos financieros al convertir todos los importes a una moneda común para los informes y comparar el rendimiento de la facturación entre regiones con distintas monedas locales. Por qué es importante Aporta el contexto necesario para interpretar todos los valores monetarios y garantiza la precisión de los análisis y los informes financieros, especialmente en operaciones multinacionales. Dónde obtenerlo Tabla SAP: VBRK, campo: WAERK Ejemplos USDEURGBP | |||
| Motivo de la disputa CustomerDisputeReason | Motivo que indica un cliente para disputar una factura. | ||
| Descripción Cuando un cliente impugna una factura, suele registrarse el motivo de la disputa. Puede deberse a errores de precios, cantidades incorrectas o productos dañados. Esta información puede almacenarse en el módulo SAP Dispute Management o en notas de texto. Analizar los motivos de disputa es fundamental para el KPI de tasa de errores de facturación y el análisis de errores asociado. Ayuda a identificar las causas de las imprecisiones en la facturación, para que la empresa pueda resolver problemas sistémicos en procesos anteriores, mejorar la calidad de las facturas y aumentar la satisfacción del cliente. Por qué es importante Explica por qué se disputan las facturas y aporta información directa sobre las causas de los errores de facturación y la insatisfacción de los clientes. Dónde obtenerlo Si se utiliza SAP Dispute Management, esta información puede encontrarse en tablas como UDM_DISPUTE. De lo contrario, puede obtenerse a partir de códigos de motivo en documentos relacionados o campos de texto. Ejemplos Precio incorrectoDiferencia en la cantidadProducto recibido dañado | |||
| Motivo de la nota de crédito CreditMemoReason | Código que indica por qué se emitió una nota de crédito. | ||
| Descripción Cuando una factura es incorrecta y debe abonarse, normalmente se asigna un motivo al documento de nota de crédito. Así se pueden clasificar de forma estructurada las causas de los errores de facturación. Este atributo contribuye directamente al KPI de tasa de errores de facturación. Al agrupar y analizar los motivos de las notas de crédito, una empresa puede identificar los errores más frecuentes, como los relacionados con los precios o las devoluciones de productos. Este análisis permite mejorar los procesos para reducir las correcciones financieras y el trabajo repetido. Por qué es importante Clasifica los motivos por los que se emiten notas de crédito, lo que ayuda a identificar las causas más frecuentes de los errores de facturación y a mejorar la calidad. Dónde obtenerlo Tabla SAP: VBRK, campo: AUGRU (motivo del pedido). Este campo se utiliza en las solicitudes de notas de crédito o débito que posteriormente se facturan. Ejemplos 001 - Diferencia de precio002 - Calidad deficiente005 - Devolución del cliente | |||
| Número de pedido de venta SalesOrderNumber | Identificador del pedido de venta original que dio lugar a la factura. | ||
| Descripción El número de pedido de venta vincula el documento de facturación con las actividades de venta anteriores. Un pedido de venta puede generar una o varias facturas, y este vínculo permite consultar el flujo completo de documentos. Este atributo es fundamental para analizar de principio a fin el proceso de pedido a cobro. Permite ampliar el análisis del proceso a las etapas anteriores y relacionar los problemas de facturación con sus posibles causas en la creación o el cumplimiento del pedido de venta. Por ejemplo, ayuda a calcular el tiempo total del ciclo de generación de facturas desde que se cumplió el pedido. Por qué es importante Vincula la factura con el pedido de venta original y permite analizar de principio a fin el proceso de pedido a cobro, más allá de la facturación. Dónde obtenerlo Tabla SAP: VBRP (datos de posición del documento de facturación), campo: AUBEL Ejemplos 100001231000045610000789 | |||
| Pagada a tiempo IsPaidOnTime | Indicador booleano que señala si la factura se pagó en la fecha de vencimiento o antes. | ||
| Descripción Este atributo calculado compara la fecha real de pago con la fecha de vencimiento prevista. Su valor es «true» si el pago se realizó a tiempo y «false» si se hizo tarde. Este indicador simplifica el cálculo y la visualización del KPI de tasa de pagos puntuales. Permite filtrar y segmentar fácilmente los datos para analizar las características de las facturas pagadas tarde frente a las pagadas a tiempo. Así se pueden detectar patrones relacionados con determinados clientes, regiones o condiciones de pago que provocan retrasos. Por qué es importante Facilita la medición del rendimiento al indicar claramente si cada factura se pagó a tiempo o con retraso, y contribuye directamente al KPI de tasa de pagos puntuales. Dónde obtenerlo Este campo se calcula comparando la marca de tiempo de la actividad «Pago recibido del cliente» con el valor del atributo «PaymentDueDate». Ejemplos truefalse | |||
| Sistema de origen SourceSystem | Identifica el sistema de origen específico del que se extrajeron los datos. | ||
| Descripción Este atributo especifica el origen de los datos, algo especialmente útil en entornos con varias instancias de SAP u otros sistemas integrados. Suele incluir el ID del sistema y el número de cliente. En el análisis, ayuda a diferenciar los procesos y el rendimiento entre distintos sistemas o entidades de la organización. Garantiza la trazabilidad de los datos y aporta contexto, especialmente cuando se combinan datos de varias fuentes para obtener una visión integral del proceso. Por qué es importante Aporta contexto fundamental sobre el origen de los datos, garantiza la claridad en entornos con varios sistemas y facilita la gobernanza de los datos. Dónde obtenerlo Suele ser un valor estático definido durante la extracción de datos, que a menudo combina el ID del sistema (SY-SYSID) y el cliente (SY-MANDT). Ejemplos S4H_PROD_100S4H_QAS_200ECC_PROD_300 | |||
| Sociedad CompanyCode | Unidad organizativa para la que se registra la transacción financiera. | ||
| Descripción La sociedad es una entidad organizativa fundamental en SAP Financials y representa una empresa jurídicamente independiente para la que se elaboran estados financieros. Cada documento de facturación se asigna a una sociedad específica. En las organizaciones con varias sociedades, analizar los datos por sociedad es esencial para comparar el rendimiento de los procesos, las métricas financieras como los días de ventas pendientes de cobro (DSO) y el cumplimiento entre distintas entidades jurídicas. También ofrece un filtro organizativo de alto nivel para todos los Dashboards de procesos. Por qué es importante Permite segmentar el análisis de procesos por entidad jurídica, comparar el rendimiento y consolidar los datos financieros de toda la organización. Dónde obtenerlo Tabla SAP: VBRK, campo: BUKRS Ejemplos 10002000US01 | |||
| Tipo de documento de facturación BillingDocumentType | Código que clasifica el documento de facturación, por ejemplo, como factura, nota de crédito o anulación. | ||
| Descripción El tipo de documento de facturación es un campo clave que clasifica las transacciones del proceso de facturación. Determina cómo se procesa el documento, incluido su rango de numeración y las reglas de contabilización. Este atributo permite filtrar el proceso y analizar tipos específicos de transacciones. Por ejemplo, se puede crear una vista del proceso solo para las notas de crédito y comprender los motivos y el flujo de las correcciones financieras. También se pueden analizar por separado las facturas estándar y las anulaciones para obtener una visión más clara del proceso de facturación principal. Por qué es importante Clasifica las transacciones y permite centrarse en flujos de documentos específicos, como facturas estándar, notas de crédito o anulaciones. Dónde obtenerlo Tabla SAP: VBRK, campo: FKART Ejemplos F2G2S1L2 | |||
| Última actualización de datos LastDataUpdate | Marca de tiempo que indica cuándo se extrajeron o actualizaron por última vez los datos de este evento. | ||
| Descripción Este atributo registra la fecha y la hora de la última extracción de datos del sistema de origen. Es un campo de metadatos fundamental para conocer la actualidad de los datos analizados. Esta información permite validar la vigencia del análisis y gestionar los calendarios de actualización de datos. Ayuda a las partes interesadas a saber si los datos están actualizados al tomar decisiones basadas en los Dashboards y la información de Process Mining. Por qué es importante Indica si los datos están actualizados, algo esencial para confiar en el análisis y comprender su relevancia para la situación actual de las operaciones. Dónde obtenerlo Esta marca de tiempo se genera y se añade a cada registro durante el proceso de extracción y carga de datos (ETL). Ejemplos 2023-06-01T02:00:00Z2023-06-02T02:00:00Z | |||
Actividades del proceso de pedido a cobro, facturación y emisión de facturas
| Actividad | Descripción | ||
|---|---|---|---|
| Factura cerrada | Esta actividad indica el estado final de una factura pagada correctamente. En la práctica, equivale a «Pago aplicado/conciliado» e indica que el proceso de esta factura ha concluido. | ||
| Por qué es importante Es el evento de fin principal de la ruta ideal. Medir el tiempo de ciclo total hasta este punto ofrece una visión completa del ciclo de vida de la facturación y emisión de facturas, de principio a fin. Dónde obtenerlo Se infiere del estado de la partida del cliente en el documento contable. Una partida está cerrada o «compensada» cuando se completan los campos de fecha de compensación (BSEG-AUGDT) y documento de compensación (BSEG-AUGBL). Capturar Se infiere cuando se completa la fecha de compensación (AUGDT) en la tabla BSEG/ACDOCA para la partida de la factura. Tipo de evento inferred | |||
| Factura contabilizada en contabilidad | Representa la contabilización correcta del documento de facturación en el módulo de contabilidad financiera. Es un hito fundamental: la factura pasa a ser una partida oficial de cuentas por cobrar y se generan asientos en el libro mayor. | ||
| Por qué es importante Esta actividad confirma que la factura es un documento financiero legal. El tiempo entre su generación y contabilización es un indicador clave del rendimiento que permite evaluar la eficiencia del procesamiento interno. Dónde obtenerlo El evento se registra cuando se crea el documento contable correspondiente. El documento de facturación (VBRK-VBELN) se vincula al documento contable (BKPF-BELNR) mediante VBRK-BELNR, y la fecha de contabilización es BKPF-BUDAT. Capturar Se obtiene de la fecha de contabilización (BUDAT) del documento contable en la tabla BKPF vinculada al documento de facturación. Tipo de evento explicit | |||
| Factura generada | Esta actividad marca la creación del documento de facturación en el sistema. Se registra como un evento explícito cuando un usuario ejecuta una transacción como VF01 o cuando un proceso en segundo plano crea la factura, lo que genera una nueva entrada en la tabla de cabecera del documento de facturación. | ||
| Por qué es importante Este es el evento de inicio principal del proceso de facturación. Analizar el tiempo desde el cumplimiento del pedido hasta esta actividad es fundamental para medir el tiempo de ciclo de generación de facturas e identificar demoras iniciales en el proceso. Dónde obtenerlo Se registra al crear el documento en la tabla VBRK de SAP S/4HANA (documento de facturación: datos de cabecera). La fecha de creación (VBRK-ERDAT) y la hora (VBRK-ERZET) sirven como marca de tiempo. Capturar El evento se obtiene de la marca de tiempo de creación del registro del documento de facturación en la tabla VBRK. Tipo de evento explicit | |||
| Pago aplicado/conciliado | Representa el momento en que el pago recibido del cliente se concilia y se utiliza para compensar la partida abierta de la factura en el auxiliar de cuentas por cobrar. Desde el punto de vista financiero, esta actividad completa la transacción. | ||
| Por qué es importante Mide la eficiencia del proceso de aplicación de pagos. Los retrasos en esta etapa pueden dar una imagen incorrecta de la situación real de las cuentas de los clientes y generar trabajo innecesario para los equipos de cobro. Dónde obtenerlo El evento se registra mediante la fecha de compensación (BSEG-AUGDT) de la partida del documento contable de la factura original. Este campo se completa cuando un documento de compensación compensa la partida. Capturar Se obtiene del campo de fecha de compensación (AUGDT) de la tabla BSEG/ACDOCA para la partida de la factura. Tipo de evento explicit | |||
| Pago del cliente recibido | Esta actividad marca la contabilización de un pago recibido de un cliente en el sistema financiero. En esta etapa, es posible que el pago aún no se haya aplicado a una factura concreta, pero los fondos ya están registrados. | ||
| Por qué es importante Es un hito fundamental para calcular los días pendientes de cobro (DSO). Indica que se recibió el dinero, aunque la conciliación siga pendiente. Dónde obtenerlo Se obtiene de la fecha de contabilización (BKPF-BUDAT) del documento de pago del cliente, que suele ser de tipo «DZ» en la tabla BKPF. Capturar El evento se basa en la creación del documento de pago en BKPF/BSEG. Tipo de evento explicit | |||
| Aviso de pago enviado | Representa el envío al cliente de un recordatorio de pago o aviso de cobro por una factura vencida. Es un evento explícito generado por el procedimiento automatizado de reclamación de pagos. | ||
| Por qué es importante Permite analizar la eficacia del proceso de reclamación de pagos. Ayuda a determinar si los recordatorios aceleran los pagos y qué niveles de reclamación tienen mayor impacto. Dónde obtenerlo Se registra en las tablas del historial de reclamaciones (MAHNV, MHND) cuando se ejecuta el proceso de reclamación (transacción F150) para la partida abierta de la factura. Capturar Se obtiene de la fecha de ejecución del aviso de reclamación registrada en las tablas del historial de reclamaciones. Tipo de evento explicit | |||
| Contabilización de factura bloqueada | Este evento se produce cuando se crea una factura, pero se bloquea automáticamente para impedir su contabilización en la contabilidad financiera por motivos como verificaciones de crédito o incoherencias en los datos. Este estado se infiere del campo de estado de contabilización del documento de facturación. | ||
| Por qué es importante Permite identificar cuellos de botella en los que se crean facturas, pero no se liberan de inmediato para su contabilización en finanzas, lo que retrasa todo el ciclo de cobro. Es un indicador clave de problemas de calidad de los datos o de gestión del crédito. Dónde obtenerlo Se infiere del campo de estado de contabilización de la tabla de cabecera del documento de facturación (VBRK-RFBSK). Un estado como «A» (documento de facturación bloqueado para su transferencia a FI) indica que hay un bloqueo. Capturar Se infiere al comprobar el valor del campo de estado de contabilización (VBRK-RFBSK) inmediatamente después de generar la factura. Tipo de evento inferred | |||
| Factura cancelada | Se produce cuando se cancela una factura creada anteriormente, lo que suele implicar la creación de un documento de anulación correspondiente. Esto revierte la factura original y su efecto contable. | ||
| Por qué es importante Indica retrabajo, correcciones o errores de facturación. Una frecuencia elevada de cancelaciones apunta a problemas importantes en la entrada de pedidos de venta o en la configuración de facturación. Dónde obtenerlo Se registra cuando se crea un documento de facturación de anulación (por ejemplo, de tipo «S1»). Este nuevo documento de VBRK hace referencia al número de la factura original en el campo VBRK-SFAKN. Capturar El evento se obtiene de la fecha de creación en VBRK del documento de anulación que hace referencia a la factura original. Tipo de evento explicit | |||
| Factura enviada al cliente | Esta actividad marca el momento en que se envía la factura al cliente, por ejemplo, por correo postal, correo electrónico o EDI. El mecanismo de registro depende de la configuración de gestión de salidas de SAP. | ||
| Por qué es importante Desde la perspectiva del cliente, aquí comienza oficialmente el plazo de pago. Los retrasos en el envío de la factura afectan directamente a los días pendientes de cobro (DSO) y al flujo de caja. Dónde obtenerlo Puede registrarse explícitamente en las tablas de control de salidas, como NAST en los métodos anteriores o su equivalente en S/4HANA. Si no se registra de forma explícita, suele inferirse que ocurre al mismo tiempo que «Factura contabilizada en contabilidad». Capturar Revise los registros de procesamiento en las tablas de gestión de salidas para encontrar una marca de tiempo asociada al tipo de salida de la factura. Tipo de evento explicit | |||
| Llegada de la fecha de vencimiento del pago | Evento calculado que representa la fecha en que vence oficialmente el pago de la factura, según las condiciones de pago acordadas. No es un evento transaccional, sino que se deriva de los datos de la factura. | ||
| Por qué es importante Proporciona una referencia fundamental para medir el cumplimiento de los plazos de pago y analizar el comportamiento de pago de los clientes. Ayuda a distinguir los pagos puntuales de los atrasados. Dónde obtenerlo Se calcula a partir de la fecha base de pago (BSEG-ZFBDT) y las condiciones de pago almacenadas en la partida del cliente del documento contable. Capturar Se obtiene al sumar los días de las condiciones de pago a la fecha base de pago que figura en la partida del documento contable (BSEG). Tipo de evento calculated | |||
| Nota de crédito creada | Esta actividad representa la creación de una nota de crédito, que se emite al cliente para corregir un cobro excesivo o conceder un crédito por productos devueltos. A menudo está vinculada a una factura original. | ||
| Por qué es importante Pone de manifiesto problemas que generan ajustes financieros después de la facturación. Analizar las notas de crédito puede revelar errores de precios, problemas con los productos u otras causas raíz de la pérdida de ingresos. Dónde obtenerlo Se crea explícitamente como un nuevo documento de facturación en VBRK, con un tipo de facturación específico para notas de crédito (por ejemplo, «G2»). A menudo hace referencia al pedido de venta o a la factura original. Capturar Se obtiene de la creación en VBRK de un documento de facturación con un tipo de facturación de nota de crédito. Tipo de evento explicit | |||
| Reclamación del cliente abierta | Esta actividad se produce cuando un cliente presenta una reclamación sobre una factura y esta se registra formalmente en el sistema. Para ello, se debe utilizar el módulo SAP Dispute Management. | ||
| Por qué es importante Pone de manifiesto problemas de precisión en la facturación, calidad del producto o prestación del servicio que provocan retrasos en los pagos. Analizar los motivos de las reclamaciones puede ayudar a abordar las causas raíz y mejorar la satisfacción del cliente. Dónde obtenerlo Se registra al crear un caso de reclamación en las tablas de Dispute Management (por ejemplo, UDM_CASE), vinculado a la partida del documento contable. Capturar Se obtiene de la marca de tiempo de creación del caso de reclamación vinculado a la factura. Tipo de evento explicit | |||
| Retrabajo de facturación identificado | Evento calculado que identifica un ciclo de retrabajo en el que se cancela una factura y luego se genera otra para el mismo pedido de venta. No corresponde a una sola transacción, sino a un patrón de eventos. | ||
| Por qué es importante Contribuye directamente al KPI de tasa de retrabajo de facturación al cuantificar las correcciones. Esto ayuda a detectar ineficiencias y medir el coste de la mala calidad en el proceso de facturación. Dónde obtenerlo Este patrón se calcula al identificar un evento de «Factura cancelada» seguido de uno de «Factura generada», ambos vinculados al mismo documento de origen, como un número de pedido de venta. Capturar Se obtiene al detectar una secuencia de «Factura cancelada» y «Factura generada» para la misma referencia de pedido de venta. Tipo de evento calculated | |||
Guías de extracción
Pasos
- Requisitos previos: Asegúrese de tener una cuenta de usuario en SAP S/4HANA con las autorizaciones necesarias para consultar vistas de Core Data Services (CDS). En concreto, necesita acceso de lectura a vistas como I_BillingDocument, I_JournalEntryItem, I_Customer, I_Outgmgmtdocumentoutputreq, I_DisputeCase y I_DunningHistory.
- Acceda a la herramienta de extracción de datos: Inicie sesión en su sistema SAP S/4HANA. Puede usar distintas herramientas para ejecutar consultas SQL en vistas CDS, como SAP HANA Studio, DBeaver conectado mediante el cliente de SAP HANA o el complemento SAP Analysis for Microsoft Excel. En esta guía, supondremos que utiliza un cliente SQL estándar.
- Identifique los parámetros del sistema: Antes de ejecutar la consulta, identifique los códigos de sociedad y el intervalo de fechas pertinentes para el análisis. Se recomienda comenzar con un alcance limitado, por ejemplo, los datos de los últimos 3 a 6 meses, para que el tiempo de ejecución de la consulta sea manejable.
- Prepare la consulta SQL: Copie la consulta SQL completa de la sección 'query' de este documento en el cliente SQL que haya elegido.
- Personalice los marcadores de posición: Modifique los valores de marcador de posición de la consulta. Sustituya
'YYYY-MM-DD'por las fechas de inicio y fin que desee. Sustituya'XXXX'por los códigos de sociedad que correspondan. También puede que deba ajustar el marcador de posición de los tipos de documento de nota de crédito, por ejemplo,'G2', según la configuración de su sistema. - Ejecute la consulta: Ejecute la consulta SQL modificada en la base de datos de SAP S/4HANA. El tiempo de ejecución dependerá del volumen de datos del intervalo de fechas seleccionado.
- Revise los resultados: Cuando termine la consulta, revise los resultados. El conjunto de resultados debe ser una tabla plana en la que cada fila represente una actividad del proceso de facturación. Este es su registro de eventos.
- Transformación de datos (si es necesario): La consulta está diseñada para generar un registro de eventos con un formato limpio. Aun así, compruebe que el formato de las marcas de tiempo sea compatible con su herramienta de Process Mining. La consulta usa
ABAP_SYSTEM_UTCL_TO_TIMESTAMPpara convertirlas a una marca de tiempo UTC estándar, compatible con la mayoría de las herramientas. - Exporte el registro de eventos: Exporte el conjunto completo de resultados desde su cliente SQL a un archivo CSV. Asegúrese de que el archivo esté codificado en UTF-8 para evitar problemas con los caracteres.
- Cargue los datos en ProcessMind: Cargue el archivo CSV generado en la plataforma ProcessMind y asigne las columnas del archivo, como InvoiceNumber, ActivityName y EventTime, a los campos correspondientes de la herramienta.
Configuración
- Intervalo de fechas: Defina las fechas de inicio y fin en la cláusula
WHEREde la expresión de tabla común (CTE) inicial. Para el análisis inicial, se recomienda un intervalo de 3 a 6 meses, a fin de equilibrar el volumen de datos y el rendimiento. El filtro se aplica aBillingDocumentDate. - Código de sociedad: Filtre por uno o varios valores de
CompanyCodepara limitar la extracción a las entidades legales pertinentes. Este filtro es fundamental para controlar el alcance de los datos. - Tipos de documento: La consulta incluye lógica para identificar notas de crédito según
BillingDocumentType. Configure el marcador de posición, por ejemplo,('G2', 'CR'), con los tipos de documento que su organización utiliza para las notas de crédito. - Requisitos previos: Es obligatorio tener acceso a las vistas CDS subyacentes. Para ello, el equipo de seguridad de SAP debe asignarle roles y autorizaciones específicos. Además, para actividades como 'Customer Dispute Opened' o 'Payment Reminder Issued', los módulos correspondientes, SAP Dispute Management y SAP Financials Dunning, deben estar en uso en su sistema.
- Rendimiento: La consulta utiliza varias uniones y operaciones UNION. Si trabaja con conjuntos de datos muy grandes, por ejemplo, de varios años, considere ejecutarla fuera de las horas de mayor actividad o aplicar filtros más restrictivos para limitar la extracción inicial.
Consulta de ejemplo sql
WITH BaseInvoices AS (
SELECT
bd.BillingDocument AS InvoiceNumber,
bd.CreationDateTime,
bd.BillingDocumentDate AS InvoiceDate,
bd.NetDueDate AS PaymentDueDate,
bd.TotalNetAmount AS InvoiceAmount,
bd.CreatedByUser AS UserName,
bd.SDDocumentPostingStatus,
bd.AccountingDocument,
bd.IsCancelled,
bd.CancelledBillingDocument,
bd.PrecedingSDDocument,
bd.CompanyCode,
bd.BillingDocumentType,
cust.CustomerName,
reg.RegionName AS Region
FROM I_BillingDocument AS bd
LEFT JOIN I_Customer AS cust ON bd.SoldToParty = cust.Customer
LEFT JOIN I_Region AS reg ON cust.Region = reg.Region
WHERE
bd.BillingDocumentDate BETWEEN '2023-01-01' AND '2023-12-31' -- Placeholder: Set your date range
AND bd.CompanyCode = 'XXXX' -- Placeholder: Set your Company Code
AND bd.BillingCategory IN ('M', 'N', 'O', 'P', 'U', 'V', '5', '6') -- Filters for customer invoices/credit memos
)
-- 1. Invoice Generated
SELECT
bi.InvoiceNumber,
'Invoice Generated' AS ActivityName,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(bi.CreationDateTime) AS EventTime,
bi.UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(bi.CreationDateTime) AS EndTime
FROM BaseInvoices AS bi
UNION ALL
-- 2. Invoice Posting Blocked
SELECT
bi.InvoiceNumber,
'Invoice Posting Blocked' AS ActivityName,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(bi.CreationDateTime) AS EventTime,
bi.UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(bi.CreationDateTime) AS EndTime
FROM BaseInvoices AS bi
WHERE bi.SDDocumentPostingStatus = 'A' -- A = Billing document blocked for posting
UNION ALL
-- 3. Invoice Posted To Accounting
SELECT DISTINCT
bi.InvoiceNumber,
'Invoice Posted To Accounting' AS ActivityName,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(je.CreationDateTime) AS EventTime,
je.CreatedByUser AS UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(je.CreationDateTime) AS EndTime
FROM BaseInvoices AS bi
JOIN I_JournalEntry AS je ON bi.AccountingDocument = je.AccountingDocument
WHERE bi.AccountingDocument IS NOT NULL AND bi.AccountingDocument <> ''
UNION ALL
-- 4. Invoice Sent To Customer
SELECT DISTINCT
bi.InvoiceNumber,
'Invoice Sent To Customer' AS ActivityName,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(om.OutputRequestLastChgDateTime) AS EventTime,
om.CreatedByUser AS UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(om.OutputRequestLastChgDateTime) AS EndTime
FROM BaseInvoices AS bi
JOIN I_Outgmgmtdocumentoutputreq AS om ON bi.InvoiceNumber = om.SenderBusinessObject
WHERE om.OutputRequestStatus = 'S' -- Status 'S' for 'Successfully Processed'
UNION ALL
-- 5. Payment Due Date Reached
SELECT
bi.InvoiceNumber,
'Payment Due Date Reached' AS ActivityName,
CAST(bi.PaymentDueDate AS TIMESTAMP) AS EventTime,
'System' AS UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
CAST(bi.PaymentDueDate AS TIMESTAMP) AS EndTime
FROM BaseInvoices AS bi
WHERE bi.PaymentDueDate IS NOT NULL AND bi.PaymentDueDate <= CURRENT_DATE
UNION ALL
-- 6. Customer Dispute Opened
SELECT DISTINCT
bi.InvoiceNumber,
'Customer Dispute Opened' AS ActivityName,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(dc.CreationDateTime) AS EventTime,
dc.CreatedByUser AS UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(dc.CreationDateTime) AS EndTime
FROM BaseInvoices AS bi
JOIN I_DisputedItem AS di ON bi.InvoiceNumber = di.BillingDocument
JOIN I_DisputeCase AS dc ON di.DisputeCase = dc.DisputeCase
UNION ALL
-- 7. Payment Reminder Issued
SELECT DISTINCT
bi.InvoiceNumber,
'Payment Reminder Issued' AS ActivityName,
CAST(dh.DunningRunDate AS TIMESTAMP) AS EventTime,
dh.DunningRunUser AS UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
CAST(dh.DunningRunDate AS TIMESTAMP) AS EndTime
FROM BaseInvoices AS bi
JOIN I_JournalEntryItem AS jei ON bi.AccountingDocument = jei.AccountingDocument AND bi.CompanyCode = jei.CompanyCode
JOIN I_DunningHistory AS dh ON jei.CompanyCode = dh.CompanyCode AND jei.Customer = dh.Customer AND jei.AccountingDocument = dh.AccountingDocument
UNION ALL
-- 8, 9, 10. Payment Received, Cash Applied/Reconciled, Invoice Closed
SELECT
bi.InvoiceNumber,
ActivityName,
EventTime,
clearing_je.CreatedByUser AS UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
EventTime AS EndTime
FROM BaseInvoices AS bi
JOIN I_JournalEntryItem AS jei ON bi.AccountingDocument = jei.AccountingDocument AND bi.Customer IS NOT NULL
JOIN I_JournalEntry AS clearing_je ON jei.ClearingJournalEntry = clearing_je.AccountingDocument
CROSS JOIN (
VALUES ('Customer Payment Received'), ('Cash Applied/Reconciled'), ('Invoice Closed')
) AS Activities(ActivityName)
WHERE jei.ClearingDate IS NOT NULL AND jei.ClearingJournalEntry IS NOT NULL AND jei.ClearingJournalEntry <> ''
UNION ALL
-- 11. Invoice Cancelled
SELECT
bi.InvoiceNumber,
'Invoice Cancelled' AS ActivityName,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(cancellation_doc.CreationDateTime) AS EventTime,
cancellation_doc.CreatedByUser AS UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(cancellation_doc.CreationDateTime) AS EndTime
FROM BaseInvoices AS bi
JOIN I_BillingDocument AS cancellation_doc ON bi.CancelledBillingDocument = cancellation_doc.BillingDocument
WHERE bi.IsCancelled = 'X'
UNION ALL
-- 12. Credit Memo Created
SELECT
bi.InvoiceNumber,
'Credit Memo Created' AS ActivityName,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(bi.CreationDateTime) AS EventTime,
bi.UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(bi.CreationDateTime) AS EndTime
FROM BaseInvoices AS bi
WHERE bi.BillingDocumentType IN ('G2') -- Placeholder: Adjust with your credit memo document types
UNION ALL
-- 13. Billing Rework Identified
WITH CancelledInvoices AS (
SELECT
bi.PrecedingSDDocument,
bi.CompanyCode,
cancellation_doc.CreationDateTime AS CancellationTime
FROM BaseInvoices bi
JOIN I_BillingDocument AS cancellation_doc ON bi.CancelledBillingDocument = cancellation_doc.BillingDocument
WHERE bi.IsCancelled = 'X' AND bi.PrecedingSDDocument IS NOT NULL AND bi.PrecedingSDDocument <> ''
)
SELECT
rework.InvoiceNumber,
'Billing Rework Identified' AS ActivityName,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(rework.CreationDateTime) AS EventTime,
rework.UserName,
rework.InvoiceDate,
rework.PaymentDueDate,
rework.InvoiceAmount,
rework.CustomerName,
rework.Region,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(rework.CreationDateTime) AS EndTime
FROM BaseInvoices AS rework
JOIN CancelledInvoices AS cancelled ON rework.PrecedingSDDocument = cancelled.PrecedingSDDocument
AND rework.CompanyCode = cancelled.CompanyCode
WHERE rework.CreationDateTime > cancelled.CancellationTime AND rework.IsCancelled = ''
ORDER BY InvoiceNumber, EventTime; Pasos
- Confirme que dispone de acceso de lectura directo al esquema de SAP HANA que contiene las tablas de facturación y las tablas financieras relacionadas. Solicite al responsable del sistema el nombre del esquema, los datos de conexión, el intervalo de fechas autorizado, el alcance de los códigos de sociedad, los tipos de documento de facturación y los filtros de cliente o región. Sustituya únicamente los marcadores de posición de conexión y filtros de la consulta.
- Confirme las fuentes de datos pertinentes de SAP S/4HANA y sus asignaciones de campos en el sistema de destino. La consulta utiliza VBRK y VBRP para los datos de facturación y requiere fuentes configuradas para contabilidad, gestión de salidas, gestión de disputas, gestión de cobros, pagos entrantes, compensación y relaciones entre documentos. Sustituya los marcadores de posición entre corchetes de las fuentes y los campos solo después de validarlos con el diccionario de datos del sistema.
- Configure el período de extracción con una marca de tiempo de inicio inclusiva y otra de fin exclusiva. Para la ejecución inicial, se recomienda un período de tres a seis meses. Limite la extracción por código de sociedad y, cuando corresponda, por tipo de facturación para controlar el volumen y evitar mezclar procesos de facturación que no estén relacionados.
- Ejecute la consulta con un usuario de base de datos HANA de solo lectura. La consulta crea una fila de evento por cada actividad extraída explícitamente. No depende de que ProcessMind infiera eventos. Las actividades calculadas, como Payment Due Date Reached y Billing Rework Identified, se generan mediante lógica SQL y se devuelven como filas.
- Valide el esquema devuelto. El registro de eventos debe contener InvoiceNumber, ActivityName, EventTime, UserName, InvoiceDate, PaymentDueDate, InvoiceAmount, CustomerName, Region y EndTime. Confirme que InvoiceNumber, ActivityName y EventTime tengan un valor en todas las filas.
- Valide la semántica de los eventos y sus relaciones. Compare las filas de Invoice Generated con los datos de creación de encabezados de facturación; las de Invoice Posted To Accounting con el estado de contabilización; las de Invoice Sent To Customer con los registros de salida; las de pagos con los documentos contables; y las de compensación con las partidas de factura compensadas. Revise todas las secciones que dependen de marcadores de posición antes de usar la consulta en producción.
- Normalice los resultados para ProcessMind. Mantenga una fila por evento, use un tipo de datos y una zona horaria coherentes para las marcas de tiempo, conserve InvoiceNumber como texto para mantener los ceros iniciales y asegúrese de que los valores de ActivityName coincidan exactamente con los nombres de actividad requeridos. Ordene por InvoiceNumber y EventTime, con un criterio secundario determinista si varios eventos tienen la misma marca de tiempo.
- Exporte los resultados como CSV codificado en UTF-8 o en otro formato tabular compatible con ProcessMind. Asigne InvoiceNumber como identificador del caso, ActivityName como columna de actividad y EventTime como marca de tiempo del evento. Incluya los atributos recomendados cuando estén disponibles; después, cargue el archivo mediante el proceso de importación configurado en ProcessMind y compruebe por última vez el número de filas y de actividades.
Configuración
- Intervalo de fechas: Comience con un período de tres a seis meses. Use una marca de tiempo de inicio inclusiva y otra de fin exclusiva para evitar duplicar eventos entre ejecuciones incrementales.
- Identificador del caso: Use InvoiceNumber del encabezado del documento de facturación. Consérvelo como cadena, ya que los números de documento de SAP pueden incluir ceros iniciales.
- Actividades requeridas: La extracción debe devolver filas explícitas para Invoice Generated, Invoice Posting Blocked, Invoice Posted To Accounting, Invoice Sent To Customer, Payment Due Date Reached, Customer Dispute Opened, Payment Reminder Issued, Customer Payment Received, Cash Applied/Reconciled, Invoice Closed, Invoice Cancelled, Credit Memo Created y Billing Rework Identified.
- Filtros: Aplique filtros de código de sociedad, tipo de documento de facturación, organización de ventas, cliente, región y fecha solo después de confirmar los campos correspondientes y el alcance empresarial en el sistema de destino. No dé por sentado que todos los tipos de documento de facturación siguen el mismo proceso contable o de salida.
- Configuración de fuentes: VBRK y VBRP son las fuentes principales de facturación. Las fuentes de contabilidad, salidas, disputas, gestión de cobros, pagos, compensación y flujo de documentos deben configurarse según la versión de SAP S/4HANA implementada y los módulos habilitados. Sustituya las referencias de fuentes entre corchetes por objetos y campos validados.
- Eventos calculados: Payment Due Date Reached se deriva de las condiciones de pago y los datos de vencimiento. Billing Rework Identified se deriva de patrones de cancelación y generación posterior de facturas. Son filas de eventos generadas mediante SQL, no registros transaccionales nativos.
- Rendimiento: Aplique filtros de fecha, código de sociedad, tipo de facturación y número de documento en cada consulta a las fuentes. Seleccione solo las columnas necesarias, evite uniones sin restricciones con tablas contables grandes, procese el período en lotes mensuales o semanales y use los planes de ejecución de la base de datos para detectar uniones costosas.
- Extracción incremental: Use una marca de agua estable basada en las marcas de tiempo de creación o contabilización de la fuente. Vuelva a procesar un breve período de solapamiento para capturar registros tardíos de salidas, pagos, disputas y compensaciones; después, elimine duplicados usando InvoiceNumber, ActivityName y EventTime, junto con la clave del documento de origen correspondiente.
- Autorizaciones: El usuario de extracción necesita autorización de lectura para los objetos y campos seleccionados del esquema HANA. Confirme que la política de seguridad de su organización permita el acceso directo a la base de datos y que se cumplan los requisitos de tratamiento de datos personales o de clientes.
- Requisitos funcionales: Los datos de gestión de salidas, integración contable, gestión de disputas, gestión de cobros, pagos entrantes y compensación solo están disponibles si esas funciones están configuradas y se utilizan en el sistema. Si faltan módulos o registros de origen, faltarán actividades; no se inferirán eventos.
- Zona horaria: Estandarice las marcas de tiempo según la zona horaria que requiera ProcessMind. Documente si las marcas de tiempo de origen se almacenan en UTC, en la hora local del sistema o en otra zona horaria configurada.
Consulta de ejemplo sql
WITH
billing_headers AS (
SELECT
h.VBELN AS InvoiceNumber,
h.FKDAT AS InvoiceDate,
h.NETWR AS InvoiceAmount,
h.KUNAG AS CustomerNumber,
h.ERDAT AS BillingCreatedDate,
h.ERZET AS BillingCreatedTime,
h.ERNAM AS BillingCreatedBy,
h.BUKRS AS CompanyCode,
h.FKART AS BillingType,
h.FKSTO AS CancellationIndicator,
h.RFBSK AS AccountingPostingStatus,
h.ZTERM AS PaymentTerms,
h.ZFBDT AS BaselineDate,
h.NETDT AS PaymentDueDate,
h.VBELV AS PrecedingDocument
FROM [Your HANA schema].VBRK h
WHERE h.ERDAT >= '[Start date, YYYY-MM-DD]'
AND h.ERDAT < '[End date, YYYY-MM-DD]'
AND h.BUKRS IN ([Company code filter])
AND h.FKART IN ([Billing document type filter])
),
customer_data AS (
SELECT
c.KUNNR AS CustomerNumber,
c.NAME1 AS CustomerName,
c.REGION AS Region
FROM [Your customer master source] c
),
invoice_base AS (
SELECT
b.InvoiceNumber,
b.InvoiceDate,
b.InvoiceAmount,
b.CustomerNumber,
c.CustomerName,
c.Region,
b.BillingCreatedDate,
b.BillingCreatedTime,
b.BillingCreatedBy,
b.CompanyCode,
b.BillingType,
b.CancellationIndicator,
b.AccountingPostingStatus,
b.PaymentTerms,
b.BaselineDate,
b.PaymentDueDate,
b.PrecedingDocument
FROM billing_headers b
LEFT JOIN customer_data c
ON c.CustomerNumber = b.CustomerNumber
),
events AS (
SELECT
i.InvoiceNumber,
'Invoice Generated' AS ActivityName,
TO_TIMESTAMP(TO_VARCHAR(i.BillingCreatedDate) || ' ' || TO_VARCHAR(i.BillingCreatedTime)) AS EventTime,
i.BillingCreatedBy AS UserName,
i.InvoiceDate,
i.PaymentDueDate,
i.InvoiceAmount,
i.CustomerName,
i.Region,
TO_TIMESTAMP(TO_VARCHAR(i.BillingCreatedDate) || ' ' || TO_VARCHAR(i.BillingCreatedTime)) AS EndTime
FROM invoice_base i
UNION ALL
SELECT
i.InvoiceNumber,
'Invoice Posting Blocked' AS ActivityName,
COALESCE(a.StatusTimestamp, TO_TIMESTAMP(TO_VARCHAR(i.BillingCreatedDate) || ' ' || TO_VARCHAR(i.BillingCreatedTime))) AS EventTime,
a.UserName,
i.InvoiceDate,
i.PaymentDueDate,
i.InvoiceAmount,
i.CustomerName,
i.Region,
COALESCE(a.StatusTimestamp, TO_TIMESTAMP(TO_VARCHAR(i.BillingCreatedDate) || ' ' || TO_VARCHAR(i.BillingCreatedTime))) AS EndTime
FROM invoice_base i
INNER JOIN [Your accounting status source] a
ON a.InvoiceNumber = i.InvoiceNumber
AND a.PostingStatus = '[Posting blocked status value]'
UNION ALL
SELECT
i.InvoiceNumber,
'Invoice Posted To Accounting' AS ActivityName,
a.StatusTimestamp AS EventTime,
a.UserName,
i.InvoiceDate,
i.PaymentDueDate,
i.InvoiceAmount,
i.CustomerName,
i.Region,
a.StatusTimestamp AS EndTime
FROM invoice_base i
INNER JOIN [Your accounting status source] a
ON a.InvoiceNumber = i.InvoiceNumber
AND a.PostingStatus = '[Posted status value]'
UNION ALL
SELECT
i.InvoiceNumber,
'Invoice Sent To Customer' AS ActivityName,
o.SentTimestamp AS EventTime,
o.UserName,
i.InvoiceDate,
i.PaymentDueDate,
i.InvoiceAmount,
i.CustomerName,
i.Region,
o.SentTimestamp AS EndTime
FROM invoice_base i
INNER JOIN [Your output management source] o
ON o.InvoiceNumber = i.InvoiceNumber
AND o.OutputStatus = '[Successfully sent status value]'
UNION ALL
SELECT
i.InvoiceNumber,
'Payment Due Date Reached' AS ActivityName,
CAST(i.PaymentDueDate AS TIMESTAMP) AS EventTime,
CAST(NULL AS NVARCHAR(80)) AS UserName,
i.InvoiceDate,
i.PaymentDueDate,
i.InvoiceAmount,
i.CustomerName,
i.Region,
CAST(i.PaymentDueDate AS TIMESTAMP) AS EndTime
FROM invoice_base i
WHERE i.PaymentDueDate IS NOT NULL
UNION ALL
SELECT
i.InvoiceNumber,
'Customer Dispute Opened' AS ActivityName,
d.OpenedTimestamp AS EventTime,
d.UserName,
i.InvoiceDate,
i.PaymentDueDate,
i.InvoiceAmount,
i.CustomerName,
i.Region,
d.OpenedTimestamp AS EndTime
FROM invoice_base i
INNER JOIN [Your dispute management source] d
ON d.InvoiceNumber = i.InvoiceNumber
UNION ALL
SELECT
i.InvoiceNumber,
'Payment Reminder Issued' AS ActivityName,
r.IssuedTimestamp AS EventTime,
r.UserName,
i.InvoiceDate,
i.PaymentDueDate,
i.InvoiceAmount,
i.CustomerName,
i.Region,
r.IssuedTimestamp AS EndTime
FROM invoice_base i
INNER JOIN [Your dunning or payment reminder source] r
ON r.InvoiceNumber = i.InvoiceNumber
UNION ALL
SELECT
i.InvoiceNumber,
'Customer Payment Received' AS ActivityName,
p.ReceivedTimestamp AS EventTime,
p.UserName,
i.InvoiceDate,
i.PaymentDueDate,
i.InvoiceAmount,
i.CustomerName,
i.Region,
p.ReceivedTimestamp AS EndTime
FROM invoice_base i
INNER JOIN [Your incoming payment source] p
ON p.CustomerNumber = i.CustomerNumber
AND p.CompanyCode = i.CompanyCode
AND p.ReceivedTimestamp >= TO_TIMESTAMP(TO_VARCHAR(i.InvoiceDate))
UNION ALL
SELECT
i.InvoiceNumber,
'Cash Applied/Reconciled' AS ActivityName,
cl.ClearedTimestamp AS EventTime,
cl.UserName,
i.InvoiceDate,
i.PaymentDueDate,
i.InvoiceAmount,
i.CustomerName,
i.Region,
cl.ClearedTimestamp AS EndTime
FROM invoice_base i
INNER JOIN [Your accounts receivable clearing source] cl
ON cl.InvoiceNumber = i.InvoiceNumber
UNION ALL
SELECT
i.InvoiceNumber,
'Invoice Closed' AS ActivityName,
cl.ClearedTimestamp AS EventTime,
cl.UserName,
i.InvoiceDate,
i.PaymentDueDate,
i.InvoiceAmount,
i.CustomerName,
i.Region,
cl.ClearedTimestamp AS EndTime
FROM invoice_base i
INNER JOIN [Your accounts receivable clearing source] cl
ON cl.InvoiceNumber = i.InvoiceNumber
UNION ALL
SELECT
i.InvoiceNumber,
'Invoice Cancelled' AS ActivityName,
COALESCE(x.CancellationTimestamp, TO_TIMESTAMP(TO_VARCHAR(i.BillingCreatedDate) || ' ' || TO_VARCHAR(i.BillingCreatedTime))) AS EventTime,
x.UserName,
i.InvoiceDate,
i.PaymentDueDate,
i.InvoiceAmount,
i.CustomerName,
i.Region,
COALESCE(x.CancellationTimestamp, TO_TIMESTAMP(TO_VARCHAR(i.BillingCreatedDate) || ' ' || TO_VARCHAR(i.BillingCreatedTime))) AS EndTime
FROM invoice_base i
LEFT JOIN [Your billing cancellation or document flow source] x
ON x.InvoiceNumber = i.InvoiceNumber
WHERE i.CancellationIndicator = '[Cancellation indicator value]'
OR x.InvoiceNumber IS NOT NULL
UNION ALL
SELECT
cm.ReferenceInvoiceNumber AS InvoiceNumber,
'Credit Memo Created' AS ActivityName,
cm.CreatedTimestamp AS EventTime,
cm.UserName,
i.InvoiceDate,
i.PaymentDueDate,
cm.Amount AS InvoiceAmount,
i.CustomerName,
i.Region,
cm.CreatedTimestamp AS EndTime
FROM [Your credit memo source] cm
INNER JOIN invoice_base i
ON i.InvoiceNumber = cm.ReferenceInvoiceNumber
UNION ALL
SELECT
i.InvoiceNumber,
'Billing Rework Identified' AS ActivityName,
r.ReworkTimestamp AS EventTime,
r.UserName,
i.InvoiceDate,
i.PaymentDueDate,
i.InvoiceAmount,
i.CustomerName,
i.Region,
r.ReworkTimestamp AS EndTime
FROM invoice_base i
INNER JOIN (
SELECT
old_invoice.InvoiceNumber,
new_invoice.InvoiceNumber AS ReplacementInvoiceNumber,
new_invoice.BillingCreatedDate AS ReworkTimestamp,
new_invoice.BillingCreatedBy AS UserName
FROM invoice_base old_invoice
INNER JOIN invoice_base new_invoice
ON new_invoice.PrecedingDocument = old_invoice.InvoiceNumber
AND new_invoice.BillingCreatedDate > old_invoice.BillingCreatedDate
WHERE old_invoice.CancellationIndicator = '[Cancellation indicator value]'
) r
ON r.InvoiceNumber = i.InvoiceNumber
)
SELECT
InvoiceNumber,
ActivityName,
EventTime,
UserName,
InvoiceDate,
PaymentDueDate,
InvoiceAmount,
CustomerName,
Region,
EndTime
FROM events
WHERE EventTime IS NOT NULL
ORDER BY InvoiceNumber, EventTime, ActivityName; ¿Listo para comenzar?
Use esta plantilla para agilizar la preparación de sus datos y empezar a optimizar el proceso de facturación del pedido al cobro. Comience hoy mismo a convertir sus datos de SAP S/4HANA en información útil para la acción.
Optimice la facturación del pedido al cobro y acelere un 30 % el flujo de caja
Elimine ineficiencias y reduzca un 30 % el tiempo del ciclo de facturación desde hoy.
No se requiere tarjeta de crédito. Comience en cuestión de minutos.