Su Template de datos para el proceso de registro a informe: cierre del periodo y conciliación
Su Template de datos para el proceso de registro a informe: cierre del periodo y conciliación
- Atributos recomendados para recopilar
- Actividades clave que debe registrar para analizar el proceso
- Instrucciones paso a paso para extraer los datos
Atributos del proceso de registro a informe: cierre del periodo y conciliación
| Nombre | Descripción | ||
|---|---|---|---|
| Período financiero FinancialPeriod | Identificador único del ciclo de informes financieros, como '2023-12' para diciembre de 2023. Sirve como caso del proceso de cierre de fin de período. | ||
| Descripción El período financiero es el identificador de caso principal que agrupa todas las actividades relacionadas con el cierre contable de un intervalo específico, normalmente un mes calendario o un período fiscal. Cada período financiero representa una ejecución completa del proceso de cierre de fin de período. En el análisis de Process Mining, este atributo permite hacer un seguimiento de todo el ciclo de vida del cierre, desde su inicio hasta la presentación de los informes finales. Se utiliza para comparar los tiempos de ciclo entre períodos, identificar rutas habituales del proceso y analizar las diferencias entre los procedimientos de cierre mensuales, trimestrales y anuales. Al tratar cada período como un caso, los analistas pueden medir el rendimiento a lo largo del tiempo y detectar cuellos de botella sistémicos. Por qué es importante Este es el identificador de caso esencial que delimita el análisis y permite comparar el rendimiento del cierre del período a lo largo del tiempo e identificar tendencias o problemas recurrentes. Dónde obtenerlo Se obtiene al combinar los campos de ejercicio fiscal (GJAHR) y período de contabilización (MONAT) de las cabeceras de documentos financieros, normalmente de tablas como BKPF. Ejemplos 2023-122024-032024-T1 | |||
| Actividad ActivityName | Nombre de un paso o una tarea empresarial específica del proceso de cierre del período, como 'Asiento de ajuste contabilizado' o 'Período cerrado para contabilizaciones'. | ||
| Descripción Este atributo representa un evento o una tarea del proceso integral de cierre y conciliación del período. Las actividades son los componentes básicos del mapa del proceso y muestran la secuencia del trabajo realizado. A menudo se obtienen de una combinación de códigos de transacción, tipos de documento o cambios de estado en SAP S/4HANA. Analizar las actividades es fundamental en Process Mining. Permite visualizar el flujo del proceso, identificar desviaciones del procedimiento estándar, detectar cuellos de botella en actividades que tardan demasiado y comprender la frecuencia y el orden de las tareas. Esto es esencial para Dashboards como Análisis de variantes del cierre del período y Estado actual del cierre del período. Por qué es importante Define los pasos del proceso, establece la base del mapa del proceso y permite analizar el flujo, las desviaciones y los cuellos de botella. Dónde obtenerlo Se obtiene de diversas fuentes, como códigos de transacción (TCODE), tipos de documento (BLART) o campos de estado de tablas relacionadas con tareas de cierre financiero (por ejemplo, SAP Financial Closing Cockpit). Ejemplos Período habilitado para contabilizacionesInicio de la conciliación de cuentasEstados financieros generadosInicio de la conciliación intercompañía | |||
| Hora de inicio EventTime | Marca de tiempo que indica cuándo comenzó una actividad específica o cuándo se registró en el sistema. | ||
| Descripción La hora del evento registra la fecha y hora exactas en que se produjo una actividad. En las contabilizaciones financieras, suele corresponder a la hora de creación (CPUTM) o a la fecha de contabilización (BUDAT) de un documento. En los cambios de estado o las tareas, es la marca de tiempo en que se registró el cambio. Este atributo es fundamental para ordenar cronológicamente las actividades y constituye la base de todos los análisis temporales. Se utiliza para calcular los tiempos de ciclo entre actividades, la duración de tareas específicas y la duración total del proceso de principio a fin. También permite calcular KPI como el tiempo promedio del ciclo de cierre del período y el tiempo promedio de aprobación de conciliaciones. Por qué es importante Esta marca de tiempo obligatoria permite ordenar cronológicamente los eventos y sirve de base para calcular todas las duraciones y medidas de rendimiento. Dónde obtenerlo Se obtiene de campos de marca de tiempo como la fecha de creación (CPUDT) y la hora de creación (CPUTM) de tablas como BKPF, o de campos de fecha de cambio de distintas tablas de estado (por ejemplo, CDHDR y CDPOS). Ejemplos 2023-12-28T09:15:30Z2024-01-02T14:00:12Z2024-01-05T11:21:00Z | |||
| Código de empresa CompanyCode | Identificador único de una entidad jurídica o empresa dentro de la organización de SAP. | ||
| Descripción La sociedad representa una unidad contable independiente dentro de una empresa, para la que se puede crear un conjunto completo y autónomo de cuentas. Todas las actividades de cierre de período se realizan en el nivel de la sociedad. Es una dimensión organizativa fundamental para el análisis financiero. En Process Mining, permite comparar el proceso de cierre de período entre distintas entidades jurídicas. El Dashboard «Análisis de variantes del cierre de período» utiliza la sociedad para detectar incoherencias y fomentar la estandarización de los procedimientos de cierre. Por qué es importante Aporta un contexto organizativo clave que permite comparar procesos entre distintas entidades jurídicas para detectar variaciones y buenas prácticas. Dónde obtenerlo Se encuentra en prácticamente todas las tablas financieras de SAP, sobre todo en la tabla de cabecera BKPF (campo BUKRS). Ejemplos 10001710US01DE01 | |||
| Estado de conciliación ReconciliationStatus | Estado de una actividad de conciliación de cuentas, como «Abierto», «En curso» o «Aprobado». | ||
| Descripción Este atributo registra el estado del proceso de conciliación de una cuenta o tarea. Indica si la conciliación se ha iniciado, enviado para revisión, aprobado o rechazado. Los cambios de estado son eventos clave del proceso. Es fundamental para el Dashboard «Análisis de retrabajo en conciliaciones». Al analizar la secuencia de estados, se puede detectar cuándo a un estado «Aprobado» le siguen nuevos ajustes, lo que indica que hubo retrabajo. También permite calcular el KPI «Tasa de conciliaciones aprobadas a la primera», al mostrar qué conciliaciones se aprueban sin un rechazo o una reapertura previos. Por qué es importante Registra el avance y el resultado de las tareas de conciliación, lo que permite detectar retrabajos, medir las tasas de aprobación y analizar cuellos de botella. Dónde obtenerlo Esta información suele almacenarse en tablas relacionadas con la herramienta de conciliación utilizada, como SAP Financial Closing cockpit o SAP Account Substantiation and Automation de BlackLine. Ejemplos No iniciadoEn preparaciónAprobadoRechazado | |||
| Fecha objetivo de finalización TargetCompletionDate | Fecha prevista o límite para completar una actividad clave, como la elaboración de los estados financieros. | ||
| Descripción La fecha objetivo de finalización es el plazo interno o externo para alcanzar un hito específico del proceso de cierre de período. Es la fecha en la que se espera que termine una tarea. Este atributo es esencial para medir el cumplimiento del calendario y el desempeño frente a los plazos. Sirve de base para el Dashboard «Cumplimiento de los plazos de presentación de informes» y el KPI «Tasa de estados financieros presentados a tiempo», que comparan esta fecha objetivo con Por qué es importante Permite analizar el desempeño frente a los plazos y medir y mejorar la tasa de finalización puntual de las actividades de cierre críticas. Dónde obtenerlo Estos datos suelen encontrarse en un sistema de gestión de tareas o planificación, como SAP Financial Closing cockpit, donde las listas de tareas de cierre incluyen fechas de finalización previstas. Ejemplos 2024-01-05T23:59:59Z2024-04-04T23:59:59Z2024-07-05T23:59:59Z | |||
| Hora de fin EndTime | Marca de tiempo que indica cuándo finalizó una actividad. | ||
| Descripción La hora de fin marca la finalización de una tarea. En algunos casos, puede coincidir con la hora de inicio si se trata de un evento instantáneo registrado en el sistema. En las actividades con una duración medible, indica la marca de tiempo de finalización. Junto con la hora de inicio, este atributo es esencial para calcular el Por qué es importante Permite calcular la duración de las actividades (tiempo de procesamiento), algo fundamental para detectar cuellos de botella de rendimiento y analizar la eficiencia. Dónde obtenerlo Al igual que la hora de inicio, puede obtenerse de distintos campos de marca de tiempo. En algunas actividades, puede coincidir con la hora de inicio. En otras, puede corresponder a un campo independiente de fecha de finalización o de modificación en las tablas de la aplicación o en los registros de cambios (CDHDR y CDPOS). Ejemplos 2023-12-28T09:16:10Z2024-01-02T17:30:00Z2024-01-05T11:21:00Z | |||
| Número de cuenta de mayor GlAccountNumber | Identificador de una cuenta específica del libro mayor. | ||
| Descripción El número de cuenta del libro mayor (GL) identifica las cuentas individuales que se utilizan para registrar transacciones financieras, como efectivo, cuentas por pagar o ingresos. Muchas actividades de cierre de período, como las conciliaciones y los asientos de ajuste, están directamente relacionadas con cuentas específicas del libro mayor. Este atributo es esencial para analizar en detalle los procesos financieros. El Dashboard «Análisis de asientos de ajuste» lo utiliza para mostrar el volumen de ajustes por cuenta y ayudar a detectar áreas problemáticas. El KPI «Tiempo promedio de conciliación de cuentas del libro mayor» también se basa en este atributo para identificar retrasos relacionados con cuentas específicas. Por qué es importante Relaciona las actividades del proceso con cuentas financieras específicas y permite analizar en detalle las conciliaciones y los asientos contables para encontrar las causas raíz de los problemas. Dónde obtenerlo Se encuentra en las tablas de partidas de documentos financieros, principalmente en BSEG (campo HKONT) o en la tabla de diario universal ACDOCA de S/4HANA. Ejemplos 113100004000000073000000 | |||
| Número de documento DocumentNumber | Identificador único de un documento financiero, como un asiento contable. | ||
| Descripción SAP asigna un número de documento único a cada contabilización financiera. Este número es la referencia principal para rastrear y auditar las transacciones individuales que componen las actividades del proceso de cierre. Aunque no es un ID del caso, ofrece un vínculo esencial con el sistema de origen. Los analistas pueden utilizarlo para pasar de una vista de Process Mining a los detalles de una transacción específica en SAP S/4HANA y analizar las causas raíz. Resulta especialmente útil al investigar asientos de ajuste o contabilizaciones de conciliación concretos. Por qué es importante Ofrece una referencia directa a la transacción correspondiente en SAP, lo que facilita el análisis detallado y la auditabilidad desde el modelo de proceso. Dónde obtenerlo Se encuentra en la tabla de cabecera de documentos financieros BKPF (campo BELNR) y en tablas de partidas como BSEG o ACDOCA. Ejemplos 100000045190000001300000023 | |||
| Usuario responsable ResponsibleUser | ID de usuario de la persona que realizó la actividad o es responsable de la tarea. | ||
| Descripción Este atributo identifica a la persona empleada que realizó una tarea, como contabilizar un asiento contable o aprobar una conciliación. Normalmente se registra como un ID de usuario en los registros del sistema y las cabeceras de los documentos. Analizar el proceso por usuario es fundamental para comprender la distribución de la carga de trabajo, el rendimiento individual y las necesidades de formación. El Dashboard Eficiencia de la asignación de recursos utiliza directamente este atributo para visualizar los tiempos de procesamiento de las actividades por usuario. También puede ayudar a identificar tareas que podrían automatizarse al destacar las que muchos usuarios realizan de forma repetitiva. Por qué es importante Relaciona las actividades del proceso con las personas que las realizaron y permite analizar la carga de trabajo, optimizar los recursos y gestionar el rendimiento. Dónde obtenerlo Suele encontrarse en tablas de cabecera de documentos, como BKPF (campo USNAM, nombre de usuario), o en tablas de documentos de modificación, como CDHDR (campo USERNAME). Ejemplos ABROWNCSMITHDJOHNSON | |||
| Código de transacción TransactionCode | Código de transacción de SAP (T-code) utilizado para ejecutar la actividad. | ||
| Descripción Un código de transacción es un acceso directo a una función o un programa específico de SAP. Por ejemplo, FB01 se utiliza para contabilizar un documento y FAGLB03 para consultar los saldos de las cuentas del libro mayor. El T-code suele indicar con claridad qué actividad se realizó. Este atributo ayuda a definir las actividades del modelo de proceso. Es una forma fiable de distinguir las actividades automatizadas de las manuales y de entender exactamente cómo se realizó una tarea en el sistema. Analizar los T-codes puede revelar métodos no estándar o ineficientes utilizados por el personal. Por qué es importante Ofrece una perspectiva técnica del sistema sobre cómo se realizó una actividad. Resulta útil para identificar pasos manuales o automatizados y procedimientos no estándar. Dónde obtenerlo Se encuentra en la tabla de cabecera de documentos financieros BKPF (campo TCODE) o en los registros de documentos de modificación. Ejemplos FB01FAGL_FCVF.13 | |||
| Es automatizado IsAutomated | Indicador booleano que señala si la actividad la realizó un usuario del sistema o un proceso automatizado. | ||
| Descripción Este indicador distingue las tareas realizadas manualmente por una persona de las ejecutadas automáticamente por el sistema, como un proceso por lotes programado para la valoración de divisas o las ejecuciones de compensación automática. Por lo general, se calcula a partir del ID de Este atributo es clave para comprender el nivel de automatización del proceso de cierre. Ayuda a detectar oportunidades de automatización al destacar las tareas manuales de gran volumen. También se utiliza en el análisis de causas raíz para determinar si los cuellos de botella se producen en pasos manuales o automatizados. Por qué es importante Distingue las actividades realizadas por personas de las ejecutadas por el sistema. Esto es fundamental para detectar oportunidades de automatización y analizar la eficiencia de ambas. Dónde obtenerlo Es un atributo derivado que suele calcularse mediante una regla aplicada al campo «ResponsibleUser» (por ejemplo, comprobando si el ID corresponde a un usuario del sistema o de procesos por lotes, como «BATCHUSER») o al código de transacción. Ejemplos truefalse | |||
| Es retrabajo de conciliación IsReconciliationRework | Indicador booleano que es verdadero si a una actividad de conciliación le sigue un rechazo o la realización de nuevos ajustes. | ||
| Descripción Este atributo calculado detecta casos de retrabajo en el subproceso de conciliación. La lógica marca las actividades o los casos en los que se rechaza una conciliación, se vuelve a abrir después de enviarla o se contabilizan asientos de ajuste para una cuenta del libro mayor después de que la conciliación se haya dado por finalizada. Este indicador está diseñado específicamente para alimentar el Dashboard «Análisis de retrabajo en conciliaciones» y el KPI «Tasa de retrabajo en conciliaciones». Convierte secuencias de proceso complejas en un atributo sencillo y medible que cuantifica el retrabajo y ayuda a los equipos a mejorar la calidad desde el primer intento. Por qué es importante Cuantifica directamente el retrabajo, una de las principales formas de ineficiencia del proceso, y permite orientar el análisis y las mejoras a la calidad de las conciliaciones. Dónde obtenerlo Se calcula a partir de la secuencia de actividades. Por ejemplo, el indicador se establece como verdadero si a la secuencia «Conciliación aprobada» le sigue «Asiento de ajuste contabilizado» para la misma cuenta del libro mayor y el mismo período. Ejemplos truefalse | |||
| Fecha real de finalización ActualCompletionDate | Fecha real en que se completó una actividad clave o todo el cierre de período. | ||
| Descripción Este atributo registra la fecha real de finalización de un hito importante. Corresponde a la marca de tiempo de la aprobación final de los estados financieros o del cierre del período de contabilización. Es el equivalente de Por qué es importante Registra cuándo se alcanzaron realmente los hitos, un dato necesario para medir el desempeño frente a los plazos previstos y analizar los retrasos. Dónde obtenerlo Se obtiene de Ejemplos 2024-01-06T10:00:00Z2024-04-05T17:00:00Z2024-07-04T11:00:00Z | |||
| Importe del documento DocumentAmount | Valor total de la contabilización financiera en la moneda del documento. | ||
| Descripción Este atributo representa el valor monetario asociado a un documento financiero. En los ajustes de cierre de período, puede corresponder al importe del devengo o de la corrección contabilizada. Analizar el importe resulta útil para evaluar la materialidad. Permite priorizar la investigación de los asientos de ajuste de mayor valor, que pueden implicar un riesgo financiero más alto. También se puede utilizar para filtrar el mapa de procesos y centrarse en las transacciones que superan un umbral determinado, lo que facilita la visualización de las actividades más significativas. Por qué es importante Añade una dimensión financiera al análisis y permite priorizar los problemas según su impacto monetario y materialidad. Dónde obtenerlo Por lo general, este valor debe agregarse a partir de tablas de partidas como BSEG o ACDOCA (campo WRBTR, importe en la moneda del documento). Ejemplos 15000.00250.75-500.00 | |||
| Moneda del documento DocumentCurrency | Código de moneda de los importes del documento financiero. | ||
| Descripción Este atributo indica la moneda en la que se registró la transacción, como USD, EUR o JPY. Aporta un contexto esencial para el atributo En las organizaciones multinacionales, puede ser importante analizar los datos por moneda. Así se garantiza que los valores monetarios se interpreten correctamente y se facilita su conversión a una moneda única de presentación para el análisis agregado. Sin este contexto, no es posible comparar ni sumar de forma significativa los valores de Por qué es importante Aporta el contexto necesario para interpretar correctamente los importes, sobre todo cuando se trabaja con varias monedas. Dónde obtenerlo Se encuentra en la tabla de cabecera de documentos financieros BKPF (campo WAERS). Ejemplos USDEURJPY | |||
| Se completó a tiempo IsOnTime | Indicador booleano que es verdadero si un hito se completó en la fecha objetivo o antes. | ||
| Descripción Este atributo ofrece un resultado binario sencillo sobre el cumplimiento del calendario. Se calcula comparando Es la base del cálculo del KPI «Tasa de estados financieros presentados a tiempo». Simplifica el seguimiento del desempeño al convertir la comparación de fechas en un estado claro: «a tiempo» o «con retraso». Así, resulta fácil visualizarlo en Dashboards e informes y medir la eficacia de las iniciativas para acelerar el cierre. Por qué es importante Simplifica el análisis del cumplimiento de los plazos con un resultado claro, positivo o negativo, y facilita el seguimiento y la presentación de informes sobre las actividades completadas a tiempo. Dónde obtenerlo Campo calculado: Ejemplos truefalse | |||
| Sistema de origen SourceSystemId | Identificador de la instancia o el cliente de SAP S/4HANA del que se extrajeron los datos. | ||
| Descripción Este atributo especifica el sistema de origen de los datos. En entornos con varias instancias de SAP (por ejemplo, para distintas regiones o unidades de negocio), este campo es esencial para distinguir las fuentes de datos. Se utiliza principalmente para la gobernanza de datos, las auditorías y la protección de la integridad de los datos. En el análisis, puede servir como filtro para comparar procesos de distintos sistemas de origen cuando se combinan en un único modelo de Process Mining. Por qué es importante Aporta información esencial sobre el linaje y el contexto de los datos, y permite conocer claramente su origen, sobre todo en entornos con varios sistemas. Dónde obtenerlo Normalmente son metadatos que se añaden durante la extracción de datos y que suelen obtenerse del ID del sistema (SY-SYSID) o del cliente (SY-MANDT) en SAP. Ejemplos S4H_PROD_100S4H_QAS_200ECC_LEGACY_001 | |||
| Tiempo de ciclo del cierre de período PeriodCloseCycleTime | Tiempo total transcurrido durante un período financiero, desde la primera actividad hasta la última. | ||
| Descripción Esta métrica representa la duración integral del proceso de cierre de período para un caso (período financiero). Se calcula restando la marca de tiempo de la primera actividad a la de la última dentro de ese período. Es un indicador clave de desempeño y alimenta directamente el Dashboard «Resumen del tiempo de ciclo del cierre de período» y el KPI «Tiempo promedio de ciclo del cierre de período». Ofrece una medida general de la eficiencia y la rapidez del proceso de cierre, y permite comparar resultados a lo largo del tiempo y entre distintas sociedades. Por qué es importante Es el KPI principal para medir la duración total del proceso y hacer un seguimiento general de las mejoras de eficiencia a lo largo del tiempo. Dónde obtenerlo Se calcula en el nivel del caso: Ejemplos P5D10H30MP7D2HP6D | |||
| Tipo de asiento contable JournalEntryType | Tipo de documento financiero contabilizado, que distingue entre asientos estándar, devengos y ajustes. | ||
| Descripción El tipo de asiento contable, denominado tipo de documento en la terminología de SAP, es una clave que clasifica los documentos contables. Determina a qué tipos de cuenta se puede contabilizar un documento y permite distinguir distintas transacciones comerciales, como una factura de proveedor (KR), una contabilización en el libro mayor (SA) o un pago de cliente (DZ). En el cierre de período, este atributo es fundamental para aislar tipos de actividad específicos. Por ejemplo, permite centrarse en los asientos de ajuste para alimentar el Dashboard «Análisis de asientos de ajuste» y el KPI «Cantidad de asientos de ajuste». También ayuda a calcular la «Proporción de contabilizaciones manuales». Por qué es importante Clasifica las transacciones financieras y permite centrar el análisis en tipos específicos de contabilización, como los ajustes manuales, que son fundamentales para cerrar el período sin contratiempos. Dónde obtenerlo Es un campo estándar de la tabla de cabecera de documentos financieros BKPF (campo BLART). Ejemplos SAKRAB | |||
| Última actualización de datos LastDataUpdate | Marca de tiempo que indica cuándo se actualizaron o extrajeron por última vez los datos del sistema de origen. | ||
| Descripción Este atributo registra la fecha y hora de la extracción de datos más reciente. Indica qué tan actualizados están los datos que se analizan en la herramienta de Process Mining. Su función principal es facilitar la gobernanza de datos y mantener informados a los usuarios. Quienes consultan los Dashboards pueden ver qué tan actual es el análisis, algo especialmente importante en Dashboards de supervisión casi en tiempo real, como 'Estado actual del cierre del período'. Así pueden saber si están consultando datos de hoy, de ayer o de la semana pasada. Por qué es importante Informa a los usuarios sobre la actualidad de los datos para que sepan qué tan recientes son las conclusiones del análisis del proceso. Dónde obtenerlo Son metadatos que la herramienta de extracción de datos o ETL genera y añade al conjunto de datos al ejecutarse. Ejemplos 2024-06-10T08:00:00Z2024-06-09T08:00:00Z | |||
Actividades del proceso de registro a informe: cierre del periodo y conciliación
| Actividad | Descripción | ||
|---|---|---|---|
| Conciliación de cuentas aprobada | Esta actividad indica la aprobación final de una conciliación de una cuenta del libro mayor y confirma que el saldo está justificado y que se han resuelto todos los problemas. Se infiere a partir de un cambio de estado a 'Aprobado' en una herramienta de conciliación. | ||
| Por qué es importante Este hito marca la finalización de una actividad de control crítica. Hacer un seguimiento de los tiempos de aprobación ayuda a detectar cuellos de botella en el proceso de revisión y es esencial para medir el retrabajo y el rendimiento a la primera. Dónde obtenerlo Se obtiene de un sistema de gestión de conciliaciones, como SAP Account Substantiation and Automation, mediante el seguimiento de la marca de tiempo del estado de aprobación final. Capturar Identifique la marca de tiempo en que el campo de estado de una conciliación se actualiza al estado final 'Aprobado'. Tipo de evento inferred | |||
| Contabilización de asiento de ajuste | Representa un asiento contable correctivo realizado después de las conciliaciones iniciales, normalmente para corregir discrepancias detectadas durante la revisión. Es una transacción explícita contabilizada en el libro mayor. | ||
| Por qué es importante Una frecuencia elevada de asientos de ajuste indica una baja calidad inicial en los procesos previos o en las conciliaciones. Analizar estos asientos es clave para identificar las causas raíz de los errores y reducir el retrabajo. Dónde obtenerlo Se registra como documentos explícitos en las tablas ACDOCA y BKPF. Se pueden identificar por tipos de documento específicos, fechas de contabilización tardías en el ciclo de cierre o descripciones de texto concretas. Capturar Filtre los asientos contables de BKPF según una combinación del tipo de documento y la fecha de contabilización en relación con las actividades de conciliación. Tipo de evento explicit | |||
| Estados financieros generados | Esta actividad marca la creación de los estados financieros oficiales, como el balance general y el estado de resultados. Representa la culminación de los procesos contables y de consolidación de fin de período. | ||
| Por qué es importante Este es un hito importante del ciclo de Record to Report. El momento en que se alcanza es clave para cumplir los plazos de presentación de informes y proporcionar información oportuna a las partes interesadas. Dónde obtenerlo Lo ideal es registrar este evento mediante una herramienta de gestión del cierre financiero, como SAP Financial Closing Cockpit, donde figura como una tarea explícita. De lo contrario, debe inferirse a partir de los registros de generación de informes o de las marcas de tiempo de creación de archivos. Capturar Haga un seguimiento del estado de finalización de la tarea 'Generar estados financieros' en una herramienta de cierre o analice los registros de ejecución de informes. Tipo de evento inferred | |||
| Inicio de la conciliación de cuentas | Marca el inicio del proceso manual o semiautomatizado para justificar los saldos de las cuentas del libro mayor. Se infiere cuando el estado de una conciliación cambia de 'Nueva' a 'En curso' o cuando se registra la primera acción de preparación. | ||
| Por qué es importante Este es un hito clave para comprender la duración y el esfuerzo que requiere justificar los saldos del balance. Ayuda a identificar qué cuentas o departamentos comienzan tarde sus conciliaciones. Dónde obtenerlo Este evento suele obtenerse de una herramienta específica de conciliación, como SAP Account Substantiation and Automation de BlackLine, o de otros sistemas de terceros. Se infiere a partir de las marcas de tiempo de los cambios de estado. Capturar Registre la marca de tiempo del primer cambio de estado desde 'No iniciada' para la conciliación de una cuenta del libro mayor. Tipo de evento inferred | |||
| Inicio de la conciliación intercompañía | Esta actividad marca el inicio del proceso para cotejar y conciliar transacciones entre distintos códigos de empresa de un mismo grupo corporativo. Suele iniciarse al ejecutar un trabajo de conciliación o crear un nuevo caso de conciliación en la herramienta ICMR de SAP. | ||
| Por qué es importante La conciliación intercompañía suele ser compleja y llevar mucho tiempo. Analizar su duración y flujo es fundamental para agilizar el cierre del grupo y garantizar la precisión de los estados financieros consolidados. Dónde obtenerlo Se infiere a partir de los cambios de estado en el módulo Intercompany Matching and Reconciliation (ICMR) de SAP o de la creación de los primeros documentos de conciliación del período. Capturar Registre la fecha de creación o la marca de tiempo del cambio de estado de las unidades de conciliación del período correspondiente en la herramienta ICMR. Tipo de evento inferred | |||
| Período cerrado para contabilizaciones | Esta es la última actividad del ciclo: el período de contabilización se cierra formalmente para impedir nuevas transacciones. Esta acción garantiza la integridad de los datos de los informes financieros definitivos. | ||
| Por qué es importante Esta actividad es el evento de fin definitivo del proceso. Es esencial para calcular el tiempo total del ciclo de cierre del período y analizar las tendencias de finalización del proceso. Dónde obtenerlo Al igual que el evento de apertura del período, este se obtiene de los documentos de modificación (tablas CDHDR y CDPOS), que registran las actualizaciones de la tabla de control de períodos de contabilización T001B mediante la transacción OB52. Capturar Filtre los registros de cambios de la tabla T001B para identificar el cierre del ejercicio fiscal y el período correspondientes. Tipo de evento explicit | |||
| Período habilitado para contabilizaciones | Este evento marca el inicio del período financiero, cuando se habilitan los períodos de contabilización para registrar transacciones. Se trata de un cambio de configuración explícito y registrado que realiza un administrador de finanzas en SAP para permitir los asientos contables del nuevo período. | ||
| Por qué es importante Esta actividad es el evento de inicio principal del proceso de cierre de fin de período. Permite medir con precisión el tiempo total del ciclo y establece un punto de partida claro para analizar el proceso. Dónde obtenerlo Este evento se obtiene de los documentos de modificación (tablas CDHDR y CDPOS), que registran los cambios en la tabla de control de períodos de contabilización T001B, normalmente realizados mediante la transacción OB52. Capturar Filtre los registros de cambios de la tabla T001B correspondientes al ejercicio fiscal y al período específicos. Tipo de evento explicit | |||
| Balance de comprobación preparado | Indica que se generó y guardó un balance de comprobación para su revisión. Es un punto de control clave antes de elaborar los estados financieros finales. Para registrar este evento, a menudo es necesario guardar el resultado del informe. | ||
| Por qué es importante La preparación del balance de comprobación es un control de calidad fundamental. Analizar cuándo se realiza ayuda a conocer el grado de preparación para los informes finales y puede revelar demoras en las actividades previas. Dónde obtenerlo A menudo no es un evento explícito. Puede inferirse a partir de la ejecución de una transacción de informes específica, si las variantes se guardan con el usuario y la fecha, o si el proceso se gestiona en una herramienta como SAP Financial Closing Cockpit. Capturar Es necesario analizar el sistema para determinar si existe un mecanismo de registro fiable, como los registros de ejecución de informes o las listas de tareas del cockpit de cierre. Tipo de evento inferred | |||
| Contabilización de periodificaciones y provisiones | Este evento registra la creación de asientos contables manuales para periodificaciones, diferimientos y otras provisiones necesarias para elaborar informes financieros precisos según el principio de devengo. Son transacciones explícitas contabilizadas en el libro mayor. | ||
| Por qué es importante Hacer un seguimiento de estas contabilizaciones permite analizar el volumen y el momento de los ajustes manuales. Un volumen elevado puede indicar oportunidades para automatizar o mejorar los procesos previos. Dónde obtenerlo Se registra como asientos contables explícitos en la tabla de diario universal ACDOCA y en la tabla de cabecera BKPF. Estos asientos se pueden identificar por los tipos de documento específicos configurados para las periodificaciones. Capturar Filtre los documentos de la tabla BKPF por tipo de documento (por ejemplo, 'SA' o tipos personalizados) y fecha de contabilización dentro del período. Tipo de evento explicit | |||
| Ejecución de compensación automática | Representa la ejecución de programas de compensación automática en SAP, como la ejecución de compensación GR/IR (entrada de mercancías/recepción de facturas). Estos trabajos cotejan y compensan partidas abiertas en determinadas cuentas del libro mayor, lo que reduce el trabajo manual de conciliación. | ||
| Por qué es importante Esta actividad muestra el nivel de automatización del proceso de conciliación. Los errores o las excepciones en estas ejecuciones pueden generar mucho trabajo manual y demoras. Dónde obtenerlo Se obtiene de los registros de ejecución de determinados trabajos por lotes, como F.13 o F.13E para la compensación automática. Las tablas de registros de trabajos TBTCO y TBTCP contienen los detalles de ejecución. Capturar Supervise las marcas de tiempo de inicio y fin de los trabajos asociados a transacciones como F.13 en los registros de trabajos de SAP. Tipo de evento explicit | |||
| Ejecución de valoración de moneda extranjera | Este es un procedimiento estándar de fin de mes para revaluar partidas abiertas y saldos en moneda extranjera según los tipos de cambio de fin de período. Al ejecutar el programa, se contabilizan las diferencias de valoración resultantes. | ||
| Por qué es importante Garantiza el cumplimiento de los estándares contables y ofrece una imagen financiera precisa. Hacer un seguimiento de esta actividad ayuda a comprobar que todas las valoraciones de moneda se realicen a tiempo. Dónde obtenerlo Se obtiene de los registros de ejecución del programa de valoración de moneda extranjera (por ejemplo, FAGL_FCV). Los detalles de los trabajos se almacenan en las tablas TBTCO y TBTCP. Capturar Supervise los registros de ejecución de los trabajos relacionados con la transacción FAGL_FCV o con el programa subyacente. Tipo de evento explicit | |||
| Estados financieros aprobados | Representa la aprobación final de los estados financieros por parte de la dirección autorizada antes de su publicación. A menudo es un proceso fuera del sistema, pero se puede registrar si existe un paso formal de aprobación digital. | ||
| Por qué es importante Este es el control final de calidad y cumplimiento. Hacer un seguimiento de cuándo se realiza es esencial para comprender el cumplimiento de los plazos de presentación de informes y la eficiencia general del ciclo de revisión de la dirección. Dónde obtenerlo Este evento se registra si existe un flujo de trabajo o un campo de estado para la aprobación de los estados financieros, por ejemplo, en SAP Financial Closing Cockpit o en un sistema de gestión documental. Capturar Identifique un campo de datos y una marca de tiempo que indiquen la aprobación final del paquete de estados financieros. Tipo de evento inferred | |||
| Tareas de consolidación ejecutadas | Representa la ejecución de actividades de consolidación en SAP Group Reporting, como la conversión de moneda, la reclasificación y la eliminación de beneficios intercompañía. Estas tareas suelen gestionarse y registrarse en el monitor de consolidación. | ||
| Por qué es importante Para las organizaciones con varias entidades jurídicas, la consolidación es una actividad crítica del proceso. Supervisar estas tareas ayuda a agilizar el cierre del grupo y a garantizar que los informes consolidados se elaboren a tiempo. Dónde obtenerlo Se obtiene de los registros de estado del Data Monitor o del Consolidation Monitor de SAP S/4HANA para Group Reporting. Cada tarea suele incluir un usuario, una marca de tiempo y un estado. Capturar Extraiga los registros de ejecución de tareas de las tablas subyacentes del monitor de consolidación de Group Reporting. Tipo de evento explicit | |||
| Transferencia de datos de submayores completada | Indica que finalizaron los trabajos por lotes que transfieren datos resumidos de libros auxiliares, como cuentas por cobrar, cuentas por pagar y contabilidad de activos, al libro mayor. Así, todas las transacciones operativas subyacentes quedan reflejadas en el libro mayor antes de que comiencen los procedimientos de cierre. | ||
| Por qué es importante Las demoras en el cierre de los libros auxiliares pueden convertirse en un cuello de botella importante para todo el proceso. Hacer un seguimiento de esta actividad ayuda a detectar ineficiencias en la recopilación e integración de datos de los sistemas de origen. Dónde obtenerlo Se infiere a partir del estado de finalización correcta de determinados trabajos por lotes responsables de la liquidación de libros y la transferencia de datos. Los registros de los trabajos se encuentran en las tablas TBTCO y TBTCP. Capturar Identifique y supervise las marcas de tiempo de finalización de los trabajos por lotes pertinentes en la vista de trabajos de SAP (transacción SM37). Tipo de evento explicit | |||
Guías de extracción
Pasos
- Identifique y verifique las vistas CDS: Inicie sesión en su sistema SAP S/4HANA con SAP HANA Studio o Eclipse con ADT. Utilice ABAP Development Tools para buscar y verificar que existan las vistas CDS estándar mencionadas en la consulta, como I_JournalEntryItem, I_BatchJob e I_ConsolidationTaskLog. Para procesos como la conciliación de cuentas, quizá deba crear vistas CDS personalizadas, por ejemplo Z_I_ACCOUNTRECONCILIATION, para registrar los cambios de estado.
- Exponga las vistas CDS mediante OData: En el backend de SAP, utilice la transacción
SEGW(Gateway Service Builder) para crear un proyecto. Haga clic con el botón derecho en la carpeta Data Model y seleccione 'Reference -> Data Source'. Añada las vistas CDS necesarias. Genere los objetos de ejecución para crear un servicio OData que exponga estas vistas para su consumo externo. - Active el servicio OData: Vaya a la transacción
/IWFND/MAINT_SERVICEen el hub de SAP Gateway. Haga clic en 'Add Service', busque el servicio que generó en el paso anterior y añádalo. Así, el servicio quedará activo y disponible para consultas. - Establezca la conexión de datos: Desde la herramienta de extracción de datos que haya elegido, como Python, Power BI o una plataforma ETL dedicada, conéctese al servicio OData recién creado. Necesitará la URL del servicio y credenciales con autorización para acceder a las vistas CDS.
- Adapte y ejecute la consulta: Copie la consulta SQL proporcionada. Modifique los valores de marcador de posición para los intervalos de fechas, los códigos de empresa y los nombres de las vistas CDS personalizadas o de los trabajos por lotes para que coincidan con su entorno SAP. Ejecute la consulta en el endpoint del servicio OData. Tenga en cuenta que OData utiliza una sintaxis distinta (
$filter,$select), por lo que quizá deba traducir la lógica de la consulta UNION ALL en varias llamadas a la API, una por actividad. - Consolide los datos de actividad: Como OData normalmente no admite consultas UNION ALL complejas en una sola llamada, deberá enviar una solicitud independiente para cada bloque de actividad de la consulta. Consolide los resultados de todas las solicitudes en un único conjunto de datos o tabla en la herramienta cliente.
- Transforme y depure los datos: Revise los datos consolidados. Asegúrese de que las columnas
EventTimeyEndTimeutilicen un formato de marca de tiempo uniforme. Compruebe queFinancialPeriodtenga el formato correcto, 'YYYY-MM'. Gestione los valores NULL de columnas comoResponsibleUseroDocumentNumbersegún sea necesario. - Exporte los datos como Registro de eventos: Exporte el conjunto de datos final consolidado a un archivo CSV. Asegúrese de que los encabezados de columna coincidan con los atributos requeridos:
FinancialPeriod,ActivityName,EventTime,EndTime,ResponsibleUser, etc. El archivo estará listo para cargarse en ProcessMind.
Configuración
- Vistas CDS: La consulta combina vistas CDS estándar y personalizadas. Las vistas estándar, como
I_JournalEntryItem(para asientos contables) eI_BatchJob(para ejecuciones automatizadas), son esenciales. A menudo se necesitan vistas personalizadas, comoZ_I_ACCOUNTRECONCILIATION, para registrar el estado de procesos internos que no cubren las vistas estándar. - Intervalo de fechas: Defina un intervalo de fechas específico para controlar el volumen de datos extraídos. La consulta utiliza los marcadores de posición
[Start Date]y[End Date], que normalmente deberían abarcar entre 3 y 6 periodos fiscales completos para que el análisis sea útil. - Filtros clave: Los filtros son fundamentales para el rendimiento y la pertinencia. Filtre siempre por
CompanyCode. Otros filtros importantes sonLedger(por ejemplo, '0L' para el libro mayor principal),FiscalYeary valores específicos deDocumentTypepara distinguir entre contabilizaciones habituales, periodificaciones y ajustes. - Requisitos previos: La persona que ejecute la extracción necesita autorizaciones en SAP para acceder a las vistas CDS especificadas y ejecutar servicios OData (por ejemplo, los objetos de autorización
S_SERVICE,S_RFC). Los servicios de SAP Gateway deben estar configurados y activados. - Rendimiento: Consultar
I_JournalEntryItempuede exigir muchos recursos. Aplique siempre filtros selectivos, especialmente para fechas, códigos de empresa y libros mayores. Considere ejecutar la extracción en horas de menor actividad o utilizar una estrategia de carga incremental para la supervisión continua.
Consulta de ejemplo sql
SELECT
CONCAT(CAST(PostingDate AS DATE FORMAT 'YYYY'), '-', CAST(PostingDate AS DATE FORMAT 'MM')) AS FinancialPeriod,
'Period Opened For Posting' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
CAST(CreationDateTime AS TIMESTAMP) AS EndTime,
CreatedByUser AS ResponsibleUser,
CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_FinPostingPeriodControl -- This is a proxy; this activity is a configuration change often found in change logs (CDHDR/CDPOS for table T001B)
WHERE PostingPeriodVariant = '[Your Variant]' AND FiscalYear = '[Your Fiscal Year]' AND FromPostingPeriod = 1 AND AuthorizationGroup IS NOT NULL -- Logic to detect the opening event
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod, -- Infer period from Job Name if patterned, otherwise use job start date
'Subledger Data Transfer Completed' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE '[Subledger Job Prefix]%' AND JobStatus = 'F' -- 'F' for Finished
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(CAST(CreationDate AS DATE FORMAT 'YYYY'), '-', CAST(CreationDate AS DATE FORMAT 'MM')) AS FinancialPeriod,
'Intercompany Reconciliation Started' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
NULL AS EndTime,
CreatedByUser AS ResponsibleUser,
LeadingCompanyCode AS CompanyCode,
NULL AS GlAccountNumber,
ReconciliationCase AS DocumentNumber,
ReconciliationCaseStatus AS ReconciliationStatus,
NULL AS TargetCompletionDate,
NULL AS ProcessingTime
FROM I_ICRcnCase -- Part of SAP S/4HANA for group reporting
WHERE CreationDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Accruals And Provisions Posted' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
CAST(CreationDateTime AS TIMESTAMP) AS EndTime,
CreatedByUser AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
AccountingDocument AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_JournalEntryItem
WHERE DocumentType IN ('[Accrual Doc Type 1]', '[Accrual Doc Type 2]') -- e.g., 'SA', 'AC'
AND PostingDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Automated Clearing Run Executed' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE 'SAPF124%' AND JobStatus = 'F'
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Foreign Currency Valuation Run' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE 'FAGL_FCV%' AND JobStatus = 'F'
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
-- This activity often requires a custom view on a custom table or an add-on like SAP Account Substantiation and Automation.
-- The following is a placeholder for such a custom view.
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Account Reconciliation Started' AS ActivityName,
CAST(ChangedAt AS TIMESTAMP) AS EventTime,
NULL AS EndTime,
ChangedBy AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
ReconciliationID AS DocumentNumber,
'In Progress' AS ReconciliationStatus,
PlannedCompletionDate AS TargetCompletionDate,
NULL AS ProcessingTime
FROM Z_I_ACCOUNTRECONCILIATION -- Placeholder for your custom reconciliation status view
WHERE Status = 'IN_PROGRESS' AND OldStatus = 'NEW'
AND ChangeDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Adjusting Journal Entry Posted' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
CAST(CreationDateTime AS TIMESTAMP) AS EndTime,
CreatedByUser AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
AccountingDocument AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_JournalEntryItem
WHERE DocumentType IN ('[Adjustment Doc Type 1]', '[Adjustment Doc Type 2]') -- e.g., 'AJ'
AND PostingDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
-- This activity often requires a custom view on a custom table or an add-on product.
-- The following is a placeholder for such a custom view.
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Account Reconciliation Approved' AS ActivityName,
CAST(ChangedAt AS TIMESTAMP) AS EventTime,
CAST(ChangedAt AS TIMESTAMP) AS EndTime,
ApprovedBy AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
ReconciliationID AS DocumentNumber,
'Approved' AS ReconciliationStatus,
PlannedCompletionDate AS TargetCompletionDate,
NULL AS ProcessingTime
FROM Z_I_ACCOUNTRECONCILIATION -- Placeholder for your custom reconciliation status view
WHERE Status = 'APPROVED'
AND ChangeDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Consolidation Tasks Executed' AS ActivityName,
CAST(TaskExecutionUTCTimestamp AS TIMESTAMP) AS EventTime,
CAST(TaskCompletionUTCTimestamp AS TIMESTAMP) AS EndTime,
ExecutedByUser AS ResponsibleUser,
ConsolidationUnitCompanyCode AS CompanyCode, -- Assuming mapping exists
NULL AS GlAccountNumber,
DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(TaskExecutionUTCTimestamp AS TIMESTAMP), CAST(TaskCompletionUTCTimestamp AS TIMESTAMP)) AS ProcessingTime
FROM I_ConsolidationTaskLog
WHERE ConsolidationTaskStatus = 'S' -- Successful
AND TaskExecutionUTCDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Trial Balance Prepared' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE '[Trial Balance Job Prefix]%' AND JobStatus = 'F' -- Example: FAGL_TRIAL_BALANCE_RUN
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Financial Statements Generated' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE '[Fin Statement Job Prefix]%' AND JobStatus = 'F'
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
-- Approval is often a manual step. This requires a custom solution to capture.
-- The following is a placeholder for such a custom view.
SELECT
CONCAT(ApprovalYear, '-', LPAD(ApprovalPeriod, 2, '0')) AS FinancialPeriod,
'Financial Statements Approved' AS ActivityName,
CAST(ApprovalTimestamp AS TIMESTAMP) AS EventTime,
CAST(ApprovalTimestamp AS TIMESTAMP) AS EndTime,
ApproverUser AS ResponsibleUser,
CompanyCode,
NULL AS GlAccountNumber,
FinancialStatementVersion AS DocumentNumber,
'Approved' AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM Z_I_FINSTATEMENTAPPROVAL -- Placeholder for custom approval tracking view
WHERE ApprovalDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(CAST(LastChangeDate AS DATE FORMAT 'YYYY'), '-', CAST(LastChangeDate AS DATE FORMAT 'MM')) AS FinancialPeriod,
'Period Closed For Posting' AS ActivityName,
CAST(LastChangeDateTime AS TIMESTAMP) AS EventTime,
CAST(LastChangeDateTime AS TIMESTAMP) AS EndTime,
LastChangedByUser AS ResponsibleUser,
CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_FinPostingPeriodControl -- Proxy, see note on 'Period Opened'
WHERE PostingPeriodStatus = 'C' -- 'C' for Closed
AND LastChangeDate BETWEEN '[Start Date]' AND '[End Date]'; Pasos
- Confirme que dispone de acceso de lectura directa al esquema de SAP HANA que contiene las tablas de aplicación necesarias e identifique al propietario del esquema de ACDOCA, TBTCO, CDHDR y CDPOS. Sustituya el marcador de posición del esquema en la consulta por el nombre de esquema aprobado.
- Confirme el ejercicio fiscal, el periodo fiscal, el alcance de los códigos de empresa y el intervalo de fechas de extracción. Utilice un intervalo que abarque el ciclo de cierre completo, normalmente de tres a seis meses, y sustituya los parámetros de fecha por valores adecuados para su sistema.
- Valide las asignaciones de campos locales para los cambios de configuración del periodo contable, la finalización de trabajos por lotes, los cambios de estado de conciliación, la ejecución de consolidaciones, la generación de informes y los registros de aprobación. La consulta utiliza marcadores de posición descriptivos para objetos de origen cuya existencia no está garantizada en todas las implementaciones de SAP S/4HANA. Antes de ejecutarla, sustituya esos marcadores por vistas o tablas aprobadas de su sistema.
- Ejecute la consulta con credenciales de base de datos de solo lectura. La consulta crea explícitamente una fila de evento por cada actividad requerida y no deduce eventos adicionales a partir del orden de los eventos.
- Revise las columnas devueltas.
FinancialPeriodes el identificador del caso,ActivityNamees la actividad del evento yEventTimees la marca de tiempo requerida. Se incluyenEndTime,ResponsibleUser,CompanyCode,GlAccountNumber,DocumentNumber,ReconciliationStatusyTargetCompletionDatecuando el registro de origen contiene esos datos. - Valide que el resultado incluya todas las actividades requeridas, incluso aquellas que quizá no tengan registros de origen en un periodo determinado. Si faltan tipos de actividad, la consulta devuelve una fila de validación con
ActivityNameestablecido enActivity Coverage Validation. Si la importación de ProcessMind solo admite eventos de negocio, elimine esa fila o gestiónela por separado antes de cargar los datos. - Concilie eventos representativos con los registros de aplicación y los registros de trabajos de SAP. Confirme que los eventos de asientos contables correspondan a registros de ACDOCA, los eventos de trabajos a registros de TBTCO y los eventos de cambios a registros de CDHDR y CDPOS o a las fuentes de conciliación y aprobación configuradas.
- Exporte el resultado como archivo CSV UTF-8 o en otro formato tabular compatible con ProcessMind. Mantenga exactamente los nombres de columna
FinancialPeriod,ActivityNameyEventTime. Ordene porFinancialPeriodyEventTime, y conserve una fila por cada evento extraído explícitamente. - Cargue el Registro de eventos en ProcessMind y configure
FinancialPeriodcomo identificador del caso,ActivityNamecomo actividad yEventTimecomo marca de tiempo de inicio. AsigneEndTimecomo marca de tiempo de fin cuando esté disponible y asigne las demás columnas como atributos del evento o del caso.
Nota importante sobre la asignación de fuentes: SAP S/4HANA no ofrece una estructura de tablas universal para todas las herramientas de conciliación, los monitores de consolidación, los archivos de informes, los flujos de aprobación ni la configuración de periodos contables. Sustituya cada marcador de posición [Your table name] y [Your column name] de la consulta por un objeto y una columna verificados de su sistema. No trate ningún marcador de posición como SQL ejecutable.
Configuración
- Acceso a la base de datos: Utilice un usuario de base de datos de SAP HANA con acceso de solo lectura y autorización SELECT sobre ACDOCA, TBTCO, CDHDR, CDPOS y los objetos de origen configurados para el control de periodos contables, la conciliación, la consolidación, los informes y las aprobaciones.
- Configuración del esquema: Sustituya [Your SAP schema] por el esquema real que contiene los objetos de aplicación. Confirme si los objetos son tablas, vistas de cálculo o vistas de informes aprobadas.
- Intervalo de fechas: Extraiga el ciclo de cierre completo, normalmente de tres a seis meses. Incluya las actividades de apertura y cierre, las contabilizaciones tardías, las anulaciones, las aprobaciones y los ajustes posteriores al cierre.
- Periodo fiscal: Filtre por el ejercicio y el periodo fiscal que utiliza el código de empresa. No dé por sentado que los periodos coinciden con el año natural si la variante fiscal es distinta.
- Código de empresa: Aplique un filtro por código de empresa cuando el proceso abarque entidades legales seleccionadas. Utilice [Configure based on your system] si el alcance se mantiene en una asignación organizativa independiente.
- Tipos de documento: Limite la extracción de asientos contables a los tipos de documento utilizados para periodificaciones, provisiones, ajustes, valoración, compensación y otras contabilizaciones de cierre. Confirme la configuración local de tipos de documento antes de activar estos filtros.
- Estado del trabajo: Incluya únicamente los trabajos completados o finalizados correctamente para las actividades de finalización. Valide los valores de estado locales de TBTCO antes de aplicar un predicado de estado.
- Documentos de modificación: Filtre CDHDR y CDPOS por la clase de objeto y los indicadores de modificación pertinentes, después de confirmar la configuración local. Los documentos de modificación por sí solos quizá no permitan identificar todas las actividades de negocio.
- Fuentes de conciliación y aprobación: Configure objetos de origen verificados para los cambios de estado de conciliación, las acciones de preparación, las aprobaciones, las fechas objetivo y las firmas digitales. Estas fuentes varían según los componentes y las extensiones de SAP implementados.
- Rendimiento: Limite los predicados por ejercicio fiscal, periodo fiscal, código de empresa, fecha de contabilización y marca de tiempo del evento. Aplique los filtros en cada rama de UNION ALL, evite los análisis sin restricciones de ACDOCA y ejecute la extracción durante una ventana de informes aprobada.
- Tipos de datos: Normalice las marcas de tiempo a una zona horaria y un tipo de datos comunes. Convierta las cadenas vacías en NULL y conserve los ceros iniciales en los códigos de empresa, números de cuenta y números de documento.
- Requisitos previos: Confirme que estén disponibles y contengan datos los componentes de SAP necesarios, las herramientas de conciliación, las funciones de consolidación, el registro de trabajos, la activación de documentos de modificación y cualquier registro de auditoría de informes o flujos de trabajo.
- Seguridad y cumplimiento: Aplique el principio de mínimo privilegio, proteja los datos financieros y de usuarios, documente el propósito de la extracción y siga los requisitos de auditoría de SAP y de bases de datos de la organización.
Consulta de ejemplo sql
WITH
params AS (
SELECT
TO_DATE('[Start date YYYY-MM-DD]') AS start_date,
TO_DATE('[End date YYYY-MM-DD]') AS end_date,
'[Fiscal year]' AS fiscal_year_filter,
'[Fiscal period]' AS fiscal_period_filter,
'[Company code filter]' AS company_code_filter
FROM DUMMY
),
base_events AS (
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0') AS FinancialPeriod,
'Accruals And Provisions Posted' AS ActivityName,
CAST(a.BUDAT AS TIMESTAMP) AS EventTime,
CAST(NULL AS TIMESTAMP) AS EndTime,
CAST(a.USNAM AS NVARCHAR(80)) AS ResponsibleUser,
CAST(a.RBUKRS AS NVARCHAR(20)) AS CompanyCode,
CAST(a.RACCT AS NVARCHAR(40)) AS GlAccountNumber,
CAST(a.BELNR AS NVARCHAR(40)) AS DocumentNumber,
CAST(NULL AS NVARCHAR(40)) AS ReconciliationStatus,
CAST(NULL AS DATE) AS TargetCompletionDate
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Accrual document type]', '[Provision document type]')
UNION ALL
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0'),
'Adjusting Journal Entry Posted',
CAST(a.BUDAT AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(a.USNAM AS NVARCHAR(80)),
CAST(a.RBUKRS AS NVARCHAR(20)),
CAST(a.RACCT AS NVARCHAR(40)),
CAST(a.BELNR AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Adjusting journal entry document type]')
UNION ALL
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0'),
'Foreign Currency Valuation Run',
CAST(a.BUDAT AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(a.USNAM AS NVARCHAR(80)),
CAST(a.RBUKRS AS NVARCHAR(20)),
CAST(a.RACCT AS NVARCHAR(40)),
CAST(a.BELNR AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Foreign currency valuation document type]')
UNION ALL
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0'),
'Automated Clearing Run Executed',
CAST(a.BUDAT AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(a.USNAM AS NVARCHAR(80)),
CAST(a.RBUKRS AS NVARCHAR(20)),
CAST(a.RACCT AS NVARCHAR(40)),
CAST(a.BELNR AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Automated clearing document type]')
UNION ALL
SELECT
CAST(j.[Financial period column] AS NVARCHAR(20)),
'Subledger Data Transfer Completed',
CAST(j.[Job end timestamp column] AS TIMESTAMP),
CAST(j.[Job end timestamp column] AS TIMESTAMP),
CAST(j.[Job user column] AS NVARCHAR(80)),
CAST(j.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(j.[Job name column] AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].TBTCO j
CROSS JOIN params p
WHERE j.[Job end timestamp column] >= p.start_date
AND j.[Job end timestamp column] < ADD_DAYS(p.end_date, 1)
AND j.[Job status column] = '[Successful job status]'
AND j.[Job name column] IN ('[AR transfer job]', '[AP transfer job]', '[Asset Accounting transfer job]')
UNION ALL
SELECT
CAST(j.[Financial period column] AS NVARCHAR(20)),
'Intercompany Reconciliation Started',
CAST(j.[Job start timestamp column] AS TIMESTAMP),
CAST(j.[Job end timestamp column] AS TIMESTAMP),
CAST(j.[Job user column] AS NVARCHAR(80)),
CAST(j.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(j.[Job name column] AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].TBTCO j
CROSS JOIN params p
WHERE j.[Job start timestamp column] >= p.start_date
AND j.[Job start timestamp column] < ADD_DAYS(p.end_date, 1)
AND j.[Job name column] IN ('[Intercompany reconciliation job]')
UNION ALL
SELECT
CAST(r.[Financial period column] AS NVARCHAR(20)),
'Intercompany Reconciliation Started',
CAST(r.[Status change timestamp column] AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(r.[Responsible user column] AS NVARCHAR(80)),
CAST(r.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(r.[Reconciliation case column] AS NVARCHAR(40)),
CAST(r.[Status column] AS NVARCHAR(40)),
CAST(r.[Target completion date column] AS DATE)
FROM [Your table name for intercompany reconciliation] r
CROSS JOIN params p
WHERE r.[Status change timestamp column] >= p.start_date
AND r.[Status change timestamp column] < ADD_DAYS(p.end_date, 1)
AND r.[Status column] IN ('Started', 'In Progress')
UNION ALL
SELECT
CAST(r.[Financial period column] AS NVARCHAR(20)),
'Account Reconciliation Started',
CAST(r.[Status change timestamp column] AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(r.[Responsible user column] AS NVARCHAR(80)),
CAST(r.[Company code column] AS NVARCHAR(20)),
CAST(r.[GL account column] AS NVARCHAR(40)),
CAST(r.[Reconciliation case column] AS NVARCHAR(40)),
CAST(r.[Status column] AS NVARCHAR(40)),
CAST(r.[Target completion date column] AS DATE)
FROM [Your table name for account reconciliation] r
CROSS JOIN params p
WHERE r.[Status change timestamp column] >= p.start_date
AND r.[Status change timestamp column] < ADD_DAYS(p.end_date, 1)
AND r.[Status column] IN ('In Progress')
UNION ALL
SELECT
CAST(r.[Financial period column] AS NVARCHAR(20)),
'Account Reconciliation Approved',
CAST(r.[Status change timestamp column] AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(r.[Approver user column] AS NVARCHAR(80)),
CAST(r.[Company code column] AS NVARCHAR(20)),
CAST(r.[GL account column] AS NVARCHAR(40)),
CAST(r.[Reconciliation case column] AS NVARCHAR(40)),
CAST(r.[Status column] AS NVARCHAR(40)),
CAST(r.[Target completion date column] AS DATE)
FROM [Your table name for account reconciliation] r
CROSS JOIN params p
WHERE r.[Status change timestamp column] >= p.start_date
AND r.[Status change timestamp column] < ADD_DAYS(p.end_date, 1)
AND r.[Status column] = 'Approved'
UNION ALL
SELECT
CAST(c.[Financial period column] AS NVARCHAR(20)),
'Consolidation Tasks Executed',
CAST(c.[Execution start timestamp column] AS TIMESTAMP),
CAST(c.[Execution end timestamp column] AS TIMESTAMP),
CAST(c.[Responsible user column] AS NVARCHAR(80)),
CAST(c.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(c.[Task identifier column] AS NVARCHAR(40)),
CAST(c.[Status column] AS NVARCHAR(40)),
CAST(c.[Target completion date column] AS DATE)
FROM [Your table name for consolidation execution] c
CROSS JOIN params p
WHERE c.[Execution start timestamp column] >= p.start_date
AND c.[Execution start timestamp column] < ADD_DAYS(p.end_date, 1)
AND c.[Status column] IN ('Completed', 'Successful')
UNION ALL
SELECT
CAST(t.[Financial period column] AS NVARCHAR(20)),
'Trial Balance Prepared',
CAST(t.[Report saved timestamp column] AS TIMESTAMP),
CAST(t.[Report saved timestamp column] AS TIMESTAMP),
CAST(t.[Responsible user column] AS NVARCHAR(80)),
CAST(t.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(t.[Report identifier column] AS NVARCHAR(40)),
CAST(t.[Status column] AS NVARCHAR(40)),
CAST(t.[Target completion date column] AS DATE)
FROM [Your table name for trial balance output] t
CROSS JOIN params p
WHERE t.[Report saved timestamp column] >= p.start_date
AND t.[Report saved timestamp column] < ADD_DAYS(p.end_date, 1)
AND t.[Status column] IN ('Saved', 'Completed')
UNION ALL
SELECT
CAST(f.[Financial period column] AS NVARCHAR(20)),
'Financial Statements Generated',
CAST(f.[Generation timestamp column] AS TIMESTAMP),
CAST(f.[Generation timestamp column] AS TIMESTAMP),
CAST(f.[Responsible user column] AS NVARCHAR(80)),
CAST(f.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(f.[Report identifier column] AS NVARCHAR(40)),
CAST(f.[Status column] AS NVARCHAR(40)),
CAST(f.[Target completion date column] AS DATE)
FROM [Your table name for financial statement output] f
CROSS JOIN params p
WHERE f.[Generation timestamp column] >= p.start_date
AND f.[Generation timestamp column] < ADD_DAYS(p.end_date, 1)
AND f.[Status column] IN ('Generated', 'Saved', 'Completed')
UNION ALL
SELECT
CAST(f.[Financial period column] AS NVARCHAR(20)),
'Financial Statements Approved',
CAST(f.[Approval timestamp column] AS TIMESTAMP),
CAST(f.[Approval timestamp column] AS TIMESTAMP),
CAST(f.[Approver user column] AS NVARCHAR(80)),
CAST(f.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(f.[Report identifier column] AS NVARCHAR(40)),
CAST(f.[Status column] AS NVARCHAR(40)),
CAST(f.[Target completion date column] AS DATE)
FROM [Your table name for financial statement approval] f
CROSS JOIN params p
WHERE f.[Approval timestamp column] >= p.start_date
AND f.[Approval timestamp column] < ADD_DAYS(p.end_date, 1)
AND f.[Status column] = 'Approved'
UNION ALL
SELECT
CAST(x.[Financial period column] AS NVARCHAR(20)),
'Period Opened For Posting',
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Changed by column] AS NVARCHAR(80)),
CAST(x.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(x.[Change document number column] AS NVARCHAR(40)),
CAST(x.[New status column] AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your table name for posting period changes] x
CROSS JOIN params p
WHERE x.[Change timestamp column] >= p.start_date
AND x.[Change timestamp column] < ADD_DAYS(p.end_date, 1)
AND x.[New status column] = 'Open'
UNION ALL
SELECT
CAST(x.[Financial period column] AS NVARCHAR(20)),
'Period Closed For Posting',
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Changed by column] AS NVARCHAR(80)),
CAST(x.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(x.[Change document number column] AS NVARCHAR(40)),
CAST(x.[New status column] AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your table name for posting period changes] x
CROSS JOIN params p
WHERE x.[Change timestamp column] >= p.start_date
AND x.[Change timestamp column] < ADD_DAYS(p.end_date, 1)
AND x.[New status column] = 'Closed'
),
activity_list AS (
SELECT 'Period Opened For Posting' AS ActivityName FROM DUMMY
UNION ALL SELECT 'Subledger Data Transfer Completed' FROM DUMMY
UNION ALL SELECT 'Intercompany Reconciliation Started' FROM DUMMY
UNION ALL SELECT 'Accruals And Provisions Posted' FROM DUMMY
UNION ALL SELECT 'Automated Clearing Run Executed' FROM DUMMY
UNION ALL SELECT 'Foreign Currency Valuation Run' FROM DUMMY
UNION ALL SELECT 'Account Reconciliation Started' FROM DUMMY
UNION ALL SELECT 'Adjusting Journal Entry Posted' FROM DUMMY
UNION ALL SELECT 'Account Reconciliation Approved' FROM DUMMY
UNION ALL SELECT 'Consolidation Tasks Executed' FROM DUMMY
UNION ALL SELECT 'Trial Balance Prepared' FROM DUMMY
UNION ALL SELECT 'Financial Statements Generated' FROM DUMMY
UNION ALL SELECT 'Financial Statements Approved' FROM DUMMY
UNION ALL SELECT 'Period Closed For Posting' FROM DUMMY
),
missing_activities AS (
SELECT
CAST(NULL AS NVARCHAR(20)) AS FinancialPeriod,
'Activity Coverage Validation' AS ActivityName,
CAST(NULL AS TIMESTAMP) AS EventTime,
CAST(NULL AS TIMESTAMP) AS EndTime,
CAST(NULL AS NVARCHAR(80)) AS ResponsibleUser,
CAST(NULL AS NVARCHAR(20)) AS CompanyCode,
CAST(NULL AS NVARCHAR(40)) AS GlAccountNumber,
CAST(NULL AS NVARCHAR(40)) AS DocumentNumber,
CAST('Missing activity: ' || al.ActivityName AS NVARCHAR(40)) AS ReconciliationStatus,
CAST(NULL AS DATE) AS TargetCompletionDate
FROM activity_list al
LEFT JOIN base_events b ON b.ActivityName = al.ActivityName
WHERE b.ActivityName IS NULL
)
SELECT
FinancialPeriod,
ActivityName,
EventTime,
EndTime,
ResponsibleUser,
CompanyCode,
GlAccountNumber,
DocumentNumber,
ReconciliationStatus,
TargetCompletionDate
FROM base_events
UNION ALL
SELECT
FinancialPeriod,
ActivityName,
EventTime,
EndTime,
ResponsibleUser,
CompanyCode,
GlAccountNumber,
DocumentNumber,
ReconciliationStatus,
TargetCompletionDate
FROM missing_activities
ORDER BY FinancialPeriod, EventTime, ActivityName ¿Todo listo para comenzar?
Ayude a su organización a mejorar la eficiencia y el cumplimiento con este Template de datos. Comience hoy a transformar su proceso de registro a informe.
Optimice hoy el cierre y la conciliación de su proceso de registro a informe
Detecte ineficiencias y reduzca hasta un 30 % el tiempo de ciclo del cierre.
No se requiere tarjeta de crédito. Comience en cuestión de minutos.