Su plantilla de datos de pedido a cobro: facturación y emisión de facturas
Su plantilla de datos de pedido a cobro: facturación y emisión de facturas
- Atributos recomendados para recopilar
- Actividades clave que debe seguir
- Guía de extracción para SAP S/4HANA
Atributos de Order to Cash: facturación y emisión de facturas
| Nombre | Descripción | ||
|---|---|---|---|
| Número de factura InvoiceNumber | Identificador único de un documento de facturación, que actúa como identificador principal del caso en el proceso de facturación. | ||
| Descripción El número de factura, conocido como número de documento de facturación en SAP, identifica de forma única cada transacción de facturación. Actúa como 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 correlacionar 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 facturación de cada factura. Esto permite hacer un seguimiento de los tiempos de ciclo, identificar desviaciones y analizar el recorrido de cada factura. Por qué es importante Es el identificador fundamental que conecta todas las actividades de facturación relacionadas en un único caso y hace posible el análisis del proceso de principio a fin. Dónde obtenerlo Tabla SAP: VBRK, campo: VBELN Ejemplos 900012349000567890009012 | |||
| Hora del evento EventTime | La marca de tiempo exacta 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 duraciones, tiempos de ciclo y tiempos de espera entre los distintos pasos del proceso de facturación. En el análisis, la hora del evento se utiliza para ordenar secuencialmente las actividades, calcular indicadores clave de rendimiento como los días de ventas pendientes de cobro y el tiempo de ciclo de generación de facturas, e identificar cuellos de botella relacionados con el tiempo. Permite obtener una visión dinámica del proceso, mostrar 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 diversos 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 | El nombre de la actividad empresarial o el evento que tuvo lugar dentro del proceso de facturación, como «Factura generada» o «Pago recibido». | ||
| Descripción El nombre de la actividad describe un paso o hito específico del ciclo de facturación. Estas actividades se derivan de diversos puntos de datos de SAP, como códigos de transacción, cambios de estado de documentos o entradas específicas de registros, para crear un flujo de proceso secuencial. El análisis de la secuencia y la frecuencia de estas actividades constituye el núcleo de Process Mining. Ayuda a visualizar el mapa del proceso, descubrir variantes comunes y poco frecuentes, identificar cuellos de botella entre pasos y medir la frecuencia de actividades que no aportan valor, como el retrabajo o las cancelaciones. Por qué es importante Este atributo define los pasos del proceso y permite visualizar los mapas de proceso y analizar el flujo, las variaciones y los cuellos de botella. Dónde obtenerlo Se deriva de diversas fuentes, incluidos 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 registrada en contabilidadPago del cliente recibidoFactura cancelada | |||
| Fecha de factura InvoiceDate | La fecha oficial en la que se emitió la factura al cliente. | ||
| Descripción La fecha de factura, también conocida como fecha de facturación en SAP, sirve como punto de partida para numerosos cálculos financieros. A partir de ella se determinan las condiciones de pago, las fechas de vencimiento y la antigüedad de la cuenta por cobrar. Esta fecha es un atributo fundamental a nivel de caso para el análisis financiero. Constituye la base para calcular el KPI de días de ventas pendientes de cobro (DSO) y crear informes de antigüedad de 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 como punto de partida para el DSO, las fechas de vencimiento de pago 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 | La fecha 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. Representa el plazo para recibir el pago sin que la factura pase a estar 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 segmentar las facturas en informes de antigüedad. El análisis de 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 el plazo para el pago del cliente, por lo que resulta fundamental para calcular las tasas de pagos puntuales 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 finalización EndTime | La marca de tiempo exacta que indica cuándo se completó una actividad o un evento. | ||
| Descripción La hora de finalización marca la conclusión de una actividad. En Process Mining, a menudo se infiere como 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 finalización. Este atributo es esencial para calcular el tiempo de procesamiento de cada actividad. Al restar la hora de inicio de la hora de finalización, se puede medir la duración de cada paso, algo fundamental para analizar cuellos de botella, como los retrasos en la fase de aprobación de facturas. Por qué es importante Permite calcular la duración exacta, o tiempo de procesamiento, de cada actividad, un aspecto fundamental para el análisis de cuellos de botella. Dónde obtenerlo Es un atributo derivado para Process Mining. Normalmente se calcula como el StartTime del evento siguiente en la secuencia del caso. En algunos escenarios, 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 | El valor neto total de la factura. | ||
| Descripción Este atributo representa el valor monetario total de los bienes o servicios facturados, sin incluir impuestos. Es un dato financiero fundamental para cada caso de factura. El importe de la factura se utiliza en numerosos análisis. Permite segmentar el proceso por valor, por ejemplo, para comprobar si las facturas de importe elevado se procesan de forma diferente o sufren más retrasos. También constituye la base de los informes financieros y del cálculo del valor total de las cuentas por cobrar pendientes. Por qué es importante Cuantifica el valor financiero de cada factura y permite realizar análisis basados en el valor, 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 | El ID de usuario de la persona empleada que ejecutó la actividad. | ||
| Descripción Este atributo captura 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 ejecutan. El análisis por nombre de usuario ayuda a identificar a las personas con mejor rendimiento, las necesidades de formación o 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 ejecutó las actividades críticas, y para 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, se encuentra en VBRK-ERNAM. Para las modificaciones posteriores, aparece en tablas del historial de cambios como CDHDR-USERNAME o en registros de Workflow. Ejemplos CBURNSHSIMPSONLLEONARD | |||
| Nombre del cliente CustomerName | El nombre del cliente al que se emitió la factura. | ||
| Descripción Este atributo identifica el nombre legal del cliente al que se factura. Se obtiene de los datos maestros centrales de clientes de SAP. El análisis del proceso por cliente permite identificar patrones específicos de determinadas cuentas. Por ejemplo, puede revelar qué clientes pagan sistemáticamente tarde, cuáles presentan más disputas o para cuáles resulta menos eficiente el proceso de facturación. Esto permite gestionar de forma específica las relaciones con los clientes y adaptar las estrategias de cobro. Por qué es importante Permite realizar análisis centrados en el cliente y ayuda a identificar comportamientos de pago, frecuencia de disputas e ineficiencias del proceso en cuentas concretas. Dónde obtenerlo Se obtiene de la tabla de datos maestros de clientes KNA1 (campo: NAME1), vinculada mediante el ID del pagador de la cabecera de la factura (VBRK-KUNRG). Ejemplos Central eléctrica de SpringfieldKwik-E-MartCyberdyne Systems | |||
| Región Region | La región geográfica del cliente. | ||
| Descripción El atributo Región indica el área geográfica, como un estado o una provincia, asociada a la dirección del cliente. Normalmente, estos datos forman parte del registro maestro del cliente. Este atributo es clave para el Dashboard de rendimiento de facturación regional. Permite comparar métricas importantes, como tiempos de ciclo, tasas de error y DSO, entre distintas regiones. Esta comparación puede poner de relieve 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, ayuda a identificar diferencias regionales y facilita la estandarización de los procesos. Dónde obtenerlo Se obtiene de la tabla de datos maestros de clientes KNA1 (campo: REGIO), vinculada mediante el ID del pagador de 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 permitido para pagar. | ||
| Descripción Las condiciones de pago son términos predefinidos acordados con un cliente que determinan cuándo vence el pago de una factura. Algunos ejemplos son «Neto 30» (pago a 30 días) o «2/10 Neto 30» (un descuento del 2 % si se paga en 10 días; de lo contrario, el pago vence en 30 días). El análisis por condiciones de pago ayuda a evaluar su eficacia. Al relacionar distintas condiciones de pago con el tiempo real necesario para recibir el pago, una empresa puede determinar cuáles fomentan mejor los pagos puntuales y optimizar sus condiciones 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 garantizar que los clientes paguen a tiempo. Dónde obtenerlo Tabla SAP: VBRK, campo: ZTERM Ejemplos Z030Z060ZB60 | |||
| Estado del pago PaymentStatus | El estado actual del pago de la factura, como Abierto, Pagado o Vencido. | ||
| Descripción El estado del pago ofrece una instantánea de la situación de una factura en el ciclo de cobros. No es un único campo de SAP, sino que se obtiene comprobando 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 abiertas por estado y antigüedad, lo que ayuda al equipo de cobros a priorizar sus esfuerzos de forma eficaz. El seguimiento de las transiciones entre estados también permite supervisar el propio proceso de cobros. Por qué es importante Ofrece una visión clara e inmediata del estado de cobro de una factura, algo esencial para gestionar las cuentas por cobrar y priorizar los esfuerzos de cobro. Dónde obtenerlo Se obtiene comprobando el estado de compensación del documento contable (VBRK-BELNR) en tablas financieras como BSID (partidas abiertas) y BSAD (partidas compensadas). Ejemplos AbiertoPagadoVencidoPagado parcialmente | |||
| Moneda Currency | El 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 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 mediante la conversión de todos los importes a una moneda común de presentación y comparar el rendimiento de la facturación entre regiones con distintas monedas locales. Por qué es importante Aporta el contexto esencial para todos los valores monetarios y garantiza un análisis y una presentación financiera precisos, especialmente en operaciones multinacionales. Dónde obtenerlo Tabla SAP: VBRK, campo: WAERK Ejemplos USDEURGBP | |||
| Motivo de la disputa CustomerDisputeReason | El motivo indicado por un cliente para impugnar una factura. | ||
| Descripción Cuando un cliente impugna una factura, normalmente se registra el motivo de la disputa. Puede deberse a errores de precios, cantidades incorrectas o mercancías dañadas. Esta información puede almacenarse en el módulo SAP Dispute Management o como notas de texto. El análisis de 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 raíz de las imprecisiones de facturación, lo que permite abordar problemas sistémicos en los procesos anteriores, mejorar la calidad de las facturas y aumentar la satisfacción del cliente. Por qué es importante Explica por qué se impugnan las facturas y proporciona información directa sobre las causas raíz 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 derivarse de códigos de motivo de documentos relacionados o de campos de texto. Ejemplos Precio incorrectoDiferencia en la cantidadMercancía dañada recibida | |||
| Motivo de la nota de crédito CreditMemoReason | El código de motivo 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. Esto proporciona una forma estructurada de categorizar las fuentes de los errores de facturación. Este atributo respalda directamente el 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 tipos de error más frecuentes, como errores de precios o devoluciones de productos. Este análisis impulsa mejoras del proceso destinadas a reducir la necesidad de correcciones financieras y retrabajo. Por qué es importante Categoriza los motivos para emitir un crédito, ayuda a localizar las fuentes más frecuentes de errores de facturación e impulsa mejoras de calidad. Dónde obtenerlo Tabla SAP: VBRK, campo: AUGRU (motivo del pedido). Este campo se utiliza en solicitudes de notas de crédito o débito que posteriormente se facturan. Ejemplos 001 - Diferencia de precio002 - Mala calidad005 - Devolución del cliente | |||
| Número de pedido de venta SalesOrderNumber | El 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 único pedido de venta puede dar lugar a una o varias facturas, y este vínculo proporciona el flujo documental completo. Este atributo es fundamental para realizar un verdadero análisis de Order-to-Cash de principio a fin. Permite ampliar la vista del proceso hacia las etapas anteriores y conectar los problemas de facturación con sus posibles causas raíz en las fases de creación o cumplimiento del pedido de venta. Por ejemplo, ayuda a calcular el tiempo total de ciclo de generación de la factura desde el momento en que se cumplió el pedido. Por qué es importante Vincula la factura con el pedido de venta original y permite obtener una visión más amplia y de principio a fin del proceso Order-to-Cash, más allá de la facturación. Dónde obtenerlo Tabla SAP: VBRP (datos de partidas del documento de facturación), campo: AUBEL Ejemplos 100001231000045610000789 | |||
| Pagada a tiempo IsPaidOnTime | Un indicador booleano que señala si la factura se pagó en la fecha de vencimiento o antes. | ||
| Descripción Es un atributo calculado que compara la fecha real de pago con la fecha de vencimiento programada. Devuelve «true» si el pago se realizó a tiempo y «false» si se realizó tarde. Este indicador simplifica el cálculo y la visualización del KPI de tasa de pagos puntuales. Permite filtrar y segmentar fácilmente para analizar las características de las facturas pagadas tarde frente a las pagadas a tiempo. Esto puede ayudar a descubrir patrones relacionados con determinados clientes, regiones o condiciones de pago que provocan retrasos. Por qué es importante Simplifica la medición del rendimiento al marcar claramente cada factura como «a tiempo» o «tarde», y respalda directamente el KPI de tasa de pagos puntuales. Dónde obtenerlo Es un campo calculado. La lógica compara la marca de tiempo de la actividad «Pago del cliente recibido» 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, lo que resulta especialmente útil en entornos con varias instancias de SAP u otros sistemas integrados. Normalmente incluye 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 organizativas. 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 un contexto esencial sobre el origen de los datos, garantiza la claridad en entornos con varios sistemas y respalda la gobernanza de datos. Dónde obtenerlo Normalmente es un valor estático definido durante la extracción de datos, que suele combinar el ID del sistema (SY-SYSID) y el cliente (SY-MANDT). Ejemplos S4H_PROD_100S4H_QAS_200ECC_PROD_300 | |||
| Sociedad CompanyCode | La unidad organizativa en la que se registra la transacción financiera. | ||
| Descripción El código de 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 un código de sociedad específico. Analizar por código de sociedad es esencial en organizaciones con varias empresas para comparar el rendimiento del proceso, las métricas financieras, como el DSO, y el cumplimiento entre distintas entidades jurídicas. Proporciona un filtro organizativo de alto nivel para todos los Dashboards de procesos. Por qué es importante Permite segmentar el análisis del proceso por entidad jurídica, comparar el rendimiento y consolidar la información financiera en toda la organización. Dónde obtenerlo Tabla SAP: VBRK, campo: BUKRS Ejemplos 10002000US01 | |||
| Tipo de documento de facturación BillingDocumentType | Un código que clasifica el documento de facturación, como una factura, una nota de crédito o una cancelación. | ||
| Descripción El tipo de documento de facturación es un campo clave que categoriza las transacciones del proceso de facturación. Controla cómo se procesa el documento, incluidos su rango numérico y las reglas de contabilización financiera. Este atributo permite filtrar el proceso para analizar tipos específicos de transacciones. Por ejemplo, se puede crear una vista de proceso independiente solo para notas de crédito con el fin de comprender los motivos y el flujo de las correcciones financieras, o analizar las facturas estándar por separado de las cancelaciones para obtener una visión más clara del proceso principal de facturación. Por qué es importante Clasifica las transacciones y permite realizar análisis específicos de flujos documentales como facturas estándar, notas de crédito o cancelaciones. Dónde obtenerlo Tabla SAP: VBRK, campo: FKART Ejemplos F2G2S1L2 | |||
| Última actualización de datos LastDataUpdate | La 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 hora de la última extracción de datos del sistema de origen. Es un campo de metadatos fundamental para comprender la actualidad de los datos analizados. Esta información se utiliza para validar la vigencia del análisis y gestionar los calendarios de actualización de datos. Garantiza que las partes interesadas conozcan la actualidad de los datos al tomar decisiones basadas en los Dashboards y la información de Process Mining. Por qué es importante Indica la actualidad de los datos, un aspecto esencial para confiar en el análisis y comprender su relevancia respecto al estado 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 de Order to Cash: facturación y emisión de facturas
| Actividad | Descripción | ||
|---|---|---|---|
| Factura cerrada | Esta actividad representa el estado final de una factura pagada correctamente. Funcionalmente, equivale a «Pago aplicado y conciliado» e indica que el proceso de esta factura ha terminado. | ||
| Por qué es importante Actúa como el evento final principal del «camino feliz» del proceso. Medir el tiempo total del ciclo hasta este punto ofrece una visión completa del ciclo de facturación 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). Recopilar Se infiere a partir de la fecha de compensación (AUGDT) completada en la tabla BSEG/ACDOCA para la partida de la factura. Tipo de evento inferred | |||
| Factura generada | Esta actividad marca la creación del documento de facturación en el sistema. Es un evento explícito que se registra cuando una persona usuaria ejecuta una transacción como VF01 o cuando un trabajo 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 inicial principal del proceso de facturación. Analizar el tiempo desde el cumplimiento del pedido hasta esta actividad es fundamental para medir el tiempo del ciclo de generación de facturas e identificar los retrasos iniciales del proceso. Dónde obtenerlo Se registra en la tabla VBRK de SAP S/4HANA (Billing Document: Header Data) al crear el documento. La fecha de creación (VBRK-ERDAT) y la hora (VBRK-ERZET) sirven como marca de tiempo. Recopilar El evento se captura a partir de la marca de tiempo de creación del registro del documento de facturación en la tabla VBRK. Tipo de evento explicit | |||
| Factura registrada en contabilidad | Representa la contabilización correcta del documento de facturación en el módulo de contabilidad financiera. Es un hito crítico en el que la factura se convierte en una partida oficial de cuentas por cobrar y genera asientos en el libro mayor. | ||
| Por qué es importante Esta actividad confirma que la factura es un documento financiero legal. El tiempo entre la generación y la contabilización es un indicador clave de rendimiento que muestra la eficiencia del procesamiento interno. Dónde obtenerlo Este evento se captura 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. Recopilar Se captura a partir de la fecha de contabilización (BUDAT) del documento contable de la tabla BKPF vinculada al documento de facturación. Tipo de evento explicit | |||
| Pago aplicado y 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 sublibro de cuentas por cobrar. Esta actividad completa la transacción desde el punto de vista financiero. | ||
| Por qué es importante Mide la eficiencia del proceso de aplicación de pagos. Los retrasos en esta etapa pueden distorsionar el estado real de las cuentas de los clientes y generar trabajo innecesario para los equipos de cobros. Dónde obtenerlo Este evento se captura mediante la fecha de compensación (BSEG-AUGDT) de la partida del documento contable de la factura original. Esta fecha se completa cuando un documento de compensación compensa la partida. Recopilar 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 entrante 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 se han registrado. | ||
| Por qué es importante Es un hito fundamental para calcular los días de ventas pendientes de cobro (DSO). Indica que se ha recibido el efectivo, aunque la conciliación todavía esté pendiente. Dónde obtenerlo Obtenido de la fecha de contabilización (BKPF-BUDAT) del documento de pago del cliente (normalmente, el tipo de documento «DZ» en la tabla BKPF). Recopilar El evento se basa en la creación del documento de pago en BKPF/BSEG. Tipo de evento explicit | |||
| Disputa del cliente abierta | Esta actividad se produce cuando un cliente presenta una disputa sobre una factura y esta se registra formalmente en el sistema. Para ello es necesario utilizar el módulo SAP Dispute Management. | ||
| Por qué es importante Pone de relieve problemas de precisión de facturación, calidad del producto o prestación del servicio que provocan retrasos en los pagos. Analizar los motivos de las disputas 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 disputa en las tablas de Dispute Management, por ejemplo, UDM_CASE, vinculado a la partida individual del documento contable. Recopilar Se captura a partir de la marca de tiempo de creación del registro del caso de disputa vinculado a la factura. Tipo de evento explicit | |||
| Factura cancelada | Ocurre cuando se cancela una factura creada anteriormente, lo que normalmente implica crear un documento de cancelación correspondiente. Esto revierte la factura original y su impacto contable. | ||
| Por qué es importante Indica retrabajo, correcciones o errores de facturación. Una frecuencia elevada de cancelaciones apunta a problemas importantes en la introducción de pedidos de venta o en la configuración de facturación. Dónde obtenerlo Se captura cuando se crea un documento de facturación de cancelación, por ejemplo, con el tipo de documento «S1». Este nuevo documento de VBRK hará referencia al número de factura original en el campo VBRK-SFAKN. Recopilar El evento se captura a partir de la fecha de creación del documento de cancelación en VBRK que hace referencia a la factura original. Tipo de evento explicit | |||
| Factura enviada al cliente | Esta actividad marca el momento en que la factura se transmite al cliente, por ejemplo, mediante impresión, correo electrónico o EDI. El mecanismo de captura depende de la configuración de gestión de salidas de SAP. | ||
| Por qué es importante Es el inicio oficial del cómputo del plazo de pago desde la perspectiva del cliente. Los retrasos en el envío de la factura afectan directamente los días de ventas pendientes de cobro (DSO) y el flujo de caja. Dónde obtenerlo Puede registrarse explícitamente en las tablas de control de salidas, como NAST en los métodos antiguos o su equivalente en S/4HANA. Si no se registra de forma explícita, a menudo se infiere que ocurre al mismo tiempo que «Invoice Posted To Accounting». Recopilar Compruebe los registros de procesamiento de 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 | Es un evento calculado que representa la fecha en la 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 rendimiento de los pagos puntuales y analizar el comportamiento de pago de los clientes. Ayuda a distinguir entre pagos realizados a tiempo y pagos vencidos. Dónde obtenerlo Se calcula a partir de la fecha base de pago (BSEG-ZFBDT) y de las condiciones de pago almacenadas en la partida individual del cliente del documento contable. Recopilar Se obtiene sumando los días de las condiciones de pago a la fecha base de pago que figura en la partida individual 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 a un cliente para corregir un cargo excesivo o conceder un crédito por mercancías devueltas. A menudo está vinculada a una factura original. | ||
| Por qué es importante Pone de relieve los problemas que generan ajustes financieros después de la facturación. El análisis de las notas de crédito puede revelar errores de precios, problemas con los productos u otras causas raíz de fugas 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 la factura originales. Recopilar Se captura a partir de la creación de un documento de facturación en VBRK con un tipo de facturación de nota de crédito. Tipo de evento explicit | |||
| Recordatorio de pago emitido | Representa el envío de un recordatorio de pago o aviso de reclamación a un cliente por una factura vencida. Es un evento explícito generado por el procedimiento automatizado de reclamación. | ||
| Por qué es importante Permite analizar la eficacia del proceso de reclamación. 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 la ejecución de reclamación (transacción F150) para la partida abierta de la factura. Recopilar Se captura a partir de la fecha de ejecución del aviso de reclamación registrada en las tablas del historial de reclamaciones. Tipo de evento explicit | |||
| Registro de factura bloqueado | Este evento se produce cuando se crea una factura, pero el sistema bloquea automáticamente su contabilización en la contabilidad financiera por diversos motivos, como comprobaciones 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 Identifica los cuellos de botella en los que las facturas se crean, pero no se liberan de inmediato para finanzas, lo que retrasa todo el ciclo de cobro. Es un indicador clave de problemas de calidad de 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 un bloqueo. Recopilar 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 | |||
| Retrabajo de facturación identificado | Es un evento calculado que identifica un bucle de retrabajo en el que se canceló una factura y después se generó otra para el mismo pedido de venta. No es una transacción individual, sino un patrón de eventos. | ||
| Por qué es importante Contribuye directamente al KPI de tasa de retrabajo de facturación al cuantificar los casos de corrección. Esto ayuda a localizar ineficiencias y medir el coste de la mala calidad en el proceso de facturación. Dónde obtenerlo Este patrón se calcula identificando un evento «Factura cancelada» seguido de un nuevo evento «Factura generada», ambos vinculados al mismo documento de origen, como un número de pedido de venta. Recopilar Se obtiene detectando 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 e I_DunningHistory.
- Acceder a la herramienta de extracción de datos: Inicie sesión en su sistema SAP S/4HANA. Puede utilizar distintas herramientas para ejecutar consultas SQL en vistas CDS, como SAP HANA Studio, DBeaver conectado mediante el cliente SAP HANA o el complemento SAP Analysis for Microsoft Excel. En esta guía supondremos que utiliza un cliente SQL estándar.
- Identificar los parámetros del sistema: Antes de ejecutar la consulta, identifique los códigos de empresa específicos y el intervalo de fechas pertinente para su análisis. Se recomienda comenzar con un alcance limitado, por ejemplo, los datos de los últimos 3 a 6 meses, para mantener tiempos de ejecución manejables.
- Preparar la consulta SQL: Copie la consulta SQL completa proporcionada en la sección «query» de este documento en el cliente SQL que haya elegido.
- Personalizar 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 empresa de destino. También puede ser necesario ajustar el marcador de posición de los tipos de documento de abono, por ejemplo,'G2', según la configuración de su sistema. - Ejecutar la consulta: Ejecute la consulta SQL modificada en la base de datos de SAP S/4HANA. El tiempo de ejecución variará según el volumen de datos del intervalo seleccionado.
- Revisar los resultados: Cuando finalice la consulta, revise el resultado. El conjunto de resultados debe ser una tabla plana en la que cada fila represente una actividad individual 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 formato limpio de Registro de eventos. No obstante, compruebe el formato de las marcas de tiempo para asegurarse de que sea compatible con su herramienta de Process Mining. La consulta utiliza
ABAP_SYSTEM_UTCL_TO_TIMESTAMPpara convertirlas a una marca de tiempo UTC estándar, ampliamente compatible. - Exportar el Registro de eventos: Exporte el conjunto de resultados completo desde su cliente SQL a un archivo CSV. Asegúrese de que el archivo utilice codificación UTF-8 para evitar problemas con los caracteres.
- Cargar 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: Establezca las fechas de inicio y fin en la cláusula
WHEREde la Expresión común de tabla (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 empresa: Filtre por uno o varios valores de
CompanyCodepara limitar la extracción a las entidades jurídicas pertinentes. Este filtro es fundamental para controlar el alcance de los datos. - Tipos de documento: La consulta incluye lógica para identificar los abonos según
BillingDocumentType. Debe configurar el marcador de posición, por ejemplo,('G2', 'CR'), con los tipos de documento de abono específicos que utiliza su organización. - Requisitos previos: Es obligatorio tener acceso a las vistas CDS subyacentes. Esto requiere funciones y autorizaciones específicas asignadas por su equipo de seguridad de SAP. Además, para actividades como «Disputa del cliente abierta» o «Recordatorio de pago emitido», los módulos de SAP correspondientes, SAP Dispute Management y SAP Financials Dunning, deben estar activos en su sistema.
- Rendimiento: La consulta utiliza varias combinaciones y uniones. Para conjuntos de datos muy grandes, por ejemplo, varios años de datos, considere ejecutarla fuera de las horas punta o aplicar filtros más restrictivos para limitar la extracción inicial.
a 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 directo de lectura al esquema de SAP HANA que contiene las tablas de facturación y las tablas financieras relacionadas. Obtenga del responsable del sistema el nombre del esquema, los datos de conexión, el intervalo de fechas autorizado, el alcance de los códigos de empresa, los tipos de documento de facturación y los filtros de cliente o región. Sustituya únicamente los marcadores de conexión y de filtro 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, reclamaciones de pago, pagos entrantes, compensación y relaciones entre documentos. Sustituya los marcadores de fuente y campo entre corchetes solo después de validarlos con el diccionario de datos del sistema.
- Configure el periodo de extracción utilizando marcas de tiempo de inicio inclusivas y de fin exclusivas. Para la ejecución inicial se recomienda un periodo de tres a seis meses. Limite la extracción por código de empresa y, cuando corresponda, por tipo de facturación para controlar el volumen y evitar mezclar procesos de facturación no 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 ProcessMind para inferir eventos. Las actividades calculadas, incluidas «Fecha de vencimiento del pago alcanzada» y «Reprocesamiento de facturación identificado», 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 estén completos en todas las filas.
- Valide la semántica y las relaciones de los eventos. Compare las filas «Factura generada» con los datos de creación de la cabecera de facturación, las filas «Factura contabilizada en contabilidad» con el estado de contabilización, las filas «Factura enviada al cliente» con los registros de salida, las filas de pago con los documentos contables y las filas de compensación con las partidas de factura compensadas. Revise todas las secciones que dependan de marcadores antes de utilizar la consulta en producción.
- Normalice el resultado para ProcessMind. Mantenga una fila por evento, utilice 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 orden secundario determinista si varios eventos comparten la misma marca de tiempo.
- Exporte el resultado como CSV UTF-8 u 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, cargue después el archivo mediante el proceso de importación configurado de ProcessMind y realice una comprobación final del número de filas y actividades.
Configuración
- Intervalo de fechas: Comience con un periodo de tres a seis meses. Utilice una marca de tiempo de inicio inclusiva y otra de fin exclusiva para evitar eventos duplicados entre ejecuciones incrementales.
- Identificador del caso: Utilice InvoiceNumber de la cabecera del documento de facturación. Consérvelo como cadena, ya que los números de documento de SAP pueden contener ceros iniciales.
- Actividades obligatorias: La extracción debe devolver filas explícitas para «Factura generada», «Bloqueo de contabilización de factura», «Factura contabilizada en contabilidad», «Factura enviada al cliente», «Fecha de vencimiento del pago alcanzada», «Disputa del cliente abierta», «Recordatorio de pago emitido», «Pago del cliente recibido», «Efectivo aplicado/conciliado», «Factura cerrada», «Factura cancelada», «Abono creado» y «Reprocesamiento de facturación identificado».
- Filtros: Aplique filtros de código de empresa, 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 hecho 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, reclamaciones de pago, 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 fuente entre corchetes por objetos y campos validados.
- Eventos calculados: «Fecha de vencimiento del pago alcanzada» se deriva de las condiciones de pago y los datos de vencimiento. «Reprocesamiento de facturación identificado» se deriva de patrones de cancelación y posterior generación de facturas. Son filas de eventos generadas mediante SQL, no registros transaccionales nativos.
- Rendimiento: Aplique los filtros de fecha, código de empresa, tipo de facturación y número de documento en cada consulta de origen. Seleccione únicamente las columnas necesarias, evite combinaciones sin restricciones con tablas contables grandes, procese el periodo en lotes mensuales o semanales y utilice los planes de ejecución de la base de datos para identificar las combinaciones costosas.
- Extracción incremental: Utilice una marca de control estable basada en las marcas de tiempo de creación o contabilización de la fuente. Vuelva a procesar una pequeña ventana de solapamiento para capturar registros de salida, pago, disputa y compensación que lleguen tarde; después, elimine duplicados mediante 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 del esquema HANA seleccionado. Confirme que el acceso directo a la base de datos esté permitido por la política de seguridad de su organización 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, reclamaciones de pago, pagos entrantes y compensación solo están disponibles cuando se han configurado y se utilizan en el sistema. La ausencia de módulos o registros de origen genera actividades ausentes, no eventos inferidos.
- Zona horaria: Estandarice las marcas de tiempo a la zona horaria requerida por 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.
a 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?
Utilice esta plantilla para acelerar la preparación de sus datos y comenzar a optimizar su proceso de pedido a cobro: facturación y emisión de facturas. Empiece hoy mismo a convertir sus datos de SAP S/4HANA en información útil para la toma de decisiones.
Optimice la facturación de pedido a cobro para acelerar un 30 % el flujo de efectivo
Elimine las ineficiencias y reduzca hoy mismo en un 30 % el tiempo de su ciclo de facturación.
No necesita tarjeta de crédito. Comience en cuestión de minutos.