Su Template de datos de Record to Report: cierre del periodo y conciliación
Su Template de datos de Record to Report: cierre del periodo y conciliación
- Atributos recomendados para recopilar
- Actividades clave que debe supervisar
- Guía de extracción
Record to Report - Atributos del cierre del periodo y la conciliación
| Nombre | Descripción | ||
|---|---|---|---|
| Periodo financiero FinancialPeriod | Identificador único del ciclo de informes financieros, que normalmente combina el ejercicio fiscal y el periodo de contabilización. | ||
| Descripción El periodo financiero actúa 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 específico, como «2023-12» para diciembre de 2023. Esto permite analizar de forma integral todo el proceso de cierre del periodo, desde el inicio hasta el final, para cada periodo individual. En el análisis, permite realizar un seguimiento del tiempo del ciclo completo de cada cierre, comparar el rendimiento entre distintos periodos e identificar tendencias o anomalías. Al definir cada periodo 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 de caso esencial que estructura el análisis y permite comparar entre periodos los tiempos del ciclo de cierre, las cargas de trabajo y el cumplimiento del proceso. Dónde obtenerlo Este atributo normalmente se obtiene concatenando el ejercicio fiscal (GJAHR) y el periodo de contabilización (MONAT) de las cabeceras de los documentos financieros, por ejemplo, de la tabla BKPF. Ejemplos 2023-122024-032023-Q4 | |||
| Actividad ActivityName | El nombre del evento empresarial o la tarea específica realizada durante el proceso de cierre del periodo. | ||
| Descripción Este atributo registra los pasos diferenciados realizados dentro del ciclo Record to Report, como «Adjusting Journal Entry Posted» o «Financial Statements Generated». Constituye la base del mapa de procesos y muestra la secuencia de eventos que conforman el cierre del periodo. El análisis de las actividades es fundamental en Process Mining. Ayuda a visualizar el flujo del proceso, identificar la secuencia de tareas, descubrir variaciones del proceso y medir la frecuencia y duración de cada paso. Esto es esencial 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 construir el mapa de procesos, ya que permite visualizar y analizar la secuencia de tareas del cierre del periodo. 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, como FAGL_FCV para la valoración de moneda extranjera. Ejemplos Asiento de ajuste contabilizadoInicio de la conciliación de cuentasPeriodo cerrado para contabilizaciones | |||
| Hora del evento EventTime | La marca de tiempo que indica cuándo ocurrió una actividad o 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 duración, incluidos los tiempos de ciclo entre actividades, los tiempos de espera y la duración total del cierre del periodo. Analizar las marcas de tiempo ayuda a identificar retrasos y comprender la distribución temporal del trabajo. Por qué es importante Como atributo obligatorio, proporciona el orden cronológico de los eventos, necesario para calcular los tiempos de ciclo y descubrir cuellos de botella en el proceso. Dónde obtenerlo Normalmente procede 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 | El 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 ID de una instancia concreta de SAP ECC. En organizaciones con varios ERP o sistemas financieros, este campo es fundamental para distinguir los datos de diferentes fuentes. Incluso en un entorno con un solo sistema, constituye un elemento esencial de metadatos para la gobernanza de datos, las auditorías y la resolución de problemas. Confirma la procedencia de los datos, algo imprescindible para generar confianza en el análisis y garantizar la claridad del linaje de datos. Por qué es importante Proporciona un linaje de datos esencial, confirma el origen de los datos para la gobernanza y es fundamental en entornos con varios sistemas para diferenciar los procesos. Dónde obtenerlo Normalmente es un valor estático añadido durante la extracción de datos que identifica 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 | La marca de tiempo en la que los datos se actualizaron o extrajeron por última vez del sistema de origen. | ||
| Descripción Este atributo indica la actualización de los datos analizados. Muestra la fecha y hora de la última ejecución de la canalización de datos y aporta contexto sobre la antigüedad de la información del proceso. En los Dashboards, especialmente en los que supervisan el progreso en tiempo real, esta marca de tiempo es esencial para que los usuarios sepan si están consultando información actualizada al minuto o datos del día anterior. Ayuda a gestionar sus expectativas y es fundamental para interpretar correctamente el análisis. Por qué es importante Informa a los usuarios sobre la actualización de los datos, un aspecto fundamental para garantizar que los análisis y los Dashboards sean oportunos y relevantes. Dónde obtenerlo Esta marca de tiempo la genera y añade la herramienta de extracción de datos o ETL al final de cada proceso de carga de datos. Ejemplos 2024-05-21T04:00:00Z2024-05-20T04:00:00Z2024-05-19T04:00:00Z | |||
| Código de empresa BUKRS | La unidad organizativa que representa una entidad jurídica para la que se generan estados financieros. | ||
| Descripción El código de empresa es una unidad organizativa fundamental en SAP Financials. Representa una empresa independiente con su propio conjunto de libros equilibrados. Todas las transacciones financieras se contabilizan en el nivel del código de empresa. En Process Mining, filtrar por código de empresa es esencial para comparar el proceso de cierre del periodo entre distintas entidades jurídicas de una corporación. Esto permite identificar las mejores prácticas de las entidades con mejor rendimiento y localizar las entidades que tienen dificultades por 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 y el cumplimiento del cierre del periodo entre distintas entidades jurídicas, algo fundamental para el análisis financiero a nivel de grupo. Dónde obtenerlo Este campo está disponible en casi todas las tablas de documentos financieros de SAP, principalmente BKPF (cabecera) y BSEG (partida individual). Ejemplos 10002000US01DE01 | |||
| Cuenta de mayor HKONT | El 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 elemento central de los datos maestros financieros que clasifica las transacciones. Cada contabilización financiera se asigna a una o varias cuentas del libro mayor. En el contexto del cierre del periodo, analizar las actividades por cuenta del libro mayor es esencial para los Dashboards «Account Reconciliation Bottlenecks» y «Adjusting Entries Volume Analysis». Ayuda a 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. Este enfoque permite a los equipos priorizar sus esfuerzos en 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 las cuentas problemáticas que provocan 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 | El valor financiero de una partida de transacción, expresado en la moneda local del código de empresa. | ||
| 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 «Adjusting Entries Volume Analysis» es mucho más útil si puede distinguir entre un volumen elevado de ajustes de bajo valor y un volumen reducido de ajustes de alto valor. Ayuda a centrar la atención en las transacciones con importancia financiera. Por qué es importante Cuantifica el impacto financiero de las transacciones y permite analizarlas según su importancia relativa, por ejemplo, para identificar asientos de ajuste de gran importe. 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 | El identificador único de un documento contable dentro de un ejercicio fiscal y un código de empresa. | ||
| 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 normalmente no se utiliza para análisis de procesos de alto nivel, el número de documento es muy valioso para las funciones de desglose. Desde un Dashboard de Process Mining, los analistas pueden utilizarlo para volver directamente a la transacción específica en SAP e investigar en detalle anomalías como un asiento de ajuste de gran importe o una partida de conciliación retrasada. Proporciona un vínculo directo entre el insight 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 realizar un análisis detallado desde la vista del proceso hasta asientos contables específicos. Dónde obtenerlo Se encuentra en la tabla BKPF (BELNR), como clave principal. Ejemplos 100000456719000001233000008901 | |||
| Tipo de asiento contable JournalEntryType | Una clasificación de los asientos contables, como «Standard», «Adjusting», «Accrual» o «Reversal». | ||
| Descripción Este es un atributo derivado que categoriza los documentos financieros según su finalidad empresarial dentro del proceso de cierre. A menudo se determina combinando el tipo de documento (BLART), el motivo de reversión (STGRD) o las cuentas de mayor específicas utilizadas. Esta clasificación es fundamental para el Dashboard «Adjusting Entries Volume Analysis» y los KPI relacionados. Al identificar explícitamente los asientos de ajuste o devengo, los analistas pueden medir su volumen y valor, realizar un seguimiento de las tendencias a lo largo del tiempo e investigar las causas raíz de su necesidad. Ayuda a diferenciar las contabilizaciones operativas rutinarias de los ajustes de cierre del periodo. Por qué es importante Categoriza las contabilizaciones para realizar análisis específicos y permite hacer un seguimiento y medir tipos de asientos clave, como ajustes y devengos, que son indicadores de la salud del proceso. Dónde obtenerlo Este es un campo derivado. La lógica debe definirse según las reglas de negocio, normalmente utilizando campos como el tipo de documento (BLART) de BKPF. Ejemplos AjusteDevengoReversiónEstándar | |||
| Tipo de documento BLART | Un código que clasifica los distintos tipos de documentos contables. | ||
| Descripción En SAP, el tipo de documento se utiliza para distinguir entre diversas transacciones empresariales, como facturas de proveedores (KR), pagos de clientes (DZ) y contabilizaciones del libro mayor (SA). También controla propiedades como el rango de numeración de documentos. Para el análisis del cierre del periodo, el tipo de documento es un filtro muy potente. Puede utilizarse para aislar tipos específicos de actividades, 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 puede utilizarse para definir actividades específicas en el modelo de procesos. Por qué es importante Ayuda a clasificar y filtrar las transacciones, lo que permite aislar y analizar actividades específicas como devengos, reversiones o contabilizaciones intercompañía. Dónde obtenerlo Se encuentra en la tabla de cabecera de documentos, BKPF (BLART). Ejemplos SAABKR | |||
| Usuario responsable USNAM | El ID de usuario de SAP de la persona que creó o ejecutó la transacción. | ||
| Descripción Este campo registra a la persona usuaria que contabilizó un documento, ejecutó un informe o puso en marcha un programa relacionado con el cierre. Identifica a la persona responsable de una actividad determinada. El análisis por usuario es fundamental para comprender la distribución de la carga de trabajo, identificar necesidades de formación e investigar desviaciones del proceso. Los Dashboards que muestran las actividades por usuario pueden poner de manifiesto qué integrantes del equipo están sobrecargados o quiénes podrían estar siguiendo procedimientos no estándar. También ayuda 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 identificar 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, puede encontrarse en TBTCO (SDLUNAME). Ejemplos JSMITHRDOEFIN_ADMIN | |||
| Año fiscal GJAHR | Año fiscal en el que se contabilizó la transacción. | ||
| Descripción El año fiscal es un elemento fundamental para organizar los datos financieros. Es un componente clave del ID de caso del periodo financiero y proporciona el contexto necesario para todas las transacciones. Aunque a menudo forma parte del ID de caso, disponer del año fiscal como atributo independiente resulta útil para analizar tendencias a largo plazo. Permite comparar año tras año los tiempos del ciclo de cierre, el volumen de ajustes u otros KPI, y ayuda a identificar mejoras o deterioros del rendimiento a lo largo de varios años. Por qué es importante Proporciona el contexto temporal necesario y permite comparar año tras año el rendimiento del proceso de cierre. Dónde obtenerlo Disponible en la tabla de cabecera del documento, BKPF (GJAHR). Ejemplos 202320242022 | |||
| Departamento Department | El departamento funcional o centro de coste responsable de la actividad o transacción. | ||
| Descripción Este atributo identifica el departamento empresarial, como «Finance», «Sales» o «Logistics», 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 del usuario. Analizar los datos por departamento respalda el Dashboard «Close Team Workload Distribution». Ayuda a comprender cómo contribuyen las distintas funciones empresariales a la carga de trabajo del cierre del periodo, especialmente al iniciar transacciones que posteriormente pueden requerir ajustes o conciliaciones. También puede poner de manifiesto á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 las distintas funciones empresariales, y revela cómo influyen los diferentes departamentos 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. del usuario responsable. Esto puede requerir combinar varias tablas. Ejemplos Finanzas corporativasCuentas por pagarPlanificación y análisis financiero | |||
| Es retrabajo IsRework | Indicador calculado que identifica las actividades que representan retrabajo, como una reversión o una conciliación rechazada. | ||
| Descripción Este atributo booleano marca los eventos o las secuencias de eventos que indican bucles ineficientes o correcciones en el proceso. Por ejemplo, una actividad «Conciliación revisada» seguida de otra «Asiento de ajuste contabilizado» en la misma cuenta podría marcarse como retrabajo. Este atributo es esencial para cuantificar el desperdicio del proceso y respalda el Dashboard «Casos de retrabajo en conciliaciones» y el KPI «Tasa de retrabajo en conciliaciones». Al aislar el retrabajo, los equipos pueden investigar las causas raíz, medir el impacto en el tiempo de ciclo y hacer seguimiento de la eficacia de las iniciativas de mejora orientadas a hacer las cosas bien desde el principio. Por qué es importante Cuantifica la ineficiencia 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, como bucles, o de atributos, por ejemplo, cuando ReversalReason no es nulo. Ejemplos truefalse | |||
| Está automatizado IsAutomated | Indicador que señala si una persona usuaria o un sistema automatizado realizó una actividad. | ||
| Descripción Este atributo booleano distingue entre las tareas manuales y las que el sistema ejecuta automáticamente, como un proceso por lotes programado para valorar moneda extranjera o un bot que contabiliza asientos recurrentes. A menudo se determina analizando el nombre de usuario asociado a la transacción, por ejemplo, «BATCHUSER». Comprender el nivel de automatización es clave para identificar oportunidades de eficiencia. El análisis de este atributo ayuda a visualizar qué partes del proceso son manuales y podrían automatizarse. También permite evaluar con precisión la carga de trabajo de las personas al excluir las actividades generadas por el sistema. Por qué es importante Distingue entre las actividades manuales y las impulsadas por el sistema, algo fundamental para identificar 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 User Name (USNAM), de modo que una lista de identificadores de usuarios del sistema o de procesos por lotes conocidos indica que la tarea está automatizada. Ejemplos truefalse | |||
| Está vencido IsOverdue | Indicador calculado que señala si una actividad se completó después de su fecha objetivo 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 objetivo, el indicador se establece en true. Este atributo respalda directamente el Dashboard «Cumplimiento del cierre y tareas vencidas» y el KPI «Tasa de cierre del periodo a tiempo». Proporciona una señal clara e inmediata de las desviaciones del calendario, lo que permite a las personas responsables identificar rápidamente las tareas retrasadas, comprender su impacto en el calendario general y exigir a los equipos el cumplimiento de las fechas límite. Por qué es importante Proporciona un indicador claro del incumplimiento de los calendarios, permite identificar rápidamente las tareas retrasadas y medir el rendimiento puntual. Dónde obtenerlo Es un atributo calculado por la herramienta de Process Mining mediante la comparación de EventTime con TargetCompletionDate. Ejemplos truefalse | |||
| Estado de conciliación ReconciliationStatus | El estado actual de una conciliación de cuentas, como «Open», «In Review» o «Approved». | ||
| Descripción Este atributo registra el estado de una conciliación de cuentas a medida que avanza por su flujo de trabajo. Indica si la conciliación se ha iniciado, se ha enviado para revisión, se ha aprobado o se ha rechazado. Es un atributo clave para supervisar en tiempo real el progreso de las actividades de conciliación. Ayuda a identificar qué conciliaciones están bloqueadas y durante cuánto tiempo, y sirve de apoyo a KPI como «Account Reconciliation Cycle Time». Proporciona visibilidad sobre el proceso de aprobación y es fundamental para los Dashboards que supervisan los cuellos de botella de las conciliaciones y la carga de trabajo del equipo. Por qué es importante Proporciona visibilidad sobre el Workflow de conciliación, permite realizar un seguimiento del progreso, identificar cuellos de botella y medir los tiempos de revisión y aprobación. Dónde obtenerlo Esta información suele residir en una herramienta de conciliación independiente, como SAP Account Substantiation and Automation by BlackLine, o en un campo de estado personalizado. Normalmente no es un campo estándar de BKPF/BSEG. Ejemplos No iniciadoEn cursoAprobadoRechazado | |||
| Fecha prevista de finalización TargetCompletionDate | El plazo o fecha de vencimiento prevista para una actividad o para todo el cierre del periodo. | ||
| Descripción La Fecha de finalización prevista representa el calendario con el que se mide el proceso de cierre del periodo. Es la fecha límite en la que deben completarse determinados hitos o el cierre final. Este atributo es esencial para cualquier análisis relacionado con el rendimiento o el cumplimiento. Se utiliza para calcular el KPI «Tasa de cierre del periodo a tiempo» y alimentar el Dashboard «Cumplimiento del cierre y tareas vencidas». Al comparar la hora real del evento con esta fecha objetivo, el sistema puede determinar si las tareas avanzan según lo previsto, están retrasadas o corren riesgo de retrasarse, lo que permite gestionar el proceso de cierre de forma proactiva. Por qué es importante Permite supervisar el cumplimiento y el rendimiento al proporcionar una referencia para medir si las actividades de cierre se completan a tiempo, y respalda los KPI de entregas puntuales. Dónde obtenerlo Normalmente se trata de datos maestros que se mantienen en un calendario independiente, una herramienta de 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 | Un código que indica el motivo por el que se revirtió un documento financiero. | ||
| Descripción Cuando se revierte un documento en SAP, puede asignarse un código de motivo para explicar la finalidad de la reversión, por ejemplo, «Reversal in current period» o «Incorrect entry». Este atributo proporciona un contexto esencial sobre la causa del retrabajo. Analizar los motivos de reversión ayuda a identificar patrones de error, como datos introducidos incorrectamente o fechas erróneas. Esta información puede utilizarse para aplicar medidas preventivas, mejorar la formación o reforzar los controles del sistema, reducir el número de errores y posteriores reversiones, y lograr un cierre más eficiente. Por qué es importante Proporciona información directa sobre las causas raíz de los errores y el retrabajo, y ayuda a identificar oportunidades de mejora y prevención de errores en el proceso. Dónde obtenerlo Se encuentra en la tabla de cabecera de documentos, BKPF (STGRD). Ejemplos 010205 | |||
| Socio comercial VBUND | El identificador de la empresa del grupo vinculada que participa en una transacción intercompañía. | ||
| Descripción El ID de socio comercial se utiliza para identificar el otro código de empresa que participa en una transacción intercompañía. Es esencial para conciliar las cuentas entre entidades jurídicas relacionadas. Este atributo respalda directamente el Dashboard «Intercompany Reconciliation Flow» y el KPI «Intercompany Recon. Cycle Time». Al filtrar las transacciones en las que existe un socio comercial, el análisis puede centrarse específicamente en la eficiencia y puntualidad del proceso de conciliación intercompañía, que suele ser uno de los principales problemas durante el cierre del periodo. Por qué es importante Identifica específicamente las transacciones intercompañía y permite centrarse en el análisis de un proceso de conciliación intercompañía que suele ser complejo y consumir mucho tiempo. Dónde obtenerlo Se encuentra en la tabla de partidas individuales de documentos, BSEG (VBUND). Ejemplos 1000US013000 | |||
Record to Report - Actividades del cierre del periodo y la conciliación
| Actividad | Descripción | ||
|---|---|---|---|
| Asiento de ajuste contabilizado | Se contabiliza un asiento de ajuste para corregir los saldos de las cuentas una vez finalizado el procesamiento inicial de las transacciones del periodo. SAP captura este evento como una contabilización de documento financiero estándar. | ||
| Por qué es importante Esto es esencial para el análisis Adjusting Entries Volume Analysis. Un volumen elevado de ajustes sugiere problemas en la precisión de los procesos anteriores y constituye un objetivo prioritario para las iniciativas de mejora de procesos. Dónde obtenerlo Se encuentra en las tablas BKPF y BSEG. Normalmente, estos asientos se identifican mediante un tipo de documento específico (BKPF-BLART) reservado para ajustes o porque se contabilizaron en periodos especiales de cierre, como del 13 al 16. Recopilar Filtrar BKPF por documentos contabilizados en periodos 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 para revaluar partidas abiertas y saldos registrados en monedas extranjeras utilizando los tipos de cambio de cierre del periodo. Normalmente se ejecuta como un trabajo por lotes dentro de los pasos de cierre del periodo. | ||
| Por qué es importante Este es un paso fundamental para garantizar la exactitud de los informes financieros en organizaciones multinacionales. Analizar su momento de ejecución y duración ayuda a identificar 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 de tablas como TBTCO y TBTCP proporcionan las marcas de tiempo de ejecución. Recopilar A partir de los registros de trabajos por lotes (tabla TBTCO) del programa FAGL_FC_VALUATION o SAPF100. Tipo de evento explicit | |||
| Estados financieros generados | Esto representa el momento en que se generan los estados financieros oficiales, como el estado de resultados y el balance general. Normalmente, esta actividad se captura mediante el seguimiento de la ejecución de un programa de informes específico. | ||
| Por qué es importante Este es un hito importante que marca el final 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. Recopilar A partir de los registros del sistema (STAD) que realizan el seguimiento de la ejecución de la transacción F.01 de estados financieros. Tipo de evento inferred | |||
| Inicio de la conciliación de cuentas | Representa el inicio del proceso de conciliación de un conjunto de cuentas de mayor para el periodo. En SAP ECC estándar, no es un evento independiente y normalmente se infiere a partir de actividades relacionadas, como la ejecución de un informe clave por primera vez. | ||
| Por qué es importante Esta actividad establece un hito clave para medir la duración de toda la fase de conciliación. Comprender cuándo comienza la conciliación es esencial para el KPI Account Reconciliation Cycle Time. Dónde obtenerlo Este evento no se registra explícitamente. Debe inferirse a partir de otras fuentes de datos, como el registro de auditoría del sistema (transacción STAD), para identificar la primera ejecución de un informe de visualización de saldos como FAGLB03 o FS10N. Recopilar Inferir a partir de la primera ejecución de las transacciones de informes relevantes, por ejemplo FAGLB03, en los registros del sistema. Tipo de evento inferred | |||
| Periodo abierto para registro | Esto marca el inicio oficial de un periodo financiero y permite contabilizar transacciones en el libro mayor. Se trata de un cambio de configuración explícito realizado por un usuario autorizado para abrir un periodo específico para contabilizaciones en uno o más códigos de empresa. | ||
| Por qué es importante Esta actividad representa el evento de inicio definitivo del caso del proceso de cierre del periodo. Analizar el tiempo desde este punto ayuda a comprender el ciclo de vida completo del periodo financiero. Dónde obtenerlo Los cambios en los periodos 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 T001B, normalmente mediante las tablas CDHDR y CDPOS. Recopilar Extracción de los documentos de modificación (CDHDR/CDPOS) de la tabla T001B. Tipo de evento explicit | |||
| Periodo cerrado para contabilizaciones | Representa el cierre formal de un periodo de contabilización, lo que impide realizar nuevas contabilizaciones operativas. Esto garantiza la integridad de los datos financieros del periodo cerrado y constituye un cambio de configuración explícito. | ||
| Por qué es importante Este es el evento de finalización definitivo del proceso de cierre del periodo. Es esencial para calcular con precisión el Period Close Cycle Time total y medir el cumplimiento de los plazos. Dónde obtenerlo El cierre de periodos mediante la transacción OB52 queda registrado. Estos cambios pueden localizarse analizando los documentos de modificación (tablas CDHDR y CDPOS) de la tabla de configuración T001B. Recopilar Extracción de los documentos de modificación (CDHDR/CDPOS) de la tabla T001B. Tipo de evento explicit | |||
| Asiento de reversión contabilizado | Esta actividad captura la contabilización de un documento que revierte un asiento contable contabilizado anteriormente, 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 apunta a posibles problemas de precisión en la introducción de datos o en los controles del proceso. Hacer un seguimiento de estos eventos ayuda a medir los índices de ejecución correcta 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 y contienen una referencia al número del documento revertido en el campo BKPF-STBLG. Recopilar Identificar los documentos en los que BKPF-STBLG esté informado o que se hayan creado mediante códigos de transacción de reversión. Tipo de evento explicit | |||
| Conciliación revisada | 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, no es un evento registrado explícitamente y suele gestionarse mediante controles externos al sistema o soluciones personalizadas. | ||
| Por qué es importante Hacer un seguimiento del momento de las revisiones es importante para comprender los cuellos de botella en las fases de control y supervisión del proceso de cierre. Puede poner de manifiesto retrasos causados por la disponibilidad de la dirección o por retrabajos. Dónde obtenerlo Esta información no está disponible en las tablas estándar de ECC. Requeriría una solución personalizada, como un campo de estado en una tabla Z personalizada, un Workflow sencillo o una integración con una herramienta especializada de conciliación de terceros. Recopilar Capturar el cambio de estado desde un Workflow personalizado o una tabla Z, si se ha implementado. Tipo de evento inferred | |||
| Devengo o provisión contabilizado | Esto representa el registro de un asiento contable de devengo, periodificación o provisión, que normalmente se contabiliza hacia el final de un periodo. No es un tipo de evento específico en SAP, sino que se infiere identificando 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 o ajustes frecuentes de los devengos pueden indicar áreas con oportunidades de mejora del 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). Recopilar Filtrar las tablas BKPF/BSEG por tipo de documento, cuentas de mayor específicas o campos de texto. Tipo de evento inferred | |||
| Documento intercompañía compensado | Esta actividad marca la compensación de una partida abierta entre dos códigos de empresa diferentes, lo que indica que una transacción intercompañía se ha liquidado o conciliado. En SAP, se registra 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 intercompañía son un cuello de botella habitual en el proceso de cierre. Hacer un seguimiento de esta actividad es fundamental para medir y mejorar el tiempo del ciclo de conciliación intercompañía. Dónde obtenerlo Se identifica en los documentos financieros de BKPF y BSEG. Un documento de compensación se vincula con las partidas abiertas y las cierra; su fecha de compensación (BSEG-AUGDT) sirve como marca de tiempo del evento. Las transacciones intercompañía se identifican mediante los campos de socio comercial. Recopilar Identificar en BKPF/BSEG los documentos de compensación que incluyan partidas con socios comerciales. Tipo de evento explicit | |||
| Ejecución del proceso de compensación GR/IR | La ejecución del programa automatizado de compensación de la cuenta Goods Receipt/Invoice Receipt. Este programa relaciona las entradas de mercancías y las recepciones de facturas correspondientes, y compensa las partidas entre sí. | ||
| Por qué es importante La cuenta GR/IR es una fuente frecuente de problemas de conciliación. Supervisar esta actividad garantiza que el paso automatizado se ejecute correctamente y ayuda a cuantificar el volumen de excepciones que requieren seguimiento manual. Dónde obtenerlo La ejecución se captura en los registros de trabajos por lotes (transacción SM37). Normalmente, el programa es SAPF124 y se ejecuta mediante la transacción F.13. Las tablas de registros de trabajos, como TBTCO, proporcionan las marcas de tiempo necesarias. Recopilar A partir de los registros de trabajos por lotes (tabla TBTCO) del programa de compensación SAPF124. Tipo de evento explicit | |||
| Informe de balance de comprobación generado | Marca la ejecución de un informe para generar el balance de comprobación. Este es un paso clave para verificar que el total de débitos sea igual al total de créditos antes de crear los estados financieros oficiales. | ||
| Por qué es importante Este es un control de calidad fundamental antes de elaborar los informes finales. Las ejecuciones repetidas de este informe pueden indicar que se están detectando y corrigiendo problemas en los datos subyacentes, lo que podría provocar retrasos. Dónde obtenerlo Se infiere a partir de los registros de auditoría del sistema, como la transacción STAD, que puede registrar la ejecución de transacciones de informes del balance de comprobación, como S_ALR_87012277 o F.01. Recopilar A partir de los registros del sistema (STAD) que realizan el seguimiento de la ejecución de códigos de transacción de informes. 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 su consulta, por ejemplo,Z_R2R_PERIOD_CLOSE, y haga clic en «Crear». En la ventana emergente, indique un título descriptivo, como «Extracción del cierre de Record to Report». En «Origen 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), que debe verificar y aceptar. Para las actividades de apertura y cierre del periodo, 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. Esto incluyeBKPF-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 se utilizarán para filtrar los datos durante la ejecución. Los más importantes sonBKPF-BUKRS(código de sociedad) yBKPF-GJAHR(año fiscal). También puede añadirBKPF-MONAT(periodo de contabilización) yBKPF-BLART(tipo de documento). 6. Cree variantes para cada actividad: Como SQVI no puede combinar selecciones de datos diferentes, como un SQL UNION, debe ejecutar la consulta varias veces. Para cada actividad, por ejemplo, «Provisión o devengo contabilizado», ejecute la consulta e introduzca valores de filtro específicos en la pantalla de selección, como una lista de tipos de documento relevantes para los devengos. Guarde este conjunto de criterios de selección como una variante. Repita el proceso para cada actividad que pueda extraerse. 7. Ejecute y extraiga los datos: Ejecute la consulta para cada variante creada. La consulta se ejecutará con 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 SAP. Esto incluyeActivityName(establézcalo manualmente según la variante de la que procedan los datos),FinancialPeriod(concatenando el año fiscal y el periodo),EventTime(combinando los campos de fecha y hora),SourceSystemyLastDataUpdate. 11. Dé formato para la carga: Asegúrese de guardar el archivo final en formato CSV o Excel, con las cabeceras de columna correctas según los requisitos de su herramienta de Process Mining. Verifique los tipos de datos y el formato antes de cargarlo.
Configuración
- Origen de datos: Unión de tablas en SAP Query (SQVI). Las tablas clave son BKPF, BSEG, CDHDR y CDPOS. * Intervalo de fechas: Se recomienda extraer datos de al menos 3 a 6 periodos financieros completos para identificar patrones. Establezca el filtro en
BKPF-GJAHR(año fiscal) yBKPF-MONAT(periodo). * 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 concretas. 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 relevantes para su organización. * Requisitos previos: La persona que ejecute la extracción necesita autorización para utilizar 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: La unión de BKPF y BSEG puede consumir muchos recursos. Ejecute la extracción fuera de las horas punta. Evite utilizar intervalos 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.
a 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
- Definir el alcance y diseñar el programa: Defina la lógica específica para identificar cada una de las 12 actividades requeridas. Consulte a las personas responsables del proceso y a los analistas funcionales de SAP para confirmar los tipos de documento, las cuentas de mayor y los nombres de programa asociados a las actividades de cierre de periodo en su entorno SAP ECC.
- Crear el programa ABAP: Utilizando la transacción
SE38(ABAP Editor), cree un nuevo programa ejecutable, por ejemplo,Z_PM_R2R_EXTRACTION. Proporcione un título descriptivo y establezca el tipo de programa como 'Executable Program'. - Definir la pantalla de selección: En el programa, defina una pantalla de selección mediante
PARAMETERSySELECT-OPTIONS. Esta pantalla permitirá especificar el alcance de la extracción, incluidos Company Code (BUKRS), Fiscal Year (GJAHR) y Posting Period (MONAT). Esto es fundamental para controlar el volumen de datos. - Declarar 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. - Implementar 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, como BKPF, BSEG, TBTCO y CDHDR, y complete una tabla interna intermedia. Utilice como plantilla la lógica proporcionada en la sección de la consulta ABAP adjunta.
- Identificar las actividades inferidas: Para las actividades que no se registran explícitamente en SAP estándar, como 'Account Reconciliation Started' o 'Reconciliation Reviewed', implemente la lógica de inferencia acordada. Esto puede implicar comprobar la primera ejecución de un informe específico o consultar tablas personalizadas 'Z' si existen.
- Consolidar los datos de eventos: Después de extraer los datos de cada actividad, añada los registros de cada tabla intermedia a la tabla interna consolidada final. Asegúrese de que el campo
EventTimese complete correctamente a partir del campo de origen correspondiente, como la fecha y hora de contabilización del documento o la fecha y hora de inicio del job. - Estandarizar y dar formato a los datos: Antes de generar la salida, estandarice los campos clave. Combine el año fiscal y el periodo en el identificador
FinancialPeriod. Establezca valores estáticos paraSourceSystemyLastDataUpdate. Asegúrese de que las marcas de tiempo utilicen un formato coherente. - Desarrollar la funcionalidad de salida: Añada al programa la funcionalidad 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 SAP Application Server mediante
OPEN DATASET, o permitir que la persona usuaria los descargue directamente en su equipo mediante el módulo de funciónGUI_DOWNLOAD. - Probar y validar: Pruebe exhaustivamente el programa con un conjunto de datos representativo que abarque varios códigos de sociedad y periodos. Utilice los pasos de validación para comprobar la exactitud y la integridad de los datos. Perfeccione la lógica de selección a partir de los comentarios de las personas expertas en el área funcional.
- Programar la ejecución (opcional): Una vez validado, el programa puede programarse como job en segundo plano mediante la transacción
SM36. Esto permite automatizar la extracción periódica del registro de eventos sin intervención manual.
Configuración
- Criterios de selección: El programa debe contar con una pantalla de selección para filtrar los datos. Los filtros clave incluyen:
Company Code (BUKRS): Obligatorio para limitar el alcance a las entidades legales pertinentes.Fiscal Year (GJAHR): Obligatorio para definir el año principal de la extracción.Posting Period (MONAT): Obligatorio para seleccionar los periodos financieros específicos.
- Configuración específica de las actividades: Muchas selecciones dependen de su configuración específica de SAP. Deben poder configurarse como parámetros o constantes dentro del programa:
Accrual/Provision Document Types: Lista de tipos de documento (BLART) utilizados para identificar contabilizaciones de devengos y provisiones.Adjusting Entry Document Types: Lista de tipos de documento utilizados para identificar asientos de ajuste.Background Job/Program Names: Nombres técnicos de los programas utilizados para la valoración de moneda extranjera (por ejemplo,FAGL_FCV), la compensación 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 año fiscal y periodo, la lógica subyacente debe considerar la fecha y hora completas de los eventos. Para un análisis inicial, se recomienda extraer los últimos 3 a 6 periodos financieros completados.
- Rendimiento: En entornos SAP grandes, el rendimiento del programa es fundamental. Asegúrese de que las selecciones de la base de datos utilicen campos indexados, especialmente en tablas como
BKPFyBSEG. Evite seleccionar todos los campos (SELECT *) y procese los datos en paquetes manejables cuando sea necesario. - Autorizaciones: La persona usuaria o la cuenta de servicio que ejecute este 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).
a 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
- Reunir 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 normalmente es
SAPSR3o un nombre similar proporcionado por la persona administradora de la base de datos. - Identificar la configuración del sistema: Consulte al equipo de SAP Finance para determinar los
Company Codes(BUKRS) específicos y los periodos financieros que necesita analizar. Es fundamental identificar losDocument Types(BLART) concretos utilizados en su sistema para las transacciones 'Accrual Or Provision Posted', 'Adjusting Journal Entry Posted' e 'Intercompany'. - Verificar los nombres de programas y jobs: Confirme los nombres de programa de jobs clave, como la valoración de moneda extranjera (por ejemplo,
FAGL_FCV), la compensación 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 encontrarlos consultando los jobs programados en la transacciónSM37. - Personalizar la consulta SQL: Copie la consulta SQL proporcionada en un editor de texto o cliente SQL. Sustituya las variables de marcador
{{start_date}},{{end_date}}y{{company_codes}}por los valores reales de su análisis. Actualice las listas de tipos de documento y nombres de programa según la información recopilada en los pasos anteriores. - Conectarse a la base de datos: Utilice una herramienta 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.
- Ejecutar 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.
- Revisar los resultados iniciales: Cuando finalice la consulta, revise rápidamente la salida. Compruebe que el número de filas sea razonable, que estén presentes todas las columnas y que los resultados incluyan distintos valores de
ActivityName. - Exportar los datos: Exporte el conjunto completo de resultados desde su cliente SQL a un archivo CSV. Asegúrese de guardar el archivo con codificación UTF-8 para evitar problemas con los caracteres.
- Preparar la carga: Antes de cargar los datos en una herramienta de Process Mining, confirme que las cabeceras de las columnas del archivo CSV coincidan exactamente con los nombres de atributos requeridos (
FinancialPeriod,ActivityName,EventTime, etc.). Verifique también que la columnaEventTimeutilice un formato de marca de tiempo coherente, comoYYYY-MM-DD HH:MI:SS.
Configuración
- Credenciales de la base de datos: Se necesita una persona usuaria de base de datos con acceso de solo lectura a las tablas principales de finanzas y del sistema SAP. Esto incluye tablas como
BKPF,BSEG,TBTCO,CDHDRyCDPOS. - Rango de fechas: Recomendamos extraer datos de al menos 3 a 6 periodos financieros completos 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 provocará problemas de rendimiento. - Tipos de documento (
BLART): La identificación de tipos de asiento, como devengos y ajustes, depende por completo de la configuración específica de SAP de su organización. Debe proporcionar los códigos correctos de tipo de documento en las cláusulasWHEREde la consulta para clasificar las actividades correctamente. - Nombres de programas y jobs: La consulta utiliza nombres habituales de programas para los pasos automatizados del cierre. Su sistema puede utilizar programas wrapper personalizados o nombres de job diferentes. 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 esta extracción fuera del horario laboral para evitar afectar al rendimiento del sistema. Aplicar filtros restrictivos de fecha y código de sociedad es la forma más eficaz de controlar el tiempo de ejecución.
a 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'
; ¿Listo para empezar?
Aproveche esta plantilla de datos para iniciar su recorrido de Process Mining y obtener información valiosa sobre sus operaciones de cierre financiero. ¡Empiece hoy a optimizar su proceso de Record to Report!
Optimice el cierre de Record to Report y reduzca ahora el tiempo de ciclo
Elimine los cuellos de botella y reduzca un 30 % el ciclo de cierre de Record to Report.
No necesita tarjeta de crédito. Inicie su prueba gratuita de 14 días.