Su Template de datos para el proceso de registro a informe, cierre del período y conciliación
Su Template de datos para el proceso de registro a informe, cierre del período y conciliación
- Atributos recomendados para recopilar
- Actividades clave que debe seguir
- Guía de extracción
Atributos del proceso de registro a informe, cierre del período y conciliación
| Nombre | Descripción | ||
|---|---|---|---|
| Período financiero FinancialPeriod | Identificador único del ciclo de informes financieros, que suele combinar el ejercicio fiscal y el período de contabilización. | ||
| Descripción El período financiero funciona como identificador principal del caso y agrupa todas las actividades relacionadas con el cierre y la conciliación de cuentas de ese ciclo de informes. Por ejemplo, «2023-12» corresponde a diciembre de 2023. Esto permite analizar de principio a fin el proceso completo de cierre de cada período. En el análisis, permite seguir el tiempo de ciclo integral de cada cierre, comparar el rendimiento entre períodos e identificar tendencias o anomalías. Al definir cada período financiero como un caso único, es posible visualizar y medir la eficiencia, los cuellos de botella y las variaciones del proceso de cierre a lo largo del tiempo. Por qué es importante Es el identificador esencial del caso que delimita el análisis y permite comparar entre períodos los tiempos de ciclo de cierre, las cargas de trabajo y el cumplimiento del proceso. Dónde obtenerlo Este atributo suele obtenerse concatenando el ejercicio fiscal (GJAHR) y el período de contabilización (MONAT) de las cabeceras de los documentos financieros, por ejemplo, de la tabla BKPF. Ejemplos 2023-122024-032023-T4 | |||
| Actividad ActivityName | Nombre del evento de negocio o la tarea específica realizada durante el proceso de cierre del período. | ||
| Descripción Este atributo registra los pasos concretos del ciclo de registro a informe, como «Asiento de ajuste contabilizado» o «Estados financieros generados». Es la base del mapa de procesos, ya que muestra la secuencia de eventos que conforman el cierre del período. El análisis de las actividades es fundamental para Process Mining. Permite visualizar el flujo del proceso, identificar la secuencia de tareas, descubrir variaciones y medir la frecuencia y duración de cada paso. Esto es clave para localizar cuellos de botella, rutas de proceso no estándar y oportunidades de estandarización o automatización. Por qué es importante Este atributo es obligatorio para crear el mapa de procesos y visualizar y analizar la secuencia de tareas del cierre del período. Dónde obtenerlo Se obtiene a partir de una combinación de códigos de transacción de SAP (TCODE), tipos de documento (BLART) o ejecuciones de programas específicos (por ejemplo, FAGL_FCV para la valoración de moneda extranjera). Ejemplos Contabilización de asiento de ajusteInicio de conciliación de cuentasPeríodo cerrado para contabilizaciones | |||
| Hora del evento EventTime | Marca de tiempo que indica cuándo ocurrió una actividad o un evento. | ||
| Descripción La hora del evento proporciona la fecha y hora exactas de cada actividad del proceso y constituye la base cronológica del análisis. Normalmente, combina la fecha y la hora de creación del documento. Esta marca de tiempo es esencial para ordenar correctamente los eventos y reconstruir el flujo del proceso. Se utiliza para calcular todas las métricas basadas en la duración, incluidos los tiempos de ciclo entre actividades, los tiempos de espera y la duración total del cierre del período. Analizar las marcas de tiempo ayuda a detectar retrasos y comprender cómo se distribuye el trabajo en el tiempo. Por qué es importante Como atributo obligatorio, establece el orden cronológico de los eventos, necesario para calcular los tiempos de ciclo y detectar cuellos de botella en el proceso. Dónde obtenerlo Normalmente, se obtiene de la fecha de entrada del documento (CPUDT) y la hora de entrada (CPUTM) de la tabla BKPF para los documentos financieros. Ejemplos 2023-12-28T14:30:15Z2024-01-02T09:05:00Z2024-01-05T17:21:45Z | |||
| Sistema de origen SourceSystem | Identificador del sistema de origen del que se extrajeron los datos. | ||
| Descripción Este atributo especifica el origen de los datos de eventos, como el nombre o el ID de una instancia concreta de SAP ECC. En las organizaciones que utilizan varios ERP o sistemas financieros, este campo es fundamental para distinguir los datos de cada origen. Incluso en entornos con un solo sistema, constituye un metadato importante para la gobernanza de datos, las auditorías y la resolución de problemas. Confirma la procedencia de los datos, algo esencial para generar confianza en el análisis y garantizar la trazabilidad de los datos. Por qué es importante Aporta trazabilidad esencial de los datos, confirma su origen para la gobernanza y permite distinguir los procesos en entornos con varios sistemas. Dónde obtenerlo Normalmente, es un valor estático que se añade durante la extracción de datos para identificar el cliente y el ID del sistema SAP específicos (por ejemplo, a partir de la tabla T000). Ejemplos ECC_PROD_100SAP_E74_200ECC_FINANCE | |||
| Última actualización de datos LastDataUpdate | Marca de tiempo de la última actualización o extracción de los datos del sistema de origen. | ||
| Descripción Este atributo indica si los datos analizados están actualizados. Muestra la fecha y hora de la última ejecución del flujo de datos y permite saber cuán recientes son las conclusiones sobre el proceso. En los Dashboards, especialmente los que siguen el progreso en tiempo real, esta marca de tiempo es fundamental para que las personas usuarias sepan si consultan información actualizada al minuto o datos del día anterior. Ayuda a establecer expectativas y a interpretar correctamente el análisis. Por qué es importante Informa sobre la actualidad de los datos, algo fundamental para garantizar que los análisis y Dashboards sean oportunos y pertinentes. Dónde obtenerlo La herramienta de extracción de datos o ETL genera y añade esta marca de tiempo al final de cada proceso de carga. Ejemplos 2024-05-21T04:00:00Z2024-05-20T04:00:00Z2024-05-19T04:00:00Z | |||
| Código de sociedad BUKRS | Unidad organizativa que representa una entidad jurídica para la que se generan estados financieros. | ||
| Descripción El código de sociedad es una unidad organizativa fundamental de SAP Financials. Representa una empresa independiente con sus propios libros contables equilibrados. Todas las transacciones financieras se contabilizan en el nivel del código de sociedad. En Process Mining, filtrar por código de sociedad es esencial para comparar el proceso de cierre del período entre las distintas entidades jurídicas de una corporación. Así se pueden identificar las mejores prácticas de las entidades con mejor rendimiento y detectar aquellas que tienen retrasos, un volumen elevado de ajustes o desviaciones del proceso. Es una dimensión clave para segmentar el análisis. Por qué es importante Permite comparar el rendimiento del cierre del período y el cumplimiento entre distintas entidades jurídicas, algo fundamental para el análisis financiero del grupo. Dónde obtenerlo Este campo está disponible en casi todas las tablas de documentos financieros de SAP, principalmente en BKPF (cabecera) y BSEG (partida individual). Ejemplos 10002000US01DE01 | |||
| Cuenta de mayor HKONT | Número de la cuenta del libro mayor en la que se contabiliza una partida individual. | ||
| Descripción La cuenta del libro mayor (GL) es un dato maestro fundamental de finanzas que clasifica las transacciones. Cada contabilización financiera se asigna a una o varias cuentas del libro mayor. En el cierre del período, analizar las actividades por cuenta del libro mayor es esencial para los Dashboards «Cuellos de botella en la conciliación de cuentas» y «Análisis del volumen de asientos de ajuste». Permite identificar qué cuentas son más difíciles de conciliar, cuáles requieren más ajustes y dónde puede ser mayor el riesgo de incorrecciones materiales. Así, los equipos pueden priorizar las cuentas problemáticas. Por qué es importante Permite analizar de forma específica las conciliaciones y los asientos de ajuste, y ayuda a identificar cuentas problemáticas que causan retrasos o requieren correcciones frecuentes. Dónde obtenerlo Está disponible en la tabla de partidas individuales de documentos financieros BSEG (HKONT). Ejemplos 113100400500750000 | |||
| Importe en moneda local DMBTR | Valor financiero de una partida de transacción, expresado en la moneda local del código de sociedad. | ||
| Descripción Este atributo representa el valor monetario asociado a una contabilización financiera. Es la medida cuantitativa principal del impacto de una transacción en el libro mayor. Analizar el importe es fundamental para priorizar problemas y comprender el riesgo financiero. Por ejemplo, el Dashboard «Análisis del volumen de asientos de ajuste» resulta mucho más útil cuando permite distinguir entre un gran volumen de ajustes de importe bajo y un volumen reducido de ajustes de importe elevado. Así, la atención puede centrarse en las transacciones con un impacto financiero significativo. Por qué es importante Cuantifica el impacto financiero de las transacciones y permite analizarlas según su importancia, por ejemplo, para identificar asientos de ajuste de importe elevado. Dónde obtenerlo Está disponible en la tabla de partidas individuales de documentos BSEG (DMBTR). Ejemplos 1500.75-25000.00123456.00 | |||
| Número de documento BELNR | Identificador único de un documento contable dentro de un ejercicio fiscal y un código de sociedad. | ||
| Descripción El número de documento contable es la clave principal de las contabilizaciones financieras en SAP. Cada asiento contable, factura o documento de pago recibe un número único. Aunque no suele utilizarse para el análisis de procesos de alto nivel, el número de documento es muy útil para consultar el detalle. Desde un Dashboard de Process Mining, las personas analistas pueden usarlo para ir directamente a la transacción correspondiente en SAP e investigar anomalías, como un asiento de ajuste de importe elevado o una partida de conciliación retrasada. Así se establece un vínculo directo entre la conclusión del análisis y la transacción de origen. Por qué es importante Proporciona un vínculo directo con la transacción de origen en SAP y permite analizar en detalle asientos contables específicos desde la vista del proceso. Dónde obtenerlo Se encuentra en la tabla BKPF (BELNR), donde actúa como clave principal. Ejemplos 100000456719000001233000008901 | |||
| Tipo de asiento contable JournalEntryType | Clasificación de los asientos contables, como «Estándar», «Ajuste», «Devengo» o «Reversión». | ||
| Descripción Este atributo derivado clasifica los documentos financieros según su finalidad comercial dentro del proceso de cierre. Suele determinarse combinando el tipo de documento (BLART), el motivo de reversión (STGRD) o las cuentas de mayor utilizadas. Esta clasificación es fundamental para el Dashboard «Análisis del volumen de asientos de ajuste» y los KPI relacionados. Al identificar explícitamente los asientos de ajuste o devengo, las personas analistas pueden medir su volumen e importe, seguir las tendencias a lo largo del tiempo e investigar las causas de su necesidad. También permite distinguir las contabilizaciones operativas habituales de los ajustes de fin de período. Por qué es importante Clasifica las contabilizaciones para facilitar el análisis específico y permite seguir y medir tipos de asiento clave, como los ajustes y los devengos, que son indicadores de la salud del proceso. Dónde obtenerlo Este campo se deriva de otros datos. La lógica debe definirse según las reglas de negocio, normalmente a partir de campos como el tipo de documento (BLART) de BKPF. Ejemplos AjusteDevengoReversiónEstándar | |||
| Tipo de documento BLART | Código que clasifica los distintos tipos de documentos contables. | ||
| Descripción En SAP, el tipo de documento permite distinguir entre distintas transacciones comerciales, como facturas de proveedores (KR), pagos de clientes (DZ) y contabilizaciones en el libro mayor (SA). También controla propiedades como el rango de numeración de los documentos. Para analizar el cierre de período, el tipo de documento es un filtro muy útil. Permite aislar actividades específicas, como devengos, provisiones o asientos de reversión. Esto ayuda a analizar el volumen y el impacto financiero de las distintas transacciones relacionadas con el cierre y a definir actividades concretas en el modelo de proceso. Por qué es importante Ayuda a clasificar y filtrar las transacciones para aislar y analizar actividades específicas, como devengos, reversiones o contabilizaciones intersocietarias. Dónde obtenerlo Se encuentra en la tabla de cabecera de documentos BKPF (BLART). Ejemplos SAABKR | |||
| Usuario responsable USNAM | ID de usuario de SAP de la persona que creó o ejecutó la transacción. | ||
| Descripción Este campo registra quién contabilizó un documento, ejecutó un informe o puso en marcha un programa relacionado con el cierre. Identifica a la persona responsable de cada actividad. Analizar los datos por usuario es fundamental para comprender cómo se distribuye la carga de trabajo, detectar necesidades de formación e investigar desviaciones del proceso. Los Dashboards que muestran las actividades por usuario pueden revelar qué integrantes del equipo tienen una carga excesiva o quiénes podrían estar siguiendo procedimientos no estándar. También ayudan a gestionar el rendimiento y asignar recursos dentro del equipo financiero. Por qué es importante Permite analizar la distribución de la carga de trabajo y el rendimiento del equipo, así como detectar desviaciones del proceso vinculadas a personas concretas. Dónde obtenerlo Está disponible en la tabla BKPF (USNAM) para la creación de documentos. En el caso de los trabajos por lotes, se encuentra en TBTCO (SDLUNAME). Ejemplos JSMITHRDOEFIN_ADMIN | |||
| Departamento Department | Departamento funcional o centro de coste responsable de la actividad o transacción. | ||
| Descripción Este atributo identifica el departamento de la empresa, como «Finanzas», «Ventas» o «Logística», asociado a una transacción. A menudo se obtiene de los datos maestros del centro de coste vinculado a una contabilización o de los datos maestros de la persona usuaria. El análisis por departamento respalda el Dashboard «Distribución de la carga de trabajo del equipo de cierre». Ayuda a comprender cómo contribuyen las distintas áreas de la empresa a la carga de trabajo de fin de período, especialmente al iniciar transacciones que más adelante pueden requerir ajustes o conciliaciones. También permite detectar áreas ajenas al equipo financiero principal que afectan al proceso de cierre. Por qué es importante Ayuda a analizar la carga de trabajo y el cumplimiento del proceso en distintas áreas de la empresa, y muestra cómo influye cada departamento en la eficiencia del cierre financiero. Dónde obtenerlo A menudo se obtiene del centro de coste (KOSTL) en BSEG o de los datos maestros de RR. HH. de la persona usuaria responsable. Puede ser necesario combinar varias tablas. Ejemplos Finanzas corporativasCuentas por pagarFP&A | |||
| Ejercicio fiscal GJAHR | Ejercicio fiscal en el que se contabilizó la transacción. | ||
| Descripción El ejercicio fiscal es un elemento fundamental para organizar los datos financieros. Es un componente clave del ID del caso del período financiero y aporta contexto esencial a todas las transacciones. Aunque suele formar parte del ID del caso, tener el ejercicio fiscal como atributo independiente resulta útil para analizar tendencias a largo plazo. Permite comparar año tras año los tiempos de ciclo del cierre, el volumen de ajustes y otros KPI, y detectar mejoras o deterioros del rendimiento a lo largo del tiempo. Por qué es importante Aporta contexto temporal esencial y permite comparar el rendimiento del proceso de cierre entre ejercicios fiscales. Dónde obtenerlo Disponible en la tabla de cabecera de documentos, BKPF (GJAHR). Ejemplos 202320242022 | |||
| Es reproceso IsRework | Indicador calculado que identifica actividades que representan un reproceso, como una reversión o una conciliación rechazada. | ||
| Descripción Este atributo booleano marca eventos o secuencias de eventos que indican ciclos ineficientes o correcciones en el proceso. Por ejemplo, una actividad «Revisión de conciliación» seguida de otro «Asiento de ajuste contabilizado» en la misma cuenta podría marcarse como reproceso. Este atributo es esencial para cuantificar el desperdicio en el proceso y permite alimentar el Dashboard «Casos de reproceso en conciliaciones» y el KPI «Tasa de reproceso en conciliaciones». Al aislar los reprocesos, los equipos pueden investigar sus causas raíz, medir su impacto en el tiempo de ciclo y hacer seguimiento a la eficacia de las iniciativas de mejora para hacer bien el trabajo desde el primer intento. Por qué es importante Cuantifica las ineficiencias del proceso al marcar las actividades que son correcciones o repeticiones, lo que ayuda a medir y reducir el esfuerzo desperdiciado. Dónde obtenerlo Es un atributo calculado. La lógica se define en la herramienta de Process Mining a partir de secuencias de actividades específicas (por ejemplo, ciclos) o atributos (por ejemplo, ReversalReason no es nulo). Ejemplos truefalse | |||
| Está automatizado IsAutomated | Indicador que señala si una actividad la realizó una persona o un sistema automatizado. | ||
| Descripción Este atributo booleano distingue las tareas manuales de las que ejecuta el sistema automáticamente, como un proceso por lotes programado para valorar divisas o un bot que contabiliza asientos recurrentes. A menudo, se determina analizando el nombre de usuario asociado a la transacción (por ejemplo, «BATCHUSER»). Conocer el nivel de automatización es clave para detectar oportunidades de eficiencia. El análisis de este atributo permite visualizar qué partes del proceso son manuales y podrían automatizarse. También ayuda a calcular con precisión la carga de trabajo de las personas, al excluir las actividades generadas por el sistema. Por qué es importante Distingue las actividades manuales de las que ejecuta el sistema, algo fundamental para detectar oportunidades de automatización y medir con precisión la carga de trabajo manual. Dónde obtenerlo Es un atributo derivado. La lógica suele basarse en el nombre de usuario (USNAM): una lista de ID de usuarios de sistema o de procesos por lotes conocidos permite identificar las tareas automatizadas. Ejemplos truefalse | |||
| Está vencido IsOverdue | Indicador calculado que señala si una actividad se completó después de la fecha prevista. | ||
| Descripción Este atributo booleano compara la hora real de finalización de una actividad (EventTime) con su fecha límite prevista (TargetCompletionDate). Si la hora del evento es posterior a la fecha prevista, el indicador se establece en verdadero. Este atributo respalda directamente el Dashboard «Cumplimiento del cierre y tareas vencidas» y el KPI «Tasa de cierre del período a tiempo». Señala con claridad y de inmediato las desviaciones del calendario, lo que permite a quienes gestionan el proceso identificar rápidamente las tareas atrasadas, entender su impacto en el cronograma general y exigir a los equipos que cumplan las fechas límite. Por qué es importante Indica claramente el incumplimiento del calendario, lo que permite identificar rápidamente las tareas atrasadas y medir el rendimiento de las entregas puntuales. Dónde obtenerlo Es un atributo calculado en la herramienta de Process Mining mediante la comparación de EventTime con TargetCompletionDate. Ejemplos truefalse | |||
| Estado de conciliación ReconciliationStatus | Estado actual de una conciliación de cuentas, como «Abierta», «En revisión» o «Aprobada». | ||
| Descripción Este atributo sigue el estado de una conciliación de cuentas a medida que avanza por su flujo de trabajo. Indica si se ha iniciado, enviado a revisión, aprobado o rechazado. Es un atributo clave para supervisar en tiempo real el progreso de las conciliaciones. Ayuda a identificar cuáles están bloqueadas y desde cuándo, y sirve de apoyo a KPI como «Tiempo de ciclo de conciliación de cuentas». Aporta visibilidad sobre el proceso de aprobación y es fundamental para los Dashboards que siguen los cuellos de botella en las conciliaciones y la carga de trabajo del equipo. Por qué es importante Aporta visibilidad sobre el flujo de trabajo de conciliación, permite seguir el progreso, detectar cuellos de botella y medir los tiempos de revisión y aprobación. Dónde obtenerlo Esta información suele estar en una herramienta de conciliación independiente (por ejemplo, SAP Account Substantiation and Automation de BlackLine) o en un campo de estado personalizado. Por lo general, no es un campo estándar de BKPF/BSEG. Ejemplos No iniciadoEn cursoAprobadoRechazado | |||
| Fecha prevista de finalización TargetCompletionDate | La fecha límite prevista para una actividad o para el cierre completo del período. | ||
| Descripción La fecha prevista de finalización establece el calendario con el que se mide el proceso de cierre del período. Es la fecha límite para completar determinados hitos o el cierre final. Este atributo es esencial para analizar el rendimiento y el cumplimiento. Se utiliza para calcular el KPI «Tasa de cierre del período a tiempo» y alimentar el Dashboard «Cumplimiento del cierre y tareas vencidas». Al comparar la hora real del evento con la fecha prevista, el sistema determina si las tareas avanzan según lo previsto, están atrasadas o corren el riesgo de retrasarse. Así, es posible gestionar el proceso de cierre de forma proactiva. Por qué es importante Permite supervisar el cumplimiento y el rendimiento al ofrecer una referencia para medir si las actividades de cierre se completan a tiempo y respaldar los KPI de entregas puntuales. Dónde obtenerlo Suelen ser datos maestros que se mantienen en un calendario independiente, una herramienta de gestión del cierre (como SAP Financial Closing cockpit) o una hoja de cálculo. No forman parte de los datos transaccionales. Ejemplos 2023-12-29T23:59:59Z2024-01-03T17:00:00Z2024-01-02T12:00:00Z | |||
| Motivo de reversión ReversalReason | Código que indica por qué se revirtió un documento financiero. | ||
| Descripción Al revertir un documento en SAP, se puede asignar un código de motivo para explicar la finalidad de la reversión, por ejemplo, «Reversión en el período actual» o «Asiento incorrecto». Este atributo aporta contexto esencial sobre las causas de la repetición de tareas. Analizar los motivos de reversión ayuda a detectar patrones de error, como datos incorrectos o fechas equivocadas. Esta información puede servir para aplicar medidas preventivas, mejorar la formación o reforzar los controles del sistema, reducir los errores y las reversiones posteriores y agilizar el cierre. Por qué es importante Aporta información directa sobre las causas de los errores y la repetición de tareas, y ayuda a detectar oportunidades para mejorar el proceso y prevenir errores. Dónde obtenerlo Se encuentra en la tabla de cabecera de documentos BKPF (STGRD). Ejemplos 010205 | |||
| Socio comercial VBUND | Identificador de la empresa afiliada del grupo que participa en una transacción intersocietaria. | ||
| Descripción El ID de socio comercial identifica el otro código de sociedad que participa en una transacción intersocietaria. Es esencial para conciliar cuentas entre entidades jurídicas relacionadas. Este atributo respalda directamente el Dashboard «Flujo de conciliación intersocietaria» y el KPI «Tiempo de ciclo de conciliación intersocietaria». Al filtrar las transacciones que incluyen un socio comercial, el análisis puede centrarse en la eficiencia y la puntualidad del proceso de conciliación intersocietaria, que suele ser uno de los principales problemas durante el cierre del período. Por qué es importante Identifica específicamente las transacciones intersocietarias y permite analizar un proceso de conciliación que suele ser complejo y llevar mucho tiempo. Dónde obtenerlo Se encuentra en la tabla de partidas individuales de documentos BSEG (VBUND). Ejemplos 1000US013000 | |||
Actividades del proceso de registro a informe, cierre del período y conciliación
| Actividad | Descripción | ||
|---|---|---|---|
| Contabilización de asiento de ajuste | Se contabiliza un asiento de ajuste para corregir los saldos de las cuentas una vez finalizado el procesamiento inicial de las transacciones del período. En SAP, este evento queda registrado como una contabilización estándar de documento financiero. | ||
| Por qué es importante Este dato es esencial para el análisis del volumen de asientos de ajuste. Un volumen elevado de ajustes puede indicar problemas de precisión en procesos anteriores y constituye un objetivo clave para las iniciativas de mejora de procesos. Dónde obtenerlo Se encuentra en las tablas BKPF y BSEG. Estos asientos suelen identificarse por un tipo de documento específico (BKPF-BLART) reservado para ajustes o porque se contabilizan en períodos especiales de cierre, como los períodos 13 a 16. Capturar Filtre BKPF para encontrar documentos contabilizados en períodos especiales o con tipos de documento de ajuste. Tipo de evento explicit | |||
| Ejecución de valoración de moneda extranjera | Esto representa la ejecución de un programa que revalúa partidas abiertas y saldos registrados en moneda extranjera, aplicando los tipos de cambio de fin de período. Normalmente se ejecuta como un trabajo por lotes dentro de los pasos de cierre del período. | ||
| Por qué es importante Este paso es fundamental para garantizar la precisión de los informes financieros en organizaciones multinacionales. Analizar cuándo se ejecuta y cuánto dura ayuda a detectar oportunidades de automatización y optimización del rendimiento. Dónde obtenerlo Se captura en los registros de ejecución del programa de valoración de moneda extranjera, como FAGL_FCV o F.05. Los detalles de los trabajos por lotes en tablas como TBTCO y TBTCP proporcionan las marcas de tiempo de ejecución. Capturar A partir de los registros de trabajos por lotes (tabla TBTCO) del programa FAGL_FC_VALUATION o SAPF100. Tipo de evento explicit | |||
| Generación de estados financieros | Esto representa el momento en que se generan los estados financieros oficiales, como el estado de pérdidas y ganancias y el balance general. Esta actividad suele capturarse mediante el seguimiento de la ejecución de un programa de informes específico. | ||
| Por qué es importante Es un hito importante que marca el fin del procesamiento de datos y el inicio de la fase final de revisión y aprobación. El tiempo transcurrido desde este evento hasta la aprobación es un KPI clave. Dónde obtenerlo Se infiere a partir de los registros de auditoría del sistema, como STAD, que registran la ejecución del programa de generación de estados financieros, normalmente mediante la transacción F.01. Capturar A partir de los registros del sistema (STAD), que permiten seguir la ejecución de la transacción F.01 para generar estados financieros. Tipo de evento inferred | |||
| Inicio de conciliación de cuentas | Representa el inicio del proceso de conciliación de un conjunto de cuentas de mayor para el período. En SAP ECC estándar, no es un evento independiente y suele inferirse a partir de actividades relacionadas, como la primera ejecución de un informe clave. | ||
| Por qué es importante Esta actividad establece un hito clave para medir la duración de toda la fase de conciliación. Saber cuándo comienza la conciliación es esencial para el KPI de tiempo de ciclo de conciliación de cuentas. Dónde obtenerlo Este evento no se registra de forma explícita. Debe inferirse a partir de otras fuentes de datos, como el registro de auditoría del sistema (transacción STAD), que permite identificar la primera ejecución de un informe de visualización de saldos, como FAGLB03 o FS10N. Capturar Infiera el inicio a partir de la primera ejecución de las transacciones de informes pertinentes (por ejemplo, FAGLB03) en los registros del sistema. Tipo de evento inferred | |||
| Período abierto para contabilización | Esto marca el inicio oficial de un período financiero y permite contabilizar transacciones en el libro mayor. Se trata de un cambio de configuración explícito que realiza un usuario autorizado para abrir un período específico y permitir contabilizaciones en uno o varios códigos de sociedad. | ||
| Por qué es importante Esta actividad marca el evento de inicio definitivo del caso del proceso de cierre del período. Analizar el tiempo transcurrido desde este punto ayuda a comprender el ciclo de vida completo del período financiero. Dónde obtenerlo Los cambios en los períodos de contabilización realizados mediante la transacción OB52 quedan registrados. Estos cambios pueden extraerse analizando los documentos de modificación de la tabla de configuración subyacente T001B, normalmente mediante las tablas CDHDR y CDPOS. Capturar Extracción de documentos de modificación (CDHDR/CDPOS) de la tabla T001B. Tipo de evento explicit | |||
| Período cerrado para contabilizaciones | Representa el cierre formal de un período de contabilización, que impide realizar más asientos operativos. Esto garantiza la integridad de los datos financieros del período cerrado y se registra como un cambio de configuración explícito. | ||
| Por qué es importante Este es el evento de fin definitivo del proceso de cierre del período. Es esencial para calcular con precisión el tiempo de ciclo total del cierre del período y medir el cumplimiento de los plazos. Dónde obtenerlo El cierre de períodos mediante la transacción OB52 queda registrado. Estos cambios pueden encontrarse analizando los documentos de modificación (tablas CDHDR y CDPOS) de la tabla de configuración T001B. Capturar Extracción de documentos de modificación (CDHDR/CDPOS) de la tabla T001B. Tipo de evento explicit | |||
| Contabilización de asiento de reversión | Esta actividad registra la contabilización de un documento que revierte un asiento contable anterior, a menudo para corregir un error. SAP crea un vínculo explícito entre el documento de reversión y el documento original. | ||
| Por qué es importante Un número elevado de reversiones puede indicar problemas de precisión en la entrada de datos o en los controles del proceso. El seguimiento de estos eventos ayuda a medir la tasa de aciertos a la primera e identificar áreas que necesitan mejoras. Dónde obtenerlo Los documentos de reversión se encuentran en la tabla BKPF. A menudo se crean con la transacción FB08 e incluyen una referencia al número del documento revertido en el campo BKPF-STBLG. Capturar Identifique los documentos en los que BKPF-STBLG tenga un valor o que se hayan creado mediante transacciones de reversión. Tipo de evento explicit | |||
| Contabilización de devengo o provisión | Esto representa el registro de un asiento contable de devengo, periodificación o provisión, que suele contabilizarse hacia el final de un período. No es un tipo de evento específico de SAP, sino que se infiere al identificar determinados asientos contables según sus características. | ||
| Por qué es importante Aislar estos asientos ayuda a analizar el subproceso de gestión de estimaciones. Un volumen elevado de devengos o los ajustes frecuentes pueden señalar oportunidades para mejorar el proceso. Dónde obtenerlo Se infiere a partir de las tablas de documentos financieros BKPF y BSEG. Los asientos pueden identificarse filtrando por un tipo de documento específico (BKPF-BLART), una cuenta de mayor única (BSEG-HKONT) o palabras clave en el texto de cabecera (BKPF-BKTXT). Capturar Filtre las tablas BKPF/BSEG por tipo de documento, cuentas de mayor específicas o campos de texto. Tipo de evento inferred | |||
| Documento intersocietario compensado | Esta actividad marca la compensación de una partida abierta entre dos códigos de sociedad distintos e indica que una transacción intersocietaria se ha liquidado o conciliado. En SAP, queda registrada como una contabilización financiera explícita, normalmente mediante un documento de compensación. | ||
| Por qué es importante Los retrasos en la compensación de partidas intersocietarias son un cuello de botella habitual en el proceso de cierre. El seguimiento de esta actividad es fundamental para medir y mejorar el tiempo de ciclo de la conciliación intersocietaria. Dónde obtenerlo Se identifica en los documentos financieros de BKPF y BSEG. Un documento de compensación vincula y cierra partidas abiertas; su fecha de compensación (BSEG-AUGDT) sirve como marca de tiempo del evento. Las transacciones intersocietarias se identifican mediante los campos de socio comercial. Capturar Identifique en BKPF/BSEG los documentos de compensación que incluyan partidas con socios comerciales. Tipo de evento explicit | |||
| Ejecución de compensación GR/IR | Ejecución del programa de compensación automática de la cuenta de entrada de mercancías/recepción de facturas. El programa coteja las entradas de mercancías con las recepciones de facturas correspondientes y compensa las partidas entre sí. | ||
| Por qué es importante La cuenta GR/IR suele generar problemas de conciliación. Supervisar esta actividad permite comprobar que el paso automatizado se ejecuta correctamente y cuantificar las excepciones que requieren seguimiento manual. Dónde obtenerlo La ejecución queda registrada en los registros de trabajos por lotes (transacción SM37). El programa suele ser SAPF124 y se ejecuta mediante la transacción F.13. Las tablas de registros de trabajos, como TBTCO, proporcionan las marcas de tiempo necesarias. Capturar A partir de los registros de trabajos por lotes (tabla TBTCO) del programa de compensación SAPF124. Tipo de evento explicit | |||
| Generación del informe de balance de comprobación | Marca la ejecución de un informe para generar el balance de comprobación. Es un paso clave para verificar que el total de débitos coincida con el total de créditos antes de elaborar los estados financieros oficiales. | ||
| Por qué es importante Es un control de calidad fundamental antes de elaborar los informes finales. Si el informe se ejecuta varias veces, puede indicar que se están detectando y corrigiendo problemas en los datos subyacentes, lo que podría causar retrasos. Dónde obtenerlo Se infiere a partir de los registros de auditoría del sistema, como los de la transacción STAD, que pueden registrar la ejecución de transacciones de informes del balance de comprobación, como S_ALR_87012277 o F.01. Capturar A partir de los registros del sistema (STAD), que permiten seguir la ejecución de los códigos de transacción de informes. Tipo de evento inferred | |||
| Revisión de conciliación | Indica que se ha revisado y confirmado la conciliación de una cuenta específica o de un grupo de cuentas. En SAP ECC estándar, este evento no se registra de forma explícita y suele gestionarse mediante controles fuera del sistema o soluciones personalizadas. | ||
| Por qué es importante Seguir los tiempos de revisión es importante para comprender los cuellos de botella en las etapas de control y supervisión del proceso de cierre. También permite detectar retrasos causados por la disponibilidad de la dirección o por la necesidad de repetir tareas. Dónde obtenerlo Esta información no está disponible en las tablas estándar de ECC. Para obtenerla, se necesita una solución personalizada, como un campo de estado en una tabla Z personalizada, un flujo de trabajo sencillo o la integración con una herramienta de conciliación de terceros. Capturar Capture los cambios de estado desde un flujo de trabajo personalizado o una tabla Z, si se han implementado. Tipo de evento inferred | |||
Guías de extracción
Pasos
- Acceda a la herramienta SAP Query: Inicie sesión en su sistema SAP ECC. Vaya al código de transacción
SQVI(QuickViewer). 2. Cree una consulta nueva: Introduzca un nombre para la consulta, por ejemplo,Z_R2R_PERIOD_CLOSE, y haga clic en «Crear». En la ventana emergente, escriba un título descriptivo, como «Extracción del cierre del período de registro a informe». En «Fuente de datos», seleccione «Unión de tablas». 3. Defina las uniones de tablas: Añada la tabla principalBKPF(cabecera del documento contable). Después, añada la tablaBSEG(segmento del documento contable). SAP propondrá automáticamente las condiciones de unión (MANDT, BUKRS, BELNR, GJAHR); revíselas y acéptelas. Para las actividades de apertura y cierre del período, necesitará una consulta independiente que unaCDHDRyCDPOS. 4. Seleccione los campos de salida (campos de lista): Vaya a la pestaña «Selección de campos de lista». Seleccione en las tablas disponibles los campos necesarios para el Registro de eventos. Entre ellos se incluyenBKPF-BUKRS,BKPF-BELNR,BKPF-GJAHR,BKPF-MONAT,BKPF-CPUDT,BKPF-CPUTM,BKPF-USNAM,BKPF-BLART,BSEG-HKONT,BSEG-DMBTRy otros según sea necesario. 5. Defina los parámetros de entrada (campos de selección): Vaya a la pestaña «Campos de selección». Elija los campos que servirán para filtrar los datos al ejecutar la consulta. Los más importantes sonBKPF-BUKRS(código de sociedad) yBKPF-GJAHR(ejercicio fiscal). También puede añadirBKPF-MONAT(período de contabilización) yBKPF-BLART(tipo de documento). 6. Cree variantes para cada actividad: Como SQVI no puede combinar distintas selecciones de datos (como una unión SQL), debe ejecutar la consulta varias veces. Para cada actividad (por ejemplo, «Devengo o provisión contabilizados»), ejecute la consulta e introduzca valores de filtro específicos en la pantalla de selección, como una lista de tipos de documento relacionados con los devengos. Guarde estos criterios de selección como una variante. Repita el proceso para cada actividad que pueda extraer. 7. Ejecute la consulta y extraiga los datos: Ejecute la consulta para cada variante creada. Se aplicarán los filtros específicos de esa actividad. 8. Exporte los resultados: En la pantalla de resultados, exporte los datos a un archivo local. El formato más habitual es «Hoja de cálculo». Repita la exportación para cada variante. 9. Combine y transforme los datos: Abra los archivos exportados en un programa de hojas de cálculo o utilice una herramienta de scripting. Combine manualmente los datos de todos los archivos en un único archivo maestro. 10. Añada columnas constantes y calculadas: En el archivo combinado, añada las columnas que no se extraen directamente de las tablas de SAP. IncluyaActivityName(indique manualmente la variante de origen de los datos),FinancialPeriod(concatenando el ejercicio fiscal y el período),EventTime(combinando los campos de fecha y hora),SourceSystemyLastDataUpdate. 11. Dé formato al archivo para cargarlo: Guarde el archivo final en formato CSV o Excel, con los encabezados de columna correctos para su herramienta de Process Mining. Antes de cargarlo, compruebe los tipos de datos y el formato.
Configuración
- Fuente de datos: unión de tablas en SAP Query (SQVI). Las tablas clave son BKPF, BSEG, CDHDR y CDPOS. * Rango de fechas: Se recomienda extraer datos de entre 3 y 6 períodos fiscales completos como mínimo para identificar patrones. Aplique el filtro a
BKPF-GJAHR(ejercicio fiscal) yBKPF-MONAT(período). * Filtro por código de sociedad: Filtre siempre porBKPF-BUKRS(código de sociedad) para limitar el volumen de datos y centrar el análisis en entidades jurídicas específicas. No se recomienda extraer datos de todos los códigos de sociedad a la vez. * Filtro por tipo de documento: Utilice filtros enBKPF-BLART(tipo de documento) para aislar actividades específicas, como devengos, ajustes o reversiones. Deberá obtener los tipos de documento pertinentes para su organización. * Requisitos previos: La persona que ejecute la extracción necesita autorización para usar la transacciónSQVIy acceso de visualización a las tablas financieras pertinentes (por ejemplo, el objeto de autorización S_TABU_DIS). * Consideraciones de rendimiento: Unir BKPF y BSEG puede consumir muchos recursos. Ejecute la extracción fuera de las horas de mayor actividad. Evite usar rangos de fechas muy amplios o dejar abierto el filtro de código de sociedad, ya que esto puede provocar problemas de memoria o tiempos de espera agotados.
Consulta de ejemplo sql
/*
LOGICAL REPRESENTATION FOR SAP QUERY (SQVI)
This is not a single executable script. Due to limitations in SQVI, you must create a base query joining BKPF and BSEG, then run it multiple times using different selection screen variants to extract each activity below. The results must be combined manually.
A separate query joining CDHDR and CDPOS is needed for period open/close activities.
*/
-- Activity 1: Period Opened For Posting
-- Required Query: Join CDHDR and CDPOS in SQVI.
SELECT
CONCAT(T001B.VONJ1, T001B.POPER) AS FinancialPeriod,
'Period Opened For Posting' AS ActivityName,
TO_TIMESTAMP(CONCAT(CDHDR.UDATE, CDHDR.UTIME), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
T001B.BUKRS AS BUKRS,
NULL AS BELNR,
CDHDR.USERNAME AS USNAM,
NULL AS HKONT,
NULL AS BLART,
NULL AS DMBTR,
NULL AS JournalEntryType
FROM CDHDR
JOIN CDPOS ON CDHDR.CHANGENR = CDPOS.CHANGENR
JOIN T001B ON SUBSTRING(CDPOS.TABKEY, 4, 4) = T001B.BUKRS
WHERE CDHDR.OBJECTCLAS = 'DEBI_BUKRS' AND CDPOS.TABNAME = 'T001B' AND CDPOS.FNAME = 'OFPER' AND CDPOS.VALUE_NEW > CDPOS.VALUE_OLD;
UNION ALL
-- Activity 2: Accrual Or Provision Posted
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Accrual Or Provision Posted' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Accrual' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.BLART IN ('SA', '[Your Accrual Doc Type]'); -- Filter by document types used for accruals
UNION ALL
-- Activity 3: Intercompany Document Cleared
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Intercompany Document Cleared' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.AUGBL AS BELNR, -- The clearing document number
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Clearing' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BSEG.AUGBL IS NOT NULL AND BSEG.VBUND IS NOT NULL; -- Identify cleared items with an intercompany trading partner
UNION ALL
-- Activity 4: Foreign Currency Valuation Run
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Foreign Currency Valuation Run' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Valuation' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.TCODE IN ('FAGL_FCV', 'FBB1'); -- Filter by FCV transaction code
UNION ALL
-- Activity 5: GR/IR Clearing Run Executed
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'GR/IR Clearing Run Executed' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Clearing' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.TCODE IN ('F.13', 'F13E'); -- Filter by automated clearing transaction codes
UNION ALL
-- Activity 6: Account Reconciliation Started (Proxy)
-- This is a proxy. It takes the earliest adjusting journal entry timestamp for the period.
SELECT
A.FinancialPeriod,
'Account Reconciliation Started' AS ActivityName,
MIN(A.EventTime) AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
A.BUKRS,
NULL AS BELNR,
NULL AS USNAM,
NULL AS HKONT,
NULL AS BLART,
NULL AS DMBTR,
NULL AS JournalEntryType
FROM (
SELECT CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
BKPF.BUKRS
FROM BKPF
WHERE BKPF.BLART IN ('AB', '[Your Adjusting Doc Type]')
) AS A
GROUP BY A.FinancialPeriod, A.BUKRS;
UNION ALL
-- Activity 7: Adjusting Journal Entry Posted
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Adjusting Journal Entry Posted' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Adjusting' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.BLART IN ('AB', '[Your Adjusting Doc Type]'); -- Filter by document types for adjustments
UNION ALL
-- Activity 8: Reversal Entry Posted
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Reversal Entry Posted' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Reversal' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.STBLG IS NOT NULL; -- STBLG (Reversed Document Number) is populated for reversals
UNION ALL
-- Activity 9: Period Closed For Posting
-- Required Query: Join CDHDR and CDPOS in SQVI.
SELECT
CONCAT(T001B.VONJ1, T001B.POPER) AS FinancialPeriod,
'Period Closed For Posting' AS ActivityName,
TO_TIMESTAMP(CONCAT(CDHDR.UDATE, CDHDR.UTIME), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
T001B.BUKRS AS BUKRS,
NULL AS BELNR,
CDHDR.USERNAME AS USNAM,
NULL AS HKONT,
NULL AS BLART,
NULL AS DMBTR,
NULL AS JournalEntryType
FROM CDHDR
JOIN CDPOS ON CDHDR.CHANGENR = CDPOS.CHANGENR
JOIN T001B ON SUBSTRING(CDPOS.TABKEY, 4, 4) = T001B.BUKRS
WHERE CDHDR.OBJECTCLAS = 'DEBI_BUKRS' AND CDPOS.TABNAME = 'T001B' AND CDPOS.FNAME = 'OFPER' AND CDPOS.VALUE_NEW < CDPOS.VALUE_OLD;
/*
-- Activities Not Extractable via this Method
-- The following activities are not data postings and cannot be reliably extracted by querying finance tables BKPF/BSEG.
-- Extraction would require analyzing application logs (SLG1), system logs (STAT), or custom-built logging solutions.
-- Activity: Trial Balance Report Generated
-- Activity: Financial Statements Generated
-- Activity: Reconciliation Reviewed
*/ Pasos
- Defina el alcance y el diseño del programa: Establezca la lógica específica para identificar cada una de las 12 actividades requeridas. Consulte con las personas responsables de los procesos de negocio y con especialistas funcionales de SAP para confirmar los tipos de documento, las cuentas del libro mayor y los nombres de programa asociados a las actividades de cierre de período en su entorno SAP ECC.
- Cree el programa ABAP: En la transacción
SE38(editor ABAP), cree un programa ejecutable nuevo, por ejemplo,Z_PM_R2R_EXTRACTION. Asígnele un título descriptivo y seleccione «Programa ejecutable» como tipo de programa. - Defina la pantalla de selección: En el programa, defina una pantalla de selección con
PARAMETERSySELECT-OPTIONS. Esta pantalla permitirá especificar el alcance de la extracción, incluidos el código de sociedad (BUKRS), el ejercicio fiscal (GJAHR) y el período de contabilización (MONAT). Esto es fundamental para controlar el volumen de datos. - Declare las estructuras de datos: Defina una estructura de tabla interna que contenga los datos finales del Registro de eventos. Debe incluir todos los atributos obligatorios y recomendados:
FinancialPeriod,ActivityName,EventTime,SourceSystem,LastDataUpdate,BUKRS,BELNR,USNAM,HKONT,BLART,DMBTRyJournalEntryType. - Implemente la lógica de extracción de datos: Escriba la lógica ABAP principal para seleccionar los datos de cada una de las 12 actividades. Para cada actividad, consulte las tablas SAP pertinentes (por ejemplo, BKPF, BSEG, TBTCO y CDHDR) y complete una tabla interna intermedia. Utilice como plantilla la lógica de la sección de consultas ABAP adjunta.
- Identifique las actividades inferidas: Para las actividades que no se registran explícitamente en SAP estándar, como «Inicio de conciliación de cuentas» o «Revisión de conciliación», implemente la lógica de inferencia acordada. Puede consistir en comprobar la primera ejecución de un informe específico o consultar tablas Z personalizadas, si existen.
- Consolide los datos de eventos: Después de extraer los datos de cada actividad, añada los registros de todas las tablas intermedias a la tabla interna consolidada final. Asegúrese de que el campo
EventTimese complete correctamente a partir del campo de origen pertinente, como la fecha y hora de contabilización del documento o la fecha y hora de inicio del trabajo. - Estandarice y dé formato a los datos: Antes de generar el archivo de salida, estandarice los campos clave. Combine el ejercicio fiscal y el período para crear el identificador
FinancialPeriod. Establezca valores estáticos paraSourceSystemyLastDataUpdate. Asegúrese de que las marcas de tiempo tengan un formato uniforme. - Desarrolle la función de salida: Añada al programa una función para exportar la tabla interna final. El método más habitual consiste en escribir los datos en un archivo CSV o delimitado por tabulaciones en el servidor de aplicaciones SAP (mediante
OPEN DATASET) o permitir que la persona usuaria los descargue directamente en su equipo (mediante el módulo de funcionesGUI_DOWNLOAD). - Pruebe y valide: Pruebe a fondo el programa con un conjunto de datos representativo que abarque varios códigos de sociedad y períodos. Siga los pasos de validación para comprobar la precisión y la integridad de los datos. Ajuste la lógica de selección según la retroalimentación de especialistas funcionales.
- Programe la ejecución (opcional): Una vez validado, puede programar el programa para que se ejecute como trabajo en segundo plano mediante la transacción
SM36. Así podrá extraer el Registro de eventos de forma periódica y automatizada, sin intervención manual.
Configuración
- Criterios de selección: El programa debe incluir una pantalla de selección para filtrar los datos. Los filtros clave son:
Código de sociedad (BUKRS): Obligatorio para limitar el alcance a las entidades jurídicas pertinentes.Ejercicio fiscal (GJAHR): Obligatorio para definir el año principal de la extracción.Período de contabilización (MONAT): Obligatorio para seleccionar los períodos financieros específicos.
- Configuración específica de cada actividad: Muchas selecciones dependen de la configuración particular de SAP. Deben poder configurarse como parámetros o constantes en el programa:
Tipos de documento de devengo/provisión: Lista de tipos de documento (BLART) que se utilizan para identificar las contabilizaciones de devengos y provisiones.Tipos de documento de asientos de ajuste: Lista de tipos de documento que se utilizan para identificar los asientos de ajuste.Nombres de programas/trabajos en segundo plano: Nombres técnicos de los programas utilizados para la valoración de moneda extranjera (por ejemplo,FAGL_FCV), la compensación de GR/IR (por ejemplo,SAPF124), los informes de balance de comprobación y la generación de estados financieros (por ejemplo,RFBILA00).
- Rango de fechas: Aunque la selección principal se realiza por ejercicio fiscal y período, la lógica subyacente debe tener en cuenta la fecha y hora completas de los eventos. Para un análisis inicial, se recomienda extraer los datos de los últimos 3 a 6 períodos financieros completados.
- Rendimiento: El rendimiento del programa es fundamental en entornos SAP grandes. Asegúrese de que las selecciones de la base de datos utilicen campos de índice, especialmente en tablas como
BKPFyBSEG. Evite seleccionar todos los campos (SELECT *) y, si es necesario, procese los datos en lotes manejables. - Autorizaciones: La persona o cuenta de servicio que ejecute el programa necesita autorización para acceder a todas las tablas consultadas (
BKPF,BSEG,TBTCO,TBTCP,CDHDR,CDPOS) y ejecutar transacciones comoSE38(para desarrollo) ySM37/SM36(para programación y supervisión).
Consulta de ejemplo abap
REPORT Z_PM_R2R_EXTRACTION.
" ====================================================================
" DATA DECLARATIONS
" ====================================================================
TYPES: BEGIN OF ty_event_log,
FinancialPeriod TYPE string,
ActivityName TYPE string,
EventTime TYPE timestamp,
SourceSystem TYPE string,
LastDataUpdate TYPE timestamp,
BUKRS TYPE bukrs,
BELNR TYPE belnr_d,
USNAM TYPE usnam,
HKONT TYPE hkont,
BLART TYPE blart,
DMBTR TYPE dmbtr,
JournalEntryType TYPE string,
END OF ty_event_log.
DATA: lt_final_log TYPE STANDARD TABLE OF ty_event_log,
ls_log_entry LIKE LINE OF lt_final_log.
DATA: lv_source_system TYPE string VALUE 'SAP ECC'.
GET TIME STAMP FIELD ls_log_entry-LastDataUpdate.
" ====================================================================
" SELECTION SCREEN
" ====================================================================
SELECT-OPTIONS: s_bukrs FOR ls_log_entry-bukrs OBLIGATORY,
s_gjahr FOR bkpf-gjahr OBLIGATORY,
s_monat FOR bkpf-monat OBLIGATORY.
PARAMETERS: p_accrl TYPE blart DEFAULT 'SA', " Example Doc Type for Accruals
p_adjst TYPE blart DEFAULT 'AJ', " Example Doc Type for Adjustments
p_fcv TYPE btcjob DEFAULT 'FAGL_FCV*', " Program for FC Valuation
p_grir TYPE btcjob DEFAULT 'SAPF124*', " Program for GR/IR Clearing
p_fs TYPE btcjob DEFAULT 'RFBILA00'. " Program for Fin. Statements
" ====================================================================
" MAIN LOGIC
" ====================================================================
START-OF-SELECTION.
" --- 1. Period Opened For Posting ---
" Note: This is complex. This example queries change documents for posting period config (T001B).
SELECT h~objectid, h~udate, h~utime, h~username
INTO TABLE @DATA(lt_period_open)
FROM cdhdr AS h
WHERE h~objectclas = 'V_T001B' AND h~change_ind = 'U'.
LOOP AT lt_period_open INTO DATA(ls_period_open).
" Further logic needed to parse OBJECTID and check CDPOS for opening a period.
" This is a simplified placeholder for a complex logic.
ls_log_entry-ActivityName = 'Period Opened For Posting'.
" Populate other fields... append to lt_final_log
ENDLOOP.
" --- 2. Accrual Or Provision Posted ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_accrual)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat AND h~blart = @p_accrl.
LOOP AT lt_accrual INTO DATA(ls_accrual).
CLEAR ls_log_entry.
CONVERT DATE ls_accrual-cpudt TIME ls_accrual-cputm INTO TIME STAMP ls_log_entry-EventTime TIME ZONE sy-zonlo.
CONCATENATE ls_accrual-gjahr ls_accrual-monat INTO ls_log_entry-FinancialPeriod.
ls_log_entry-ActivityName = 'Accrual Or Provision Posted'.
ls_log_entry-BUKRS = ls_accrual-bukrs.
ls_log_entry-BELNR = ls_accrual-belnr.
ls_log_entry-USNAM = ls_accrual-usnam.
ls_log_entry-HKONT = ls_accrual-hkont.
ls_log_entry-BLART = ls_accrual-blart.
ls_log_entry-DMBTR = ls_accrual-dmbtr.
ls_log_entry-JournalEntryType = 'Accrual'.
GET TIME STAMP FIELD ls_log_entry-LastDataUpdate.
ls_log_entry-SourceSystem = lv_source_system.
APPEND ls_log_entry TO lt_final_log.
ENDLOOP.
" --- 3. Intercompany Document Cleared ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_ic_clear)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat
AND h~blart = 'AB' AND i~vbund <> space.
LOOP AT lt_ic_clear INTO DATA(ls_ic_clear).
" Populate ls_log_entry and append to lt_final_log, setting ActivityName = 'Intercompany Document Cleared'
ENDLOOP.
" --- 4. Foreign Currency Valuation Run ---
SELECT j~jobname, j~sdlstrtda, j~sdlstrttm, j~sdluname
INTO TABLE @DATA(lt_fcv_jobs)
FROM tbtco AS j
WHERE j~jobname LIKE @p_fcv AND j~status = 'F'. " F = Finished
LOOP AT lt_fcv_jobs INTO DATA(ls_fcv_job).
" Populate ls_log_entry, deriving FinancialPeriod from date, setting ActivityName = 'Foreign Currency Valuation Run'
ENDLOOP.
" --- 5. GR/IR Clearing Run Executed ---
SELECT j~jobname, j~sdlstrtda, j~sdlstrttm, j~sdluname
INTO TABLE @DATA(lt_grir_jobs)
FROM tbtco AS j
WHERE j~jobname LIKE @p_grir AND j~status = 'F'.
LOOP AT lt_grir_jobs INTO DATA(ls_grir_job).
" Populate ls_log_entry, deriving FinancialPeriod from date, setting ActivityName = 'GR/IR Clearing Run Executed'
ENDLOOP.
" --- 6. Account Reconciliation Started (Inferred) ---
" Note: Inferring this by first run of a report, e.g., FAGLB03. Requires custom logging or complex logic.
" Placeholder: Query a custom log table if available.
" SELECT ... FROM zreco_log ...
" --- 7. Adjusting Journal Entry Posted ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_adjust)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat AND h~blart = @p_adjst.
LOOP AT lt_adjust INTO DATA(ls_adjust).
" Populate ls_log_entry and append, setting ActivityName = 'Adjusting Journal Entry Posted', JournalEntryType = 'Adjusting'
ENDLOOP.
" --- 8. Reversal Entry Posted ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_reversal)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat AND h~stblg <> space.
LOOP AT lt_reversal INTO DATA(ls_reversal).
" Populate ls_log_entry and append, setting ActivityName = 'Reversal Entry Posted', JournalEntryType = 'Reversal'
ENDLOOP.
" --- 9. Trial Balance Report Generated (Inferred from Job) ---
" Similar to other jobs, query TBTCO for Trial Balance report programs.
" SELECT ... FROM tbtco ... WHERE jobname LIKE '[Your Trial Balance Program]'.
" --- 10. Financial Statements Generated ---
SELECT j~jobname, j~sdlstrtda, j~sdlstrttm, j~sdluname
INTO TABLE @DATA(lt_fs_jobs)
FROM tbtco AS j
WHERE j~jobname LIKE @p_fs AND j~status = 'F'.
LOOP AT lt_fs_jobs INTO DATA(ls_fs_job).
" Populate ls_log_entry, deriving FinancialPeriod from date, setting ActivityName = 'Financial Statements Generated'
ENDLOOP.
" --- 11. Reconciliation Reviewed (Inferred) ---
" Note: This activity is almost always managed outside of SAP or in a custom solution.
" Placeholder: Query a custom approval/log table if available.
" SELECT ... FROM zreco_approval ...
" --- 12. Period Closed For Posting ---
" Note: Similar to 'Period Opened', this is very complex. Query change documents for T001B.
SELECT h~objectid, h~udate, h~utime, h~username
INTO TABLE @DATA(lt_period_close)
FROM cdhdr AS h
WHERE h~objectclas = 'V_T001B' AND h~change_ind = 'U'.
LOOP AT lt_period_close INTO DATA(ls_period_close).
" Further logic needed to parse OBJECTID and check CDPOS for closing a period.
ls_log_entry-ActivityName = 'Period Closed For Posting'.
" Populate other fields... append to lt_final_log
ENDLOOP.
" ... Code to display or download the lt_final_log internal table ...
ENDFORMS. Pasos
- Reúna los requisitos previos: Obtenga credenciales de acceso de solo lectura a la base de datos subyacente de SAP ECC. Identifique el esquema correcto de la base de datos, que suele ser
SAPSR3o un nombre similar proporcionado por la persona administradora de la base de datos. - Identifique la configuración del sistema: Consulte con el equipo de Finanzas de SAP para determinar los
códigos de sociedad(BUKRS) específicos y los períodos financieros que necesita analizar. Es fundamental identificar lostipos de documento(BLART) que utiliza su sistema para las transacciones «Devengo o provisión contabilizados», «Asiento de ajuste contabilizado» e «Intercompañía». - Verifique los nombres de programas y trabajos: Confirme los nombres de los programas para los trabajos por lotes clave, como la valoración de moneda extranjera (por ejemplo,
FAGL_FCV), la compensación de GR/IR (por ejemplo,SAPF124), los informes de balance de comprobación (por ejemplo,RFBILA00) y la generación de estados financieros (por ejemplo,RFBILA00). Puede consultarlos en los trabajos programados mediante la transacciónSM37. - Personalice la consulta SQL: Copie la consulta SQL proporcionada en un editor de texto o cliente SQL. Sustituya las variables de marcador de posición
{{start_date}},{{end_date}}y{{company_codes}}por los valores reales del análisis. Actualice las listas de tipos de documento y nombres de programa con la información recopilada en los pasos anteriores. - Conéctese a la base de datos: Utilice un cliente SQL estándar, como DBeaver, SQL Server Management Studio u Oracle SQL Developer, para conectarse a la base de datos SAP con las credenciales obtenidas.
- Ejecute la consulta: Ejecute la consulta SQL personalizada en la base de datos. Según el rango de fechas y el tamaño de las tablas financieras, la consulta puede tardar bastante en completarse.
- Revise los resultados iniciales: Cuando termine la consulta, revise rápidamente los resultados. Compruebe que el número de filas sea razonable, que estén todas las columnas y que los resultados incluyan distintos valores de
ActivityName. - Exporte los datos: Exporte el conjunto completo de resultados desde el cliente SQL a un archivo CSV. Guárdelo con codificación UTF-8 para evitar problemas con los caracteres.
- Prepare los datos para cargarlos: Antes de cargarlos en una herramienta de Process Mining, compruebe que los encabezados de columna del archivo CSV coincidan exactamente con los nombres de atributos requeridos (
FinancialPeriod,ActivityName,EventTime, etc.). Verifique también que la columnaEventTimetenga un formato de marca de tiempo uniforme, comoYYYY-MM-DD HH:MI:SS.
Configuración
- Credenciales de la base de datos: Se necesita un usuario de base de datos de solo lectura con acceso a las tablas financieras y del sistema principales de SAP, como
BKPF,BSEG,TBTCO,CDHDRyCDPOS. - Rango de fechas: Recomendamos extraer datos de entre 3 y 6 períodos financieros completos como mínimo para captar variaciones relevantes del proceso. Tenga en cuenta que los rangos de fechas más amplios aumentarán considerablemente el tiempo de ejecución de la consulta.
- Códigos de sociedad (
BUKRS): Filtre siempre por una lista específica de códigos de sociedad. Ejecutar la consulta para todos los códigos de sociedad en un sistema grande no es viable y probablemente causará problemas de rendimiento. - Tipos de documento (
BLART): La identificación de tipos de asiento contable, como devengos y ajustes, depende por completo de la configuración específica de SAP de su organización. Para clasificar correctamente las actividades, debe indicar los códigos de tipo de documento correctos en las cláusulasWHEREde la consulta. - Nombres de programas y trabajos: La consulta utiliza nombres de programas habituales para los pasos de cierre automatizados. Es posible que su sistema utilice programas envolventes personalizados o nombres de trabajo distintos. Verifíquelos en la transacción
SM37y actualice la consulta según corresponda. - Consideraciones de rendimiento: Esta consulta accede a tablas muy grandes, especialmente
BSEGyCDPOS. Se recomienda encarecidamente ejecutar la extracción fuera del horario laboral para evitar afectar el rendimiento del sistema. Aplicar filtros acotados de fecha y código de sociedad es la forma más eficaz de controlar el tiempo de ejecución.
Consulta de ejemplo sql
SELECT
CONCAT(CAST(b.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', b.MONAT), 2)) AS FinancialPeriod,
'Period Opened For Posting' AS ActivityName,
c.UDATE + c.UTIME AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
p.TABKEY AS CompanyCode,
NULL AS DocumentNumber,
c.USERNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM CDHDR c
JOIN CDPOS p ON c.OBJECTCLAS = p.OBJECTCLAS AND c.OBJECTID = p.OBJECTID AND c.CHANGENR = p.CHANGENR
WHERE c.OBJECTCLAS = 'V_T001B'
AND p.TABNAME = 'T001B'
AND p.FNAME = 'FRPE1'
AND c.UDATE BETWEEN '{{start_date}}' AND '{{end_date}}'
UNION ALL
SELECT
CONCAT(CAST(b.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', b.MONAT), 2)) AS FinancialPeriod,
'Period Closed For Posting' AS ActivityName,
c.UDATE + c.UTIME AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
p.TABKEY AS CompanyCode,
NULL AS DocumentNumber,
c.USERNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM CDHDR c
JOIN CDPOS p ON c.OBJECTCLAS = p.OBJECTCLAS AND c.OBJECTID = p.OBJECTID AND c.CHANGENR = p.CHANGENR
WHERE c.OBJECTCLAS = 'V_T001B'
AND p.TABNAME = 'T001B'
AND p.FNAME = 'TOPE1'
AND c.UDATE BETWEEN '{{start_date}}' AND '{{end_date}}'
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Accrual Or Provision Posted' AS ActivityName,
h.CPUDT + h.CPUTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Accrual' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.BUDAT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.BLART IN ('SA', '[Your Accrual Doc Type]')
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Intercompany Document Cleared' AS ActivityName,
h.AUGDT AS EventTime, -- Clearing Date
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Clearing' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.AUGDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.BLART IN ('[Your Intercompany Doc Type]')
AND h.AUGBL IS NOT NULL
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Foreign Currency Valuation Run' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME = 'FAGL_FCV' OR p.PROGNAME = 'SAPF100'
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F' -- Finished
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'GR/IR Clearing Run Executed' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME = 'SAPF124' -- Program for F.13
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Account Reconciliation Started' AS ActivityName, -- Proxy event
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME IN ('FAGLL03', 'FBL3N') -- Common reconciliation reports
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Adjusting Journal Entry Posted' AS ActivityName,
h.CPUDT + h.CPUTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Adjusting' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.BUDAT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.BLART IN ('[Your Adjusting Doc Type]')
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Reversal Entry Posted' AS ActivityName,
h.CPUDT + h.CPUTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Reversal' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.BUDAT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.STBLG IS NOT NULL -- STBLG links to the reversed document
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Trial Balance Report Generated' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME IN ('RFSSLD00', 'S_ALR_87012310')
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Financial Statements Generated' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME = 'RFBILA00' -- Program for F.01
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
-- UNION ALL
-- Note: 'Reconciliation Reviewed' is typically not a standard, logged event in SAP ECC.
-- This activity often happens offline or in a custom tool.
-- The following is a placeholder to be adapted if a custom (Z-table) log exists.
-- SELECT
-- CONCAT(CAST(YEAR(z.REVIEW_DATE) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(z.REVIEW_DATE)), 2)) AS FinancialPeriod,
-- 'Reconciliation Reviewed' AS ActivityName,
-- z.REVIEW_DATE AS EventTime,
-- 'SAP_ECC' AS SourceSystem,
-- CURRENT_TIMESTAMP AS LastDataUpdate,
-- z.BUKRS AS CompanyCode,
-- z.HKONT AS DocumentNumber, -- Using GL Account as a proxy identifier
-- z.REVIEWER_USER AS ResponsibleUser,
-- z.HKONT AS GLAccount,
-- NULL AS DocumentType,
-- NULL AS AmountInLocalCurrency,
-- NULL AS JournalEntryType
-- FROM ZRECON_LOG z -- Replace with your custom table for reconciliation status
-- WHERE z.REVIEW_DATE BETWEEN '{{start_date}}' AND '{{end_date}}'
-- AND z.STATUS = 'Reviewed'
; ¿Todo listo para comenzar?
Aproveche este Template de datos para iniciar su recorrido con Process Mining y obtener información valiosa sobre sus operaciones de cierre financiero. Comience hoy mismo a optimizar su proceso de registro a informe.
Optimice el cierre del proceso de registro a informe y reduzca ahora el tiempo de ciclo
Elimine los cuellos de botella y reduzca un 30 % el tiempo de ciclo del cierre del proceso de registro a informe.
No se requiere tarjeta de crédito. Comience su prueba gratuita de 14 días.