Votre modèle de données Record to Report : clôture de période et rapprochement
Votre modèle de données Record to Report : clôture de période et rapprochement
- Attributs recommandés à collecter
- Activités clés à suivre pour analyser le processus
- Instructions détaillées pour l’extraction des données
Attributs Record to Report : clôture de période et rapprochement
| Nom | Description | ||
|---|---|---|---|
| Période financière FinancialPeriod | Identifiant unique du cycle de reporting financier, par exemple « 2023-12 » pour décembre 2023. Il sert de cas pour le processus de clôture de fin de période. | ||
| Description La période financière est l’identifiant de cas principal qui regroupe toutes les activités liées à la clôture des comptes pour une période donnée, généralement un mois civil ou une période comptable. Chaque période financière correspond à une exécution complète du processus de clôture de fin de période. Dans une analyse de Process Mining, cet attribut permet de suivre tout le cycle de vie d’une clôture périodique, de son lancement au reporting final. Il sert à comparer les temps de cycle entre différentes périodes, à repérer les parcours récurrents et à analyser les variations entre les clôtures mensuelles, trimestrielles et annuelles. En considérant chaque période comme un cas, les analystes peuvent mesurer les performances dans le temps et repérer les goulots d’étranglement systémiques. Pourquoi est-ce important ? Cet identifiant de cas essentiel définit le périmètre de l’analyse. Il permet de comparer les performances de clôture périodique dans le temps et de repérer les tendances ou les problèmes récurrents. Où trouver ces données Obtenu en combinant les champs Exercice (GJAHR) et Période comptable (MONAT) des en-têtes de documents financiers, généralement dans des tables comme BKPF. Exemples 2023-122024-032024-T1 | |||
| Activité ActivityName | Nom d’une étape ou d’une tâche précise du processus de clôture périodique, comme « Écriture d’ajustement comptabilisée » ou « Période comptable clôturée ». | ||
| Description Cet attribut représente un événement ou une tâche du processus de bout en bout de clôture périodique et de rapprochement. Les activités constituent les éléments de base de la carte du processus et montrent l’enchaînement des tâches. Elles sont souvent déduites d’une combinaison de codes de transaction, de types de documents ou de changements de statut dans SAP S/4HANA. L’analyse des activités est fondamentale en Process Mining. Elle permet de visualiser le déroulement du processus, de repérer les écarts par rapport à la procédure standard, de découvrir les goulots d’étranglement dus à des activités trop longues et de comprendre la fréquence et l’ordre des tâches. Elle est essentielle pour des Dashboards comme l’analyse des variantes de clôture périodique et le suivi de l’état de la clôture périodique en cours. Pourquoi est-ce important ? Cet attribut définit les étapes du processus. Il constitue la base de la carte du processus et permet d’analyser son déroulement, ses écarts et ses goulots d’étranglement. Où trouver ces données Cet attribut est déduit de différentes sources, comme les codes de transaction (TCODE), les types de documents (BLART) ou les champs de statut des tables liées aux tâches de clôture financière, par exemple dans SAP Financial Closing Cockpit. Exemples Période ouverte aux écrituresDébut du rapprochement des comptesÉtats financiers générésDébut du rapprochement intersociétés | |||
| Heure de début EventTime | Horodatage indiquant le début d’une activité précise ou le moment où elle a été enregistrée dans le système. | ||
| Description L’heure de l’événement indique la date et l’heure précises auxquelles une activité a eu lieu. Pour les écritures financières, il s’agit souvent de l’heure de création (CPUTM) ou de la date comptable (BUDAT) d’un document. Pour les changements de statut ou les tâches, il s’agit de l’horodatage auquel le changement a été consigné. Cet attribut est indispensable pour ordonner les activités chronologiquement et constitue la base de toutes les analyses temporelles. Il sert à calculer les temps de cycle entre les activités, la durée de tâches précises et la durée totale du processus de bout en bout. Il contribue directement au calcul d’indicateurs comme le temps de cycle moyen de clôture périodique et le temps moyen d’approbation des rapprochements. Pourquoi est-ce important ? Cet horodatage obligatoire permet d’ordonner les événements chronologiquement et sert de base à tous les calculs de durée et de performance. Où trouver ces données Cet attribut provient de champs d’horodatage comme la date de création (CPUDT) et l’heure de création (CPUTM) dans des tables comme BKPF, ou des champs de date de modification dans différentes tables de statut (par exemple, CDHDR et CDPOS). Exemples 2023-12-28T09:15:30Z2024-01-02T14:00:12Z2024-01-05T11:21:00Z | |||
| Code société CompanyCode | Identifiant unique d’une entité juridique ou d’une société au sein de l’organisation SAP. | ||
| Description Le code société représente une unité comptable indépendante au sein d’une entreprise, pour laquelle il est possible de créer un ensemble complet et autonome de comptes. Toutes les activités de clôture de période sont réalisées au niveau du code société. Cette dimension organisationnelle est fondamentale pour l’analyse financière. En Process Mining, elle permet de comparer le processus de clôture de période entre différentes entités juridiques. Le Dashboard « Analyse des variantes de clôture de période » utilise le code société pour repérer les incohérences et encourager la standardisation des procédures de clôture. Pourquoi est-ce important ? Fournit un contexte organisationnel essentiel pour comparer les processus entre différentes entités juridiques, repérer les écarts et mettre en évidence les bonnes pratiques. Où trouver ces données Présent dans presque toutes les tables financières de SAP, notamment dans la table d’en-tête BKPF (champ BUKRS). Exemples 10001710US01DE01 | |||
| Date d’achèvement cible TargetCompletionDate | Date prévue ou date limite pour achever une activité importante, comme la production des états financiers. | ||
| Description La date d’achèvement cible correspond à l’échéance interne ou externe d’une étape précise du processus de clôture de période. C’est la date à laquelle une tâche doit être terminée. Cet attribut est essentiel pour mesurer le respect du calendrier et des échéances. Il sert de référence au Dashboard « Respect des échéances de reporting » et au KPI « Taux de production des états financiers dans les délais », qui comparent cette date cible à Pourquoi est-ce important ? Permet d’évaluer le respect des échéances et d’améliorer le taux d’achèvement dans les délais des activités importantes de clôture. Où trouver ces données Ces données se trouvent souvent dans un système de gestion des tâches ou de planification, comme SAP Financial Closing cockpit, où les listes de tâches de clôture comportent des dates de fin prévues. Exemples 2024-01-05T23:59:59Z2024-04-04T23:59:59Z2024-07-05T23:59:59Z | |||
| Heure de fin EndTime | Horodatage indiquant le moment où une activité a été achevée. | ||
| Description L’heure de fin marque l’achèvement d’une tâche. Pour certains événements instantanés consignés dans le système, elle peut correspondre à l’heure de début. Pour les activités dont la durée est mesurable, elle indique l’horodatage de fin. Associé à l’heure de début, cet attribut est indispensable au calcul de la durée de traitement de chaque activité. Il est essentiel pour analyser les performances, repérer les goulots d’étranglement et optimiser la répartition des ressources. Des Dashboards comme celui de l’efficacité de la répartition des ressources s’appuient largement sur des heures de fin exactes pour calculer le temps que les utilisateurs consacrent aux tâches. Pourquoi est-ce important ? Cet attribut permet de calculer la durée de traitement des activités, ce qui est essentiel pour repérer les goulots d’étranglement et analyser l’efficacité. Où trouver ces données Comme l’heure de début, cet attribut peut provenir de différents champs d’horodatage. Pour certaines activités, il peut correspondre à l’heure de début. Pour d’autres, il peut s’agir d’un champ distinct indiquant la date d’achèvement ou de modification dans les tables de l’application ou les journaux de modification (CDHDR et CDPOS). Exemples 2023-12-28T09:16:10Z2024-01-02T17:30:00Z2024-01-05T11:21:00Z | |||
| Numéro de compte général GlAccountNumber | Identifiant d’un compte précis dans le grand livre. | ||
| Description Le numéro de compte général identifie les comptes utilisés pour enregistrer les opérations financières, comme la trésorerie, les dettes fournisseurs ou les produits. De nombreuses activités de clôture de période, telles que les rapprochements et les écritures d’ajustement, sont directement liées à des comptes généraux précis. Cet attribut est essentiel à l’analyse détaillée des processus financiers. Le Dashboard « Analyse des écritures d’ajustement » l’utilise pour présenter le volume d’ajustements par compte et aider à repérer les domaines problématiques. Le KPI « Temps moyen de rapprochement des comptes généraux » s’appuie également sur cet attribut pour localiser les retards associés à certains comptes. Pourquoi est-ce important ? Relie les activités du processus à des comptes financiers précis, ce qui permet d’analyser en détail les rapprochements et les écritures comptables afin d’identifier les causes profondes des problèmes. Où trouver ces données Présent dans les tables de postes des documents financiers, principalement BSEG (champ HKONT) ou dans la table universelle du journal comptable ACDOCA de S/4HANA. Exemples 113100004000000073000000 | |||
| Numéro de document DocumentNumber | Identifiant unique d’un document financier, par exemple une écriture comptable. | ||
| Description SAP attribue un numéro unique à chaque écriture financière. Ce numéro sert de référence principale pour suivre et auditer les opérations individuelles qui composent les activités du processus de clôture. Bien qu’il ne constitue pas à lui seul un ID de cas, il renvoie directement au système source. Les analystes peuvent l’utiliser pour passer d’une vue Process Mining aux détails de l’opération correspondante dans SAP S/4HANA et en rechercher la cause profonde. Il est particulièrement utile pour examiner des écritures d’ajustement ou des écritures de rapprochement précises. Pourquoi est-ce important ? Fournit une référence directe à l’opération correspondante dans SAP, ce qui facilite l’accès aux détails et l’audit à partir du modèle de processus. Où trouver ces données Situé dans la table d’en-tête des documents financiers BKPF (champ BELNR) et dans les tables de postes telles que BSEG ou ACDOCA. Exemples 100000045190000001300000023 | |||
| Statut du rapprochement ReconciliationStatus | Statut d’une activité de rapprochement de compte, par exemple « Ouvert », « En cours » ou « Approuvé ». | ||
| Description Cet attribut suit l’état du processus de rapprochement pour un compte ou une tâche donnée. Il indique si le rapprochement a commencé, a été soumis pour examen, approuvé ou rejeté. Les changements de statut constituent des événements importants du processus. Il est essentiel au Dashboard « Analyse des retouches de rapprochement ». L’analyse de la séquence des statuts permet de repérer les cas où un statut « Approuvé » est suivi d’ajustements supplémentaires, signe de retouches. Cet attribut contribue aussi au KPI « Taux de rapprochement approuvé du premier coup », en indiquant quels rapprochements sont approuvés sans rejet ni réouverture préalable. Pourquoi est-ce important ? Suit l’avancement et le résultat des tâches de rapprochement, ce qui permet de repérer les retouches, de mesurer les taux d’approbation et d’analyser les goulots d’étranglement. Où trouver ces données Ces informations sont généralement stockées dans les tables associées à l’outil de rapprochement utilisé, comme SAP Financial Closing cockpit ou SAP Account Substantiation and Automation de BlackLine. Exemples Non commencéEn préparationApprouvéRejeté | |||
| Utilisateur responsable ResponsibleUser | Identifiant de l’utilisateur qui a exécuté l’activité ou qui est responsable de la tâche. | ||
| Description Cet attribut identifie l’employé qui a effectué une tâche donnée, comme la comptabilisation d’une écriture ou l’approbation d’un rapprochement. Il est généralement enregistré sous forme d’identifiant utilisateur dans les journaux système et les en-têtes de documents. L’analyse du processus par utilisateur est essentielle pour comprendre la répartition de la charge de travail, les performances individuelles et les besoins de formation. Le Dashboard d’efficacité de la répartition des ressources utilise directement cet attribut pour visualiser les temps de traitement des activités par utilisateur. Il peut aussi aider à repérer les tâches à automatiser en mettant en évidence celles que de nombreux utilisateurs effectuent de façon répétitive. Pourquoi est-ce important ? Cet attribut relie les activités du processus aux personnes qui les ont effectuées. Il permet d’analyser la charge de travail, d’optimiser les ressources et de gérer les performances. Où trouver ces données Cet attribut figure généralement dans les tables d’en-tête de documents comme BKPF (champ USNAM, nom d’utilisateur) ou dans les tables de documents de modification comme CDHDR (champ USERNAME). Exemples ABROWNCSMITHDJOHNSON | |||
| Code de transaction TransactionCode | Code de transaction SAP (T-code) utilisé pour exécuter l’activité. | ||
| Description Un code de transaction est un raccourci qui permet de lancer une fonction ou un programme précis dans SAP. Par exemple, FB01 sert à comptabiliser un document et FAGLB03 à afficher les soldes des comptes généraux. Le T-code indique souvent clairement la nature technique de l’activité réalisée. Cet attribut aide à définir les activités du modèle de processus. Il permet de distinguer de manière fiable les activités automatisées des activités manuelles et de comprendre précisément comment une tâche a été exécutée dans le système. L’analyse des T-codes peut révéler des méthodes non standard ou inefficaces utilisées par les employés. Pourquoi est-ce important ? Donne une vue technique, au niveau du système, de la manière dont une activité a été réalisée. Cette information permet de repérer les étapes manuelles ou automatisées ainsi que les procédures non standard. Où trouver ces données Présent dans la table d’en-tête des documents financiers BKPF (champ TCODE) ou dans les journaux des modifications. Exemples FB01FAGL_FCVF.13 | |||
| Correspond à une retouche de rapprochement IsReconciliationRework | Indicateur booléen vrai lorsqu’une activité de rapprochement est suivie d’un rejet ou d’ajustements supplémentaires. | ||
| Description Cet attribut calculé repère les retouches dans le sous-processus de rapprochement. La règle signale les activités ou les cas où un rapprochement est rejeté, rouvert après sa soumission ou suivi d’écritures d’ajustement alors qu’il était censé être terminé pour un compte général. Cet indicateur est conçu pour alimenter le Dashboard « Analyse des retouches de rapprochement » et le KPI « Taux de retouches de rapprochement ». Il transforme des séquences de processus complexes en un attribut simple et mesurable qui quantifie les retouches et aide les équipes à améliorer la qualité dès la première exécution. Pourquoi est-ce important ? Quantifie directement les retouches, une source importante d’inefficacité des processus, et permet de cibler les analyses et les améliorations de la qualité des rapprochements. Où trouver ces données Calculé à partir de la séquence des activités. Par exemple, l’indicateur passe à vrai si la séquence « Rapprochement approuvé » est suivie de « Écriture d’ajustement comptabilisée » pour le même compte général au cours de la même période. Exemples truefalse | |||
| Date d’achèvement réelle ActualCompletionDate | Date réelle d’achèvement d’une activité importante ou de l’ensemble de la clôture de période. | ||
| Description Cet attribut enregistre la date réelle d’achèvement d’une étape importante. Il correspond à l’horodatage de l’approbation finale des états financiers ou de la clôture de la période comptable. Il complète Pourquoi est-ce important ? Indique la date réelle des étapes importantes, nécessaire pour mesurer le respect des échéances prévues et analyser les retards. Où trouver ces données Dérivé de l’EventTime de la dernière activité d’une séquence, par exemple « États financiers approuvés » ou « Période clôturée pour comptabilisation ». Exemples 2024-01-06T10:00:00Z2024-04-05T17:00:00Z2024-07-04T11:00:00Z | |||
| Dernière mise à jour des données LastDataUpdate | Horodatage indiquant la dernière actualisation ou extraction des données du système source. | ||
| Description Cet attribut enregistre la date et l’heure de la dernière extraction des données. Il indique à quel point les données analysées dans l’outil de Process Mining sont récentes. Il sert principalement à la gouvernance des données et à informer les utilisateurs. Les lecteurs de Dashboard peuvent voir la date des données analysées, ce qui est particulièrement important pour les Dashboards de suivi quasi en temps réel, comme « État de la clôture périodique en cours ». Ils peuvent ainsi savoir si les données affichées datent d’aujourd’hui, d’hier ou de la semaine dernière. Pourquoi est-ce important ? Cet attribut informe les utilisateurs de la date des données et leur permet de savoir à quel point les analyses du processus sont récentes. Où trouver ces données Il s’agit de métadonnées générées et ajoutées au jeu de données par l’outil d’extraction ou d’ETL au moment de l’exécution. Exemples 2024-06-10T08:00:00Z2024-06-09T08:00:00Z | |||
| Devise du document DocumentCurrency | Code de devise des montants figurant dans le document financier. | ||
| Description Cet attribut précise la devise dans laquelle l’opération a été enregistrée, par exemple USD, EUR ou JPY. Il apporte un contexte essentiel à l’attribut Dans les organisations présentes dans plusieurs pays, l’analyse par devise peut être importante. Elle garantit une interprétation correcte des montants et est nécessaire pour convertir les valeurs dans une devise de reporting unique lors d’une analyse agrégée. Sans ce contexte, il est impossible de comparer ou d’additionner utilement les valeurs de Pourquoi est-ce important ? Apporte le contexte nécessaire à l’interprétation correcte des montants, notamment dans un environnement multidevise. Où trouver ces données Situé dans la table d’en-tête des documents financiers BKPF (champ WAERS). Exemples USDEURJPY | |||
| Est automatisé IsAutomated | Indicateur booléen précisant si l’activité a été réalisée par un utilisateur système ou par un processus automatisé. | ||
| Description Cet indicateur distingue les tâches réalisées manuellement par une personne de celles exécutées automatiquement par le système, comme un traitement par lots planifié pour l’évaluation des devises ou des opérations de lettrage automatisées. Il est généralement déduit de l’identifiant Cet attribut est essentiel pour comprendre le degré d’automatisation du processus de clôture. Il aide à repérer les possibilités d’automatisation en mettant en évidence les tâches manuelles à fort volume. Il sert également à rechercher les causes profondes des problèmes et à déterminer si les goulots d’étranglement se situent dans les étapes manuelles ou automatisées. Pourquoi est-ce important ? Distingue les activités humaines des activités système, ce qui permet de repérer les possibilités d’automatisation et d’analyser l’efficacité des deux types d’activité. Où trouver ces données Il s’agit d’un attribut dérivé, généralement calculé à partir d’une règle appliquée au champ « ResponsibleUser » (par exemple, en recherchant des identifiants d’utilisateur système ou de traitement par lots tels que « BATCHUSER ») ou au code de transaction. Exemples truefalse | |||
| Est dans les délais IsOnTime | Indicateur booléen vrai lorsqu’une étape importante est achevée à la date cible ou avant celle-ci. | ||
| Description Cet attribut indique simplement si l’échéance a été respectée. Il est calculé en comparant Il s’agit du calcul central du KPI « Taux de production des états financiers dans les délais ». En convertissant la comparaison des dates en un statut clair, « dans les délais » ou « en retard », il facilite le suivi des performances dans les Dashboards et les rapports. Il aide à mesurer l’efficacité des initiatives visant à accélérer la clôture. Pourquoi est-ce important ? Présente le respect des échéances sous la forme d’un résultat clair, positif ou négatif, et facilite le suivi et le reporting des activités terminées dans les délais. Où trouver ces données Champ calculé : Exemples truefalse | |||
| Montant du document DocumentAmount | Valeur totale de l’écriture financière dans la devise du document. | ||
| Description Cet attribut représente la valeur monétaire associée à un document financier. Pour les ajustements de fin de période, il peut s’agir du montant de la provision ou de la correction comptabilisée. L’analyse des montants permet d’évaluer l’importance financière des opérations. Les analystes peuvent ainsi examiner en priorité les écritures d’ajustement de montant élevé, qui présentent un risque financier potentiellement supérieur. Il est également possible de filtrer la cartographie du processus pour ne conserver que les opérations dépassant un certain seuil et se concentrer sur les activités les plus significatives. Pourquoi est-ce important ? Ajoute une dimension financière à l’analyse et permet de prioriser les problèmes selon leur incidence monétaire et leur importance. Où trouver ces données Cette valeur doit généralement être calculée à partir des tables de postes telles que BSEG ou ACDOCA (champ WRBTR, montant dans la devise du document). Exemples 15000.00250.75-500.00 | |||
| Système source SourceSystemId | Identifiant de l’instance ou du client SAP S/4HANA dont les données ont été extraites. | ||
| Description Cet attribut indique le système d’origine des données. Dans les environnements qui comptent plusieurs instances SAP, par exemple pour différentes régions ou unités opérationnelles, il est essentiel pour distinguer les sources de données. Il sert principalement à la gouvernance des données, aux audits et à la vérification de leur intégrité. Dans une analyse, il peut servir de filtre pour comparer les processus de différents systèmes sources lorsque leurs données sont réunies dans un même modèle de Process Mining. Pourquoi est-ce important ? Cet attribut fournit des informations essentielles sur la provenance des données et leur contexte. Il permet d’en connaître clairement l’origine, en particulier dans les environnements comportant plusieurs systèmes. Où trouver ces données Il s’agit généralement de métadonnées ajoutées lors de l’extraction des données, souvent à partir de l’identifiant système (SY-SYSID) ou du client (SY-MANDT) dans SAP. Exemples S4H_PROD_100S4H_QAS_200ECC_LEGACY_001 | |||
| Temps de cycle de clôture de période PeriodCloseCycleTime | Durée totale d’une clôture de période, de la première à la dernière activité. | ||
| Description Cette métrique représente la durée totale du processus de clôture de période pour un cas donné (période financière). Elle se calcule en soustrayant l’horodatage de la première activité de celui de la dernière activité de la période. Il s’agit d’un indicateur clé de performance, qui alimente directement le Dashboard « Vue d’ensemble du temps de cycle de clôture de période » et le KPI « Temps de cycle moyen de clôture de période ». Il donne une mesure globale de l’efficacité et de la rapidité du processus de clôture, et permet de comparer les résultats dans le temps ainsi qu’entre différents codes société. Pourquoi est-ce important ? Constitue le KPI principal de la durée totale du processus et permet de suivre à un niveau global les gains d’efficacité au fil du temps. Où trouver ces données Calculé au niveau du cas : Exemples P5D10H30MP7D2HP6D | |||
| Type d’écriture comptable JournalEntryType | Type de document financier comptabilisé, qui distingue les écritures standard, les provisions et les ajustements. | ||
| Description Le type d’écriture comptable, appelé type de document dans la terminologie SAP, est une clé qui classe les documents comptables. Il détermine les types de comptes auxquels un document peut être imputé et permet de distinguer différentes opérations, comme une facture fournisseur (KR), une écriture au grand livre (SA) ou un paiement client (DZ). Dans le cadre de la clôture de période, cet attribut est essentiel pour isoler certains types d’activités. Il permet, par exemple, de se concentrer sur les écritures d’ajustement pour alimenter le Dashboard « Analyse des écritures d’ajustement » et le KPI « Nombre d’écritures d’ajustement ». Il contribue également au calcul du « Taux d’écritures manuelles ». Pourquoi est-ce important ? Classe les opérations financières afin de cibler certains types d’écritures, comme les ajustements manuels, qui comptent pour une clôture de période efficace. Où trouver ces données Il s’agit d’un champ standard de la table d’en-tête des documents financiers BKPF (champ BLART). Exemples SAKRAB | |||
Activités Record to Report : clôture de période et rapprochement
| Activité | Description | ||
|---|---|---|---|
| Début du rapprochement des comptes | Cet événement marque le début du processus manuel ou semi-automatisé de justification des soldes des comptes du grand livre. Il est déduit du passage du statut d’un rapprochement de « Nouveau » à « En cours », ou de la consignation de la première action du préparateur. | ||
| Pourquoi est-ce important ? Cette étape clé permet de comprendre la durée et les efforts nécessaires à la justification des soldes du bilan. Elle aide à repérer les comptes ou les services qui commencent leurs rapprochements tardivement. Où trouver ces données Cet événement est généralement extrait d’un outil dédié au rapprochement, comme SAP Account Substantiation and Automation de BlackLine, ou d’un autre système tiers. Il est déduit des horodatages des changements de statut. Données à recueillir Suivez l’horodatage du premier changement de statut depuis l’état « Non démarré » pour le rapprochement d’un compte du grand livre donné. Type d’événement inferred | |||
| Début du rapprochement intersociétés | Cette activité marque le début du rapprochement des opérations entre différents codes société d’un même groupe. Elle est souvent lancée par l’exécution d’un traitement de rapprochement ou la création d’un nouveau dossier de rapprochement dans l’outil ICMR de SAP. | ||
| Pourquoi est-ce important ? Le rapprochement intersociétés est souvent complexe et long. L’analyse de sa durée et de son déroulement est importante pour optimiser la clôture du groupe et garantir l’exactitude des états financiers consolidés. Où trouver ces données Cet événement est déduit des changements de statut dans le module SAP Intercompany Matching and Reconciliation (ICMR), ou de la création des premiers documents de rapprochement de la période. Données à recueillir Suivez la date de création ou l’horodatage du changement de statut des unités de rapprochement dans l’outil ICMR pour la période concernée. Type d’événement inferred | |||
| Écriture d’ajustement comptabilisée | Cet événement correspond à une écriture comptable corrective passée après les premiers rapprochements, généralement pour corriger les écarts repérés lors de la révision. Il s’agit d’une opération explicite comptabilisée dans le grand livre. | ||
| Pourquoi est-ce important ? Un nombre élevé d’écritures d’ajustement indique souvent une qualité insuffisante dès la première exécution des processus en amont ou des rapprochements. Leur analyse est essentielle pour repérer les causes profondes des erreurs et réduire les reprises. Où trouver ces données Ces écritures sont enregistrées sous forme de documents explicites dans les tables ACDOCA et BKPF. Elles peuvent être repérées à l’aide de types de documents spécifiques, de dates comptables tardives dans le cycle de clôture ou de descriptions particulières. Données à recueillir Filtrez les écritures comptables de la table BKPF en combinant le type de document et la date comptable par rapport aux activités de rapprochement. Type d’événement explicit | |||
| États financiers générés | Cette activité marque la création des états financiers officiels, comme le bilan et le compte de résultat. Elle représente l’aboutissement des processus de comptabilité et de consolidation de fin de période. | ||
| Pourquoi est-ce important ? Cette étape importante du cycle Record to Report doit être réalisée dans les délais pour respecter les échéances de reporting et fournir des informations à temps aux parties prenantes. Où trouver ces données L’idéal est d’extraire cet événement d’un outil de gestion de la clôture financière comme SAP Financial Closing Cockpit, où il correspond à une tâche explicite. Sinon, il faut le déduire des journaux de génération des rapports ou des horodatages de création des fichiers. Données à recueillir Suivez le statut d’achèvement de la tâche « Générer les états financiers » dans un outil de clôture, ou analysez les journaux d’exécution des rapports. Type d’événement inferred | |||
| Période comptable clôturée | Cette dernière activité du cycle consiste à clôturer officiellement la période comptable afin d’empêcher toute nouvelle opération. Elle garantit l’intégrité des données utilisées dans les rapports financiers définitifs. | ||
| Pourquoi est-ce important ? Cette activité constitue l’événement de fin du processus. Elle est indispensable au calcul du temps de cycle total de clôture périodique et à l’analyse des tendances d’achèvement du processus. Où trouver ces données Comme pour l’ouverture d’une période, cet événement est extrait des documents de modification (tables CDHDR et CDPOS), qui consignent les mises à jour de la table de contrôle des périodes comptables T001B au moyen de la transaction OB52. Données à recueillir Filtrez les journaux de modification de la table T001B pour repérer la clôture de l’exercice et de la période concernés. Type d’événement explicit | |||
| Période ouverte aux écritures | Cet événement marque le début de la période financière, lorsque les périodes comptables sont ouvertes à l’enregistrement des opérations. Il s’agit d’une modification de configuration explicite, consignée dans SAP et effectuée par un administrateur financier, qui autorise les écritures comptables pour la nouvelle période. | ||
| Pourquoi est-ce important ? Cette activité constitue l’événement de début principal du processus de clôture de fin de période. Elle permet de mesurer précisément le temps de cycle total et fournit un point de départ clair pour l’analyse du processus. Où trouver ces données Cet événement est extrait des documents de modification (tables CDHDR et CDPOS), qui consignent les changements apportés à la table de contrôle des périodes comptables T001B, généralement au moyen de la transaction OB52. Données à recueillir Filtrez les journaux de modification de la table T001B selon l’exercice et la période concernés. Type d’événement explicit | |||
| Rapprochement du compte approuvé | Cette activité marque l’approbation finale du rapprochement d’un compte du grand livre. Elle confirme que le solde est justifié et que les problèmes éventuels ont été résolus. Elle est déduite du passage au statut « Approuvé » dans un outil de rapprochement. | ||
| Pourquoi est-ce important ? Cette étape marque la fin d’une activité de contrôle importante. Le suivi des délais d’approbation aide à repérer les goulots d’étranglement lors de la révision et permet de mesurer les reprises ainsi que le taux de réussite dès la première exécution. Où trouver ces données Cet événement est extrait d’un système de gestion des rapprochements, comme SAP Account Substantiation and Automation, en suivant l’horodatage du statut d’approbation finale. Données à recueillir Repérez l’horodatage auquel le champ de statut du rapprochement passe à son état final « Approuvé ». Type d’événement inferred | |||
| Balance générale préparée | Cet événement indique qu’une balance générale a été générée et enregistrée pour examen. Il constitue un point de contrôle important avant la création des états financiers définitifs. Son extraction repose souvent sur des procédures qui enregistrent le résultat du rapport. | ||
| Pourquoi est-ce important ? La préparation de la balance générale constitue un contrôle qualité important. L’analyse de son calendrier permet d’évaluer si les données sont prêtes pour l’établissement des rapports définitifs et de repérer les retards dans les activités précédentes. Où trouver ces données Il ne s’agit souvent pas d’un événement explicite. Il peut être déduit de l’exécution d’une transaction de reporting spécifique si les variantes sont enregistrées avec l’utilisateur et la date, ou si le processus est géré dans un outil comme SAP Financial Closing Cockpit. Données à recueillir Une analyse du système est nécessaire pour déterminer s’il existe un mécanisme de journalisation fiable, comme les journaux d’exécution des rapports ou les listes de tâches du cockpit de clôture. Type d’événement inferred | |||
| Charges à payer et provisions comptabilisées | Cet événement correspond à la création d’écritures comptables manuelles pour les charges à payer, les charges constatées d’avance et les autres provisions nécessaires à l’établissement de comptes financiers selon la comptabilité d’engagement. Il s’agit d’opérations explicites comptabilisées dans le grand livre. | ||
| Pourquoi est-ce important ? Le suivi de ces écritures permet d’analyser le volume et le calendrier des ajustements manuels. Un volume élevé peut signaler des possibilités d’automatisation ou d’amélioration des processus en amont. Où trouver ces données Ces opérations sont enregistrées sous forme d’écritures explicites dans la table de journal universel ACDOCA et la table d’en-tête BKPF. Elles peuvent être repérées à l’aide des types de documents configurés pour les charges à payer. Données à recueillir Filtrez les documents de la table BKPF par type de document (par exemple, « SA » ou des types personnalisés) et par date comptable dans la période concernée. Type d’événement explicit | |||
| États financiers approuvés | Cet événement correspond à l’approbation finale des états financiers par la direction habilitée avant leur publication. Cette étape se déroule souvent hors ligne, mais peut être enregistrée si une procédure d’approbation numérique formelle existe. | ||
| Pourquoi est-ce important ? Il s’agit du dernier contrôle qualité et de conformité. Le suivi de son calendrier est essentiel pour évaluer le respect des échéances de reporting et l’efficacité globale du cycle de révision par la direction. Où trouver ces données Cet événement peut être extrait si un flux de travail ou un champ de statut indique l’approbation des états financiers, par exemple dans SAP Financial Closing Cockpit ou un système de gestion documentaire. Données à recueillir Repérez un champ de données et un horodatage qui indiquent l’approbation finale du dossier des états financiers. Type d’événement inferred | |||
| Exécution de l’évaluation des devises étrangères | Cette procédure standard de fin de mois réévalue les postes ouverts et les soldes en devises étrangères selon les taux de change de fin de période. L’exécution du programme comptabilise les écarts d’évaluation qui en résultent. | ||
| Pourquoi est-ce important ? Cette activité contribue au respect des normes comptables et à l’exactitude des états financiers. Son suivi permet de vérifier que les évaluations des devises sont effectuées dans les délais. Où trouver ces données Cet événement est extrait des journaux d’exécution du programme d’évaluation des devises étrangères (par exemple, FAGL_FCV). Les détails des traitements sont stockés dans les tables TBTCO et TBTCP. Données à recueillir Suivez les journaux d’exécution des traitements liés à la transaction FAGL_FCV ou au programme sous-jacent. Type d’événement explicit | |||
| Exécution du lettrage automatique | Cet événement correspond à l’exécution de programmes de lettrage automatique dans SAP, comme le traitement de lettrage GR/IR (réception de marchandises/réception de facture). Ces traitements rapprochent et lettrent les postes ouverts de certains comptes du grand livre, ce qui réduit le travail manuel de rapprochement. | ||
| Pourquoi est-ce important ? Cette activité montre le degré d’automatisation du processus de rapprochement. Les échecs ou les exceptions lors de ces traitements peuvent entraîner beaucoup de travail manuel et des retards. Où trouver ces données Cet événement est extrait des journaux d’exécution de traitements par lots spécifiques, comme F.13 ou F.13E pour le lettrage automatique. Les tables TBTCO et TBTCP contiennent les détails d’exécution. Données à recueillir Suivez les horodatages de début et de fin des traitements associés à des transactions comme F.13 dans les journaux des traitements SAP. Type d’événement explicit | |||
| Tâches de consolidation exécutées | Cet événement correspond à l’exécution d’activités de consolidation dans SAP Group Reporting, comme la conversion des devises, le reclassement et l’élimination des profits intersociétés. Ces tâches sont généralement gérées et consignées dans le moniteur de consolidation. | ||
| Pourquoi est-ce important ? Pour les organisations qui comptent plusieurs entités juridiques, la consolidation est une étape déterminante du processus. Le suivi de ces tâches aide à optimiser la clôture du groupe et à produire les états financiers consolidés dans les délais. Où trouver ces données Cet événement est extrait des journaux de statut du Data Monitor ou du Consolidation Monitor de SAP S/4HANA for Group Reporting. Chaque tâche comporte généralement un utilisateur, un horodatage et un statut. Données à recueillir Extrayez les journaux d’exécution des tâches des tables sous-jacentes au moniteur de consolidation de Group Reporting. Type d’événement explicit | |||
| Transfert des données des livres auxiliaires terminé | Cet événement correspond à la fin des traitements par lots qui transfèrent les données récapitulatives des livres auxiliaires, comme les comptes clients, les comptes fournisseurs et la comptabilité des immobilisations, vers le grand livre. Il garantit que toutes les opérations sous-jacentes sont prises en compte dans le grand livre avant le début des procédures de clôture. | ||
| Pourquoi est-ce important ? Les retards de clôture des livres auxiliaires peuvent constituer un goulot d’étranglement majeur pour l’ensemble du processus. Le suivi de cette activité aide à repérer les inefficacités dans la collecte et l’intégration des données provenant des systèmes sources. Où trouver ces données Cet événement est déduit du statut de réussite des traitements par lots chargés du règlement des comptes et du transfert des données. Les journaux des traitements figurent dans les tables TBTCO et TBTCP. Données à recueillir Repérez et suivez les horodatages de fin des traitements par lots concernés dans la vue des traitements SAP (transaction SM37). Type d’événement explicit | |||
Guides d’extraction
Étapes
- Repérez et vérifiez les vues CDS : Connectez-vous à votre système SAP S/4HANA avec SAP HANA Studio ou Eclipse et ADT. Utilisez les outils de développement ABAP pour rechercher et vérifier l’existence des vues CDS standard mentionnées dans la requête, telles que I_JournalEntryItem, I_BatchJob et I_ConsolidationTaskLog. Pour des processus comme le rapprochement des comptes, vous devrez peut-être créer des vues CDS personnalisées, par exemple Z_I_ACCOUNTRECONCILIATION, afin de consigner les changements de statut.
- Exposez les vues CDS via OData : Dans le système dorsal SAP, utilisez la transaction
SEGW(Gateway Service Builder) pour créer un projet. Faites un clic droit sur le dossier Data Model et sélectionnez « Reference -> Data Source ». Ajoutez les vues CDS requises. Générez les objets d’exécution pour créer un service OData qui expose ces vues à des applications externes. - Activez le service OData : Accédez à la transaction
/IWFND/MAINT_SERVICEsur le hub SAP Gateway. Cliquez sur « Add Service », recherchez le service généré à l’étape précédente et ajoutez-le. Le service est alors actif et peut être interrogé. - Établissez la connexion aux données : Depuis l’outil d’extraction de données de votre choix, par exemple Python, Power BI ou une plateforme ETL dédiée, connectez-vous au service OData nouvellement créé. Vous aurez besoin de l’URL du service et d’identifiants autorisés à accéder aux vues CDS.
- Adaptez et exécutez la requête : Copiez la requête SQL fournie. Remplacez les valeurs fictives correspondant aux plages de dates, aux codes société et aux noms des vues CDS personnalisées ou des traitements par lots afin qu’elles correspondent à votre environnement SAP. Exécutez la requête sur le point de terminaison du service OData. OData utilise une syntaxe différente (
$filter,$select) ; vous devrez peut-être traduire la logique de la requête UNION ALL en plusieurs appels API distincts, un par activité. - Regroupez les données d’activité : OData ne prend généralement pas en charge les requêtes UNION ALL complexes en un seul appel. Vous devrez donc envoyer une requête distincte pour chaque bloc d’activité. Regroupez les résultats de tous les appels dans un seul jeu de données ou tableau dans votre outil client.
- Transformez et nettoyez les données : Vérifiez les données regroupées. Assurez-vous que les colonnes
EventTimeetEndTimeutilisent un format d’horodatage cohérent. Vérifiez queFinancialPeriodrespecte le format « YYYY-MM ». Traitez au besoin les valeurs NULL dans des colonnes telles queResponsibleUserouDocumentNumber. - Exportez le journal d’événements : Exportez le jeu de données final regroupé dans un fichier CSV. Vérifiez que les en-têtes de colonnes correspondent aux attributs requis :
FinancialPeriod,ActivityName,EventTime,EndTime,ResponsibleUser, etc. Le fichier est alors prêt à être importé dans ProcessMind.
Configuration
- Vues CDS : La requête combine des vues CDS standard et personnalisées. Les vues standard telles que
I_JournalEntryItem(pour les écritures comptables) etI_BatchJob(pour les traitements automatisés) sont indispensables. Des vues personnalisées, commeZ_I_ACCOUNTRECONCILIATION, sont souvent nécessaires pour consigner le statut de processus internes que les vues standard ne couvrent pas. - Plage de dates : Définissez une plage de dates précise pour maîtriser le volume de données extrait. La requête utilise les valeurs fictives
[Start Date]et[End Date], qui devraient généralement couvrir de 3 à 6 périodes comptables complètes pour permettre une analyse pertinente. - Filtres clés : Les filtres sont essentiels pour les performances et la pertinence des résultats. Filtrez toujours par
CompanyCode. Parmi les autres filtres importants figurentLedger(par exemple, « 0L » pour le grand livre principal),FiscalYearet certaines valeurs deDocumentTypepermettant de distinguer les écritures courantes, les charges à payer et les ajustements. - Prérequis : L’utilisateur qui effectue l’extraction doit disposer dans SAP des autorisations nécessaires pour accéder aux vues CDS indiquées et exécuter les services OData, par exemple les objets d’autorisation
S_SERVICEetS_RFC. Les services SAP Gateway doivent être configurés et activés. - Performances : L’interrogation de
I_JournalEntryItempeut solliciter fortement les ressources. Appliquez toujours des filtres sélectifs, notamment sur les dates, les codes société et les grands livres. Envisagez d’effectuer l’extraction en dehors des heures de pointe ou d’utiliser un chargement incrémentiel pour assurer un suivi continu.
Exemple de requête 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]'; Étapes
- Vérifiez que vous disposez d’un accès direct en lecture au schéma SAP HANA contenant les tables applicatives requises, puis identifiez le propriétaire du schéma pour ACDOCA, TBTCO, CDHDR et CDPOS. Remplacez la valeur fictive du schéma dans la requête par le nom de schéma approuvé.
- Confirmez l’exercice comptable, la période comptable, le périmètre des codes société et la plage de dates d’extraction. Choisissez une plage couvrant l’ensemble du cycle de clôture, généralement de trois à six mois, et remplacez les paramètres de date par des valeurs adaptées à votre système.
- Vérifiez les associations de champs locales pour les changements de configuration des périodes comptables, la fin des traitements par lots, les changements de statut des rapprochements, l’exécution de la consolidation, la génération des rapports et les enregistrements d’approbation. La requête utilise des valeurs fictives professionnelles pour les objets sources, dont l’existence n’est pas garantie dans tous les déploiements SAP S/4HANA. Avant l’exécution, remplacez-les par des vues ou des tables approuvées de votre système.
- Exécutez la requête avec des identifiants de base de données en lecture seule. Elle crée explicitement une ligne d’événement pour chaque activité requise et ne déduit pas d’événements supplémentaires à partir de l’ordre des événements.
- Examinez les colonnes renvoyées.
FinancialPeriodest l’identifiant du cas,ActivityNamedésigne l’activité etEventTimecorrespond à l’horodatage requis de l’événement.EndTime,ResponsibleUser,CompanyCode,GlAccountNumber,DocumentNumber,ReconciliationStatusetTargetCompletionDatesont inclus lorsque l’enregistrement source les fournit. - Vérifiez que le résultat contient toutes les activités requises, y compris celles pour lesquelles aucune donnée source n’existe sur une période donnée. Si des types d’activité sont absents, la requête renvoie une ligne de validation dont
ActivityNameest défini sur Activity Coverage Validation. Supprimez cette ligne ou traitez-la séparément avant l’importation dans ProcessMind si le format cible ne doit contenir que des événements métier. - Rapprochez des événements représentatifs avec les enregistrements applicatifs et les journaux de traitements SAP. Vérifiez que les événements d’écriture comptable correspondent aux enregistrements ACDOCA, les événements de traitement aux enregistrements TBTCO et les événements de modification aux enregistrements CDHDR et CDPOS ou aux sources de rapprochement et d’approbation configurées.
- Exportez le résultat au format CSV UTF-8 ou dans un autre format tabulaire pris en charge par ProcessMind. Conservez exactement les noms de colonnes
FinancialPeriod,ActivityNameetEventTime. Triez les données parFinancialPeriodetEventTime, en conservant une ligne par événement extrait explicitement. - Importez le journal d’événements dans ProcessMind et définissez
FinancialPeriodcomme identifiant du cas,ActivityNamecomme activité etEventTimecomme horodatage de début. AssociezEndTimeà l’horodatage de fin lorsqu’il est disponible, puis associez les autres colonnes comme attributs d’événement ou de cas.
Remarque importante sur l’association des sources : SAP S/4HANA ne fournit pas de structure de tables universelle pour tous les outils de rapprochement, moniteurs de consolidation, archives de rapports, flux de travail d’approbation ou configurations des périodes comptables. Remplacez chaque valeur fictive [Your table name] et [Your column name] de la requête par un objet et une colonne vérifiés dans votre système. Ne traitez pas une valeur fictive comme du SQL exécutable.
Configuration
- Accès à la base de données : Utilisez un compte SAP HANA en lecture seule disposant de l’autorisation SELECT sur ACDOCA, TBTCO, CDHDR, CDPOS et les objets sources configurés pour le contrôle des périodes comptables, les rapprochements, la consolidation, les rapports et les approbations.
- Configuration du schéma : Remplacez [Your SAP schema] par le nom réel du schéma contenant les objets applicatifs. Vérifiez si ces objets sont des tables, des vues de calcul ou des vues de rapport approuvées.
- Plage de dates : Extrayez l’ensemble du cycle de clôture, généralement sur trois à six mois. Incluez les activités d’ouverture et de clôture, les écritures tardives, les extournes, les approbations et les ajustements postérieurs à la clôture.
- Période comptable : Filtrez selon l’exercice et la période comptables utilisés par le code société. Ne partez pas du principe que les périodes suivent l’année civile si la variante d’exercice est différente.
- Code société : Appliquez un filtre de code société si le processus concerne certaines entités juridiques. Utilisez [Configure based on your system] si le périmètre est défini dans une association organisationnelle distincte.
- Types de pièces : Limitez l’extraction des écritures comptables aux types de pièces utilisés pour les charges à payer, les provisions, les ajustements, les évaluations, les compensations et les autres écritures de clôture. Vérifiez la configuration locale des types de pièces avant d’activer ces filtres.
- Statut des traitements : Pour les activités d’achèvement, incluez uniquement les traitements terminés ou exécutés avec succès. Vérifiez les valeurs de statut locales de TBTCO avant d’appliquer un critère de statut.
- Documents de modification : Filtrez CDHDR et CDPOS selon la classe d’objet et les indicateurs de modification pertinents, après vérification de la configuration locale. Les documents de modification ne permettent pas toujours d’identifier toutes les activités métier.
- Sources de rapprochement et d’approbation : Configurez des objets sources vérifiés pour les changements de statut des rapprochements, les actions des préparateurs, les approbations, les dates cibles et les validations numériques. Ces sources varient selon les composants et extensions SAP déployés.
- Performances : Limitez les critères sur l’exercice, la période comptable, le code société, la date comptable et l’horodatage de l’événement. Appliquez les filtres dans chaque branche UNION ALL, évitez les analyses sans restriction d’ACDOCA et effectuez l’extraction pendant une plage horaire approuvée pour les rapports.
- Types de données : Normalisez les horodatages dans un fuseau horaire et un type de données communs. Convertissez les chaînes vides en NULL et préservez les zéros initiaux des codes société, des numéros de compte et des numéros de pièce.
- Prérequis : Vérifiez que les composants SAP requis, les outils de rapprochement, les fonctions de consolidation, la journalisation des traitements, l’activation des documents de modification et les journaux d’audit des rapports ou des flux de travail sont disponibles et alimentés.
- Sécurité et conformité : Appliquez le principe du moindre privilège, protégez les données financières et les données utilisateur, documentez la finalité de l’extraction et respectez les exigences d’audit SAP et de base de données de l’organisation.
Exemple de requête 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 Prêt à commencer ?
Aidez votre organisation à gagner en efficacité et à renforcer sa conformité grâce à ce modèle de données. Commencez dès aujourd’hui à transformer votre processus Record to Report.
Optimisez dès aujourd’hui votre clôture et vos rapprochements Record to Report
Repérez les inefficacités et réduisez jusqu’à 30 % le temps de cycle de votre clôture.
Aucune carte bancaire requise. Commencez en quelques minutes.