Votre Modèle de Données Record to Report - Clôture Périodique et Rapprochement
Votre Modèle de Données Record to Report - Clôture Périodique et Rapprochement
- Attributs recommandés à collecter
- Activités clés à suivre pour l'analyse des processus
- Guide d'extraction des données étape par étape
Record to Report - Attributs de Clôture Périodique et de Rapprochement
| Nom | Description | ||
|---|---|---|---|
| Période financière FinancialPeriod | Un identifiant unique pour le cycle de reporting financier, tel que '2023-12' pour décembre 2023, servant de dossier pour le processus de clôture de fin de période. | ||
| Description La Période Financière est l'identifiant de cas central qui regroupe toutes les activités liées à la clôture des comptes pour une période donnée, généralement un mois calendaire ou un exercice fiscal. Chaque période financière représente un cycle complet du processus de fin de période. Dans l'analyse par process mining, cet attribut permet de suivre l'ensemble du cycle de vie d'une clôture périodique, de l'initiation au reporting final. Il est utilisé pour comparer les temps de cycle entre différentes périodes, identifier les chemins de processus communs et analyser les variations entre les procédures de clôture mensuelles, trimestrielles et annuelles. En traitant chaque période comme un cas, les analystes peuvent mesurer les performances au fil du temps et identifier les goulots d'étranglement systémiques. Pourquoi c'est important C'est l'identifiant de cas essentiel qui encadre l'analyse, permettant la comparaison des performances de clôture périodique au fil du temps et l'identification des tendances ou des problèmes récurrents. Où obtenir Dérivé en combinant les champs Année Fiscale (GJAHR) et Période Comptable (MONAT) des en-têtes de documents financiers, généralement des tables comme BKPF. Exemples 2023-122024-032024-T1 | |||
| Activité ActivityName | Le nom d'une étape ou d'une tâche métier spécifique effectuée au sein du processus de clôture périodique, telle que 'Écriture de Journal d'Ajustement Enregistrée' ou 'Période Clôturée pour la Comptabilisation'. | ||
| Description Cet attribut représente un événement ou une tâche unique dans le processus de clôture et de rapprochement de fin de période. Les activités sont les éléments constitutifs de la carte des processus, montrant la séquence du travail effectué. Elles sont souvent dérivées d'une combinaison de codes de transaction, de types de documents ou de changements de statut au sein de SAP S/4HANA. L'analyse des activités est fondamentale pour le process mining. Elle aide à visualiser le flux de processus, à identifier les écarts par rapport à la procédure standard, à découvrir les goulots d'étranglement où les activités prennent trop de temps, et à comprendre la fréquence et l'ordre des tâches. Ceci est crucial pour les dashboards comme l'Analyse des Variantes de Clôture Périodique et le Statut de Clôture Périodique Actuel. Pourquoi c'est important Définit les étapes du processus, constituant la base de la carte des processus et permettant l'analyse du flux de processus, des écarts et des goulots d'étranglement. Où obtenir Dérivé de diverses sources, telles que les codes de transaction (TCODE), les types de documents (BLART) ou les champs de statut dans les tables liées aux tâches de clôture financière (par exemple, du cockpit de clôture financière SAP). Exemples Période ouverte pour la comptabilisationRapprochement des comptes démarréÉtats financiers générésRapprochement inter-sociétés démarré | |||
| Heure de début EventTime | L'horodatage indiquant le début ou l'enregistrement d'une activité spécifique dans le système. | ||
| Description L'horodatage d'événement capture la date et l'heure précises d'une activité. Pour les écritures financières, il s'agit souvent de l'heure de création (CPUTM) ou de la date de comptabilisation (BUDAT) d'un document. Pour les changements de statut ou les tâches, c'est l'horodatage lorsque le changement a été enregistré. Cet attribut est essentiel pour l'ordre chronologique des activités et constitue la base de toutes les analyses temporelles. Il est utilisé pour calculer les temps de cycle entre les activités, la durée des tâches spécifiques et la durée globale du processus de bout en bout. Il prend directement en charge des KPI tels que le temps de cycle moyen de clôture de période et le temps moyen d'approbation des rapprochements. Pourquoi c'est important Cet horodatage obligatoire permet l'ordonnancement chronologique des événements et constitue la base de tous les calculs de durée et de performance. Où obtenir Obtenu à partir de champs horodatés comme Date de Création (CPUDT) et Heure de Création (CPUTM) dans des tables comme BKPF, ou à partir de champs de date de modification dans diverses tables de statut (ex: CDHDR, CDPOS). Exemples 2023-12-28T09:15:30Z2024-01-02T14:00:12Z2024-01-05T11:21:00Z | |||
| Code société CompanyCode | Un identifiant unique pour une entité juridique ou 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 un ensemble complet et autonome de comptes peut être créé. Toutes les activités de clôture de fin de période sont effectuées au niveau du Code Société. Il s'agit d'une dimension organisationnelle fondamentale pour l'analyse financière. En process mining, elle permet de comparer le processus de clôture périodique entre différentes entités juridiques. Le dashboard 'Analyse des Variantes de Clôture Périodique' utilise le Code Société pour identifier les incohérences et promouvoir la standardisation des procédures de clôture. Pourquoi c'est important Fournit un contexte organisationnel critique, permettant la comparaison des processus entre différentes entités juridiques pour identifier les variations et les meilleures pratiques. Où obtenir Trouvé dans pratiquement 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 | La date prévue ou limite pour l'achèvement d'une activité clé, telle que la génération des états financiers. | ||
| Description La Date d'Achèvement Cible représente la date limite interne ou externe pour un jalon spécifique du processus de clôture périodique. C'est la date à laquelle une tâche est censée être terminée. Cet attribut est essentiel pour mesurer le respect des délais et la performance par rapport aux échéances. Il est la base du dashboard 'Respect des Délais de Reporting' et du KPI 'Taux de Respect des Délais de Publication des États Financiers', qui comparent cette date cible à l' Pourquoi c'est important Permet l'analyse des performances par rapport aux délais, aidant à mesurer et à améliorer les taux d'achèvement à temps pour les activités de clôture critiques. Où obtenir Ces données résident souvent dans un système de gestion des tâches ou de planification, tel que le cockpit de clôture financière SAP, où les listes de tâches de clôture sont définies avec des dates de fin prévues. Exemples 2024-01-05T23:59:59Z2024-04-04T23:59:59Z2024-07-05T23:59:59Z | |||
| Heure de fin EndTime | L'horodatage indiquant quand une activité a été achevée. | ||
| Description L'Heure de Fin marque l'achèvement d'une tâche. Dans certains cas, elle peut être identique à l'Heure de Début pour des événements instantanés enregistrés dans le système. Pour les activités d'une durée mesurable, elle représente l'horodatage de finalisation. Combiné à l'Heure de Début, cet attribut est essentiel pour calculer le Pourquoi c'est important Permet le calcul des durées d'activité (temps de traitement), ce qui est crucial pour identifier les goulots d'étranglement de performance et analyser l'efficacité. Où obtenir Comme l'heure de début, cela peut provenir de divers champs d'horodatage. Pour certaines activités, cela pourrait être identique à l'heure de début. Pour d'autres, il pourrait s'agir d'une date distincte 'complété le' ou 'modifié le' dans les tables d'application ou les journaux de modifications (CDHDR, CDPOS). Exemples 2023-12-28T09:16:10Z2024-01-02T17:30:00Z2024-01-05T11:21:00Z | |||
| Numéro de compte GL GlAccountNumber | L'identifiant d'un compte spécifique dans le Grand Livre. | ||
| Description Le Numéro de Compte du Grand Livre (GL) identifie les comptes individuels utilisés pour enregistrer les transactions financières, tels que la trésorerie, les comptes fournisseurs ou les revenus. De nombreuses activités de fin de période, comme les rapprochements et les écritures d'ajustement, sont directement liées à des comptes GL spécifiques. Cet attribut est essentiel pour une analyse détaillée des processus financiers. Le dashboard 'Analyse des Écritures de Journal d'Ajustement' l'utilise pour montrer le volume d'ajustements par compte, aidant à identifier les zones problématiques. Le KPI 'Temps Moyen de Rapprochement des Comptes GL' s'appuie également sur cet attribut pour identifier les retards liés à des comptes spécifiques. Pourquoi c'est important Relie les activités de processus à des comptes financiers spécifiques, permettant une analyse détaillée des rapprochements et des écritures de journal pour trouver les causes profondes des problèmes. Où obtenir Trouvé dans les tables de postes de document financier, principalement BSEG (champ HKONT) ou la table journal universel S/4HANA ACDOCA. Exemples 113100004000000073000000 | |||
| Numéro de document DocumentNumber | L'identifiant unique d'un document financier, tel qu'une écriture de journal. | ||
| Description Le Numéro de Document est une clé unique attribuée par SAP à chaque enregistrement financier. Il sert de référence principale pour le suivi et l'audit des transactions individuelles qui constituent les activités du processus de clôture. Bien qu'il ne s'agisse pas d'un ID de cas en soi, il fournit un lien crucial vers le système source. Les analystes peuvent utiliser le Numéro de Document pour explorer les détails spécifiques des transactions dans SAP S/4HANA à partir d'une vue de process mining, pour l'analyse des causes profondes. Il est particulièrement utile lors de l'examen d'écritures de journal d'ajustement ou d'enregistrements de rapprochement spécifiques. Pourquoi c'est important Fournit une référence directe à la transaction sous-jacente dans SAP, permettant une exploration facile et une auditabilité à partir du modèle de processus. Où obtenir Situé dans la table d'en-tête de document financier BKPF (champ BELNR) et les tables de postes comme BSEG ou ACDOCA. Exemples 100000045190000001300000023 | |||
| Statut du rapprochement ReconciliationStatus | Le statut d'une activité de rapprochement de compte, tel que 'Ouvert', 'En Cours' ou 'Approuvé'. | ||
| Description Cet attribut suit l'état d'un processus de rapprochement pour un compte ou une tâche donné. Il indique si un rapprochement a été démarré, soumis pour révision, approuvé ou rejeté. Les changements de statut sont des événements clés du processus. Ceci est fondamental pour le dashboard 'Analyse du Retravail de Rapprochement'. En analysant la séquence des statuts, il est possible d'identifier quand un statut 'Approuvé' est suivi d'autres ajustements, indiquant un retravail. Il soutient également le KPI 'Taux de Rapprochement au Premier Passage' en montrant quels rapprochements sont approuvés sans rejet préalable ni réouverture. Pourquoi c'est important Suit la progression et le résultat des tâches de rapprochement, permettant d'identifier le retravail, de mesurer les taux d'approbation et d'analyser les goulots d'étranglement. Où obtenir Ces informations sont généralement stockées dans des tables liées à l'outil de rapprochement spécifique utilisé, tel que le cockpit de clôture financière SAP ou SAP Account Substantiation and Automation by BlackLine. Exemples Non commencéEn préparationApprouvéRejeté | |||
| Temps de traitement ProcessingTime | La durée d'une activité individuelle, calculée comme la différence entre son Heure de Fin et son Heure de Début. | ||
| Description Le temps de traitement, également connu sous le nom de durée d'activité, mesure le temps passé sur une seule tâche. Il est calculé en soustrayant le Cette métrique calculée est fondamentale pour l'analyse des performances. Elle aide à identifier les goulots d'étranglement au niveau de l'activité et est la mesure principale utilisée dans les tableaux de bord 'Efficacité de l'allocation des ressources' et 'Débit d'approbation des rapprochements'. La somme des temps de traitement peut également fournir des informations sur le temps de contact total au sein du processus. Pourquoi c'est important Mesure la durée des tâches individuelles, mettant directement en évidence les goulots d'étranglement et constituant la base de l'analyse d'efficacité. Où obtenir Champ calculé : Exemples PT1M30SPT8HP2D | |||
| Utilisateur responsable ResponsibleUser | L'ID utilisateur de la personne 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 saisie d'une écriture de journal ou l'approbation d'un rapprochement. Il est généralement capturé sous forme d'ID 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, la performance individuelle et les besoins en formation. Le dashboard Efficacité de l'Allocation des Ressources utilise directement cet attribut pour visualiser les temps de traitement des activités par utilisateur. Il peut également aider à identifier les candidats à l'automatisation en mettant en évidence les tâches très répétitives effectuées par de nombreux utilisateurs. Pourquoi c'est important Relie les activités de processus aux personnes qui les ont effectuées, permettant l'analyse de la charge de travail, l'optimisation des ressources et la gestion des performances. Où obtenir Généralement trouvé dans les tables d'en-tête de document 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 | Le code de transaction (T-code) SAP utilisé pour exécuter l'activité. | ||
| Description Un code de transaction est un raccourci pour lancer une fonction ou un programme spécifique dans SAP. Par exemple, FB01 est utilisé pour l'enregistrement d'un document, et FAGLB03 pour l'affichage des soldes de comptes GL. Le T-code fournit souvent un indicateur technique clair de l'activité effectuée. Cet attribut aide à créer les définitions d'activité pour le modèle de processus. C'est un moyen fiable de différencier les activités automatisées des activités manuelles et de comprendre exactement 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 c'est important Fournit une vue technique au niveau du système de la manière dont une activité a été effectuée, utile pour identifier les étapes manuelles vs. automatisées et les procédures non standard. Où obtenir Trouvé dans la table d'en-tête de document financier BKPF (champ TCODE) ou dans les journaux de modifications de document. Exemples FB01FAGL_FCVF.13 | |||
| Date d'achèvement réelle ActualCompletionDate | La date réelle à laquelle une activité clé ou l'ensemble de la clôture périodique a été achevée. | ||
| Description Cet attribut capture la date réelle d'achèvement d'un jalon significatif. C'est l'horodatage de l'approbation finale des états financiers ou de la clôture de la période de comptabilisation. Il est le pendant de Pourquoi c'est important Fournit le calendrier réel des étapes, ce qui est nécessaire pour mesurer les performances par rapport aux délais prévus et analyser les retards. Où obtenir Obtenu à partir de l'EventTime de la dernière activité d'une séquence, telle que 'États Financiers Approuvés' ou 'Période Clôturée pour la Comptabilisation'. Exemples 2024-01-06T10:00:00Z2024-04-05T17:00:00Z2024-07-04T11:00:00Z | |||
| Dernière mise à jour des données LastDataUpdate | Le *timestamp* indiquant quand les *data* ont été rafraîchies ou extraites pour la dernière fois du système source. | ||
| Description Cet attribut enregistre la date et l'heure de la dernière extraction de données. Il fournit un contexte sur la fraîcheur des données analysées dans l'outil de process mining. Son objectif principal est la gouvernance des données et la sensibilisation des utilisateurs. Les utilisateurs de dashboards peuvent voir à quel point l'analyse est actuelle, ce qui est particulièrement important pour les dashboards de surveillance en temps quasi réel comme 'Statut de Clôture Périodique Actuel'. Il aide les utilisateurs à comprendre s'ils examinent des données d'aujourd'hui, d'hier ou de la semaine dernière. Pourquoi c'est important Informe les utilisateurs sur l'actualité des données, en s'assurant qu'ils comprennent à quel point les aperçus de processus sont récents. Où obtenir Il s'agit de métadonnées générées et apposées sur l'ensemble de données par l'outil d'extraction de données ou ETL au moment de l'exécution. Exemples 2024-06-10T08:00:00Z2024-06-09T08:00:00Z | |||
| Devise du document DocumentCurrency | Le code de devise pour les montants dans le document financier. | ||
| Description Cet attribut spécifie la devise dans laquelle la transaction a été enregistrée, telle que USD, EUR ou JPY. Il fournit un contexte essentiel pour l'attribut Dans les organisations multinationales, l'analyse par devise peut être importante. Elle garantit que les valeurs monétaires sont interprétées correctement et est nécessaire pour toute conversion vers une seule devise de reporting pour l'analyse agrégée. Sans ce contexte, les valeurs Pourquoi c'est important Fournit le contexte nécessaire pour toutes les valeurs monétaires, garantissant que les montants sont interprétés correctement, en particulier dans un environnement multidevises. Où obtenir Situé dans la table d'en-tête de document financier BKPF (champ WAERS). Exemples USDEURJPY | |||
| Est à l'heure IsOnTime | Un indicateur booléen qui est vrai si une étape a été achevée à la date cible ou avant. | ||
| Description Cet attribut fournit un résultat binaire simple pour le respect des délais. Il est calculé en comparant la C'est le calcul fondamental derrière le KPI 'Taux de Respect des Délais de Publication des États Financiers'. Il simplifie le suivi des performances en convertissant les comparaisons de dates en un statut clair 'à temps' ou 'en retard', facilement visualisable dans les dashboards et rapports. Il aide à mesurer l'efficacité des initiatives visant à accélérer la clôture. Pourquoi c'est important Simplifie l'analyse du respect des délais en un résultat clair de succès ou d'échec, facilitant le suivi et le rapport de la performance dans les temps. Où obtenir Champ calculé : Exemples truefaux | |||
| Est Automatisé IsAutomated | Un indicateur booléen signalant si l'activité a été réalisée par un utilisateur système ou un processus automatisé. | ||
| Description Ce drapeau différencie les tâches effectuées manuellement par un utilisateur humain de celles exécutées automatiquement par le système, comme un job batch planifié pour la valorisation des devises ou des exécutions de compensation automatisées. Il est généralement dérivé en fonction de l'ID Cet attribut est essentiel pour comprendre le niveau d'automatisation du processus de clôture. Il aide à identifier les opportunités d'automatisation supplémentaires en mettant en évidence les tâches manuelles à volume élevé. Il est également utilisé dans l'analyse des causes profondes pour voir si des goulots d'étranglement se produisent dans des étapes manuelles ou automatisées. Pourquoi c'est important Distingue les activités humaines des activités système, ce qui est essentiel pour identifier les opportunités d'automatisation et analyser l'efficacité des deux. Où obtenir Il s'agit d'un attribut dérivé, souvent basé sur une règle appliquée au champ 'ResponsibleUser' (par exemple, la vérification des IDs utilisateur système ou batch comme 'BATCHUSER') ou au Code de Transaction. Exemples truefaux | |||
| Est un retravail de rapprochement IsReconciliationRework | Un indicateur booléen qui est vrai si une activité de rapprochement est suivie d'un rejet ou d'ajustements supplémentaires. | ||
| Description Cet attribut calculé identifie les instances de retravail au sein du sous-processus de rapprochement. La logique signale les activités ou les cas où un rapprochement est rejeté, rouvert après avoir été soumis, ou lorsque des écritures d'ajustement sont enregistrées après qu'un rapprochement ait été supposément achevé pour un compte GL. Ce drapeau est spécifiquement conçu pour alimenter le dashboard 'Analyse du Retravail de Rapprochement' et le KPI 'Taux de Retravail de Rapprochement'. Il transforme des séquences de processus complexes en un attribut simple et mesurable qui quantifie l'étendue du retravail, aidant les équipes à se concentrer sur l'amélioration de la qualité dès le premier passage. Pourquoi c'est important Quantifie directement le retravail, une forme clé d'inefficacité des processus, permettant une analyse ciblée et des efforts d'amélioration pour la qualité du rapprochement. Où obtenir Calculé en fonction de la séquence d'activités. Par exemple, un indicateur est défini comme vrai si la séquence 'Rapprochement approuvé' est suivie de 'Écriture de journal d'ajustement enregistrée' pour le même compte GL au cours de la même période. Exemples truefaux | |||
| Montant du Document DocumentAmount | La 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 enregistrée. L'analyse du montant est utile pour les évaluations de matérialité. Elle permet aux analystes de prioriser l'examen des écritures d'ajustement de grande valeur, qui peuvent présenter un risque financier plus élevé. Elle peut être utilisée pour filtrer la carte des processus afin de se concentrer uniquement sur les transactions dépassant un certain seuil, simplifiant la vue aux activités les plus significatives. Pourquoi c'est important Ajoute une dimension financière à l'analyse, permettant de hiérarchiser les problèmes en fonction de l'impact monétaire et de la matérialité. Où obtenir Cette valeur doit généralement être agrégée à partir de tables de postes individuels comme BSEG ou ACDOCA (champ WRBTR - Montant en devise du document). Exemples 15000.00250.75-500.00 | |||
| Système source SourceSystemId | Identifiant de l'instance ou du client SAP S/4HANA spécifique à partir duquel les données ont été extraites. | ||
| Description Cet attribut spécifie le système d'origine des données. Dans des environnements avec plusieurs instances SAP (par exemple, pour différentes régions ou unités commerciales), ce champ est crucial pour distinguer les sources de données. Il est principalement utilisé pour la gouvernance des données, l'audit et l'assurance de l'intégrité des données. En analyse, il peut être utilisé comme filtre pour comparer les processus entre différents systèmes sources s'ils sont combinés dans un seul modèle de process mining. Pourquoi c'est important Fournit une traçabilité et un contexte essentiels des données, assurant la clarté sur l'origine des données, en particulier dans les environnements multi-systèmes. Où obtenir Il s'agit généralement de métadonnées ajoutées pendant le processus d'extraction de données, souvent issues de l'ID 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 | Le temps total nécessaire pour une période financière, de la première activité à la dernière. | ||
| Description Cette métrique représente la durée de bout en bout du processus de clôture périodique pour un seul cas (Période Financière). Elle est calculée comme la différence entre l'horodatage de la toute dernière activité et de la toute première activité au sein de cette période. Il s'agit d'un indicateur clé de performance principal, soutenant directement le dashboard 'Vue d'Ensemble du Temps de Cycle de Clôture Périodique' et le KPI 'Temps de Cycle Moyen de Clôture Périodique'. Il fournit une mesure de haut niveau de l'efficacité globale et de la rapidité du processus de clôture, permettant des comparaisons dans le temps et des analyses comparatives entre différents codes société. Pourquoi c'est important Représente le KPI principal de la durée globale du processus, permettant un suivi de haut niveau des améliorations d'efficacité au fil du temps. Où obtenir Calculé au niveau du dossier : Exemples P5D10H30MP7D2HP6D | |||
| Type d'écriture de journal JournalEntryType | Le type de document financier comptabilisé, différenciant les écritures standards, les provisions et les ajustements. | ||
| Description Le Type d'Écriture de Journal, ou Type de Document dans la terminologie SAP, est une clé qui classe les documents comptables. Il contrôle les types de comptes sur lesquels un document peut être enregistré et est utilisé pour distinguer différentes transactions commerciales, telles qu'une facture fournisseur (KR), une écriture au Grand Livre (SA) ou un paiement client (DZ). Dans le contexte de la clôture périodique, cet attribut est crucial pour isoler des types d'activités spécifiques. Par exemple, il permet aux analystes de se concentrer sur les écritures de journal d'ajustement pour soutenir le dashboard 'Analyse des Écritures de Journal d'Ajustement' et le KPI 'Nombre d'Écritures de Journal d'Ajustement'. Il aide également à calculer le 'Ratio d'Écritures Manuelles'. Pourquoi c'est important Catégorise les transactions financières, permettant à l'analyse de se concentrer sur des types spécifiques d'écritures, comme les ajustements manuels, qui sont critiques pour une clôture de période sans heurts. Où obtenir Il s'agit d'un champ standard dans la table d'en-tête du document financier BKPF (champ BLART). Exemples SAKRAB | |||
Record to Report - Activités de Clôture Périodique et de Rapprochement
| Activité | Description | ||
|---|---|---|---|
| Écriture de journal d'ajustement enregistrée | Représente une écriture de journal corrective effectuée après les rapprochements initiaux, généralement pour corriger des divergences découvertes lors du processus de révision. Il s'agit d'une transaction explicite enregistrée dans le Grand Livre. | ||
| Pourquoi c'est important Une fréquence élevée d'écritures d'ajustement indique une mauvaise qualité initiale dans les processus en amont ou les rapprochements. L'analyse de ces écritures est essentielle pour identifier les causes profondes des erreurs et réduire le retravail. Où obtenir Enregistrés comme documents explicites dans les tables ACDOCA et BKPF. Ils peuvent être identifiés par des types de documents spécifiques, des dates de comptabilisation tardives dans le cycle de clôture, ou des descriptions textuelles particulières. Capture Filtrez les écritures de journal dans BKPF en fonction d'une combinaison de type de document et de date de comptabilisation 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, tels que le Bilan et le Compte de Résultat. Elle représente l'aboutissement des processus comptables et de consolidation de fin de période. | ||
| Pourquoi c'est important C'est un jalon majeur dans le cycle Record to Report. Son calendrier est essentiel pour respecter les délais de reporting et fournir des informations opportunes aux parties prenantes. Où obtenir Idéalement capturé via un outil de gestion de la clôture financière comme SAP Financial Closing Cockpit, où il s'agit d'une tâche explicite. Sinon, il doit être déduit des journaux de génération de rapports ou des horodatages de création de fichiers. Capture 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 fermée pour la comptabilisation | C'est l'activité finale du cycle, où la période comptable est formellement clôturée pour empêcher toute transaction ultérieure. Cette action garantit l'intégrité des données pour les rapports financiers finalisés. | ||
| Pourquoi c'est important Cette activité constitue l'événement de fin définitif du processus. Elle est essentielle pour calculer le temps de cycle total de clôture périodique et analyser les tendances d'achèvement du processus. Où obtenir Similaire à l'ouverture d'une période, cet événement est capturé à partir de documents de modification (tables CDHDR et CDPOS) qui enregistrent les mises à jour de la table de contrôle des périodes comptables T001B via la transaction OB52. Capture Filtrez les journaux de modifications pour la table T001B afin d'identifier la clôture de l'exercice et de la période fiscale pertinents. Type d'événement explicit | |||
| Période ouverte pour la comptabilisation | Ceci marque le début de la période financière, où les périodes comptables sont ouvertes pour l'enregistrement des transactions. Il s'agit d'une modification de configuration explicite et journalisée effectuée par un administrateur financier dans SAP, permettant les écritures de journal pour la nouvelle période. | ||
| Pourquoi c'est important Cette activité sert d'événement de début principal pour le processus de clôture de fin de période. Elle permet la mesure précise du temps de cycle total et offre un point de départ clair pour l'analyse des processus. Où obtenir Cet événement est capturé à partir de documents de modification (tables CDHDR et CDPOS) qui enregistrent les modifications apportées à la table de contrôle des périodes comptables T001B, généralement exécutées via la transaction OB52. Capture Filtrez les journaux de modifications pour la table T001B relatifs à l'exercice et à la période fiscale spécifiques. Type d'événement explicit | |||
| Rapprochement des comptes approuvé | Cette activité signifie l'approbation finale d'un rapprochement de compte GL, confirmant que le solde est justifié et que tous les problèmes ont été résolus. Ceci est déduit d'un changement de statut à 'Approuvé' dans un outil de rapprochement. | ||
| Pourquoi c'est important Ce jalon marque l'achèvement d'une activité de contrôle critique. Le suivi des temps d'approbation aide à identifier les goulots d'étranglement dans le processus de révision et est essentiel pour mesurer le retravail et le rendement au premier passage. Où obtenir Capturé à partir d'un système de gestion de rapprochement, tel que SAP Account Substantiation and Automation, en suivant l'horodatage du statut d'approbation final. Capture Identifiez l'horodatage lorsque le champ de statut d'un rapprochement est mis à jour vers son état final 'Approuvé'. Type d'événement inferred | |||
| Rapprochement des comptes démarré | Marque le début du processus manuel ou semi-automatisé de justification des soldes de comptes GL. Cela est déduit lorsque le statut d'un rapprochement passe de 'Nouveau' à 'En cours' ou lorsque la première action du préparateur est enregistrée. | ||
| Pourquoi c'est important C'est un jalon clé pour comprendre la durée et l'effort impliqués dans la justification du bilan. Il aide à identifier quels comptes ou départements commencent leurs rapprochements tardivement. Où obtenir Cet événement est généralement capturé à partir d'un outil de rapprochement dédié comme SAP Account Substantiation and Automation by BlackLine ou d'autres systèmes tiers. Il est déduit des horodatages de changement de statut. Capture Suivez l'horodatage du premier changement de statut d'un état 'Non Démarré' pour un rapprochement de compte GL donné. Type d'événement inferred | |||
| Rapprochement inter-sociétés démarré | Cette activité marque le début du processus de rapprochement des transactions entre différents codes société au sein du même groupe. Elle est souvent initiée par l'exécution d'une tâche de rapprochement ou la création d'un nouveau dossier de rapprochement dans l'outil ICMR de SAP. | ||
| Pourquoi c'est important Le rapprochement inter-sociétés est souvent complexe et chronophage. L'analyse de sa durée et de son flux est cruciale pour rationaliser la clôture de groupe et garantir l'exactitude des états financiers consolidés. Où obtenir Déduit des changements de statut au sein du module SAP Intercompany Matching and Reconciliation (ICMR) ou de la création des premiers documents de rapprochement pour la période. Capture Suivez la date de création ou l'horodatage de changement de statut pour les unités de rapprochement au sein de l'outil ICMR pour la période donnée. Type d'événement inferred | |||
| Balance de Vérification Préparée | Indique qu'une balance a été générée et sauvegardée pour examen, servant de point de contrôle clé avant la création des états financiers définitifs. La capture de cet événement repose souvent sur des procédures où la sortie du rapport est sauvegardée. | ||
| Pourquoi c'est important La préparation de la balance de vérification est un jalon de qualité crucial. L'analyse de son délai aide à comprendre la préparation au reporting final et peut mettre en évidence des retards dans les activités précédentes. Où obtenir Ce n'est souvent pas un événement explicite. Il peut être déduit de l'exécution d'une transaction de reporting spécifique si des variantes sont enregistrées avec des horodatages d'utilisateur et de date, ou si le processus est géré dans un outil comme le SAP Financial Closing Cockpit. Capture Nécessite une analyse système pour déterminer si un mécanisme de journalisation fiable existe, tel que des journaux d'exécution de rapports ou des listes de tâches du cockpit de clôture. Type d'événement inferred | |||
| États financiers approuvés | Représente l'approbation finale des états financiers par la direction autorisée avant leur publication. Il s'agit souvent d'un processus hors ligne, mais il peut être capturé si une étape d'approbation numérique formelle existe. | ||
| Pourquoi c'est important C'est le dernier jalon de qualité et de contrôle. Suivre son calendrier est essentiel pour comprendre le respect des délais de reporting et l'efficacité globale du cycle de révision de la direction. Où obtenir Cet événement est capturé si un workflow ou un champ de statut existe pour l'approbation des états, par exemple, au sein du SAP Financial Closing Cockpit ou d'un système de gestion documentaire. Capture Identifiez un champ de données et un horodatage qui indiquent l'approbation finale du paquet d'états financiers. Type d'événement inferred | |||
| Exécution de l'évaluation des devises étrangères | Il s'agit d'une procédure standard de fin de mois pour réévaluer les postes ouverts et les soldes en devises étrangères en fonction des taux de change de fin de période. L'exécution de ce programme enregistre les différences de valorisation qui en résultent. | ||
| Pourquoi c'est important Assure la conformité aux normes comptables et fournit une image financière précise. Le suivi de cette activité aide à garantir que toutes les évaluations de devises sont effectuées en temps opportun. Où obtenir Capturé à partir des journaux d'exécution du programme d'évaluation en devises étrangères (par exemple, FAGL_FCV). Les détails du job sont stockés dans les tables TBTCO et TBTCP. Capture Surveillez les journaux d'exécution des jobs liés à la transaction FAGL_FCV ou à son programme sous-jacent. Type d'événement explicit | |||
| Exécution du cycle de lettrage automatique effectuée | Représente l'exécution de programmes de compensation automatisés dans SAP, tels que la compensation GR/IR (Réception de Marchandises/Réception de Factures). Ces tâches rapprochent et compensent les postes non soldés sur des comptes GL spécifiques, réduisant ainsi l'effort de rapprochement manuel. | ||
| Pourquoi c'est important Cette activité met en évidence le niveau d'automatisation du processus de rapprochement. Les échecs ou les exceptions lors de ces exécutions peuvent entraîner un travail manuel important et des retards. Où obtenir Capturé à partir des journaux d'exécution de jobs batch spécifiques, tels que F.13 ou F.13E pour le lettrage automatique. Les tables de journaux de jobs TBTCO et TBTCP contiennent les détails d'exécution. Capture Surveillez les horodatages de début et de fin des jobs associés aux transactions comme F.13 dans les journaux de jobs SAP. Type d'événement explicit | |||
| Provisions et charges à payer enregistrées | Cet événement capture la création d'écritures de journal manuelles pour les charges à payer, les produits constatés d'avance et d'autres provisions nécessaires à une information financière précise selon la comptabilité d'exercice. Il s'agit de transactions explicites enregistrées dans le Grand Livre. | ||
| Pourquoi c'est important Le suivi de ces enregistrements aide à analyser le volume et le calendrier des ajustements manuels. Un volume élevé peut indiquer des opportunités d'automatisation ou d'amélioration des processus en amont. Où obtenir Enregistrés comme écritures de journal explicites dans la table de journal universel ACDOCA et la table d'en-tête BKPF. Ces écritures peuvent être identifiées par des types de documents spécifiques configurés pour les provisions. Capture Filtrez les documents dans la table BKPF par type de document (par exemple, 'SA' ou types personnalisés) et date de comptabilisation dans la période. Type d'événement explicit | |||
| Tâches de consolidation exécutées | Représente l'exécution des activités de consolidation au sein de SAP Group Reporting, telles que la conversion monétaire, le reclassement et l'élimination des profits intersociétés. Ces tâches sont généralement gérées et enregistrées dans le moniteur de consolidation. | ||
| Pourquoi c'est important Pour les organisations avec plusieurs entités juridiques, le processus de consolidation est un élément de chemin critique. Le suivi de ces tâches aide à rationaliser la clôture de groupe et à assurer un reporting consolidé en temps voulu. Où obtenir Capturé à partir des journaux de statut au sein du Data Monitor ou du Consolidation Monitor dans SAP S/4HANA pour le reporting de groupe. Chaque tâche a généralement un utilisateur, un horodatage et un statut. Capture Extrayez les journaux d'exécution des tâches des tables sous-jacentes du moniteur de consolidation de Group Reporting. Type d'événement explicit | |||
| Transfert des Données des Grands Livres Auxiliaires Terminé | Représente l'achèvement des traitements par lots qui transfèrent les données résumées des grands livres auxiliaires (comme les Comptes Clients, les Comptes Fournisseurs et la Comptabilité des Immobilisations) vers le Grand Livre. Cela garantit que toutes les transactions opérationnelles sous-jacentes sont reflétées dans le GL avant le début des procédures de clôture. | ||
| Pourquoi c'est important Les retards dans la clôture des sous-ledgers peuvent être un goulot d'étranglement majeur pour le processus global. Le suivi de cette activité aide à identifier les inefficacités dans la collecte et l'intégration des données à partir des systèmes sources. Où obtenir Déduit du statut d'achèvement réussi de jobs batch spécifiques responsables du règlement du grand livre et du transfert de données. Les journaux de jobs peuvent être trouvés dans les tables TBTCO et TBTCP. Capture Identifiez et surveillez les horodatages d'achèvement des jobs batch pertinents dans l'aperçu des jobs de SAP (transaction SM37). Type d'événement explicit | |||
Guides d'extraction
Étapes
- Identifier et vérifier les vues CDS : Connectez-vous à votre système SAP S/4HANA à l'aide de SAP HANA Studio ou d'Eclipse avec 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 de comptes, vous devrez peut-être créer des vues CDS personnalisées, par exemple Z_I_ACCOUNTRECONCILIATION, pour capturer les changements de statut.
- Exposer les vues CDS via OData : Dans le backend SAP, utilisez la transaction
SEGW(Gateway Service Builder) pour créer un nouveau 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 pour une consommation externe. - Activer le service OData : Allez à la transaction
/IWFND/MAINT_SERVICEsur le hub SAP Gateway. Cliquez sur 'Add Service', trouvez le service que vous avez généré à l'étape précédente et ajoutez-le. Cela rend le service actif et disponible pour les requêtes. - Établir la connexion de données : Depuis votre outil d'extraction de données choisi (tel que Python, Power BI ou une plateforme ETL dédiée), établissez une connexion au service OData nouvellement créé. Vous aurez besoin de l'URL du service et des identifiants appropriés avec l'autorisation d'accéder aux vues CDS.
- Adapter et exécuter la requête : Copiez la requête SQL fournie. Modifiez les valeurs des espaces réservés pour les plages de dates, les codes société et les noms de vues CDS personnalisées ou de jobs batch pour qu'ils correspondent à votre environnement SAP spécifique. Exécutez la requête sur le point d'accès du service OData. Notez qu'OData utilise une syntaxe différente ($filter, $select), vous devrez donc peut-être traduire la logique de la requête UNION ALL en une série d'appels d'API distincts, un pour chaque activité.
- Consolider les données d'activité : Étant donné qu'OData ne prend généralement pas en charge les requêtes UNION ALL complexes directement en un seul appel, vous exécuterez une requête distincte pour chaque bloc d'activité de la requête. Consolidez les résultats de toutes les requêtes dans un seul ensemble de données ou une table au sein de votre outil client.
- Transformer et nettoyer les données : Passez en revue les données consolidées. Assurez-vous que les colonnes
EventTimeetEndTimesont dans un format d'horodatage cohérent. Vérifiez queFinancialPeriodest correctement formaté en 'AAAA-MM'. Gérez toutes les valeurs NULL dans des colonnes commeResponsibleUserouDocumentNumbersi nécessaire. - Exporter en tant que journal d'événements : Exportez l'ensemble de données final consolidé vers un fichier CSV. Assurez-vous que les en-têtes de colonne correspondent aux attributs requis :
FinancialPeriod,ActivityName,EventTime,EndTime,ResponsibleUser, etc. Ce fichier est maintenant prêt à être téléchargé sur ProcessMind.
Configuration
- Vues CDS : La requête s'appuie sur une combinaison de vues CDS standard et personnalisées. Les vues standard comme
I_JournalEntryItem(pour les écritures de journal) etI_BatchJob(pour les exécutions automatisées) sont essentielles. Des vues personnalisées, commeZ_I_ACCOUNTRECONCILIATION, sont souvent nécessaires pour saisir le statut des processus internes non couverts par les vues standard. - Plage de dates : Définissez une plage de dates spécifique pour l'extraction afin de gérer le volume de données. La requête utilise les espaces réservés
[Date de début]et[Date de fin]qui devraient normalement couvrir une période de 3 à 6 exercices fiscaux complets pour une analyse significative. - Filtres clés : Le filtrage est crucial pour la performance et la pertinence. Filtrez toujours par
CompanyCode. D'autres filtres importants incluentLedger(par exemple, '0L' pour le grand livre principal),FiscalYearet des valeursDocumentTypespécifiques pour différencier les écritures régulières, les provisions et les ajustements. - Prérequis : L'utilisateur exécutant l'extraction doit disposer des autorisations SAP pour accéder aux vues CDS spécifiées et exécuter les services OData (par exemple, les objets d'autorisation
S_SERVICE,S_RFC). Les services SAP Gateway doivent être configurés et activés. - Performance : L'interrogation de
I_JournalEntryItempeut être très gourmande en ressources. Appliquez toujours des filtres sélectifs, en particulier sur les dates, les codes société et les grands livres. Envisagez d'exécuter l'extraction pendant les heures creuses ou d'utiliser une stratégie de chargement incrémental pour une surveillance continue.
a 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
- Identifier et vérifier les vues CDS : Connectez-vous à votre système SAP S/4HANA à l'aide de SAP HANA Studio ou d'Eclipse avec 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 de comptes, vous devrez peut-être créer des vues CDS personnalisées, par exemple Z_I_ACCOUNTRECONCILIATION, pour capturer les changements de statut.
- Exposer les vues CDS via OData : Dans le backend SAP, utilisez la transaction
SEGW(Gateway Service Builder) pour créer un nouveau 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 pour une consommation externe. - Activer le service OData : Allez à la transaction
/IWFND/MAINT_SERVICEsur le hub SAP Gateway. Cliquez sur 'Add Service', trouvez le service que vous avez généré à l'étape précédente et ajoutez-le. Cela rend le service actif et disponible pour les requêtes. - Établir la connexion de données : Depuis votre outil d'extraction de données choisi (tel que Python, Power BI ou une plateforme ETL dédiée), établissez une connexion au service OData nouvellement créé. Vous aurez besoin de l'URL du service et des identifiants appropriés avec l'autorisation d'accéder aux vues CDS.
- Adapter et exécuter la requête : Copiez la requête SQL fournie. Modifiez les valeurs des espaces réservés pour les plages de dates, les codes société et les noms de vues CDS personnalisées ou de jobs batch pour qu'ils correspondent à votre environnement SAP spécifique. Exécutez la requête sur le point d'accès du service OData. Notez qu'OData utilise une syntaxe différente ($filter, $select), vous devrez donc peut-être traduire la logique de la requête UNION ALL en une série d'appels d'API distincts, un pour chaque activité.
- Consolider les données d'activité : Étant donné qu'OData ne prend généralement pas en charge les requêtes UNION ALL complexes directement en un seul appel, vous exécuterez une requête distincte pour chaque bloc d'activité de la requête. Consolidez les résultats de toutes les requêtes dans un seul ensemble de données ou une table au sein de votre outil client.
- Transformer et nettoyer les données : Passez en revue les données consolidées. Assurez-vous que les colonnes
EventTimeetEndTimesont dans un format d'horodatage cohérent. Vérifiez queFinancialPeriodest correctement formaté en 'AAAA-MM'. Gérez toutes les valeurs NULL dans des colonnes commeResponsibleUserouDocumentNumbersi nécessaire. - Exporter en tant que journal d'événements : Exportez l'ensemble de données final consolidé vers un fichier CSV. Assurez-vous que les en-têtes de colonne correspondent aux attributs requis :
FinancialPeriod,ActivityName,EventTime,EndTime,ResponsibleUser, etc. Ce fichier est maintenant prêt à être téléchargé sur ProcessMind.
Configuration
- Vues CDS : La requête s'appuie sur une combinaison de vues CDS standard et personnalisées. Les vues standard comme
I_JournalEntryItem(pour les écritures de journal) etI_BatchJob(pour les exécutions automatisées) sont essentielles. Des vues personnalisées, commeZ_I_ACCOUNTRECONCILIATION, sont souvent nécessaires pour saisir le statut des processus internes non couverts par les vues standard. - Plage de dates : Définissez une plage de dates spécifique pour l'extraction afin de gérer le volume de données. La requête utilise les espaces réservés
[Date de début]et[Date de fin]qui devraient normalement couvrir une période de 3 à 6 exercices fiscaux complets pour une analyse significative. - Filtres clés : Le filtrage est crucial pour la performance et la pertinence. Filtrez toujours par
CompanyCode. D'autres filtres importants incluentLedger(par exemple, '0L' pour le grand livre principal),FiscalYearet des valeursDocumentTypespécifiques pour différencier les écritures régulières, les provisions et les ajustements. - Prérequis : L'utilisateur exécutant l'extraction doit disposer des autorisations SAP pour accéder aux vues CDS spécifiées et exécuter les services OData (par exemple, les objets d'autorisation
S_SERVICE,S_RFC). Les services SAP Gateway doivent être configurés et activés. - Performance : L'interrogation de
I_JournalEntryItempeut être très gourmande en ressources. Appliquez toujours des filtres sélectifs, en particulier sur les dates, les codes société et les grands livres. Envisagez d'exécuter l'extraction pendant les heures creuses ou d'utiliser une stratégie de chargement incrémental pour une surveillance continue.
a 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]';