Su Plantilla de Datos para el Proceso De la Compra al Pago - Procesamiento de Facturas
Su Plantilla de Datos para el Proceso De la Compra al Pago - Procesamiento de Facturas
- Atributos recomendados para recopilar
- Actividades clave para el seguimiento
- Guía de extracción para `SAP ECC`
Atributos del Proceso De la Compra al Pago - Gestión de Facturas
| Nombre | Descripción | ||
|---|---|---|---|
| Actividad Activity | El nombre de un paso o evento de negocio específico que ocurrió durante el ciclo de vida del procesamiento de facturas. | ||
| Descripción El atributo Actividad representa una etapa o acción distinta dentro del flujo de trabajo de procesamiento de facturas. Estas actividades se derivan de varios eventos del sistema, como la creación de documentos, cambios de estado, aprobaciones o acciones de usuario registradas en los registros de cambios de SAP. Analizar las actividades es el núcleo del process mining. Permite la visualización de mapas de procesos, la identificación de cuellos de botella (por ejemplo, largas esperas después de 'Factura Enviada para Aprobación'), ciclos de retrabajo (por ejemplo, ciclos repetidos de 'Bloqueo de Pago Establecido' y 'Bloqueo de Pago Liberado') y desviaciones de cumplimiento. La secuencia y frecuencia de las actividades revelan el flujo del proceso real tal como es. Por qué es importante Define los pasos en el mapa de proceso, permitiendo la visualización de los flujos de proceso, el descubrimiento de cuellos de botella y la identificación de retrabajos. Dónde obtener Este atributo se deriva típicamente de múltiples fuentes, incluyendo códigos de transacción (SY-TCODE), campos de estado en tablas como RBKP (por ejemplo, RBSTAT) y eventos de cambio de las tablas CDHDR y CDPOS. Ejemplos Factura AparcadaFactura Enviada para AprobaciónFactura AprobadaFactura ContabilizadaFactura Compensada | |||
| Hora del Evento EventTime | La marca de tiempo precisa, incluyendo fecha y hora, cuando ocurrió una actividad. | ||
| Descripción La Hora del Evento registra el momento exacto en que una actividad de negocio fue ejecutada y registrada en el sistema de origen. Esta marca de tiempo es la columna vertebral cronológica del proceso, ordenando todas las actividades para cada factura en una secuencia coherente. En el análisis, la Hora del Evento es esencial para calcular todas las métricas basadas en duración, como los tiempos de ciclo, los tiempos de espera y los tiempos de procesamiento entre actividades. Impulsa dashboards como el 'Tiempo de Ciclo de Factura de Principio a Fin' y la 'Duración de Resolución de Bloqueo de Pago' al proporcionar los datos necesarios para medir el tiempo transcurrido entre dos puntos cualesquiera en el proceso. Las marcas de tiempo precisas son críticas para identificar retrasos y cuellos de botella en el rendimiento. Por qué es importante Esta marca de tiempo es esencial para ordenar correctamente los eventos y calcular todas las métricas de rendimiento, como los tiempos de ciclo y las duraciones de los cuellos de botella. Dónde obtener Esto se deriva típicamente combinando la fecha de cambio (UDATE) y la hora de cambio (UTIME) de la tabla de cabecera de documentos de cambio, CDHDR. Para eventos de creación específicos, puede ser la fecha y hora de creación de tablas como RBKP (ERNAM, ERZET). Ejemplos 2023-03-15T10:30:00Z2023-03-16T14:05:21Z2023-03-28T09:00:00Z | |||
| Número de Factura InvoiceNumber | El identificador único para un documento de factura de proveedor. | ||
| Descripción El Número de Factura (Invoice Number) sirve como identificador único de caso para el recorrido de procesamiento de facturas. Cada número corresponde a una única factura recibida de un proveedor, lo que permite que todas las actividades relacionadas, desde la captura de datos hasta el pago final, se rastreen como parte de una instancia de proceso cohesionada. En el análisis de process mining, este atributo es fundamental para reconstruir el ciclo de vida completo de cada factura. Permite la conexión de eventos dispares registrados en SAP, como estacionamiento, contabilización, bloqueo y compensación, en una secuencia cronológica. Esto proporciona una visión clara de cómo se maneja cada factura, cuánto tiempo lleva y dónde ocurren las desviaciones del proceso estándar. Por qué es importante Esta es la clave principal que vincula todos los eventos relacionados con una única factura, lo que la convierte en la base esencial para el análisis de procesos y la exploración de variantes. Dónde obtener Este es típicamente el Número de Documento de la tabla SAP RBKP, campo BELNR, a menudo concatenado con la Sociedad (BUKRS) y el Año Fiscal (GJAHR) para una unicidad absoluta. Ejemplos 510004567851000456795100045680 | |||
| `Número de Proveedor` VendorNumber | Un identificador único para el proveedor o suministrador que envió la factura. | ||
| Descripción El Número de Proveedor (Vendor Number) es la clave de datos maestros que identifica al proveedor. Vincula la transacción de factura a un socio comercial específico, lo que permite un análisis basado en las características del proveedor. Analizar el proceso por Número de Proveedor puede revelar información importante sobre las relaciones con los proveedores y su rendimiento. Por ejemplo, puede ayudar a identificar qué proveedores presentan constantemente facturas problemáticas que conducen a bloqueos de pago o discrepancias, o qué facturas de proveedores se procesan de manera más eficiente. Esta información es valiosa para la gestión de proveedores y las iniciativas de abastecimiento estratégico. Por qué es importante Permite el análisis específico de proveedores, ayudando a identificar patrones, problemas o eficiencias asociados con proveedores particulares. Dónde obtener Este es el campo 'Parte Facturadora' (LIFNR) de la tabla de cabecera de documentos de factura, RBKP. Ejemplos 100345100876200112 | |||
| Fecha de Compensación ClearingDate | La fecha en la que se realizó el pago y la factura fue compensada de las cuentas por pagar. | ||
| Descripción La Fecha de Compensación marca el paso final en el ciclo de vida de la factura: el pago. Es la fecha en que la partida de factura abierta se compensa con un documento de pago en el sistema. Esta fecha representa el tiempo de ejecución real del pago. Este atributo es el punto final para muchos KPIs críticos, incluidos el 'Tiempo Promedio del Ciclo de Facturación' y la 'Tasa de Pagos a Tiempo'. Se compara con la Fecha de Vencimiento del Pago para medir el rendimiento del pago. Para el análisis de descuentos por pronto pago, se compara con el período de descuento para ver si el pago se realizó a tiempo para capturar el descuento. Por qué es importante Marca la finalización del proceso y es la base para calcular el tiempo total del ciclo, las tasas de pago a tiempo y la realización de descuentos por pronto pago. Dónde obtener Para las partidas compensadas, este es el campo 'Fecha de Compensación' (AUGDT) de la tabla de partidas de proveedor compensadas, BSAK. Ejemplos 2023-04-152023-05-022023-05-20 | |||
| Fecha de Contabilización PostingDate | La fecha en la que la factura fue contabilizada oficialmente en los libros mayores financieros. | ||
| Descripción La Fecha de Contabilización (Posting Date) es una fecha clave en el proceso contable. Determina el período fiscal en el que se reconoce el gasto de la factura en el Libro Mayor. Normalmente, la establece el contable de Cuentas por Pagar durante el procesamiento de la factura. En el análisis de procesos, la actividad 'Factura Contabilizada', marcada por esta fecha, es un hito importante. La duración desde la recepción de la factura hasta la Fecha de Contabilización es un componente crítico del tiempo de ciclo general. Esta fecha también es fundamental para la elaboración de informes financieros y el análisis de rendimiento, como el seguimiento del volumen de facturas contabilizadas por semana o mes. Por qué es importante Marca un hito crítico en el proceso, determina el período financiero para la transacción y es un componente clave del cálculo del tiempo de ciclo. Dónde obtener Este es el campo 'Fecha de Contabilización' (BUDAT) de la tabla de cabecera de documentos de factura, RBKP. Ejemplos 2023-03-202023-04-052023-04-11 | |||
| Fecha de Vencimiento de Pago PaymentDueDate | La fecha en la que vence el pago de la factura al proveedor, según las condiciones de pago. | ||
| Descripción La Fecha de Vencimiento del Pago (Payment Due Date) se calcula en función de la fecha base de la factura y las condiciones de pago acordadas. Representa la fecha límite para realizar el pago y evitar retrasos que puedan generar penalizaciones o dañar las relaciones con los proveedores. Este atributo es crucial para KPIs de rendimiento y cumplimiento como la 'Tasa de Pagos a Tiempo' y la 'Pérdida de Oportunidades de Descuento por Pronto Pago'. Al comparar la fecha de pago real (Fecha de Compensación) con la Fecha de Vencimiento del Pago, el análisis puede determinar automáticamente si un pago fue a tiempo, anticipado o tardío. Es un elemento fundamental para el panel de control 'Cumplimiento de las Condiciones de Pago'. Por qué es importante Sirve como línea de base para medir el rendimiento de los pagos a tiempo e identificar oportunidades para capturar descuentos por pronto pago. Dónde obtener Esta fecha a menudo se calcula. La fecha base para el pago (ZFBDT) está en la tabla BSEG. La lógica de la fecha de vencimiento también depende de las condiciones de pago (BSEG-ZTERM). Ejemplos 2023-04-192023-05-052023-05-11 | |||
| Importe de Factura InvoiceAmount | El importe bruto total de la factura en la moneda original del documento. | ||
| Descripción El Importe de Factura representa el valor total de la factura presentada por el proveedor. Esta es una métrica financiera clave para cada caso de factura. En Process Mining, este atributo es esencial para el análisis basado en valor. Permite filtrar y segmentar el proceso en función del valor de la factura, lo que a menudo se correlaciona con la complejidad del proceso y los requisitos de aprobación. Por ejemplo, las facturas de alto valor pueden seguir una ruta de aprobación diferente y más estricta. También se utiliza en el análisis de cumplimiento, por ejemplo, para verificar si las facturas de alto valor eluden los pasos de aprobación requeridos. Por qué es importante Permite el análisis basado en valor, ayudando a priorizar las facturas de alto valor y a comprender cómo el importe de la factura impacta el flujo del proceso y el cumplimiento. Dónde obtener Este es el campo 'Importe bruto de factura' (RMWWR) de la tabla de cabecera de documentos de factura, RBKP. Ejemplos 1500.7512500.00850.20 | |||
| Motivo de bloqueo de pago PaymentBlockReason | Un código que indica el motivo por el cual una factura está bloqueada para el pago. | ||
| Descripción Cuando una factura presenta una discrepancia o requiere investigación adicional, se aplica un bloqueo de pago. El código de Razón de Bloqueo de Pago especifica por qué se estableció el bloqueo, por ejemplo, debido a una varianza de cantidad, varianza de precio o un bloqueo manual. Este atributo es esencial para el panel de control 'Duración de la Resolución de Bloqueos de Pago'. Analizar la frecuencia y duración de los bloqueos por razón ayuda a identificar las causas raíz de los retrasos en los pagos. Por ejemplo, si 'Discrepancia de Precio' es la razón más común para bloqueos prolongados, señala un problema potencial en los datos maestros o en el proceso de pedido de compra que debe abordarse. Por qué es importante Explica por qué las facturas se retrasan, permitiendo el análisis de la causa raíz de los bloqueos de pago y ayudando a priorizar los esfuerzos de mejora del proceso. Dónde obtener La razón del bloqueo de pago se puede encontrar a nivel de partida en la tabla RSEG (campo SPGRS) o en la tabla de documentos contables BSEG (campo ZLSPR). Ejemplos RIM | |||
| Nombre de Usuario UserName | El ID de usuario de SAP de la persona que ejecutó la actividad. | ||
| Descripción El atributo Nombre de Usuario (User Name) identifica al individuo específico responsable de realizar una actividad determinada en el proceso. Normalmente, es el nombre de usuario de SAP registrado con la transacción o el evento de cambio. Este atributo es crucial para el análisis de rendimiento a nivel de usuario o equipo. Ayuda a responder preguntas como '¿Quiénes son los aprobadores más rápidos?' o '¿Qué usuarios generan más retrabajo?'. Se utiliza en paneles de control para analizar la distribución de la carga de trabajo, identificar necesidades de capacitación y comprender las variaciones en el rendimiento entre diferentes empleados. Por qué es importante Permite el análisis del rendimiento y la carga de trabajo por individuo o equipo, ayudando a identificar a los de mejor desempeño, oportunidades de capacitación y desequilibrios de recursos. Dónde obtener Este es el campo 'Modificado por' (USERNAME) de la tabla de cabecera de documentos de cambio, CDHDR. Para eventos de creación, puede ser el campo 'Introducido por' (ERNAM) en tablas como RBKP. Ejemplos JSMITHBWILSONCHEN | |||
| Purchase Order Number PurchaseOrderNumber | El identificador del Pedido de Compra (PO) con el que se concilia la factura. | ||
| Descripción El Número de Pedido de Compra (Purchase Order Number) vincula una factura con el documento de adquisición original. Esto es fundamental para la conciliación de tres vías (Pedido de Compra, Entrada de Mercancías, Factura) y para analizar la eficiencia del proceso de facturación respaldado por pedido de compra. Este atributo es crítico para paneles de control como la 'Tasa de Discrepancia en la Conciliación Factura-PO'. Permite segmentar el proceso en facturas con pedido de compra versus facturas sin pedido de compra, que a menudo tienen rutas de procesamiento y complejidades muy diferentes. Analizar los problemas relacionados con pedidos de compra específicos puede ayudar a diagnosticar problemas en las etapas anteriores del proceso de adquisición. Por qué es importante Conecta la factura al proceso de adquisiciones, permitiendo el análisis de facturas con OC versus sin OC e identificando discrepancias de conciliación. Dónde obtener Esto se encuentra típicamente a nivel de partida. El 'Número de Pedido de Compra' (EBELN) está en la tabla de partidas de factura, RSEG. Puede ser necesario agregarlo al nivel de cabecera. Ejemplos 450001756345000175644500017565 | |||
| Condiciones de Pago PaymentTerms | El código que define las condiciones de pago acordadas con el proveedor, como los períodos de descuento y las fechas de vencimiento. | ||
| Descripción Las condiciones de pago definen las reglas sobre cuándo debe pagarse una factura y qué descuentos por pronto pago, si los hubiera, están disponibles. Algunos ejemplos son 'Neto 30 días' o '2% 10, Neto 30', lo que significa un descuento del 2% si se paga en 10 días, de lo contrario, el importe total vence en 30 días. Este atributo es la base para el panel de control 'Pérdida de Oportunidades de Descuento por Pronto Pago' y el KPI 'Tasa de Captura de Descuentos por Pronto Pago'. El análisis utiliza las condiciones de pago junto con las fechas de contabilización y pago para determinar si había un descuento disponible y si se aprovechó con éxito. También es clave para el panel de control 'Cumplimiento de las Condiciones de Pago'. Por qué es importante Es esencial para analizar las tasas de captura de descuentos por pronto pago y comprender el impacto financiero de los retrasos en el proceso. Dónde obtener Este es el campo 'Clave de Condiciones de Pago' (ZTERM) de la tabla de cabecera de documentos de factura, RBKP. Ejemplos Z0010001NT30 | |||
| Cuenta de Mayor GeneralLedgerAccount | El número de cuenta de mayor (G/L) al que se contabiliza el gasto o coste de la factura. | ||
| Descripción La Cuenta de Mayor (G/L Account) es la cuenta de destino en el plan de cuentas donde se registra el impacto financiero de la factura. Esta es una pieza de datos crítica para la elaboración de informes financieros y la gestión de costes. Para el process mining, analizar la cuenta de mayor proporciona una dimensión financiera al flujo del proceso. El panel de control 'Análisis de Uso de Cuentas de Mayor' puede revelar patrones de gasto, identificar posibles errores de codificación de facturas y asegurar que los costes se asignen a los departamentos o proyectos correctos. Ayuda a cerrar la brecha entre la ejecución del proceso y el impacto financiero. Por qué es importante Añade una dimensión financiera al proceso, permitiendo el análisis de la asignación de costos, los patrones de gasto y la posible codificación incorrecta de facturas. Dónde obtener Esto se encuentra a nivel de partida. El 'Número de Cuenta de Mayor' (HKONT) está en la tabla de partidas de factura RSEG para facturas con pedido de compra o BSEG para facturas FI directas. Ejemplos 630000655100741000 | |||
| Hora de Finalización EndTime | La marca de tiempo que indica cuándo se completó una actividad. Para eventos instantáneos, es la misma que la Hora de Inicio. | ||
| Descripción El atributo Hora de Fin (End Time) marca la finalización de una actividad específica. Para muchos eventos en SAP, que se registran como puntos únicos en el tiempo, la Hora de Fin será idéntica a la Hora de Inicio. Sin embargo, para actividades que tienen una duración medible, como un paso de aprobación en el que se está trabajando activamente, puede representar la conclusión de ese trabajo. En el análisis de procesos, tener una Hora de Fin distinta permite medir el tiempo de procesamiento de la actividad, separada del tiempo de espera que la precede. Esto ayuda a diferenciar cuánto tiempo lleva ejecutar una actividad versus cuánto tiempo espera un caso para que esa actividad comience, proporcionando información más profunda sobre la eficiencia de los recursos. Por qué es importante Permite el cálculo del tiempo de procesamiento de la actividad, distinguiéndolo del tiempo de espera entre actividades y mejorando el análisis de cuellos de botella. Dónde obtener Esto es a menudo lo mismo que la Hora de Inicio, derivada de CDHDR-UDATE y CDHDR-UTIME. En algunos casos, se puede derivar de los registros de flujo de trabajo que registran explícitamente el inicio y el fin de una tarea. Ejemplos 2023-03-15T10:35:10Z2023-03-16T14:10:00Z2023-03-28T09:02:45Z | |||
| Moneda Currency | El código de moneda para el importe de la factura. | ||
| Descripción El atributo Moneda (Currency) especifica la moneda en la que se denomina el importe de la factura, por ejemplo, USD, EUR o JPY. Este atributo proporciona un contexto esencial para el Importe de la Factura. Permite una correcta interpretación y agregación de datos financieros, especialmente en organizaciones globales que operan con múltiples monedas. El análisis se puede filtrar por moneda para comparar la eficiencia del procesamiento o los problemas en diferentes zonas monetarias. Para una agregación financiera significativa, es posible que los importes deban convertirse a una única moneda de informe. Por qué es importante Proporciona el contexto necesario para cualquier importe financiero, asegurando una interpretación precisa y permitiendo el filtrado y análisis basados en la moneda. Dónde obtener Este es el campo 'Clave de Moneda' (WAERS) de la tabla de cabecera de documentos de factura, RBKP. Ejemplos USDEURGBP | |||
| Motivo de rechazo RejectionReason | Un código o texto que explica por qué una factura fue rechazada durante el workflow de aprobación. | ||
| Descripción Cuando un aprobador rechaza una factura, idealmente proporciona una razón para el rechazo. Esto podría ser un código estandarizado o un comentario de texto libre que indique problemas como 'Número de Pedido de Compra incorrecto', 'Factura Duplicada' o 'Importe incorrecto'. Estos datos son vitales para el panel de control 'Razones y Tendencias de Rechazo de Facturas'. Al analizar la frecuencia de las diferentes razones de rechazo, la empresa puede identificar problemas comunes e implementar acciones correctivas. Por ejemplo, si 'Número de Pedido de Compra incorrecto' es una razón frecuente, podría indicar la necesidad de una mejor comunicación con los proveedores o capacitación para el personal de entrada de datos. Este análisis es clave para reducir el retrabajo del proceso. Por qué es importante Proporciona la causa raíz de los rechazos, permitiendo mejoras de proceso dirigidas para reducir el retrabajo y mejorar las tasas de 'a la primera'. Dónde obtener Esta información a menudo no se almacena en un solo campo estándar. Puede encontrarse en registros de contenedores de flujo de trabajo, campos de texto largo asociados con el documento o campos específicos en una solución de flujo de trabajo personalizada. Ejemplos DUPLICATE_INVWRONG_AMTNO_PO_MATCH | |||
| Se Perdió Descuento por Pronto Pago IsCashDiscountLost | Un indicador calculado que señala si se perdió un descuento por pronto pago disponible. | ||
| Descripción Este es un atributo booleano calculado en función de las condiciones de pago y la fecha de pago real. Se establece como verdadero si las 'Condiciones de Pago' ofrecieron un descuento por pronto pago y la 'Fecha de Compensación' fue posterior al vencimiento del período de descuento. Esto mide directamente la pérdida financiera debido a ineficiencias del proceso. Este atributo es la base del panel de control 'Pérdida de Oportunidades de Descuento por Pronto Pago'. Permite una fácil cuantificación del impacto financiero de los retrasos en el procesamiento. Al filtrar los casos en los que esta bandera es verdadera, los analistas pueden investigar las variantes de proceso específicas y los cuellos de botella que con mayor frecuencia conducen a descuentos perdidos, proporcionando un sólido argumento comercial para la mejora del proceso. Por qué es importante Cuantifica directamente la pérdida financiera por los retrasos en el proceso, creando un argumento convincente para optimizar el workflow de procesamiento de facturas. Dónde obtener Este atributo no está en SAP. Se calcula durante la transformación de datos interpretando las 'condiciones de pago' y comparando la 'Fecha de Compensación' con la fecha de vencimiento del descuento. Ejemplos truefalse | |||
| Sociedad CompanyCode | El identificador de la entidad legal o empresa para la cual se está procesando la factura. | ||
| Descripción La Sociedad (Company Code) es una unidad organizativa fundamental en SAP Financials, que representa una entidad legal independiente. Todas las transacciones financieras, incluidas las facturas, se contabilizan en una sociedad específica. Este atributo permite segmentar el análisis del proceso por entidad legal. Es crucial para comparar el rendimiento del proceso, el cumplimiento y la eficiencia entre diferentes empresas dentro de un grupo corporativo. Los paneles de control se pueden filtrar por Sociedad para proporcionar una vista específica de los KPIs de procesamiento de facturas de cada empresa. Por qué es importante Permite la comparación de procesos y el benchmarking de rendimiento entre diferentes entidades legales dentro de una organización. Dónde obtener Este es el campo 'Sociedad' (BUKRS) de la tabla de cabecera de documentos de factura, RBKP. Ejemplos 10002000US01 | |||
| Source System SourceSystem | Identifica el sistema fuente específico del que se extrajeron los datos. | ||
| Descripción El atributo Sistema de Origen (Source System) indica el origen de los datos de evento, por ejemplo, un nombre específico de instancia de SAP ECC. Esto es particularmente importante en entornos con múltiples sistemas ERP o cuando los datos se combinan de diferentes fuentes. En el análisis, este atributo ayuda a diferenciar procesos y rendimiento entre varios sistemas, regiones o unidades de negocio que podrían estar ejecutándose en instancias separadas. Asegura que la trazabilidad de los datos sea clara y permite el filtrado y análisis específicos del sistema. Por qué es importante Proporciona un contexto crucial en entornos multisistema, permitiendo una segregación adecuada de los datos y un análisis de rendimiento específico del sistema. Dónde obtener Este es típicamente un valor estático añadido durante el proceso de extracción de datos, que representa el ID del sistema SAP (TADIR-SRCSYSTEM) o un identificador asignado manualmente para la instancia específica de SAP. Ejemplos SAPECC_PROD_EUECC_US_FINSAP_ERP_6_EHP8 | |||
| Tiempo de Procesamiento ProcessingTime | La duración del tiempo dedicado a una actividad específica. | ||
| Descripción El tiempo de procesamiento mide el tiempo que lleva ejecutar una actividad, desde su inicio hasta su fin. Se calcula como la diferencia entre la Hora de Fin y la Hora de Inicio de una actividad. Esto es distinto del tiempo de ciclo, que incluye el tiempo de espera entre actividades. Analizar el tiempo de procesamiento ayuda a comprender el esfuerzo real o el tiempo de contacto para las diferentes etapas. Puede identificar actividades que requieren muchos recursos o son ineficientes. Por ejemplo, un tiempo de procesamiento largo en 'Datos de Factura Capturados' podría indicar una factura compleja o un proceso de entrada de datos ineficiente. Esta métrica es valiosa para la planificación de recursos y las iniciativas de automatización. Por qué es importante Mide la duración real del trabajo para una actividad, ayudando a identificar los pasos que consumen muchos recursos y a distinguir entre el tiempo de trabajo activo y el tiempo de espera inactivo. Dónde obtener Este atributo no está en SAP. Se calcula durante la transformación de datos utilizando la fórmula: Hora de Fin - Hora de Inicio. Ejemplos PT5M10SPT2H15MPT30S | |||
| Tipo de Documento DocumentType | Un código que clasifica el documento contable, por ejemplo, como factura de proveedor o nota de crédito. | ||
| Descripción El Tipo de Documento (Document Type) se utiliza para categorizar diferentes tipos de transacciones comerciales en SAP. Para el procesamiento de facturas, los tipos comunes incluyen 'RE' para facturas estándar o 'KG' para notas de crédito de proveedor. El tipo de documento controla aspectos de la contabilización, como el rango de números utilizado. En el análisis, este atributo permite filtrar el proceso a tipos de transacción específicos. Por ejemplo, el proceso para manejar una nota de crédito puede ser significativamente diferente al de una factura estándar. Separar estos flujos utilizando el Tipo de Documento proporciona una vista del proceso más precisa y significativa. Por qué es importante Permite la separación y el análisis de diferentes transacciones comerciales, como facturas versus notas de crédito, que siguen procesos diferentes. Dónde obtener Este es el campo 'Tipo de Documento' (BLART) de la tabla de cabecera de documentos de factura, RBKP. Ejemplos REKRKG | |||
| Última actualización de datos LastDataUpdate | Marca de tiempo que indica cuándo se actualizaron por última vez los datos del proceso desde el sistema de origen. | ||
| Descripción Este atributo registra la fecha y hora de la extracción o actualización de datos más reciente. Se aplica a todo el conjunto de datos en lugar de a eventos individuales, proporcionando una clara indicación de la frescura de los datos. Este es un atributo de metadatos crítico para los usuarios y analistas de paneles de control. Les ayuda a comprender el período de tiempo cubierto por el análisis y asegura que están tomando decisiones basadas en información actual. Normalmente se muestra de forma destacada en los paneles de control para informar a los usuarios sobre la actualidad de los datos. Por qué es importante Informa a los usuarios sobre la actualidad de los datos, asegurando que el análisis y las decisiones se basen en información actualizada. Dónde obtener Este valor se genera e inyecta en el conjunto de datos por la herramienta de extracción de datos o ETL en el momento de la actualización de datos. Ejemplos 2024-05-20T08:00:00Z2024-05-21T08:00:00Z2024-05-22T08:00:00Z | |||
| Vencido IsOverdue | Un indicador calculado que señala si la factura se pagó después de su fecha de vencimiento. | ||
| Descripción Este es un atributo booleano calculado comparando la 'Fecha de Compensación' (fecha de pago real) con la 'Fecha de Vencimiento del Pago'. Si la fecha de compensación es posterior a la fecha de vencimiento, la bandera es verdadera; de lo contrario, es falsa. Esto proporciona una medida simple y directa del rendimiento de pago a tiempo para cada factura. Este atributo simplifica el análisis y la visualización en paneles de control. Permite un fácil filtrado y agregación para calcular el KPI 'Tasa de Pagos a Tiempo'. Los usuarios pueden segmentar rápidamente el proceso para comparar los flujos de proceso de las facturas vencidas frente a las pagadas a tiempo, revelando potencialmente los patrones de proceso que conducen a pagos atrasados. Por qué es importante Simplifica el análisis del rendimiento de los pagos a tiempo y permite una fácil comparación entre procesos de facturación a tiempo y atrasados. Dónde obtener Este atributo no está en SAP. Se calcula durante la transformación de datos utilizando la fórmula: Fecha de Compensación > Fecha de Vencimiento del Pago. Ejemplos truefalse | |||
Actividades del Proceso De la Compra al Pago - Gestión de Facturas
| Actividad | Descripción | ||
|---|---|---|---|
| Bloqueo de Pago Establecido | Esta actividad ocurre cuando se coloca un bloqueo en una partida de factura, impidiendo que se pague. Los bloqueos se pueden establecer automáticamente debido a discrepancias en la conciliación de tres vías o manualmente por diversas razones. | ||
| Por qué es importante Este evento es crítico para medir la Duración de la Resolución de Bloqueos de Pago e identificar las causas raíz de los retrasos en los pagos. Destaca problemas con precios, cantidad o aprobaciones requeridas. Dónde obtener Este es un evento explícito que se puede rastrear a través de los registros de documentos de cambio (tablas CDHDR y CDPOS) para la tabla BSEG, campo ZLSPR (Clave de Bloqueo de Pago). Capturar Marca de tiempo de los documentos de cambio (CDHDR) cuando el valor de BSEG-ZLSPR cambia de vacío a no vacío. Tipo de evento explicit | |||
| Datos de Factura Capturados | Marca la creación inicial del documento de factura en SAP, ya sea como un documento estacionado o completamente contabilizado. Este es típicamente el primer evento registrado en el sistema para el ciclo de vida de una factura y sirve como el tiempo de inicio del proceso. | ||
| Por qué es importante Esta actividad es el punto de partida principal para medir el tiempo del ciclo de procesamiento de facturas de principio a fin. Analizar la duración desde este punto ayuda a identificar retrasos en la fase inicial de entrada de datos y creación de documentos. Dónde obtener La marca de tiempo de creación se captura en la tabla SAP BKPF, campo CPUDT (Fecha de Entrada del Documento Contable) y CPUTM (Hora de Entrada). Capturar Utilice la marca de tiempo de creación del documento de la cabecera de la tabla BKPF (CPUDT). Tipo de evento explicit | |||
| Factura Compensada | Esta actividad marca el paso final en un ciclo de vida exitoso de la factura, donde la obligación abierta se compensa con un documento de pago. Esto significa que el pago ha sido ejecutado. | ||
| Por qué es importante Como evento final principal, este es crucial para calcular el tiempo total del ciclo de principio a fin. Confirma la finalización exitosa del proceso y se utiliza para medir el rendimiento de los pagos a tiempo. Dónde obtener Este es un evento explícito registrado en la tabla de partidas de factura BSEG. La fecha de compensación se almacena en el campo AUGDT y el número de documento de compensación en AUGBL. Capturar Utilice la fecha de compensación (BSEG-AUGDT) de la partida del documento de factura. Tipo de evento explicit | |||
| Factura Contabilizada | Este es un evento financiero clave donde la factura se registra oficialmente en el libro mayor, creando un pasivo. Esto mueve el documento de un estado temporal (estacionado) a un asiento contable permanente. | ||
| Por qué es importante La contabilización es un hito importante que confirma la validez de la factura. Es un requisito previo para el pago y un indicador clave del rendimiento del procesamiento. Dónde obtener Este es un evento explícito registrado en la tabla de cabecera de documento BKPF. La marca de tiempo es la fecha de contabilización, BKPF-BUDAT. El documento ya no tendrá un estado 'estacionado'. Capturar Utilice la fecha de contabilización (BKPF-BUDAT) para documentos que no están estacionados (BKPF-BSTAT está en blanco o ' '). Tipo de evento explicit | |||
| Factura Revertida | Representa la anulación de un documento de factura contabilizado. Se crea un documento de anulación para anular el impacto financiero de la factura original. | ||
| Por qué es importante Esta actividad destaca una excepción significativa y una ruta de retrabajo. Analizar la frecuencia y las razones de las anulaciones puede descubrir problemas sistémicos en el proceso de validación y contabilización de facturas. Dónde obtener Este es un evento explícito registrado en la tabla de cabecera de documento BKPF. La cabecera del documento anulado contiene el número de documento de anulación (STBLG) y el año fiscal (STJAH). Capturar Identifique los documentos donde BKPF-STBLG está rellenado. La marca de tiempo del evento es la fecha de contabilización del documento de reversión. Tipo de evento explicit | |||
| Bloqueo de Pago Liberado | Representa la eliminación de un bloqueo de pago de una partida de factura, lo que permite que proceda a la ejecución del pago. Esto significa que se ha resuelto un problema identificado previamente. | ||
| Por qué es importante Esta actividad concluye la medición de la duración del bloqueo. Analizar el tiempo entre el establecimiento y la liberación de un bloqueo revela la eficiencia del proceso de resolución de problemas. Dónde obtener Este evento se rastrea a través de los registros de documentos de cambio (tablas CDHDR y CDPOS) para la tabla BSEG, campo ZLSPR (Clave de Bloqueo de Pago), cuando se elimina el bloqueo. Capturar Marca de tiempo de los documentos de cambio (CDHDR) cuando el valor de BSEG-ZLSPR cambia de no vacío a vacío. Tipo de evento explicit | |||
| Factura Aparcada | Indica que una factura ha sido introducida en SAP pero aún no ha sido contabilizada en el libro mayor. Este es un estado temporal que permite la revisión, corrección o aprobación antes de la contabilización financiera. | ||
| Por qué es importante Rastrear cuándo se estacionan las facturas y por cuánto tiempo destaca los cuellos de botella en el proceso de validación y aprobación previo a la contabilización. Separa el tiempo de entrada de datos del tiempo de procesamiento financiero. Dónde obtener Esto se infiere del estado del documento en la tabla BKPF, campo BSTAT. Un valor de 'V' (Documento Estacionado) o 'W' (Documento Estacionado con Liberación de Cambio) indica un estado estacionado. Capturar Identifique los documentos donde el campo de estado BKPF-BSTAT es 'V'. La marca de tiempo del evento es la fecha de creación BKPF-CPUDT. Tipo de evento inferred | |||
| Factura Aprobada | Significa que la factura ha sido aprobada formalmente por la autoridad designada, lo que permite que proceda a la contabilización y el pago. Este suele ser el paso final de un flujo de trabajo. | ||
| Por qué es importante Este hito concluye la medición del tiempo del ciclo de aprobación. Desbloquea el proceso, permitiendo el pago oportuno y ayudando a analizar la distribución de la carga de trabajo entre los aprobadores. Dónde obtener Esto se captura típicamente de las tablas de SAP Business Workflow identificando la finalización de una tarea de aprobación. Alternativamente, se puede inferir de la liberación de un bloqueo de pago relacionado con la aprobación. Capturar Marca de tiempo del paso de aprobación completado en los registros del flujo de trabajo o de la eliminación de un bloqueo de pago específico. Tipo de evento inferred | |||
| Factura Enviada para Aprobación | Representa el punto en el que una factura se somete a un flujo de trabajo de aprobación formal. El mecanismo de captura depende en gran medida de la implementación específica del flujo de trabajo de SAP o de un sistema de terceros. | ||
| Por qué es importante Esta actividad inicia la cuenta regresiva para el KPI 'Tiempo del Ciclo de Aprobación de Facturas'. Es esencial para identificar retrasos en la cadena de aprobación y analizar el rendimiento de los aprobadores. Dónde obtener Este evento se captura típicamente de las tablas de SAP Business Workflow (por ejemplo, SWW_WI2OBJ, SWWLOG) identificando el inicio de una tarea de aprobación específica. En escenarios más simples, se puede inferir de un cambio de estado en un campo personalizado. Capturar Requiere el análisis de los registros del flujo de trabajo de SAP o de campos de estado personalizados vinculados al documento de factura. Tipo de evento inferred | |||
| Factura Rechazada | Indica que una factura ha sido rechazada durante el proceso de aprobación. Esta acción generalmente requiere corrección y reenvío, creando un ciclo de retrabajo. | ||
| Por qué es importante El seguimiento de los rechazos es crucial para identificar las razones comunes de fallo, como datos incorrectos o violaciones de políticas. Ayuda a cuantificar el retrabajo y a señalar áreas para la mejora de procesos o la educación de proveedores. Dónde obtener Este evento se suele encontrar en los registros del flujo de trabajo de SAP Business como un paso de rechazo. También se puede inferir de cambios de estado específicos o notas añadidas al documento de factura. Capturar Marca de tiempo del paso de rechazo en los registros del flujo de trabajo o de un cambio de estado del documento que indica rechazo. Tipo de evento inferred | |||
| Factura Vencida | Un evento calculado que ocurre cuando la fecha actual supera la fecha de vencimiento neta de la factura y esta aún no ha sido pagada. La fecha de vencimiento se determina a partir de las condiciones de pago y la fecha base. | ||
| Por qué es importante Esta actividad es esencial para monitorear el KPI 'Tasa de Pagos a Tiempo'. Señala proactivamente las facturas con riesgo de pago atrasado, lo que puede dañar las relaciones con los proveedores y generar penalizaciones. Dónde obtener Este evento se calcula comparando la fecha actual con la fecha de vencimiento neta. La fecha de vencimiento se deriva de la fecha base (BSEG-ZFBDT) y las condiciones de pago (BSEG-ZTERM). Capturar El evento se activa cuando Tipo de evento calculated | |||
Guías de Extracción
Pasos
- Crear el Programa ABAP: Utilice la transacción
SE38oSE80para crear un nuevo programa ejecutable, por ejemplo,Z_PM_INVOICE_EXTRACT. Proporcione un título adecuado y establezca el tipo en 'Programa Ejecutable'. - Definir la Pantalla de Selección: En el programa, defina una pantalla de selección para permitir a los usuarios filtrar los datos. Los parámetros clave deben incluir la Sociedad (
BUKRS), el Año Fiscal (GJAHR), el Rango de Fechas de Contabilización (BUDAT) y un parámetro para la ruta del archivo de salida en el servidor de aplicaciones. - Declarar Estructuras de Datos: Defina una estructura de tabla interna que contendrá el registro de eventos final. Esta estructura debe incluir todos los atributos requeridos y recomendados:
InvoiceNumber,Activity,EventTime,UserName,VendorNumber,PurchaseOrderNumber,InvoiceAmount,PostingDate,PaymentDueDate,PaymentBlockReasonyClearingDate. - Implementar la Lógica de Selección de Datos: Escriba la lógica ABAP central para seleccionar los datos de las facturas. El enfoque implica múltiples selecciones que se combinan en la tabla del registro de eventos final.
- Primero, seleccione los datos de cabecera y posición de las tablas primarias de facturas
BKPF,BSEG,RBKPyRSEGbasándose en los criterios de la pantalla de selección. - Para cada factura, genere los eventos base como 'Datos de Factura Capturados' (a partir de la marca de tiempo de creación) y 'Factura Contabilizada' (a partir de la marca de tiempo de contabilización).
- Consulte las tablas de documentos de cambio
CDHDRyCDPOSpara encontrar cambios relacionados con bloqueos de pago (campoZLSPRenBSEG). Para cada cambio relevante, cree los eventos 'Bloqueo de Pago Establecido' y 'Bloqueo de Pago Liberado'. - Identifique los eventos de 'Factura Compensada' verificando un documento de compensación (
AUGBL) y una fecha de compensación (AUGDT) en la tablaBSEG. - Identifique los eventos de 'Factura Revertida' verificando un documento de reversión (
STBLG) en la cabeceraBKPF. - Implemente una lógica personalizada para capturar eventos de workflow ('Factura Enviada para Aprobación', 'Aprobada', 'Rechazada'). Esta parte es altamente específica del cliente y requiere adaptar el código a las tablas o campos de estado de su workflow.
- Primero, seleccione los datos de cabecera y posición de las tablas primarias de facturas
- Generar Eventos Calculados: Dentro de la lógica del programa, calcule el evento
Factura Entra en Mora. Esto se deriva comparando la fecha de vencimiento de pago de la factura (PaymentDueDate) con la fecha actual para todas las facturas impagas. Si la fecha de vencimiento es pasada, cree un evento con elEventTimeestablecido en la fecha de vencimiento. - Rellenar la Tabla de Registro de Eventos: A medida que recopile datos para cada factura de las diferentes fuentes, formatéelos y añada nuevas filas a la tabla de registro de eventos interna final, una fila por actividad.
- Exportar los Datos a un Archivo: Utilice las sentencias
OPEN DATASET,TRANSFERyCLOSE DATASETpara escribir el contenido de la tabla interna final en un archivo plano en la ruta del servidor de aplicaciones SAP especificada en la pantalla de selección. Utilice un separador consistente, como un punto y coma o una tabulación, para crear un archivo CSV. - Programar la Extracción: Para la extracción regular de datos, cree una variante para el programa con los criterios de selección deseados y prográmelo para que se ejecute como un job en segundo plano utilizando la transacción
SM36. - Recuperar el Archivo de Salida: Acceda al directorio del servidor de aplicaciones SAP utilizando la transacción
AL11para localizar el archivo generado. Utilice la transacciónCG3Ypara descargar el archivo del servidor de aplicaciones a su máquina local. - Preparar para la Carga: Antes de cargar a una herramienta de Process Mining, abra el archivo CSV para verificar que los encabezados son correctos, el formato de los datos es consistente (especialmente para las marcas de tiempo) y el separador es el esperado. Asegúrese de que el archivo se guarde con codificación UTF-8.
Configuración
- Criterios de Selección: El informe ABAP debe incluir una pantalla de selección completa. Los filtros más importantes son:
Sociedad (BUKRS): Para limitar la extracción a entidades legales específicas.Fecha de Contabilización (BUDAT): Para definir el marco temporal de la extracción. Se recomienda extraer los datos en bloques manejables, por ejemplo, de 3 a 6 meses a la vez.Tipo de Documento (BLART): Para incluir solo los tipos de documento de factura relevantes, como 'RE' para facturas de logística y 'KR' para facturas de proveedor.
- Ruta del Archivo de Salida: Un parámetro obligatorio para especificar la ruta completa y el nombre del archivo en el servidor de aplicaciones SAP donde se creará el archivo de salida. El usuario que ejecuta el informe necesita autorización de escritura en este directorio.
- Consideraciones de Rendimiento: Para grandes volúmenes de datos, el informe debe ejecutarse como un job en segundo plano durante las horas de menor actividad para evitar la degradación del rendimiento del sistema. La lógica debe seleccionar solo los campos requeridos de las tablas y utilizar índices de base de datos SAP estándar cuando sea posible.
- Requisitos Previos y Autorizaciones: El usuario o la cuenta de servicio que ejecuta esta extracción requiere:
- Permisos de ejecución de informes ABAP (parte de
S_PROGRAM). - Acceso de lectura a tablas financieras y logísticas, incluyendo
BKPF,BSEG,RBKP,RSEG,CDHDRyCDPOS. - Autorización para escribir archivos en el directorio del servidor de aplicaciones especificado (
S_DATASET). - Acceso a las transacciones
SE38,SM36,AL11yCG3Ypara desarrollo, programación y recuperación de archivos.
- Permisos de ejecución de informes ABAP (parte de
a Consulta de ejemplo abap
REPORT Z_PM_INVOICE_EXTRACT.
*&---------------------------------------------------------------------*
*& Tables for Selection Screen
*&---------------------------------------------------------------------*
TABLES: BKPF, RBKP.
*&---------------------------------------------------------------------*
*& Data Declarations
*&---------------------------------------------------------------------*
TYPES: BEGIN OF ty_event_log,
InvoiceNumber TYPE belnr_v,
Activity TYPE string,
EventTime TYPE timestamp,
UserName TYPE uname,
VendorNumber TYPE lifnr,
PurchaseOrderNumber TYPE ebeln,
InvoiceAmount TYPE wrbtr,
PostingDate TYPE budat,
PaymentDueDate TYPE faedt,
PaymentBlockReason TYPE rstgr,
ClearingDate TYPE augdt,
END OF ty_event_log.
DATA: gt_event_log TYPE TABLE OF ty_event_log,
gs_event_log TYPE ty_event_log.
DATA: lt_bkpf TYPE TABLE OF bkpf,
ls_bkpf TYPE bkpf,
lt_bseg TYPE TABLE OF bseg,
ls_bseg TYPE bseg.
DATA: lt_rbkp TYPE TABLE OF rbkp,
ls_rbkp TYPE rbkp.
*&---------------------------------------------------------------------*
*& Selection Screen
*&---------------------------------------------------------------------*
SELECT-OPTIONS: s_bukrs FOR bkpf-bukrs OBLIGATORY,
s_gjahr FOR bkpf-gjahr OBLIGATORY,
s_budat FOR bkpf-budat.
PARAMETERS: p_fpath TYPE string OBLIGATORY DEFAULT '/usr/sap/tmp/invoice_events.csv'.
*&---------------------------------------------------------------------*
*& Start of Program Logic
*&---------------------------------------------------------------------*
START-OF-SELECTION.
" Select FI Invoices (e.g., Doc Type KR)
SELECT * FROM bkpf INTO TABLE lt_bkpf
WHERE bukrs IN s_bukrs
AND gjahr IN s_gjahr
AND budat IN s_budat
AND blart = 'KR'.
" Select MM Invoices
SELECT * FROM rbkp INTO TABLE lt_rbkp
WHERE bukrs IN s_bukrs
AND gjahr IN s_gjahr
AND budat IN s_budat.
* --- Process FI Invoices ---
LOOP AT lt_bkpf INTO ls_bkpf.
CLEAR gs_event_log.
gs_event_log-InvoiceNumber = ls_bkpf-belnr.
gs_event_log-PostingDate = ls_bkpf-budat.
SELECT SINGLE * FROM bseg INTO ls_bseg
WHERE bukrs = ls_bkpf-bukrs
AND belnr = ls_bkpf-belnr
AND gjahr = ls_bkpf-gjahr
AND koart = 'K'. " Vendor Line Item
IF sy-subrc = 0.
gs_event_log-VendorNumber = ls_bseg-lifnr.
gs_event_log-InvoiceAmount = ls_bseg-wrbtr.
gs_event_log-ClearingDate = ls_bseg-augdt.
" Calculate Due Date
CALL FUNCTION 'DETERMINE_DUE_DATE'
EXPORTING
i_bseg = ls_bseg
IMPORTING
e_faedt = gs_event_log-PaymentDueDate.
ENDIF.
" Activity: Invoice Data Captured
gs_event_log-Activity = 'Invoice Data Captured'.
CONVERT DATE ls_bkpf-cpudt TIME ls_bkpf-cputm INTO TIME STAMP gs_event_log-EventTime TIME ZONE sy-zonlo.
gs_event_log-UserName = ls_bkpf-usnam.
APPEND gs_event_log TO gt_event_log.
" Activity: Invoice Parked (if BSTAT = 'V')
IF ls_bkpf-bstat = 'V'.
gs_event_log-Activity = 'Invoice Parked'.
APPEND gs_event_log TO gt_event_log.
ENDIF.
" Activity: Invoice Posted
gs_event_log-Activity = 'Invoice Posted'.
CONVERT DATE ls_bkpf-budat TIME ls_bkpf-cputm INTO TIME STAMP gs_event_log-EventTime TIME ZONE sy-zonlo.
gs_event_log-UserName = ls_bkpf-usnam.
APPEND gs_event_log TO gt_event_log.
" Activity: Invoice Cleared
IF ls_bseg-augbl IS NOT INITIAL.
gs_event_log-Activity = 'Invoice Cleared'.
CONVERT DATE ls_bseg-augdt INTO TIME STAMP gs_event_log-EventTime TIME ZONE sy-zonlo.
gs_event_log-UserName = ls_bseg-usnam_cl.
APPEND gs_event_log TO gt_event_log.
ENDIF.
" Activity: Invoice Becomes Overdue
IF gs_event_log-PaymentDueDate IS NOT INITIAL AND gs_event_log-PaymentDueDate < sy-datum AND ls_bseg-augbl IS INITIAL.
gs_event_log-Activity = 'Invoice Becomes Overdue'.
CONVERT DATE gs_event_log-PaymentDueDate INTO TIME STAMP gs_event_log-EventTime TIME ZONE sy-zonlo.
gs_event_log-UserName = 'SYSTEM'.
APPEND gs_event_log TO gt_event_log.
ENDIF.
" Activity: Invoice Reversed
IF ls_bkpf-stblg IS NOT INITIAL.
DATA: ls_rev_bkpf TYPE bkpf.
SELECT SINGLE budat, usnam FROM bkpf INTO ls_rev_bkpf
WHERE belnr = ls_bkpf-stblg AND bukrs = ls_bkpf-bukrs AND gjahr = ls_bkpf-gjahr.
IF sy-subrc = 0.
gs_event_log-Activity = 'Invoice Reversed'.
CONVERT DATE ls_rev_bkpf-budat INTO TIME STAMP gs_event_log-EventTime TIME ZONE sy-zonlo.
gs_event_log-UserName = ls_rev_bkpf-usnam.
APPEND gs_event_log TO gt_event_log.
ENDIF.
ENDIF.
ENDLOOP.
* --- NOTE: The logic for MM invoices (from lt_rbkp) would be similar, joining RBKP with RSEG.
* --- NOTE: The logic for Payment Blocks and Workflow events requires reading change documents (CDHDR/CDPOS)
* --- or custom workflow tables. Below is a conceptual example for payment blocks.
* --- Conceptual Example for 'Payment Block Set' / 'Released' using Change Docs
* DATA: lt_cdhdr TYPE TABLE OF cdhdr, ls_cdhdr TYPE cdhdr,
* lt_cdpos TYPE TABLE OF cdpos, ls_cdpos TYPE cdpos.
* SELECT * FROM cdhdr INTO TABLE lt_cdhdr
* WHERE objectclas = 'BELEG' AND objectid IN (SELECT belnr FROM bkpf WHERE ...).
* LOOP AT lt_cdhdr.
* SELECT * FROM cdpos INTO TABLE lt_cdpos
* WHERE changenr = ls_cdhdr-changenr AND tabname = 'BSEG' AND fname = 'ZLSPR'.
* LOOP AT lt_cdpos.
* "... logic to create 'Payment Block Set' (if VALUE_NEW is not blank)
* "... or 'Payment Block Released' (if VALUE_NEW is blank) events.
* ENDLOOP.
* ENDLOOP.
* --- Conceptual Example for Workflow events ('Sent For Approval', 'Approved', 'Rejected')
* --- This part MUST be customized based on your specific workflow implementation (e.g., OpenText VIM, SAP WF).
* --- You would query the relevant workflow tables or status change tables here.
*&---------------------------------------------------------------------*
*& Write to File
*&---------------------------------------------------------------------*
END-OF-SELECTION.
DATA: lv_string TYPE string,
lv_header TYPE string.
" Create Header
lv_header = 'InvoiceNumber;Activity;EventTime;UserName;VendorNumber;PurchaseOrderNumber;InvoiceAmount;PostingDate;PaymentDueDate;PaymentBlockReason;ClearingDate'.
OPEN DATASET p_fpath FOR OUTPUT IN TEXT MODE ENCODING UTF-8.
IF sy-subrc = 0.
TRANSFER lv_header TO p_fpath.
LOOP AT gt_event_log INTO gs_event_log.
CONCATENATE gs_event_log-InvoiceNumber
gs_event_log-Activity
gs_event_log-EventTime
gs_event_log-UserName
gs_event_log-VendorNumber
gs_event_log-PurchaseOrderNumber
gs_event_log-InvoiceAmount
gs_event_log-PostingDate
gs_event_log-PaymentDueDate
gs_event_log-PaymentBlockReason
gs_event_log-ClearingDate
INTO lv_string SEPARATED BY ';'.
TRANSFER lv_string TO p_fpath.
ENDLOOP.
CLOSE DATASET p_fpath.
ELSE.
MESSAGE 'Error opening file.' TYPE 'E'.
ENDIF.