Su plantilla de datos para Registro a Informe - Cierre de Período y Reconciliación
Su plantilla de datos para Registro a Informe - Cierre de Período y Reconciliación
- Atributos recomendados para recopilar
- Actividades clave para el seguimiento
- Guía de Extracción
Del registro al informe - Atributos de Cierre y Conciliación del Periodo
| Nombre | Descripción | ||
|---|---|---|---|
| Período Financiero FinancialPeriod | Un identificador único para el ciclo de reporte financiero, que típicamente combina el ejercicio y el período contable. | ||
| Descripción El Periodo Financiero sirve como el identificador de caso principal, agrupando todas las actividades relacionadas con el cierre y la conciliación de cuentas para ese ciclo de informes específico, como '2023-12' para diciembre de 2023. Esto permite un análisis exhaustivo de todo el proceso de cierre de periodo de principio a fin para cada periodo distinto. En el análisis, permite realizar un seguimiento del tiempo de ciclo de punta a punta para cada cierre, comparar el rendimiento entre diferentes 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 en el proceso de cierre a lo largo del tiempo. Por qué es importante Es el identificador de caso esencial que enmarca el análisis, permitiendo comparaciones periodo a periodo de los tiempos de ciclo de cierre, las cargas de trabajo y el cumplimiento del proceso. Dónde obtener Este atributo se deriva típicamente concatenando el Año Fiscal (GJAHR) y el Periodo de Contabilización (MONAT) de las cabeceras de documentos financieros, por ejemplo, de la tabla BKPF. Ejemplos 2023-122024-032023-T4 | |||
| Actividad ActivityName | El nombre del evento comercial específico o tarea realizada durante el proceso de cierre de periodo. | ||
| Descripción Este atributo registra los distintos pasos realizados dentro del ciclo Del registro al informe, como 'Asiento de Ajuste Contabilizado' o 'Estados Financieros Generados'. Forma la columna vertebral del mapa de procesos, mostrando la secuencia de eventos que constituyen el cierre de periodo. Analizar las actividades es fundamental para 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 crucial para identificar 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, permitiendo la visualización y el análisis de la secuencia de tareas en el cierre de periodo. Dónde obtener Esto se deriva de una combinación de códigos de transacción SAP (TCODE), tipos de documento (BLART) o ejecuciones de programas específicos (por ejemplo, FAGL_FCV para la Valoración de Moneda Extranjera). Ejemplos Asiento de Ajuste ContabilizadoConciliación de Cuentas IniciadaPeriodo Cerrado para Contabilización | |||
| Hora del Evento EventTime | El timestamp que indica cuándo ocurrió una actividad o event. | ||
| Descripción La Hora del Evento proporciona la fecha y hora precisas para cada actividad en el proceso, sirviendo como la base cronológica para el análisis. Típicamente es una combinación de la fecha y hora de creación del documento. Este timestamp es esencial para ordenar los eventos correctamente 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 de periodo. Analizar los timestamps 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, lo cual es necesario para calcular los tiempos de ciclo y descubrir cuellos de botella del proceso. Dónde obtener Generalmente, se obtiene de la fecha de entrada del documento (CPUDT) y la hora de entrada (CPUTM) en la tabla BKPF para documentos financieros. Ejemplos 2023-12-28T14:30:15Z2024-01-02T09:05:00Z2024-01-05T17:21:45Z | |||
| Source System SourceSystem | El identificador del sistema de origen del que se extrajeron los datos. | ||
| Descripción Este atributo especifica el origen de los datos del evento, como el nombre o ID de instancia específica de SAP ECC. En organizaciones con múltiples ERP o sistemas financieros, este campo es crítico para distinguir los datos de diferentes fuentes. Incluso en un entorno de un solo sistema, sirve como una pieza crucial de metadatos para la gobernanza de datos, la auditoría y la resolución de problemas. Confirma la procedencia de los datos, lo cual es esencial para generar confianza en el análisis y asegurar que la trazabilidad de los datos sea clara. Por qué es importante Proporciona una trazabilidad de datos esencial, confirmando el origen de los datos para la gobernanza, y es fundamental en entornos multisistema para diferenciar procesos. Dónde obtener Este es típicamente un valor estático añadido durante el proceso de extracción de datos, identificando el cliente SAP y el ID del sistema específicos (por ejemplo, de la tabla T000). Ejemplos ECC_PROD_100SAP_E74_200ECC_FINANCE | |||
| Última actualización de datos LastDataUpdate | El `timestamp` cuando los datos fueron actualizados por última vez o extraídos del sistema de origen. | ||
| Descripción Este atributo indica la actualización de los datos que se analizan. Muestra la fecha y hora de la última ejecución de la data pipeline, proporcionando contexto sobre la actualidad de los insights del proceso. Para los dashboards, especialmente aquellos que rastrean el progreso en tiempo real, este timestamp es vital para que los usuarios comprendan si están viendo información actualizada al minuto o datos de un día anterior. Gestiona las expectativas del usuario y es crucial para interpretar el análisis correctamente. Por qué es importante Informa a los usuarios sobre la actualización de los datos, lo cual es fundamental para asegurar que los análisis y dashboards sean oportunos y relevantes. Dónde obtener Este timestamp es generado y añadido por 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 | |||
| Cuenta GL HKONT | El número de cuenta de mayor al que se contabiliza un ítem de línea. | ||
| Descripción La Cuenta de Mayor (GL) es un elemento de datos maestros central en finanzas que clasifica las transacciones. Cada contabilización financiera se asigna a una o más cuentas de mayor. En el contexto del cierre de periodo, analizar las actividades por cuenta de mayor es esencial para los dashboards de 'Cuellos de Botella de Conciliación de Cuentas' y 'Análisis del Volumen de Asientos de Ajuste'. Ayuda a identificar qué cuentas son más difíciles de conciliar, cuáles requieren la mayor cantidad de ajustes y dónde el riesgo de incorrección material puede ser mayor. Este enfoque permite a los equipos priorizar sus esfuerzos en las cuentas problemáticas. Por qué es importante Permite un análisis dirigido de conciliaciones y asientos de ajuste, ayudando a identificar cuentas problemáticas que causan retrasos o requieren correcciones frecuentes. Dónde obtener Disponible en la tabla de partidas individuales de documento financiero, BSEG (HKONT). Ejemplos 113100400500750000 | |||
| Importe en Moneda Local DMBTR | El valor financiero de un ítem de línea de transacción, expresado en la moneda local de la sociedad. | ||
| Descripción Este atributo representa el valor monetario asociado a una contabilización financiera. Es la medida cuantitativa central del impacto de una transacción en el libro mayor. Analizar el importe es crucial para priorizar problemas y comprender el riesgo financiero. Por ejemplo, el dashboard de 'Análisis del Volumen de Asientos de Ajuste' se vuelve mucho más potente cuando puede distinguir entre un alto volumen de ajustes de bajo valor y un bajo volumen de ajustes de alto valor. Ayuda a centrar la atención en las transacciones que son financieramente materiales. Por qué es importante Cuantifica el impacto financiero de las transacciones, permitiendo un análisis basado en la materialidad, como la identificación de asientos de ajuste de alto valor. Dónde obtener Disponible en la tabla de partidas individuales de documento, BSEG (DMBTR). Ejemplos 1500.75-25000.00123456.00 | |||
| Número de Documento BELNR | El identificador único para un documento contable dentro de un año fiscal y una sociedad. | ||
| Descripción El Número de Documento Contable es la clave principal para las contabilizaciones financieras en SAP. A cada asiento contable, factura o documento de pago se le asigna un número único. Aunque no se utiliza típicamente para el análisis de procesos de alto nivel, el número de documento es invaluable para las capacidades de desglose (drill-down). Desde un dashboard de Process Mining, los analistas pueden usar el número de documento para navegar directamente a la transacción específica en SAP para una investigación detallada de anomalías, como un asiento de ajuste grande o un elemento de conciliación retrasado. Proporciona un enlace directo del insight a la transacción de origen. Por qué es importante Proporciona un enlace directo a la transacción de origen en SAP, permitiendo un análisis detallado de desglose (drill-down) desde la vista del proceso a asientos contables específicos. Dónde obtener Ubicado en la tabla BKPF (BELNR) como clave principal. Ejemplos 100000456719000001233000008901 | |||
| Sociedad BUKRS | La unidad organizativa que representa una entidad legal para la cual se generan los estados financieros. | ||
| Descripción La Sociedad (Company Code) es una unidad organizativa fundamental en SAP Financials. Representa una empresa independiente con su propio conjunto de libros contables equilibrados. Todas las transacciones financieras se contabilizan a nivel de sociedad. En Process Mining, filtrar por Sociedad es esencial para comparar el proceso de cierre de periodo entre diferentes entidades legales dentro de una corporación. Esto permite identificar las mejores prácticas en entidades de alto rendimiento y señalar las entidades que luchan con retrasos, altos volúmenes de ajuste o desviaciones de proceso. Es una dimensión clave para segmentar el análisis. Por qué es importante Permite la comparación del rendimiento y cumplimiento del cierre de período entre diferentes entidades legales, lo cual es crucial para el análisis financiero a nivel de grupo. Dónde obtener Este campo está disponible en casi todas las tablas de documentos financieros en SAP, principalmente BKPF (Cabecera) y BSEG (Ítem de Línea). Ejemplos 10002000US01DE01 | |||
| Tipo de Asiento Contable JournalEntryType | Una clasificación de asientos contables, como 'Estándar', 'Ajuste', 'Devengo' o 'Reversión'. | ||
| Descripción Este es un atributo derivado que categoriza los documentos financieros según su propósito comercial dentro del proceso de cierre. A menudo se determina por una combinación de Tipo de Documento (BLART), Motivo de Anulación (STGRD) o las cuentas de mayor específicas que se utilizan. Esta clasificación es fundamental para el dashboard de 'Análisis del Volumen de Asientos de Ajuste' y los KPI relacionados. Al identificar explícitamente los asientos de ajuste o de provisión, los analistas pueden medir su volumen y valor, rastrear 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 fin de periodo. Por qué es importante Categoriza las contabilizaciones para un análisis dirigido, permitiendo el seguimiento y la medición de tipos de entradas clave como ajustes y devengos, que son indicadores de la salud del proceso. Dónde obtener Este es un campo derivado. La lógica debe definirse basándose en reglas de negocio, típicamente utilizando campos como Tipo de Documento (BLART) de BKPF. Ejemplos AjusteAcumulaciónReversiónEstándar | |||
| Tipo de Documento BLART | Un código que clasifica diferentes tipos de documentos contables. | ||
| Descripción El Tipo de Documento se utiliza en SAP para distinguir entre diversas transacciones comerciales, como facturas de proveedor (KR), pagos de clientes (DZ) y contabilizaciones de mayor (SA). También controla propiedades como el rango de números de documento. Para el análisis de cierre de periodo, el tipo de documento es un filtro potente. Se puede utilizar para aislar tipos específicos de actividades, como provisiones, dotaciones o asientos de anulación. Esto ayuda a analizar el volumen y el impacto financiero de diferentes transacciones relacionadas con el cierre y se puede utilizar para definir actividades específicas en el modelo de proceso. Por qué es importante Ayuda a clasificar y filtrar transacciones, haciendo posible aislar y analizar actividades específicas como devengos, reversiones o contabilizaciones intercompañía. Dónde obtener Ubicado en la tabla de cabecera de documento, 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 captura al usuario que contabilizó un documento, ejecutó un informe o ejecutó un programa relacionado con el cierre. Identifica al individuo responsable de una actividad determinada. Analizar por usuario es fundamental para comprender la distribución de la carga de trabajo, identificar necesidades de capacitación e investigar desviaciones del proceso. Los dashboards que muestran actividades por usuario pueden resaltar miembros del equipo sobrecargados o individuos que pueden estar siguiendo procedimientos no estándar. También ayuda en la gestión del rendimiento y la asignación de recursos dentro del equipo financiero. Por qué es importante Permite el análisis de la distribución de la carga de trabajo, el rendimiento del equipo y la identificación de desviaciones del proceso vinculadas a individuos específicos. Dónde obtener Disponible en la tabla BKPF (USNAM) para la creación de documentos. Para trabajos batch, se puede encontrar en TBTCO (SDLUNAME). Ejemplos JSMITHRDOEFIN_ADMIN | |||
| ¿Es Retrabajo? IsRework | Un indicador calculado que identifica actividades que representan retrabajo, como una reversión o una conciliación rechazada. | ||
| Descripción Este atributo booleano marca eventos o secuencias de eventos que indican bucles ineficientes o correcciones en el proceso. Por ejemplo, una actividad de 'Conciliación Revisada' seguida de otro 'Asiento Contable de Ajuste Contabilizado' en la misma cuenta podría ser marcada como retrabajo. Este atributo es esencial para cuantificar el desperdicio del proceso y soporta el dashboard de 'Instancias de Retrabajo de Conciliación' y el KPI de 'Tasa de Retrabajo de Conciliación'. Al aislar el retrabajo, los equipos pueden investigar las causas raíz, medir el impacto en el tiempo de ciclo y rastrear la efectividad de las iniciativas de mejora del proceso destinadas a hacerlo bien a la primera. Por qué es importante Cuantifica la ineficiencia del proceso marcando actividades que son correcciones o repeticiones, ayudando a medir y reducir el esfuerzo desperdiciado. Dónde obtener Este es un atributo calculado. La lógica se define en la herramienta de Process Mining basada en secuencias de actividad específicas (por ejemplo, bucles) o atributos (por ejemplo, ReversalReason no es nulo). Ejemplos truefalse | |||
| Automatizado IsAutomated | Un indicador que señala si una actividad fue realizada por un usuario humano o un sistema automatizado. | ||
| Descripción Este atributo booleano distingue entre tareas manuales y aquellas ejecutadas automáticamente por el sistema, como un trabajo por lotes programado para la valoración de moneda extranjera o un bot que contabiliza asientos recurrentes. Esto a menudo se determina analizando el nombre de usuario asociado con la transacción (por ejemplo, 'BATCHUSER'). Comprender el nivel de automatización es clave para identificar oportunidades de mejora de la eficiencia. Analizar este atributo ayuda a visualizar qué partes del proceso son manuales y potencialmente aptas para la automatización. También ayuda a evaluar con precisión la carga de trabajo humana excluyendo las actividades generadas por el sistema. Por qué es importante Distingue entre actividades manuales y automáticas (impulsadas por el sistema), lo cual es crítico para identificar oportunidades de automatización y medir con precisión las cargas de trabajo manuales. Dónde obtener Este es un atributo derivado. La lógica se basa típicamente en el Nombre de Usuario (USNAM), donde una lista de IDs de usuario de sistema o de procesamiento por lotes conocidos indica una tarea automatizada. Ejemplos truefalse | |||
| Departamento Department | El departamento funcional o centro de costo responsable de la actividad o transacción. | ||
| Descripción Este atributo identifica el departamento comercial, como 'Finanzas', 'Ventas' o 'Logística', asociado a una transacción. Esto a menudo se deriva de los datos maestros del Centro de Costo vinculados a una contabilización o de los datos maestros del usuario. Analizar por departamento apoya el dashboard de 'Distribución de la Carga de Trabajo del Equipo de Cierre'. Ayuda a comprender cómo las diferentes funciones comerciales contribuyen a la carga de trabajo de fin de periodo, particularmente en términos de iniciar transacciones que pueden requerir ajustes o conciliaciones posteriormente. Puede destacar áreas fuera del equipo financiero central que impactan en el proceso de cierre. Por qué es importante Ayuda a analizar la carga de trabajo y la adherencia al proceso en diferentes funciones empresariales, revelando cómo varios departamentos impactan la eficiencia del cierre financiero. Dónde obtener A menudo se deriva del Centro de Costo (KOSTL) en BSEG o de los datos maestros de RRHH del usuario responsable. Esto puede requerir la unión de múltiples tablas. Ejemplos Finanzas CorporativasCuentas por PagarFP&A | |||
| Ejercicio Fiscal GJAHR | El 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 un contexto esencial para todas las transacciones. Aunque a menudo forma parte del ID de caso, tener el Año Fiscal como un atributo separado es útil para el análisis de tendencias a largo plazo. Permite comparaciones año tras año de los tiempos de ciclo de cierre, los volúmenes de ajuste u otros KPI, ayudando a identificar mejoras o degradaciones en el rendimiento a lo largo de varios años. Por qué es importante Proporciona un contexto temporal esencial y permite comparaciones de rendimiento año tras año del proceso de cierre. Dónde obtener Disponible en la tabla de cabecera de documento, BKPF (GJAHR). Ejemplos 202320242022 | |||
| Estado de Conciliación ReconciliationStatus | El estado actual de una conciliación de cuentas, como 'Abierta', 'En Revisión' o 'Aprobada'. | ||
| Descripción Este atributo rastrea el estado de una conciliación de cuentas a medida que avanza en su flujo de trabajo. Indica si una conciliación ha sido iniciada, enviada para revisión, aprobada o rechazada. Este es un atributo clave para monitorear el progreso de las actividades de conciliación en tiempo real. Ayuda a identificar qué conciliaciones están estancadas y por cuánto tiempo, soportando KPI como el 'Tiempo de Ciclo de Conciliación de Cuentas'. Proporciona visibilidad del proceso de aprobación y es crucial para los dashboards que rastrean los cuellos de botella de conciliación y la carga de trabajo del equipo. Por qué es importante Proporciona visibilidad del flujo de trabajo de conciliación, permitiendo el seguimiento del progreso, la identificación de cuellos de botella y la medición de los tiempos de revisión y aprobación. Dónde obtener Esta información a menudo reside en una herramienta de conciliación separada (por ejemplo, SAP Account Substantiation and Automation by BlackLine) o en un campo de estado personalizado. No es típicamente un campo estándar en BKPF/BSEG. Ejemplos No IniciadoEn ProgresoAprobadoRechazada | |||
| Fecha Objetivo de Finalización TargetCompletionDate | La fecha límite planificada o fecha de vencimiento para una actividad o el cierre completo del periodo. | ||
| Descripción La Fecha de Finalización Objetivo representa el cronograma contra el cual se mide el proceso de cierre de periodo. Es la fecha límite en la que deben completarse hitos específicos 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 de 'Tasa de Cierre de Periodo a Tiempo' y para alimentar el dashboard de 'Cumplimiento del Cierre y Tareas Pendientes'. Al comparar la hora del evento real con esta fecha objetivo, el sistema puede determinar si las tareas están en curso, retrasadas o en riesgo de retrasarse, permitiendo una gestión proactiva del proceso de cierre. Por qué es importante Permite el monitoreo del cumplimiento y el rendimiento al proporcionar una base para medir si las actividades de cierre se completan a tiempo, apoyando los KPI de entrega a tiempo. Dónde obtener Normalmente, se trata de datos maestros gestionados en un calendario separado, una herramienta de cabina de cierre (como SAP Financial Closing cockpit) o una hoja de cálculo. No forma 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 cual se revirtió un documento financiero. | ||
| Descripción Cuando un documento se anula en SAP, se puede asignar un código de motivo para explicar el propósito de la anulación, por ejemplo, 'Anulación en el período actual' o 'Entrada incorrecta'. Este Atributo proporciona un contexto crítico sobre por qué se produce el retrabajo. Analizar los motivos de anulación ayuda a identificar patrones de errores, como entradas de datos incorrectas o fechas erróneas. Este insight se puede utilizar para implementar medidas preventivas, mejorar la capacitación o potenciar los controles del sistema para reducir el número de errores y las anulaciones subsiguientes, lo que lleva a un cierre más eficiente. Por qué es importante Proporciona insights directos sobre las causas raíz de errores y retrabajos, ayudando a identificar oportunidades de mejora del proceso y prevención de errores. Dónde obtener Ubicado en la tabla de cabecera de documento, BKPF (STGRD). Ejemplos 010205 | |||
| Socio Comercial VBUND | El identificador de la empresa del grupo afiliada involucrada en una transacción intercompañía. | ||
| Descripción El ID de Socio Comercial se utiliza para identificar a la otra sociedad que participa en una transacción intercompañía. Esto es esencial para la conciliación de cuentas entre entidades legales relacionadas. Este atributo soporta directamente el dashboard de 'Flujo de Conciliación Intercompañía' y el KPI de 'Tiempo de Ciclo de Conc. Intercompañía'. Al filtrar por transacciones donde un Socio Comercial está presente, el análisis puede centrarse específicamente en la eficiencia y la puntualidad del proceso de conciliación intercompañía, que a menudo es un punto crítico importante durante el cierre de periodo. Por qué es importante Identifica específicamente las transacciones intercompañía, permitiendo un análisis enfocado en el a menudo complejo y laborioso proceso de conciliación intercompañía. Dónde obtener Se encuentra en la tabla de partidas individuales de documento, BSEG (VBUND). Ejemplos 1000US013000 | |||
| Tiempo de Ciclo de Cierre de Periodo PeriodCloseCycleTime | El tiempo total transcurrido desde el inicio hasta el final del proceso de cierre de periodo para un único periodo financiero. | ||
| Descripción Esta métrica calculada mide la duración de punta a punta de todo el cierre de periodo para un periodo financiero. Típicamente se calcula como la diferencia de tiempo entre la primera y la última actividad registrada dentro de ese periodo. Este es un Indicador Clave de Rendimiento (KPI) primario para el proceso Del registro al informe. Proporciona una medida de alto nivel de la eficiencia general del cierre. Los dashboards que visualizan esta métrica a lo largo del tiempo son esenciales para seguir el progreso hacia objetivos estratégicos como acelerar el cierre. Por qué es importante Este es un KPI crítico que mide la eficiencia y velocidad general del cierre financiero, apoyando directamente los objetivos estratégicos para acortar los ciclos de cierre. Dónde obtener Esta es una métrica calculada, computada dentro de la herramienta de Process Mining tomando la diferencia entre la Hora del Evento máxima y mínima para cada Periodo Financiero (CaseId). Ejemplos 5 días 4 horas 30 minutos6.2 días120.5 horas | |||
| Vencido IsOverdue | Un indicador calculado que señala si una actividad se completó después de su fecha objetivo planificada. | ||
| Descripción Este atributo booleano compara la hora de finalización real de una actividad (EventTime) con su fecha límite planificada (TargetCompletionDate). Si la hora del evento es posterior al objetivo, la bandera se establece en verdadero. Este atributo apoya directamente el dashboard de 'Cumplimiento del Cierre y Tareas Pendientes' y el KPI de 'Tasa de Cierre de Periodo a Tiempo'. Proporciona una señal clara e inmediata de desviaciones del cronograma, permitiendo a los gerentes identificar rápidamente tareas retrasadas, comprender el impacto en la línea de tiempo general y responsabilizar a los equipos por cumplir los plazos. Por qué es importante Proporciona un indicador claro de incumplimiento de los cronogramas, permitiendo la rápida identificación de tareas retrasadas y la medición del rendimiento a tiempo. Dónde obtener Este es un atributo calculado, computado en la herramienta de Process Mining comparando la Hora del Evento con la Fecha de Finalización Objetivo. Ejemplos truefalse | |||
Del registro al informe - Actividades de Cierre y Conciliación del Periodo
| Actividad | Descripción | ||
|---|---|---|---|
| Asiento de Ajuste Contabilizado | Se contabiliza un asiento de ajuste para corregir los saldos de las cuentas después de que el procesamiento inicial de transacciones para el período haya finalizado. Este evento se registra como una contabilización de documento financiero estándar en SAP. | ||
| Por qué es importante Esto es fundamental para el Análisis de Volumen de Asientos de Ajuste. Un alto volumen de ajustes indica problemas con la precisión de los procesos previos y es un objetivo clave para las iniciativas de mejora de procesos. Dónde obtener Se encuentra en las tablas BKPF y BSEG. Estas entradas suelen identificarse por un tipo de documento específico (BKPF-BLART) reservado para ajustes, o por ser contabilizadas en períodos de cierre especiales, como del 13 al 16. Capturar Filtre BKPF para documentos contabilizados en períodos especiales o con tipos de documento de ajuste. Tipo de evento explicit | |||
| Conciliación de Cuentas Iniciada | Representa el inicio del proceso de conciliación para un conjunto de cuentas de mayor del periodo. En SAP ECC estándar, este no es un evento discreto y normalmente se infiere 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 de Tiempo de Ciclo de Conciliación de Cuentas. Dónde obtener Este evento no se registra explícitamente. Debe inferirse de otras fuentes de datos, como el registro de auditoría del sistema (transacción STAD) para la primera ejecución de un informe de visualización de balance como FAGLB03 o FS10N. Capturar Inferir de la primera ejecución de transacciones de informe relevantes (ej., FAGLB03) en los registros del sistema. Tipo de evento inferred | |||
| Ejecución de Valoración en Moneda Extranjera | Esto representa la ejecución de un programa para revalorar partidas abiertas y saldos registrados en monedas extranjeras utilizando los tipos de cambio de fin de período. Normalmente, se ejecuta como un job batch como parte de los pasos de cierre de fin de período. | ||
| Por qué es importante Este es un paso crítico para asegurar la precisión de los informes financieros en organizaciones multinacionales. Analizar su momento y duración ayuda a identificar oportunidades de automatización y optimización del rendimiento. Dónde obtener Capturado de los registros de ejecución del programa de valoración de moneda extranjera, como FAGL_FCV o F.05. Los detalles del trabajo batch de tablas como TBTCO y TBTCP proporcionan las marcas de tiempo de ejecución. Capturar De los registros de trabajos batch (tabla TBTCO) para el 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. Esta actividad se captura típicamente rastreando 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 desde este evento hasta la aprobación es un KPI clave. Dónde obtener Inferido de los registros de auditoría del sistema, como STAD, que registran la ejecución del programa de generación de estados financieros, más comúnmente la transacción F.01. Capturar De los registros del sistema (STAD) que rastrean la ejecución de la transacción de estados financieros F.01. Tipo de evento inferred | |||
| Periodo Abierto para Contabilización | Esto marca el inicio oficial de un período financiero, permitiendo la contabilización de transacciones en el libro mayor. Es un cambio de configuración explícito realizado por un usuario autorizado para abrir un período específico para contabilizaciones en una o varias sociedades. | ||
| Por qué es importante Esta actividad sirve como el evento de inicio definitivo para el caso del proceso de cierre de periodo. Analizar el tiempo desde este punto ayuda a comprender el ciclo de vida completo del periodo financiero. Dónde obtener Los cambios en los períodos contables a través de la transacción OB52 se registran. Estos cambios se pueden extraer analizando los documentos de cambio para la tabla de configuración subyacente T001B, típicamente utilizando las tablas CDHDR y CDPOS. Capturar Extraer de los documentos de cambio (CDHDR/CDPOS) para la tabla T001B. Tipo de evento explicit | |||
| Periodo Cerrado para Contabilización | Representa el cierre formal de un periodo de contabilización, lo que impide asientos contables operativos adicionales. Esto asegura la integridad de los datos financieros para el periodo cerrado y es un cambio de configuración explícito. | ||
| Por qué es importante Este es el evento final definitivo para el proceso de cierre de período. Es esencial para calcular con precisión el Tiempo de Ciclo Total del Cierre de Período y para medir el rendimiento a tiempo. Dónde obtener El cierre de periodos a través de la transacción OB52 se registra. Estos cambios se pueden encontrar analizando los documentos de cambio (tablas CDHDR y CDPOS) para la tabla de configuración T001B. Capturar Extraer de los documentos de cambio (CDHDR/CDPOS) para la tabla T001B. Tipo de evento explicit | |||
| Asiento de Anulación Contabilizado | Esta actividad registra la contabilización de un documento que anula un asiento contable previamente contabilizado, a menudo para corregir un error. SAP crea un enlace explícito entre el documento de anulación y el documento original. | ||
| Por qué es importante Un alto número de reversiones apunta a posibles problemas con la precisión en la entrada de datos o los controles de proceso. El seguimiento de estos eventos ayuda a medir las tasas de acierto a la primera e identificar áreas que necesitan mejora. Dónde obtener Los documentos de anulación se encuentran en la tabla BKPF. A menudo se crean con la transacción FB08 y contienen una referencia al número de documento anulado en el campo BKPF-STBLG. Capturar Identifique documentos donde BKPF-STBLG está rellenado o creado a través de códigos de transacción de reversión. Tipo de evento explicit | |||
| Conciliación Revisada | Indica que una conciliación para una cuenta específica o grupo de cuentas ha sido revisada y confirmada. En SAP ECC estándar, este no es un evento registrado explícitamente y a menudo se gestiona a través de controles offline o soluciones personalizadas. | ||
| Por qué es importante El seguimiento del momento de las revisiones es importante para comprender los cuellos de botella en las etapas de control y supervisión del proceso de cierre. Puede resaltar retrasos causados por la disponibilidad de la dirección o por retrabajo. Dónde obtener 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 flujo de trabajo simple o la integración con una herramienta de conciliación especializada de terceros. Capturar Capture el cambio de estado de un workflow personalizado o de una tabla Z si está implementado. Tipo de evento inferred | |||
| Devengo o Provisión Contabilizado | Esto representa el registro de un asiento contable por una acumulación, aplazamiento o provisión, que normalmente se contabilizan hacia el final de un período. No es un tipo de evento distinto en SAP, sino que se infiere identificando asientos contables específicos basándose en sus características. | ||
| Por qué es importante Aislar estas entradas ayuda a analizar el subproceso de gestión de estimaciones. Un alto volumen o ajustes frecuentes en las provisiones pueden indicar áreas de mejora del proceso. Dónde obtener Se infiere de las tablas de documentos financieros BKPF y BSEG. Las entradas se pueden identificar 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 GL específicas o campos de texto. Tipo de evento inferred | |||
| Documento Intercompañía Compensado | Esta actividad marca la compensación de un ítem abierto entre dos sociedades diferentes, lo que significa que una transacción intercompañía ha sido liquidada o conciliada. Esto se registra como una contabilización financiera explícita en SAP, típicamente un documento de compensación. | ||
| Por qué es importante Los retrasos en la compensación de partidas intercompañía son un cuello de botella común en el proceso de cierre. El seguimiento de esta actividad es crítico para medir y mejorar el tiempo de ciclo de la conciliación intercompañía. Dónde obtener Identificado a partir de documentos financieros en BKPF y BSEG. Un documento de compensación enlaza y cierra partidas abiertas, y su fecha de compensación (BSEG-AUGDT) sirve como marca de tiempo del evento. Las transacciones intercompañía se identifican mediante campos de socio comercial. Capturar Identifique los documentos de compensación en BKPF/BSEG que involucran partidas con socios comerciales. Tipo de evento explicit | |||
| Ejecución de Compensación GR/IR Realizada | La ejecución del programa de compensación automatizada para la cuenta de Entrada de Mercancías/Recepción de Facturas (GR/IR). Este programa concilia las entradas de mercancías y las recepciones de facturas correspondientes y compensa los ítems entre sí. | ||
| Por qué es importante La cuenta GR/IR es una fuente frecuente de problemas de conciliación. Monitorear esta actividad asegura que el paso automatizado se ejecute correctamente y ayuda a cuantificar el volumen de excepciones que requieren seguimiento manual. Dónde obtener La ejecución se captura en los registros de trabajos batch (transacción SM37). El programa suele ser SAPF124, ejecutado a través de la transacción F.13. Las tablas de registro de trabajos como TBTCO proporcionan las marcas de tiempo necesarias. Capturar De los registros de trabajos batch (tabla TBTCO) para el 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 Esta es una puerta de calidad crítica antes de la presentación de informes finales. Las ejecuciones repetidas de este informe pueden indicar que se están encontrando y corrigiendo problemas subyacentes de datos, lo que podría causar retrasos. Dónde obtener Inferido de los registros de auditoría del sistema, como la transacción STAD, que puede registrar la ejecución de transacciones de informes de balance de comprobación como S_ALR_87012277 o F.01. Capturar De los registros del sistema (STAD) que rastrean 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 de Consulta SAP: Inicie sesión en su sistema SAP ECC. Vaya al código de transacción
SQVI(QuickViewer). 2. Crear Nueva Consulta: Ingrese un nombre para su consulta, por ejemplo,Z_R2R_PERIOD_CLOSE, y haga clic en 'Crear'. En la ventana emergente, proporcione un título descriptivo como 'Extracción del Cierre Periódico de Record to Report'. Para la 'Fuente de datos', seleccione 'Unión de tablas'. 3. Definir Uniones de Tablas: Agregue la tabla principalBKPF(Cabecera de Documento Contable). Luego, agregue la tablaBSEG(Segmento de Documento Contable). SAP propondrá las condiciones de unión automáticamente (MANDT, BUKRS, BELNR, GJAHR), las cuales debe verificar y aceptar. Para actividades de apertura y cierre de período, necesitará una consulta separada que unaCDHDRyCDPOS. 4. Seleccionar Campos de Salida (Campos de Lista): Navegue a la pestaña 'Selecc. cpos. lista'. Seleccione los campos requeridos para el log de eventos de las tablas disponibles. Esto incluyeBKPF-BUKRS,BKPF-BELNR,BKPF-GJAHR,BKPF-MONAT,BKPF-CPUDT,BKPF-CPUTM,BKPF-USNAM,BKPF-BLART,BSEG-HKONT,BSEG-DMBTR, y otros según sea necesario. 5. Definir Parámetros de Entrada (Campos de Selección): Navegue a la pestaña 'Campos selección'. Elija los campos que se usarán para filtrar los datos durante la ejecución. Los campos más importantes sonBKPF-BUKRS(Sociedad) yBKPF-GJAHR(Ejercicio). También puede agregarBKPF-MONAT(Período Contable) yBKPF-BLART(Tipo de Documento). 6. Crear Variantes para Cada Actividad: Debido a que SQVI no puede combinar diferentes selecciones de datos (como un SQL UNION), debe ejecutar la consulta varias veces. Para cada actividad (ej., 'Devengo o Provisión Contabilizado'), ejecute la consulta e ingrese valores de filtro específicos en la pantalla de selección, como una lista de tipos de documentos relevantes para devengos. Guarde este conjunto de criterios de selección como una variante. Repita este proceso para cada actividad extraíble. 7. Ejecutar y Extraer Datos: Ejecute la consulta para cada variante que creó. Esto ejecutará la consulta con los filtros específicos para esa actividad. 8. Exportar Resultados: En la pantalla de resultados, exporte los datos a un archivo local. El formato más común es 'Hoja de cálculo'. Repita la exportación para cada variante. 9. Combinar y Transformar Datos: Abra los archivos exportados en un programa de hoja de cálculo o utilice una herramienta de scripting. Combine manualmente los datos de todos los archivos en un único archivo maestro. 10. Agregar Columnas Constantes y Calculadas: En el archivo combinado, agregue las columnas que no se extraen directamente de las tablas de SAP. Esto incluyeActivityName(establezca esto manualmente según la variante de la que provienen los datos),FinancialPeriod(concatenando Ejercicio y Período),EventTime(combinando campos de fecha y hora),SourceSystemyLastDataUpdate. 11. Formato para Carga: Asegúrese de que el archivo final se guarde en formato CSV o Excel con los encabezados de columna correctos según lo requerido por su herramienta de Process Mining. Verifique los tipos de datos y el formato antes de cargar.
Configuración
- Fuente de Datos: Unión de tablas en Consulta SAP (SQVI). Las tablas clave son BKPF, BSEG, CDHDR y CDPOS. * Rango de Fechas: Se recomienda extraer datos por un período de al menos 3 a 6 períodos financieros completos para identificar patrones. Establezca el filtro en
BKPF-GJAHR(Ejercicio) yBKPF-MONAT(Período). * Filtro por Sociedad: Siempre filtre porBKPF-BUKRS(Sociedad) para limitar el volumen de datos y enfocar el análisis en entidades legales específicas. No se recomienda extraer para todas las sociedades a la vez. * Filtro por Tipo de Documento: Use filtros enBKPF-BLART(Tipo de Documento) para aislar actividades específicas como devengos, ajustes o reversiones. Necesitará obtener los tipos de documento relevantes para su organización. * Requisitos Previos: El usuario que ejecuta la extracción requiere autorización para usar la transacciónSQVIy acceso de visualización a las tablas financieras relevantes (ej., objeto de autorización S_TABU_DIS). * Consideraciones de Rendimiento: Unir BKPF y BSEG puede consumir muchos recursos. Ejecute la extracción durante horas de menor actividad. Evite usar rangos de fechas muy amplios o dejar el filtro de Sociedad abierto, ya que esto puede causar problemas de memoria o tiempos de espera (timeouts).
a Consulta de ejemplo config
/*
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
- Alcance y Diseño del Programa: Defina la lógica específica para identificar cada una de las 12 actividades requeridas. Consulte con los propietarios de procesos de negocio y analistas funcionales de SAP para confirmar los tipos de documento, cuentas de mayor y nombres de programas asociados con las actividades de cierre de período en su entorno SAP ECC específico.
- Crear Programa ABAP: Utilizando la transacción
SE38(Editor ABAP), cree un nuevo programa ejecutable, por ejemplo,Z_PM_R2R_EXTRACTION. Proporcione un título descriptivo y establezca el tipo de programa en 'Programa Ejecutable'. - Definir Pantalla de Selección: En el programa, defina una pantalla de selección utilizando
PARAMETERSySELECT-OPTIONS. Esta pantalla permitirá a los usuarios especificar el alcance de la extracción, incluyendo Sociedad (BUKRS), Ejercicio (GJAHR) y Período Contable (MONAT). Esto es crucial para controlar el volumen de datos. - Declarar Estructuras de Datos: Defina una estructura de tabla interna que contendrá los datos finales del log de eventos. Esta estructura debe incluir todos los atributos requeridos y recomendados:
FinancialPeriod,ActivityName,EventTime,SourceSystem,LastDataUpdate,BUKRS,BELNR,USNAM,HKONT,BLART,DMBTRyJournalEntryType. - Implementar Lógica de Extracción de Datos: Escriba la lógica ABAP central para seleccionar datos para cada una de las 12 actividades. Para cada actividad, consulte las tablas SAP relevantes (ej., BKPF, BSEG, TBTCO, CDHDR) y complete una tabla interna intermedia. Utilice la lógica proporcionada en la sección de consulta ABAP adjunta como plantilla.
- Identificar Actividades Inferidas: Para actividades no registradas explícitamente en SAP estándar, como 'Conciliación de Cuentas Iniciada' o 'Conciliación Revisada', implemente la lógica de inferencia acordada. Esto puede implicar verificar la primera ejecución de un informe específico o consultar 'tablas Z' personalizadas si existen.
- Consolidar Datos de Eventos: Después de extraer datos para todas las actividades individuales, adjunte los registros de cada tabla intermedia en la tabla interna consolidada final. Asegúrese de que el campo
EventTimese complete correctamente desde el campo de origen relevante, como la fecha/hora de contabilización del documento o la fecha/hora de inicio del trabajo. - Estandarizar y Formatear Datos: Antes de la salida, estandarice los campos clave. Combine el ejercicio y el período en el identificador
FinancialPeriod. Establezca valores estáticos paraSourceSystemyLastDataUpdate. Asegúrese de que las marcas de tiempo estén en un formato consistente. - Desarrollar Funcionalidad de Salida: Agregue funcionalidad al programa para exportar la tabla interna final. El método más común es escribir los datos en un archivo CSV o delimitado por tabulaciones en el Servidor de Aplicaciones SAP (usando
OPEN DATASET) o permitir al usuario descargarlos directamente a su máquina local (usando el módulo de funciónGUI_DOWNLOAD). - Probar y Validar: Pruebe a fondo el programa con un conjunto de datos representativo que cubra múltiples sociedades y períodos. Utilice los pasos de validación para asegurar la precisión y completitud de los datos. Refine la lógica de selección basándose en la retroalimentación de expertos funcionales.
- Programar Ejecución (Opcional): Una vez validado, el programa se puede programar para ejecutarse como un trabajo en segundo plano a través de la transacción
SM36. Esto permite la extracción automatizada y periódica del log 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:
Sociedad (BUKRS): Obligatorio para limitar el alcance a las entidades legales relevantes.Ejercicio (GJAHR): Obligatorio para definir el año principal de la extracción.Período Contable (MONAT): Obligatorio para seleccionar los períodos financieros específicos.
- Configuración Específica de Actividades: Muchas selecciones dependen de su configuración específica de SAP. Estas deben ser configurables como parámetros o constantes dentro del programa:
Tipos de Documentos de Devengo/Provisión: Una lista de tipos de documentos (BLART) utilizada para identificar contabilizaciones de devengos y provisiones.Tipos de Documentos de Ajuste: Una lista de tipos de documentos utilizada para identificar asientos contables de ajuste.Nombres de Programas/Jobs en Segundo Plano: Los nombres técnicos de los programas utilizados para la Valoración en Moneda Extranjera (ej.,FAGL_FCV), Compensación de GR/IR (ej.,SAPF124), informes de Balances de Comprobación y la generación de Estados Financieros (ej.,RFBILA00).
- Rango de Fechas: Aunque la selección principal es por ejercicio y período, la lógica subyacente debe considerar la fecha y hora completas de los eventos. Para un análisis inicial, se recomienda extraer datos de los últimos 3 a 6 períodos financieros completados.
- Rendimiento: Para entornos SAP grandes, el rendimiento del programa es crítico. Asegure que las selecciones de base de datos utilicen campos índice, especialmente en tablas como
BKPFyBSEG. Evite seleccionar todos los campos (SELECT *) y procese los datos en paquetes manejables si es necesario. - Autorizaciones: El usuario o cuenta de servicio que ejecute este programa requiere autorización para acceder a todas las tablas consultadas (
BKPF,BSEG,TBTCO,TBTCP,CDHDR,CDPOS) y para ejecutar transacciones comoSE38(para desarrollo) ySM37/SM36(para planificación y monitoreo).
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
- Recopilar Requisitos Previos: Obtenga credenciales de acceso de solo lectura para la base de datos subyacente de SAP ECC. Identifique el esquema de base de datos correcto, que típicamente es
SAPSR3o un nombre similar proporcionado por su administrador de base de datos. - Identificar Configuración del Sistema: Consulte con su equipo de Finanzas de SAP para determinar las
Sociedades(BUKRS) específicas y los períodos financieros que necesita analizar. Crucialmente, identifique losTipos de Documento(BLART) específicos utilizados para las transacciones de 'Devengo o Provisión Contabilizado', 'Asiento de Ajuste Contabilizado' e 'Intercompañía' en su sistema. - Verificar Nombres de Programas y Trabajos: Confirme los nombres de los programas para trabajos batch clave como Valoración en Moneda Extranjera (ej.,
FAGL_FCV), Compensación de GR/IR (ej.,SAPF124), informes de Balance de Comprobación (ej.,RFBILA00) y generación de Estados Financieros (ej.,RFBILA00). Estos se pueden encontrar verificando los trabajos programados en la transacciónSM37. - Personalizar la Consulta SQL: Copie la consulta SQL proporcionada en un editor de texto o cliente SQL. Reemplace las variables de marcador de posición
{{start_date}},{{end_date}}y{{company_codes}}con los valores reales para su análisis. Actualice las listas de tipos de documentos y nombres de programas basándose en 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 utilizando las credenciales obtenidas.
- Ejecutar la Consulta: Ejecute la consulta SQL personalizada contra la base de datos. Dependiendo del rango de fechas y el tamaño de sus tablas financieras, esta consulta puede tardar un tiempo considerable en completarse.
- Revisar los Resultados Iniciales: Una vez finalizada la consulta, realice una revisión rápida de la salida. Verifique un número razonable de filas, asegúrese de que todas las columnas estén presentes y confirme que se incluyen diferentes valores de
ActivityNameen los resultados. - Exportar los Datos: Exporte el conjunto completo de resultados de su cliente SQL a un archivo CSV. Asegúrese de que el archivo se guarde con codificación UTF-8 para evitar problemas de caracteres.
- Preparar para la Carga: Antes de cargar a una herramienta de Process Mining, confirme que los encabezados de columna en el archivo CSV coincidan exactamente con los nombres de atributos requeridos (
FinancialPeriod,ActivityName,EventTime, etc.). Además, verifique que la columnaEventTimeesté en un formato de marca de tiempo consistente, comoYYYY-MM-DD HH:MI:SS.
Configuración
- Credenciales de Base de Datos: Se requiere un usuario de base de datos de solo lectura con acceso a las tablas financieras y de sistema centrales de SAP. Esto incluye tablas como
BKPF,BSEG,TBTCO,CDHDRyCDPOS. - Rango de Fechas: Recomendamos extraer datos de al menos 3 a 6 períodos financieros completos para capturar variaciones de proceso significativas. Tenga en cuenta que rangos de fechas más amplios aumentarán significativamente el tiempo de ejecución de la consulta.
- Sociedades (
BUKRS): Siempre filtre por una lista específica de sociedades. Ejecutar la consulta para todas las sociedades en un sistema grande no es factible y probablemente causará problemas de rendimiento. - Tipos de Documento (
BLART): La identificación de tipos de asientos contables, como devengos y ajustes, depende enteramente de la configuración específica de SAP de su organización. Debe proporcionar los códigos de tipo de documento correctos en las cláusulasWHEREde la consulta para una clasificación precisa de las actividades. - Nombres de Programas y Trabajos: La consulta utiliza nombres de programas comunes para los pasos de cierre automatizados. Su sistema podría usar programas "wrapper" personalizados o diferentes nombres de trabajo (jobs). Verifíquelos en la transacción
SM37y actualice la consulta en consecuencia. - 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 impactar el rendimiento del sistema. Aplicar filtros de fecha y sociedad restringidos es la forma más efectiva de gestionar 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'
;