Su Template de datos de Record to Report: cierre de período y conciliación
Su Template de datos de Record to Report: cierre de período y conciliación
- Atributos recomendados para recopilar
- Actividades clave que debe supervisar para el análisis del proceso
- Guía paso a paso para extraer los datos
Record to Report - Atributos del cierre del periodo y la conciliación
| Nombre | Descripción | ||
|---|---|---|---|
| Período financiero FinancialPeriod | Identificador único del ciclo de presentación de informes financieros, como '2023-12' para diciembre de 2023, que actúa como caso del proceso de cierre 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 período concreto, normalmente un mes natural o un período fiscal. Cada período financiero representa una ejecución completa del proceso de cierre de período. En el análisis de process mining, este atributo permite realizar un seguimiento de todo el ciclo de vida de un cierre de período, desde su inicio hasta la presentación de los informes finales. Se utiliza para comparar los tiempos de ciclo entre distintos períodos, identificar rutas habituales del proceso y analizar las variaciones 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 localizar cuellos de botella sistémicos. Por qué es importante Este es el identificador de caso esencial que estructura el análisis, permite comparar el rendimiento del cierre de período a lo largo del tiempo e identificar tendencias o problemas recurrentes. Dónde obtenerlo Se obtiene combinando los campos 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-Q1 | |||
| Actividad ActivityName | Nombre de un paso o tarea empresarial específica realizada dentro del proceso de cierre de período, como 'Asiento de ajuste contabilizado' o 'Período cerrado para contabilizaciones'. | ||
| Descripción Este atributo representa un evento o una tarea individual dentro del proceso integral de cierre y conciliación del periodo. Las actividades son los componentes básicos del mapa de procesos y muestran la secuencia del trabajo realizado. A menudo se derivan de una combinación de códigos de transacción, tipos de documento o cambios de estado en SAP S/4HANA. El análisis de actividades es fundamental en Process Mining. Ayuda a visualizar el flujo del proceso, identificar desviaciones respecto al procedimiento estándar, descubrir cuellos de botella en los que las actividades tardan demasiado y comprender la frecuencia y el orden de las tareas. Esto es crucial para Dashboards como «Period Close Variant Analysis» y «Current Period Close Status». Por qué es importante Define los pasos del proceso, constituye la base del mapa de procesos 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 las tareas de cierre financiero, por ejemplo, de SAP Financial Closing Cockpit. Ejemplos Período abierto para contabilizacionesConciliación de cuenta iniciadaEstados financieros generadosConciliación intercompañía iniciada | |||
| 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 tuvo lugar 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 la que se registró el cambio. Este atributo es fundamental para ordenar cronológicamente las actividades y constituye la base de todos los análisis basados en el tiempo. 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. Es compatible directamente con KPI como el tiempo medio del ciclo de cierre de período y el tiempo medio de aprobación de conciliaciones. Por qué es importante Esta marca de tiempo obligatoria permite ordenar cronológicamente los eventos y constituye la base de todos los cálculos de duración y rendimiento. Dónde obtenerlo Procede de campos de marca de tiempo como Fecha de creación (CPUDT) y Hora de creación (CPUTM) de tablas como BKPF, o de campos de fecha de modificación de diversas tablas de estado, como CDHDR y CDPOS. Ejemplos 2023-12-28T09:15:30Z2024-01-02T14:00:12Z2024-01-05T11:21:00Z | |||
| Código de sociedad CompanyCode | Identificador único de una entidad jurídica o sociedad dentro de la organización SAP. | ||
| Descripción El código de 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 del código de sociedad. Se trata de una dimensión organizativa fundamental para el análisis financiero. En Process Mining, permite comparar el proceso de cierre entre distintas entidades jurídicas. El Dashboard «Análisis de variantes del cierre de período» utiliza el código de sociedad para identificar incoherencias y promover la estandarización de los procedimientos de cierre. Por qué es importante Proporciona un contexto organizativo esencial que permite comparar procesos entre distintas entidades jurídicas para identificar variaciones y buenas prácticas. Dónde obtenerlo Se encuentra prácticamente en todas las tablas financieras de SAP, especialmente en la tabla de cabecera BKPF (campo BUKRS). Ejemplos 10001710US01DE01 | |||
| Estado de conciliación ReconciliationStatus | El estado de una actividad de conciliación de cuentas, como «Abierta», «En curso» o «Aprobada». | ||
| Descripción Este atributo registra el estado del proceso de conciliación de una cuenta o tarea determinada. Indica si la conciliación se ha iniciado, se ha enviado para revisión, se ha aprobado o se ha rechazado. Los cambios de estado son eventos clave del proceso. Es fundamental para el Dashboard «Análisis del retrabajo de conciliaciones». Al analizar la secuencia de estados, es posible identificar cuándo un estado «Aprobada» va seguido de nuevos ajustes, lo que indica retrabajo. También respalda el KPI «Tasa de conciliaciones aprobadas a la primera», ya que muestra qué conciliaciones se aprueban sin un rechazo o una reapertura previos. Por qué es importante Registra el progreso y el resultado de las tareas de conciliación, lo que permite identificar retrabajos, medir las tasas de aprobación y analizar los 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 by BlackLine. Ejemplos No iniciadoEn preparaciónAprobadoRechazado | |||
| Fecha objetivo de finalización TargetCompletionDate | La fecha planificada o límite para completar una actividad clave, como la generación de estados financieros. | ||
| Descripción La fecha objetivo de finalización representa el plazo interno o externo de 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 rendimiento frente a los plazos. Constituye la base del Dashboard «Cumplimiento de los plazos de reporting» y del KPI «Tasa de estados financieros finalizados a tiempo», que comparan esta fecha objetivo con Por qué es importante Permite analizar el rendimiento frente a los plazos y ayuda a medir y mejorar las tasas de finalización puntual de las actividades críticas de cierre. Dónde obtenerlo Estos datos suelen residir en un sistema de gestión o programación de tareas, como SAP Financial Closing cockpit, donde las listas de tareas de cierre se definen con fechas de finalización planificadas. Ejemplos 2024-01-05T23:59:59Z2024-04-04T23:59:59Z2024-07-05T23:59:59Z | |||
| Hora de finalización EndTime | Marca de tiempo que indica cuándo se completó una actividad. | ||
| Descripción End Time indica la finalización de una tarea. En algunos casos, puede coincidir con Start Time en eventos instantáneos registrados en el sistema. En las actividades con una duración medible, representa la marca de tiempo de finalización. Junto con Start Time, este atributo es esencial para calcular Por qué es importante Permite calcular la duración de las actividades (Processing Time), algo crucial para identificar cuellos de botella de rendimiento y analizar la eficiencia. Dónde obtenerlo Al igual que la hora de inicio, puede obtenerse de diversos campos de marca de tiempo. Para algunas actividades, puede coincidir con la hora de inicio. Para otras, puede corresponder a una fecha independiente de 'completado el' o 'modificado el' en tablas de aplicación o registros de cambios, como CDHDR y CDPOS. Ejemplos 2023-12-28T09:16:10Z2024-01-02T17:30:00Z2024-01-05T11:21:00Z | |||
| Número de cuenta de mayor GlAccountNumber | El identificador de una cuenta específica del libro mayor. | ||
| Descripción El número de cuenta del libro mayor (GL) identifica las cuentas individuales utilizadas 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 el análisis detallado de los procesos financieros. El Dashboard «Análisis de asientos de ajuste» lo utiliza para mostrar el volumen de ajustes por cuenta y ayudar a identificar áreas problemáticas. El KPI «Tiempo medio de conciliación de cuentas de mayor» también se basa en este atributo para localizar retrasos relacionados con cuentas específicas. Por qué es importante Vincula las actividades del proceso con cuentas financieras específicas, lo que 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 posiciones de documentos financieros, principalmente BSEG (campo HKONT) o en la tabla de diario universal ACDOCA de S/4HANA. Ejemplos 113100004000000073000000 | |||
| Número de documento DocumentNumber | El identificador único de un documento financiero, como un asiento contable. | ||
| Descripción El número de documento es una clave única que SAP asigna a cada contabilización financiera. Sirve como referencia principal para realizar el seguimiento y la auditoría de las transacciones individuales que componen las actividades del proceso de cierre. Aunque no es un Case ID en sí mismo, proporciona un vínculo esencial con el sistema de origen. Los analistas pueden utilizar el número de documento para profundizar desde una vista de Process Mining hasta los detalles de una transacción específica en SAP S/4HANA y analizar sus causas raíz. Resulta especialmente útil al investigar asientos de ajuste o contabilizaciones de conciliación concretos. Por qué es importante Proporciona una referencia directa a la transacción subyacente 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 posiciones como BSEG o ACDOCA. Ejemplos 100000045190000001300000023 | |||
| Usuario responsable ResponsibleUser | ID de usuario de la persona que ejecutó la actividad o es responsable de la tarea. | ||
| Descripción Este atributo identifica a la persona empleada que realizó una tarea determinada, como contabilizar un asiento o aprobar una conciliación. Normalmente se captura 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 de eficiencia de 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 candidatos para la automatización al poner de manifiesto tareas muy repetitivas realizadas por muchas personas. 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 | El 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 para iniciar una función o un programa específico en SAP. Por ejemplo, FB01 se utiliza para contabilizar un documento y FAGLB03 para mostrar los saldos de las cuentas de mayor. El T-code suele proporcionar un indicador técnico claro de la actividad realizada. Este atributo ayuda a crear las definiciones de actividad del modelo de proceso. Es una forma fiable de diferenciar entre actividades automatizadas y manuales, y de comprender exactamente cómo se ejecutó una tarea en el sistema. El análisis de los T-codes puede revelar métodos no estándar o ineficientes utilizados por el personal. Por qué es importante Proporciona una visión técnica, a nivel de sistema, de cómo se realizó una actividad. Esto resulta útil para identificar pasos manuales frente a 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 retrabajo de conciliación IsReconciliationRework | Un indicador booleano que es verdadero si una actividad de conciliación va seguida de un rechazo o de nuevos ajustes. | ||
| Descripción Este atributo calculado identifica casos de retrabajo dentro del subproceso de conciliación. La lógica marca las actividades o los casos en los que una conciliación se rechaza, se vuelve a abrir después de enviarse o se contabilizan asientos de ajuste después de que supuestamente se haya completado la conciliación de una cuenta de mayor. Este indicador está diseñado específicamente para alimentar el Dashboard «Análisis del retrabajo de conciliaciones» y el KPI «Tasa de retrabajo de conciliaciones». Convierte secuencias de proceso complejas en un atributo sencillo y medible que cuantifica el alcance del retrabajo y ayuda a los equipos a centrarse en mejorar la calidad a la primera. Por qué es importante Cuantifica directamente el retrabajo, una forma clave de ineficiencia del proceso, y permite orientar los análisis y las iniciativas de mejora de la calidad de las conciliaciones. Dónde obtenerlo Se calcula según la secuencia de actividades. Por ejemplo, el indicador se establece en verdadero si la secuencia «Conciliación aprobada» va seguida de «Asiento de ajuste contabilizado» para la misma cuenta de mayor dentro del mismo período. Ejemplos truefalse | |||
| Está a tiempo IsOnTime | Un indicador booleano que es verdadero si un hito se completó en la fecha objetivo o antes. | ||
| Descripción Este atributo proporciona un resultado binario sencillo sobre el cumplimiento del calendario. Se calcula comparando Este es el cálculo central del KPI «Financial Statement On-Time Rate». Simplifica el seguimiento del rendimiento al convertir las comparaciones de fechas en un estado claro de «a tiempo» o «con retraso», que se visualiza fácilmente en Dashboards e informes. Ayuda a medir la eficacia de las iniciativas destinadas a acelerar el cierre. Por qué es importante Simplifica el análisis del cumplimiento de los plazos en un resultado claro de éxito o incumplimiento, lo que facilita el seguimiento y la comunicación del rendimiento puntual. Dónde obtenerlo Campo calculado: Ejemplos truefalse | |||
| Está automatizado IsAutomated | Un indicador booleano que señala si la actividad fue realizada por un usuario del sistema o por un proceso automatizado. | ||
| Descripción Este indicador diferencia entre las tareas realizadas manualmente por una persona y las ejecutadas automáticamente por el sistema, como un trabajo por lotes programado para la valoración de monedas o ejecuciones de compensación automatizadas. Normalmente se deriva del ID de Este atributo es clave para comprender el nivel de automatización del proceso de cierre. Ayuda a identificar oportunidades de automatización adicional al poner de relieve 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 entre actividades humanas y del sistema, algo fundamental para identificar oportunidades de automatización y analizar la eficiencia de ambas. Dónde obtenerlo Es un atributo derivado, normalmente basado en una regla aplicada al campo «ResponsibleUser» (por ejemplo, comprobando si contiene ID de usuarios del sistema o por lotes como «BATCHUSER») o al código de transacción. Ejemplos truefalse | |||
| Fecha real de finalización ActualCompletionDate | La fecha real en la 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 la contrapartida de Por qué es importante Proporciona el momento real de finalización de los hitos, necesario para medir el rendimiento frente a los plazos planificados 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 | El 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 el caso de los ajustes de cierre de período, podría corresponder al importe de la periodificación o corrección contabilizada. El análisis del importe resulta útil para evaluar la importancia relativa. Permite a los analistas priorizar la investigación de los asientos de ajuste de mayor valor, que pueden implicar un riesgo financiero más elevado. También puede utilizarse para filtrar el mapa de procesos y centrarse únicamente en las transacciones que superen un umbral determinado, simplificando la vista para mostrar 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 su importancia relativa. Dónde obtenerlo Este valor suele tener que agregarse a partir de tablas de posiciones como BSEG o ACDOCA (campo WRBTR, importe en la moneda del documento). Ejemplos 15000.00250.75-500.00 | |||
| Moneda del documento DocumentCurrency | El código de moneda de los importes del documento financiero. | ||
| Descripción Este atributo especifica la moneda en la que se registró la transacción, como USD, EUR o JPY. Proporciona el contexto necesario para el atributo En las organizaciones multinacionales, puede ser importante analizar los datos por moneda. Esto garantiza que los valores monetarios se interpreten correctamente y resulta necesario para convertirlos a una única moneda de reporting en los análisis agregados. Sin este contexto, los valores de Por qué es importante Proporciona el contexto necesario para interpretar correctamente cualquier valor monetario, especialmente en entornos con varias monedas. Dónde obtenerlo Se encuentra en la tabla de cabecera de documentos financieros BKPF (campo WAERS). Ejemplos USDEURJPY | |||
| Sistema de origen SourceSystemId | Identificador de la instancia o el cliente específicos de SAP S/4HANA desde los 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 fundamental para distinguir las fuentes de datos. Se utiliza principalmente para la gobernanza de datos, las auditorías y la garantía de la integridad de los datos. En el análisis, puede utilizarse como filtro para comparar procesos entre distintos sistemas de origen si se combinan en un único modelo de process mining. Por qué es importante Proporciona información esencial sobre el linaje y el contexto de los datos, y garantiza la claridad sobre su origen, especialmente en entornos con varios sistemas. Dónde obtenerlo Normalmente son metadatos añadidos durante el proceso de extracción de datos, a menudo obtenidos 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 | El tiempo total necesario para completar 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 individual (período financiero). Se calcula como la diferencia entre la marca de tiempo de la última actividad y la de la primera actividad de ese período. Es un indicador clave de rendimiento principal que respalda directamente el Dashboard «Resumen del tiempo de ciclo del cierre de período» y el KPI «Tiempo medio de ciclo del cierre de período». Proporciona una medida general de la eficiencia y la velocidad del proceso de cierre, y permite comparar su evolución y establecer referencias entre distintos códigos de sociedad. Por qué es importante Representa el KPI principal de la duración total del proceso y permite realizar 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 | El tipo de documento financiero que se contabiliza, diferenciando entre asientos estándar, periodificaciones y ajustes. | ||
| Descripción El tipo de asiento contable, o tipo de documento en la terminología de SAP, es una clave que clasifica los documentos contables. Controla a qué tipos de cuenta se puede contabilizar un documento y se utiliza para distinguir distintas transacciones empresariales, como una factura de proveedor (KR), una contabilización en el libro mayor (SA) o un pago de cliente (DZ). En el contexto del cierre de período, este atributo es crucial para aislar tipos específicos de actividades. Por ejemplo, permite a los analistas centrarse en los asientos de ajuste para respaldar el Dashboard «Análisis de asientos de ajuste» y el KPI «Recuento 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 contabilizaciones, como los ajustes manuales, que son fundamentales para un cierre de período fluido. 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. Aporta contexto sobre la actualización de los datos analizados en la herramienta de Process Mining. Su finalidad principal es apoyar la gobernanza de datos y mantener informados a los usuarios. Los usuarios de solo lectura de los Dashboards pueden comprobar hasta qué momento están actualizados los datos, algo especialmente importante en Dashboards de supervisión casi en tiempo real, como «Current Period Close Status». Les ayuda a 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 y garantiza que comprendan hasta qué momento están actualizados los conocimientos sobre el proceso. Dónde obtenerlo Son metadatos generados y registrados en el conjunto de datos por la herramienta de extracción de datos o ETL en el momento de la ejecución. Ejemplos 2024-06-10T08:00:00Z2024-06-09T08:00:00Z | |||
Record to Report - Actividades del cierre del periodo y la conciliación
| Actividad | Descripción | ||
|---|---|---|---|
| Asiento de ajuste contabilizado | Representa un asiento contable correctivo realizado después de las conciliaciones iniciales, normalmente para corregir discrepancias detectadas durante el proceso de revisión. Se trata de 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 a la primera en los procesos o conciliaciones anteriores. Analizar estos asientos es fundamental 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. Pueden identificarse mediante tipos de documento específicos, fechas de contabilización cercanas al final del ciclo de cierre o descripciones de texto concretas. Recopilar Filtre los asientos contables de BKPF combinando el tipo de documento y la fecha de contabilización en relación con las actividades de conciliación. Tipo de evento explicit | |||
| Conciliación de cuenta aprobada | Esta actividad señala 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 'Aprobada' en una herramienta de conciliación. | ||
| Por qué es importante Este hito marca la finalización de una actividad de control crítica. El seguimiento de los tiempos de aprobación ayuda a identificar 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 captura desde 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. Recopilar Identifique la marca de tiempo en la que el campo de estado de una conciliación se actualiza a su estado terminal 'Aprobada'. Tipo de evento inferred | |||
| Conciliación de cuenta iniciada | 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 la persona preparadora. | ||
| Por qué es importante Este es un hito clave para comprender la duración y el esfuerzo necesarios para justificar los saldos del balance. Ayuda a identificar qué cuentas o departamentos comienzan tarde sus conciliaciones. Dónde obtenerlo Este evento suele capturarse desde una herramienta específica de conciliación, como SAP Account Substantiation and Automation de BlackLine, o desde otros sistemas de terceros. Se infiere a partir de las marcas de tiempo de los cambios de estado. Recopilar Realice un seguimiento de la marca de tiempo del primer cambio de estado desde 'No iniciada' para una conciliación determinada de una cuenta del Libro mayor. Tipo de evento inferred | |||
| Conciliación intercompañía iniciada | Esta actividad señala el inicio del proceso para cotejar y conciliar transacciones entre distintos códigos de sociedad del mismo grupo corporativo. A menudo se inicia ejecutando un trabajo de conciliación o creando 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 requerir mucho tiempo. Analizar su duración y flujo es fundamental para agilizar el cierre del grupo y garantizar la exactitud de los estados financieros consolidados. Dónde obtenerlo Se infiere a partir de los cambios de estado en el módulo SAP Intercompany Matching and Reconciliation (ICMR) o de la creación de los primeros documentos de conciliación del período. Recopilar Realice un seguimiento de la fecha de creación o de 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 | |||
| Estados financieros generados | Esta actividad marca la creación de los estados financieros oficiales, como el balance y la cuenta de resultados. Representa la culminación de los procesos contables y de consolidación de cierre de período. | ||
| Por qué es importante Este es un hito importante del ciclo de Record to Report. Su momento es fundamental para cumplir los plazos de presentación de informes y proporcionar información oportuna a las partes interesadas. Dónde obtenerlo Lo ideal es capturarlo mediante una herramienta de gestión del cierre financiero, como SAP Financial Closing Cockpit, donde aparece 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. Recopilar Realice 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 | |||
| Período abierto para contabilizaciones | Marca el inicio del período financiero, cuando se abren los períodos de contabilización para registrar transacciones. Se trata de un cambio de configuración explícito y registrado, realizado por un administrador financiero en SAP, que permite contabilizar asientos en el nuevo período. | ||
| Por qué es importante Esta actividad actúa como el evento de inicio principal del proceso de cierre de período. Permite medir con precisión el tiempo total del ciclo y establece un comienzo claro para el análisis del proceso. Dónde obtenerlo Este evento se captura a partir de los documentos de modificación, en las tablas CDHDR y CDPOS, que registran los cambios en la tabla de control de períodos de contabilización T001B, normalmente ejecutados mediante la transacción OB52. Recopilar Filtre los registros de cambios de la tabla T001B relacionados con el ejercicio fiscal y el período específicos. Tipo de evento explicit | |||
| Período cerrado para contabilizaciones | Esta es la actividad final del ciclo, en la que 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 actúa como el evento de finalización definitivo del proceso. Es esencial para calcular el tiempo total del ciclo de cierre de período y analizar las tendencias de finalización del proceso. Dónde obtenerlo Al igual que la apertura de un período, este evento se captura a partir de los documentos de modificación, en las 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. Recopilar 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 | |||
| Balance de comprobación preparado | Indica que se ha generado y guardado un balance de comprobación para su revisión, lo que constituye un punto de control clave antes de crear los estados financieros finales. La captura de este evento suele depender de procedimientos en los que se guarda el resultado del informe. | ||
| Por qué es importante La preparación del balance de comprobación es un control de calidad crucial. Analizar su momento ayuda a comprender el nivel de preparación para los informes finales y puede poner de manifiesto retrasos en las actividades anteriores. Dónde obtenerlo A menudo no se trata de 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 marcas de usuario y fecha, o si el proceso se gestiona en una herramienta como SAP Financial Closing Cockpit. Recopilar Es necesario analizar el sistema para determinar si existe un mecanismo de registro fiable, como registros de ejecución de informes o listas de tareas del cockpit de cierre. Tipo de evento inferred | |||
| Devengos y provisiones contabilizados | Este evento registra la creación de asientos contables manuales para devengos, periodificaciones y otras provisiones necesarias para elaborar informes financieros precisos según el principio de devengo. Se trata de transacciones explícitas contabilizadas en el Libro mayor. | ||
| Por qué es importante El seguimiento de estas contabilizaciones ayuda a analizar el volumen y el momento de los ajustes manuales. Un volumen elevado puede indicar oportunidades de automatización o mejoras en los procesos anteriores. 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 pueden identificarse mediante tipos de documento específicos configurados para devengos. Recopilar Filtre los documentos de la tabla BKPF por tipo de documento, por ejemplo, 'SA' o tipos personalizados, y por 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, reduciendo el esfuerzo manual de conciliación. | ||
| Por qué es importante Esta actividad muestra el nivel de automatización del proceso de conciliación. Los fallos o las excepciones en estas ejecuciones pueden generar una carga considerable de trabajo manual y retrasos. Dónde obtenerlo Se captura a partir de los registros de ejecución de trabajos por lotes específicos, 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. Recopilar Supervise las marcas de tiempo de inicio y finalización 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 | Se trata de un procedimiento estándar de cierre mensual para revaluar partidas abiertas y saldos en moneda extranjera según los tipos de cambio de cierre del período. La ejecución de este programa contabiliza las diferencias de valoración resultantes. | ||
| Por qué es importante Garantiza el cumplimiento de las normas contables y proporciona una imagen financiera precisa. El seguimiento de esta actividad ayuda a garantizar que todas las valoraciones de moneda se realicen a tiempo. Dónde obtenerlo Se captura a partir de los registros de ejecución del programa de valoración de moneda extranjera, por ejemplo, FAGL_FCV. Los detalles del trabajo se almacenan en las tablas TBTCO y TBTCP. Recopilar Supervise los registros de ejecución de los trabajos relacionados con la transacción FAGL_FCV o con su 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 se trata de un proceso fuera de línea, pero puede capturarse si existe un paso formal de aprobación digital. | ||
| Por qué es importante Este es el control final de calidad y cumplimiento. El seguimiento de su momento es esencial para comprender el cumplimiento de los plazos de presentación de informes y la eficiencia general del ciclo de revisión por parte de la dirección. Dónde obtenerlo Este evento se captura si existe un Workflow o un campo de estado para la aprobación de los estados, por ejemplo, en SAP Financial Closing Cockpit o en un sistema de gestión documental. Recopilar 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, el proceso de consolidación es una actividad crítica. Supervisar estas tareas ayuda a agilizar el cierre del grupo y garantizar la presentación oportuna de informes consolidados. Dónde obtenerlo Se captura a partir 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. Recopilar 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 | Representa la finalización de los trabajos por lotes que transfieren datos resumidos desde submayores, como Cuentas por cobrar, Cuentas por pagar y Contabilidad de activos, al Libro mayor. Esto garantiza que todas las transacciones operativas subyacentes se reflejen en el Libro mayor antes de iniciar los procedimientos de cierre. | ||
| Por qué es importante Los retrasos en el cierre de los submayores pueden convertirse en un cuello de botella importante para todo el proceso. El seguimiento de esta actividad ayuda a identificar ineficiencias en la recopilación y la integración de datos procedentes 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 del libro mayor y la transferencia de datos. Los registros de trabajos se encuentran en las tablas TBTCO y TBTCP. Recopilar Identifique y supervise las marcas de tiempo de finalización de los trabajos por lotes relevantes en la vista de trabajos de SAP, mediante la 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 mediante SAP HANA Studio o Eclipse con ADT. Utilice ABAP Development Tools para buscar y verificar la existencia de las vistas CDS estándar mencionadas en la consulta, como I_JournalEntryItem, I_BatchJob e I_ConsolidationTaskLog. Para procesos como Account Reconciliation, puede ser necesario crear vistas CDS personalizadas, por ejemplo Z_I_ACCOUNTRECONCILIATION, para capturar 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 nuevo. 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: Acceda a la transacción
/IWFND/MAINT_SERVICEen el hub de SAP Gateway. Haga clic en 'Add Service', busque el servicio generado en el paso anterior y añádalo. De este modo, el servicio quedará activo y disponible para consultas. - Establezca la conexión de datos: Desde la herramienta de extracción que haya elegido, como Python, Power BI o una plataforma ETL específica, establezca una conexión con el servicio OData recién creado. Necesitará la URL del servicio y las credenciales adecuadas 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 correspondientes a los rangos de fechas, los códigos de sociedad y cualquier vista CDS personalizada o nombre de Batch Job para adaptarlos a su entorno SAP específico. Ejecute la consulta en el endpoint del servicio OData. Tenga en cuenta que OData utiliza una sintaxis diferente ($filter, $select), por lo que puede ser necesario traducir la lógica de la consulta UNION ALL en una serie de llamadas API independientes, una por actividad.
- Consolide los datos de actividad: Dado que OData normalmente no admite consultas UNION ALL complejas directamente en una sola llamada, deberá ejecutar 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 dentro de su herramienta cliente.
- Transforme y limpie los datos: Revise los datos consolidados. Asegúrese de que las columnas
EventTimeyEndTimeutilicen un formato de marca de tiempo coherente. Verifique queFinancialPeriodtenga el formato correcto, 'YYYY-MM'. Gestione según sea necesario los valores NULL de columnas comoResponsibleUseroDocumentNumber. - Exporte el registro de eventos: Exporte el conjunto de datos final y 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 ya estará listo para cargarlo en ProcessMind.
Configuración
- Vistas CDS: La consulta se basa en una combinación de 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 capturar el estado de procesos internos que no cubren las vistas estándar. - Rango de fechas: Defina un rango de fechas específico para la extracción con el fin de gestionar el volumen de datos. La consulta utiliza los marcadores de posición
[Start Date]y[End Date], que normalmente deberían abarcar entre 3 y 6 períodos fiscales completos para obtener un análisis significativo. - Filtros clave: El filtrado es fundamental para el rendimiento y la relevancia. Filtre siempre por
CompanyCode. Otros filtros importantes sonLedger(por ejemplo, '0L' para el libro mayor principal),FiscalYeary valores específicos deDocumentTypepara diferenciar entre contabilizaciones ordinarias, 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_SERVICEyS_RFC. Los servicios de SAP Gateway deben estar configurados y activados. - Rendimiento: Consultar
I_JournalEntryItempuede exigir muchos recursos. Aplique siempre filtros selectivos, especialmente en fechas, códigos de sociedad y libros mayores. Considere ejecutar la extracción fuera de las horas punta o utilizar una estrategia de carga incremental para la supervisión continua.
a 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 período fiscal, el alcance del código de sociedad y el rango de fechas de extracción. Utilice un rango que cubra 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 correspondencias de campos locales para los cambios de configuración del período de contabilización, la finalización de jobs, 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 profesionales para objetos de origen que no están garantizados en todas las implementaciones de SAP S/4HANA. Sustituya esos marcadores por vistas o tablas aprobadas de su sistema antes de ejecutar la consulta.
- Ejecute la consulta con credenciales de base de datos de solo lectura. La consulta crea explícitamente una fila de evento para cada actividad requerida y no infiere eventos adicionales a partir del orden de los eventos.
- Revise las columnas devueltas. FinancialPeriod es el identificador del caso, ActivityName es la actividad del evento y EventTime es la marca de tiempo requerida del evento. EndTime, ResponsibleUser, CompanyCode, GlAccountNumber, DocumentNumber, ReconciliationStatus y TargetCompletionDate se incluyen cuando el registro de origen los proporciona.
- Valide que todas las actividades requeridas estén presentes en el resultado, incluidas aquellas que pueden no tener registros de origen en un período concreto. Para los tipos de actividad que falten, la consulta devuelve una fila de validación con ActivityName establecido en Activity Coverage Validation. Elimine esa fila o gestiónela por separado antes de cargar los datos en ProcessMind si la importación de destino solo requiere eventos de negocio.
- Concilie eventos representativos con los registros de aplicación y los registros de jobs de SAP. Confirme que los eventos de asientos contables correspondan a registros de ACDOCA, que los eventos de jobs correspondan a registros de TBTCO y que los eventos de cambios correspondan a registros de CDHDR y CDPOS o a las fuentes de conciliación y aprobación configuradas.
- Exporte el resultado como CSV UTF-8 u otro formato tabular compatible con ProcessMind. Conserve los nombres exactos de las columnas FinancialPeriod, ActivityName y EventTime. Ordene por FinancialPeriod y EventTime y mantenga una fila por cada evento extraído explícitamente.
- Cargue el registro de eventos en ProcessMind y configure FinancialPeriod como identificador del caso, ActivityName como actividad y EventTime como marca de tiempo de inicio. Asigne EndTime como marca de tiempo de finalización cuando esté disponible y asigne las columnas restantes como atributos de evento o de caso.
Nota importante sobre la correspondencia 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 o la configuración de períodos de contabilización. 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 un marcador de posición como SQL ejecutable.
Configuración
- Acceso a la base de datos: Utilice un usuario de base de datos SAP HANA de solo lectura con autorización SELECT sobre ACDOCA, TBTCO, CDHDR, CDPOS y los objetos de origen configurados para el control de períodos de contabilización, 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.
- Rango 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.
- Período fiscal: Filtre por el ejercicio y el período fiscal utilizados por el código de sociedad. No dé por hecho que los períodos coinciden con el año natural si la variante de ejercicio fiscal es diferente.
- Código de sociedad: Aplique un filtro de código de sociedad cuando el proceso se limite a determinadas entidades jurídicas. Utilice [Configure based on your system] cuando el alcance se mantenga en una correspondencia 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 job: Incluya únicamente jobs 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 pueden no identificar todas las actividades de negocio.
- Fuentes de conciliación y aprobación: Configure objetos de origen verificados para las transiciones de estado de conciliación, las acciones de preparación, las aprobaciones, las fechas objetivo y la firma digital. Estas fuentes varían según los componentes y las extensiones de SAP implementados.
- Rendimiento: Restrinja los predicados sobre ejercicio fiscal, período fiscal, código de sociedad, 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 de códigos de sociedad, números de cuenta y números de documento.
- Requisitos previos: Confirme que están disponibles y contienen datos los componentes de SAP necesarios, las herramientas de conciliación, la funcionalidad de consolidación, el registro de jobs, la activación de documentos de modificación y cualquier registro de auditoría de informes o workflows.
- 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 la base de datos de su organización.
a 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 ¿Listo para comenzar?
Ayude a su organización a lograr una mayor eficiencia y cumplimiento mediante el uso de esta plantilla de datos. Empiece hoy mismo a transformar su proceso de Record to Report.
Optimice hoy su cierre y conciliación de Record to Report
Descubra ineficiencias y reduzca hasta un 30 % el tiempo de su ciclo de cierre.
No necesita tarjeta de crédito. Comience en cuestión de minutos.