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
- Guide d’extraction
Record to Report - Attributs de la clôture de période et du rapprochement
| Nom | Description | ||
|---|---|---|---|
| Période financière FinancialPeriod | Identifiant unique du cycle de reporting financier, qui combine généralement l’exercice fiscal et la période de comptabilisation. | ||
| Description La période financière sert d’identifiant principal du cas. Elle regroupe toutes les activités liées à la clôture et au rapprochement des comptes pour un cycle de reporting donné, par exemple « 2023-12 » pour décembre 2023. Elle permet d’analyser intégralement le processus de clôture de période, du début à la fin, pour chaque période distincte. Dans le cadre de l’analyse, elle permet de suivre le délai de bout en bout de chaque clôture, de comparer les performances entre différentes périodes et d’identifier les tendances ou les anomalies. En définissant chaque période financière comme un cas unique, il devient possible de visualiser et de mesurer l’efficacité, les goulots d’étranglement et les variations du processus de clôture au fil du temps. Pourquoi c’est important Il s’agit de l’identifiant de cas essentiel qui structure l’analyse et permet de comparer d’une période à l’autre les délais de clôture, les charges de travail et la conformité du processus. Où les obtenir Cet attribut est généralement obtenu en concaténant l’exercice fiscal (GJAHR) et la période de comptabilisation (MONAT) issus des en-têtes des documents financiers, par exemple dans la table BKPF. Exemples 2023-122024-032023-T4 | |||
| Activité ActivityName | Nom de l’événement métier ou de la tâche précise exécutée pendant le processus de clôture de période. | ||
| Description Cet attribut enregistre les différentes étapes du cycle Record to Report, telles que « Écriture d’ajustement comptabilisée » ou « États financiers générés ». Il constitue la base de la carte de processus en présentant la séquence des événements qui composent la clôture de période. L’analyse des activités est fondamentale en Process Mining. Elle permet de visualiser le flux du processus, d’identifier l’enchaînement des tâches, de découvrir les variations du processus et de mesurer la fréquence ainsi que la durée de chaque étape. Elle est essentielle pour repérer les goulots d’étranglement, les parcours non standard et les possibilités de standardisation ou d’automatisation. Pourquoi c’est important Cet attribut est obligatoire pour construire la carte de processus et visualiser et analyser l’enchaînement des tâches de la clôture de période. Où les obtenir Cet attribut est dérivé d’une combinaison de codes de transaction SAP (TCODE), de types de document (BLART) ou d’exécutions de programmes spécifiques, par exemple FAGL_FCV pour la valorisation en devise étrangère. Exemples Écriture d’ajustement comptabiliséeDébut du rapprochement des comptesPériode de comptabilisation clôturée | |||
| Dernière mise à jour des données LastDataUpdate | Horodatage de la dernière actualisation ou extraction des données depuis le système source. | ||
| Description Cet attribut indique le niveau d’actualité des données analysées. Il précise la date et l’heure de la dernière exécution du pipeline de données et fournit ainsi un contexte sur la récence des analyses du processus. Pour les Dashboards, notamment ceux qui suivent l’avancement en temps réel, cet horodatage permet aux utilisateurs de savoir s’ils consultent des informations à jour ou des données datant du jour précédent. Il contribue à gérer leurs attentes et est indispensable à l’interprétation correcte de l’analyse. Pourquoi c’est important Informe les utilisateurs sur l’actualité des données, un élément essentiel pour garantir que les analyses et les Dashboards sont à jour et pertinents. Où les obtenir Cet horodatage est généré et ajouté par l’outil d’extraction des données ou l’outil ETL à la fin de chaque chargement de données. Exemples 2024-05-21T04:00:00Z2024-05-20T04:00:00Z2024-05-19T04:00:00Z | |||
| Heure de l’événement EventTime | Horodatage indiquant le moment où une activité ou un événement s’est produit. | ||
| Description L’heure de l’événement fournit la date et l’heure précises de chaque activité du processus et constitue la base chronologique de l’analyse. Elle correspond généralement à la combinaison de la date et de l’heure de création du document. Cet horodatage est essentiel pour remettre les événements dans le bon ordre et reconstituer le flux du processus. Il sert à calculer toutes les métriques fondées sur la durée, notamment les délais de cycle entre les activités, les temps d’attente et la durée globale de la clôture de période. L’analyse des horodatages permet d’identifier les retards et de comprendre la répartition temporelle du travail. Pourquoi c’est important En tant qu’attribut obligatoire, il fournit l’ordre chronologique des événements, nécessaire au calcul des délais de cycle et à la détection des goulots d’étranglement. Où les obtenir Cet attribut provient généralement de la date de saisie du document (CPUDT) et de l’heure de saisie (CPUTM) de la table BKPF pour les documents financiers. Exemples 2023-12-28T14:30:15Z2024-01-02T09:05:00Z2024-01-05T17:21:45Z | |||
| Système source SourceSystem | Identifiant du système source à partir duquel les données ont été extraites. | ||
| Description Cet attribut précise l’origine des données d’événements, par exemple le nom ou l’identifiant d’une instance SAP ECC donnée. Dans les organisations qui utilisent plusieurs ERP ou systèmes financiers, ce champ est essentiel pour distinguer les données provenant de sources différentes. Même dans un environnement doté d’un seul système, il constitue une métadonnée importante pour la gouvernance des données, l’audit et le dépannage. Il confirme la provenance des données, ce qui est indispensable pour instaurer la confiance dans l’analyse et garantir la clarté de la traçabilité des données. Pourquoi c’est important Fournit les informations essentielles sur la traçabilité des données, confirme leur origine pour la gouvernance et permet de distinguer les processus dans les environnements multisystèmes. Où les obtenir Il s’agit généralement d’une valeur statique ajoutée lors de l’extraction des données afin d’identifier le client SAP et l’identifiant du système concernés, par exemple à partir de la table T000. Exemples ECC_PROD_100SAP_E74_200ECC_FINANCE | |||
| Code société BUKRS | Unité organisationnelle représentant une entité juridique pour laquelle les états financiers sont générés. | ||
| Description Le code société est une unité organisationnelle fondamentale de SAP Financials. Il représente une société indépendante disposant de ses propres comptes équilibrés. Toutes les transactions financières sont comptabilisées au niveau du code société. En Process Mining, le filtrage par code société est essentiel pour comparer le processus de clôture de période entre différentes entités juridiques d’un groupe. Il permet d’identifier les bonnes pratiques des entités les plus performantes et de repérer celles qui rencontrent des retards, un volume élevé d’ajustements ou des écarts de processus. Il s’agit d’une dimension essentielle pour segmenter l’analyse. Pourquoi c’est important Permet de comparer les performances et la conformité de la clôture de période entre différentes entités juridiques, ce qui est essentiel à l’analyse financière au niveau du groupe. Où les obtenir Ce champ est disponible dans presque toutes les tables de documents financiers de SAP, principalement BKPF (en-tête) et BSEG (poste individuel). Exemples 10002000US01DE01 | |||
| Compte GL HKONT | Numéro du compte du grand livre auquel un poste individuel est comptabilisé. | ||
| Description Le compte du grand livre (GL) est un élément central des données de référence financières qui sert à classer les transactions. Chaque comptabilisation financière est affectée à un ou plusieurs comptes GL. Dans le contexte de la clôture de période, l’analyse des activités par compte GL est essentielle aux Dashboards « Account Reconciliation Bottlenecks » et « Adjusting Entries Volume Analysis ». Elle permet d’identifier les comptes les plus difficiles à rapprocher, ceux qui nécessitent le plus d’ajustements et les domaines où le risque d’anomalie significative est le plus élevé. Cette approche aide les équipes à concentrer leurs efforts sur les comptes problématiques. Pourquoi c’est important Permet d’analyser de manière ciblée les rapprochements et les écritures d’ajustement afin d’identifier les comptes problématiques qui entraînent des retards ou nécessitent des corrections fréquentes. Où les obtenir Disponible dans la table des postes individuels des documents financiers, BSEG (HKONT). Exemples 113100400500750000 | |||
| Montant en devise locale DMBTR | Valeur financière d’un poste de transaction, exprimée dans la devise locale du code société. | ||
| Description Cet attribut représente la valeur monétaire associée à une comptabilisation financière. Il constitue la principale mesure quantitative de l’impact d’une transaction sur le grand livre. L’analyse du montant est essentielle pour hiérarchiser les problèmes et comprendre le risque financier. Par exemple, le Dashboard « Adjusting Entries Volume Analysis » est beaucoup plus utile lorsqu’il distingue un volume élevé d’ajustements de faible valeur d’un faible volume d’ajustements de forte valeur. Il aide à concentrer l’attention sur les transactions ayant un impact financier significatif. Pourquoi c’est important Quantifie l’impact financier des transactions et permet une analyse fondée sur l’importance relative, notamment pour identifier les écritures d’ajustement de forte valeur. Où les obtenir Disponible dans la table des postes individuels des documents, BSEG (DMBTR). Exemples 1500.75-25000.00123456.00 | |||
| Numéro de document BELNR | Identifiant unique d’un document comptable au sein d’un exercice fiscal et d’un code société. | ||
| Description Le numéro de document comptable est la clé primaire des comptabilisations financières dans SAP. Chaque écriture comptable, facture ou document de paiement reçoit un numéro unique. Bien qu’il ne soit généralement pas utilisé pour l’analyse des processus à un niveau global, le numéro de document est indispensable aux fonctions d’exploration détaillée. Depuis un Dashboard de Process Mining, les analystes peuvent utiliser ce numéro pour accéder directement à la transaction concernée dans SAP et examiner en détail une anomalie, telle qu’une écriture d’ajustement importante ou un poste de rapprochement en retard. Il établit un lien direct entre l’analyse et la transaction source. Pourquoi c’est important Fournit un lien direct vers la transaction source dans SAP et permet d’examiner en détail des écritures comptables spécifiques depuis la vue du processus. Où les obtenir Situé dans la table BKPF (BELNR), où il constitue la clé primaire. Exemples 100000456719000001233000008901 | |||
| Type d’écriture comptable JournalEntryType | Classification des écritures comptables, par exemple « Standard », « Ajustement », « Charge à payer » ou « Extourne ». | ||
| Description Il s’agit d’un attribut dérivé qui classe les documents financiers selon leur finalité métier dans le processus de clôture. Il est souvent déterminé à partir d’une combinaison du type de document (BLART), du motif d’extourne (STGRD) ou des comptes GL utilisés. Cette classification est fondamentale pour le Dashboard « Adjusting Entries Volume Analysis » et les KPI associés. En identifiant explicitement les écritures d’ajustement ou de charges à payer, les analystes peuvent mesurer leur volume et leur valeur, suivre leur évolution dans le temps et rechercher les causes profondes de leur nécessité. Elle permet de distinguer les comptabilisations opérationnelles courantes des ajustements de fin de période. Pourquoi c’est important Classe les comptabilisations pour permettre une analyse ciblée et le suivi et la mesure des principaux types d’écritures, comme les ajustements et les charges à payer, qui renseignent sur la santé du processus. Où les obtenir Il s’agit d’un champ dérivé. La logique doit être définie selon les règles métier, généralement à partir de champs tels que le type de document (BLART) de BKPF. Exemples AjustementCharge à payerExtourneStandard | |||
| Type de document BLART | Code qui classe les différents types de documents comptables. | ||
| Description Le type de document est utilisé dans SAP pour distinguer différentes transactions métier, telles que les factures fournisseurs (KR), les paiements clients (DZ) et les comptabilisations dans le grand livre (SA). Il contrôle également certaines propriétés, comme la plage de numérotation des documents. Pour l’analyse de la clôture de période, le type de document constitue un filtre puissant. Il permet d’isoler certains types d’activités, comme les charges à payer, les provisions ou les écritures d’extourne. Il facilite ainsi l’analyse du volume et de l’impact financier des transactions liées à la clôture et peut servir à définir des activités précises dans le modèle de processus. Pourquoi c’est important Aide à classer et à filtrer les transactions afin d’isoler et d’analyser des activités spécifiques, comme les charges à payer, les extournes ou les comptabilisations intersociétés. Où les obtenir Situé dans la table des en-têtes de documents, BKPF (BLART). Exemples SAABKR | |||
| Utilisateur responsable USNAM | Identifiant de l’utilisateur SAP qui a créé ou exécuté la transaction. | ||
| Description Ce champ identifie l’utilisateur qui a comptabilisé un document, exécuté un rapport ou lancé un programme lié à la clôture. Il désigne la personne responsable d’une activité donnée. L’analyse par utilisateur est essentielle pour comprendre la répartition de la charge de travail, identifier les besoins de formation et examiner les écarts de processus. Les Dashboards présentant les activités par utilisateur peuvent mettre en évidence les membres de l’équipe surchargés ou les personnes qui appliquent des procédures non standard. Ils contribuent également au suivi des performances et à l’allocation des ressources au sein de l’équipe financière. Pourquoi c’est important Permet d’analyser la répartition de la charge de travail et les performances de l’équipe, ainsi que d’identifier les écarts de processus associés à certaines personnes. Où les obtenir Disponible dans la table BKPF (USNAM) pour la création des documents. Pour les traitements par lots, il se trouve dans TBTCO (SDLUNAME). Exemples JSMITHRDOEFIN_ADMIN | |||
| Date cible d’achèvement TargetCompletionDate | Échéance planifiée ou date limite prévue pour une activité ou pour l’ensemble de la clôture de période. | ||
| Description La date cible d’achèvement correspond à l’échéance de référence utilisée pour mesurer le processus de clôture de période. Il s’agit de la date limite à laquelle certains jalons ou la clôture finale doivent être terminés. Cet attribut est essentiel pour toute analyse de performance ou de conformité. Il sert à calculer le KPI « Taux de clôture de période dans les délais » et à alimenter le Dashboard « Conformité de la clôture et tâches en retard ». En comparant l’heure réelle de l’événement à cette date cible, le système peut déterminer si les tâches sont dans les délais, en retard ou susceptibles de l’être, afin de permettre une gestion proactive du processus de clôture. Pourquoi c’est important Permet de suivre la conformité et la performance en fournissant une référence pour vérifier que les activités de clôture sont terminées dans les délais, et contribue ainsi aux KPI de respect des échéances. Où les obtenir Il s’agit généralement de données de référence gérées dans un calendrier distinct, un outil de pilotage de la clôture, tel que SAP Financial Closing cockpit, ou une feuille de calcul. Elles ne font pas partie des données transactionnelles. Exemples 2023-12-29T23:59:59Z2024-01-03T17:00:00Z2024-01-02T12:00:00Z | |||
| Est automatisé IsAutomated | Indicateur précisant si une activité a été réalisée par un utilisateur ou par un système automatisé. | ||
| Description Cet attribut booléen distingue les tâches manuelles de celles exécutées automatiquement par le système, par exemple un traitement batch planifié pour l’évaluation des devises étrangères ou un bot enregistrant des écritures récurrentes. Cette distinction est souvent établie en analysant le nom d’utilisateur associé à la transaction, par exemple « BATCHUSER ». Comprendre le niveau d’automatisation est essentiel pour repérer les possibilités de gains d’efficacité. L’analyse de cet attribut permet de visualiser les parties manuelles du processus et celles qui pourraient être automatisées. Elle aide également à évaluer précisément la charge de travail humaine en excluant les activités générées par le système. Pourquoi c’est important Distingue les activités manuelles de celles pilotées par le système, ce qui est essentiel pour repérer les possibilités d’automatisation et mesurer précisément la charge de travail manuelle. Où les obtenir Il s’agit d’un attribut dérivé. La logique repose généralement sur User Name (USNAM) : une liste d’identifiants connus d’utilisateurs système ou batch indique qu’il s’agit d’une tâche automatisée. Exemples truefalse | |||
| Est en retard IsOverdue | Indicateur calculé précisant si une activité a été terminée après sa date cible planifiée. | ||
| Description Cet attribut booléen compare l’heure réelle d’achèvement d’une activité (EventTime) à son échéance planifiée (TargetCompletionDate). Si l’heure de l’événement est postérieure à la date cible, l’indicateur prend la valeur true. Cet attribut contribue directement au Dashboard « Conformité de la clôture et tâches en retard » et au KPI « Taux de clôture de période dans les délais ». Il fournit un signal clair et immédiat des écarts par rapport au calendrier, afin que les responsables puissent repérer rapidement les tâches en retard, comprendre leur impact sur le calendrier global et responsabiliser les équipes quant au respect des échéances. Pourquoi c’est important Fournit un indicateur clair de non-respect des échéances, permettant d’identifier rapidement les tâches en retard et de mesurer la performance dans les délais. Où les obtenir Il s’agit d’un attribut calculé dans l’outil de Process Mining en comparant EventTime à TargetCompletionDate. Exemples truefalse | |||
| Est une reprise IsRework | Indicateur calculé qui identifie les activités correspondant à une reprise, comme une contre-passation ou un rapprochement rejeté. | ||
| Description Cet attribut booléen signale les événements ou les séquences d’événements qui révèlent des boucles inefficaces ou des corrections dans le processus. Par exemple, l’activité « Rapprochement contrôlé » suivie d’une nouvelle activité « Écriture d’ajustement enregistrée » sur le même compte peut être identifiée comme une reprise. Cet attribut est essentiel pour quantifier les pertes d’efficacité du processus. Il alimente le Dashboard « Occurrences de reprises de rapprochement » et le KPI « Taux de reprise des rapprochements ». En isolant les reprises, les équipes peuvent rechercher les causes profondes, mesurer leur impact sur la durée du cycle et suivre l’efficacité des initiatives d’amélioration visant à réussir du premier coup. Pourquoi c’est important Quantifie les inefficacités du processus en signalant les activités qui correspondent à des corrections ou à des répétitions, afin de mesurer et de réduire les efforts inutiles. Où les obtenir Il s’agit d’un attribut calculé. La logique est définie dans l’outil de Process Mining à partir de séquences d’activités précises, par exemple des boucles, ou d’attributs, par exemple lorsque ReversalReason n’est pas nul. Exemples truefalse | |||
| Exercice fiscal GJAHR | Exercice fiscal au cours duquel la transaction a été enregistrée. | ||
| Description L’exercice fiscal est un élément fondamental pour organiser les données financières. Il constitue une composante essentielle de l’identifiant de cas de la période financière et fournit le contexte nécessaire à l’interprétation de toutes les transactions. Bien qu’il fasse souvent partie de l’identifiant de cas, disposer de l’exercice fiscal comme attribut distinct est utile pour analyser les tendances à long terme. Vous pouvez ainsi comparer d’une année à l’autre les durées des cycles de clôture, le volume des ajustements ou d’autres KPI, et repérer les améliorations ou les dégradations de performance sur plusieurs exercices. Pourquoi c’est important Fournit le contexte temporel nécessaire et permet de comparer d’une année à l’autre la performance du processus de clôture. Où les obtenir Disponible dans la table d’en-tête des documents, BKPF (GJAHR). Exemples 202320242022 | |||
| Motif d’extourne ReversalReason | Code indiquant la raison pour laquelle un document financier a été extourné. | ||
| Description Lorsqu’un document est extourné dans SAP, un code motif peut être attribué pour expliquer la finalité de l’extourne, par exemple « Extourne dans la période en cours » ou « Écriture incorrecte ». Cet attribut fournit un contexte essentiel sur les causes des reprises de traitement. L’analyse des motifs d’extourne permet d’identifier les erreurs récurrentes, comme une saisie incorrecte ou une mauvaise date. Ces informations peuvent servir à mettre en place des mesures préventives, à améliorer la formation ou à renforcer les contrôles du système afin de réduire le nombre d’erreurs et d’extournes ultérieures, pour une clôture plus efficace. Pourquoi c’est important Fournit une visibilité directe sur les causes profondes des erreurs et des reprises de traitement, afin d’identifier les possibilités d’amélioration du processus et de prévention des erreurs. Où les obtenir Situé dans la table des en-têtes de documents, BKPF (STGRD). Exemples 010205 | |||
| Partenaire commercial VBUND | Identifiant de la société affiliée du groupe impliquée dans une transaction intersociétés. | ||
| Description L’identifiant du partenaire commercial sert à identifier l’autre code société participant à une transaction intersociétés. Il est indispensable au rapprochement des comptes entre entités juridiques liées. Cet attribut alimente directement le Dashboard « Intercompany Reconciliation Flow » et le KPI « Intercompany Recon. Cycle Time ». En filtrant les transactions pour lesquelles un partenaire commercial est renseigné, l’analyse peut se concentrer sur l’efficacité et la ponctualité du processus de rapprochement intersociétés, qui constitue souvent une difficulté majeure lors de la clôture de période. Pourquoi c’est important Identifie précisément les transactions intersociétés et permet d’analyser de manière ciblée un processus de rapprochement intersociétés souvent complexe et long. Où les obtenir Disponible dans la table des postes individuels des documents, BSEG (VBUND). Exemples 1000US013000 | |||
| Service Department | Service fonctionnel ou centre de coûts responsable de l’activité ou de la transaction. | ||
| Description Cet attribut identifie le service métier, tel que « Finance », « Ventes » ou « Logistique », associé à une transaction. Il est souvent dérivé des données de référence du centre de coûts lié à une comptabilisation ou des données de référence de l’utilisateur. L’analyse par service alimente le Dashboard « Close Team Workload Distribution ». Elle permet de comprendre comment les différentes fonctions métier contribuent à la charge de travail de fin de période, notamment en lançant des transactions qui peuvent nécessiter ultérieurement des ajustements ou des rapprochements. Elle peut mettre en évidence l’impact de services extérieurs à l’équipe financière sur le processus de clôture. Pourquoi c’est important Aide à analyser la charge de travail et le respect des processus entre les différentes fonctions métier, en révélant l’impact de chaque service sur l’efficacité de la clôture financière. Où les obtenir Souvent dérivé du centre de coûts (KOSTL) dans BSEG ou des données de référence RH de l’utilisateur responsable. Cette opération peut nécessiter la jointure de plusieurs tables. Exemples Finance d'entrepriseComptabilité fournisseursPlanification et analyse financières | |||
| Statut du rapprochement ReconciliationStatus | Statut actuel d’un rapprochement de compte, par exemple « Ouvert », « En cours de revue » ou « Approuvé ». | ||
| Description Cet attribut suit l’état d’un rapprochement de compte au fil de son flux de travail. Il indique si le rapprochement a été commencé, soumis pour revue, approuvé ou rejeté. Il s’agit d’un attribut important pour suivre en temps réel l’avancement des activités de rapprochement. Il aide à identifier les rapprochements bloqués et la durée de leur blocage, et prend en charge des KPI tels que « Account Reconciliation Cycle Time ». Il offre une visibilité sur le processus d’approbation et est essentiel aux Dashboards qui suivent les goulots d’étranglement des rapprochements et la charge de travail des équipes. Pourquoi c’est important Offre une visibilité sur le flux de travail de rapprochement, permettant de suivre l’avancement, d’identifier les goulots d’étranglement et de mesurer les temps de revue et d’approbation. Où les obtenir Ces informations se trouvent souvent dans un outil distinct de rapprochement, par exemple SAP Account Substantiation and Automation by BlackLine, ou dans un champ de statut personnalisé. Elles ne correspondent généralement pas à un champ standard de BKPF/BSEG. Exemples Non commencéEn coursApprouvéRejeté | |||
Record to Report - Activités de clôture de période et de rapprochement
| Activité | Description | ||
|---|---|---|---|
| Début du rapprochement des comptes | Cette activité représente le début du processus de rapprochement d’un ensemble de comptes GL pour la période. Dans SAP ECC standard, il ne s’agit pas d’un événement distinct. Il est généralement déduit d’activités connexes, comme l’exécution initiale d’un rapport clé. | ||
| Pourquoi c’est important Cette activité établit un jalon essentiel pour mesurer la durée de l’ensemble de la phase de rapprochement. Il est indispensable de savoir quand le rapprochement commence pour calculer le KPI Account Reconciliation Cycle Time. Où les obtenir Cet événement n’est pas journalisé explicitement. Il doit être déduit d’autres sources de données, comme le journal d’audit système (transaction STAD), qui enregistre la première exécution d’un rapport d’affichage des soldes tel que FAGLB03 ou FS10N. Collecte Déduire l’événement de la première exécution des transactions de rapport concernées, par exemple FAGLB03, dans les journaux système. Type d’événement inferred | |||
| Écriture d’ajustement comptabilisée | Une écriture d’ajustement est comptabilisée afin de corriger les soldes des comptes une fois le traitement initial des transactions de la période terminé. SAP enregistre cet événement comme une comptabilisation standard d’un document financier. | ||
| Pourquoi c’est important Cette activité est essentielle à l’analyse du volume des écritures d’ajustement. Un volume élevé d’ajustements peut révéler des problèmes de fiabilité dans les processus en amont et constitue une cible importante pour les initiatives d’amélioration des processus. Où les obtenir Ces écritures se trouvent dans les tables BKPF et BSEG. Elles sont généralement identifiées par un type de document précis (BKPF-BLART), réservé aux ajustements, ou par une comptabilisation dans des périodes spéciales de clôture, telles que les périodes 13 à 16. Collecte Filtrer BKPF pour identifier les documents comptabilisés dans des périodes spéciales ou associés à des types de document d’ajustement. Type d’événement explicit | |||
| États financiers générés | Cette activité correspond au moment où les états financiers officiels, tels que le compte de résultat et le bilan, sont générés. Elle est généralement capturée en suivant l’exécution d’un programme de reporting donné. | ||
| Pourquoi c’est important Il s’agit d’un jalon majeur qui marque la fin du traitement des données et le début de la phase finale de revue et d’approbation. Le délai entre cet événement et l’approbation constitue un KPI important. Où les obtenir Déduit des journaux d’audit système, tels que STAD, qui enregistrent l’exécution du programme de génération des états financiers, le plus souvent via la transaction F.01. Collecte À partir des journaux système (STAD) qui suivent l’exécution de la transaction F.01 pour les états financiers. Type d’événement inferred | |||
| Exécution de la valorisation en devise étrangère | Cette activité correspond à l’exécution d’un programme qui réévalue les postes ouverts et les soldes enregistrés en devises étrangères, à l’aide des taux de change de fin de période. Elle est généralement exécutée sous la forme d’un traitement par lots dans le cadre des étapes de clôture de période. | ||
| Pourquoi c’est important Il s’agit d’une étape essentielle pour garantir la fiabilité du reporting financier des organisations multinationales. L’analyse de son calendrier et de sa durée permet d’identifier des possibilités d’automatisation et d’optimisation des performances. Où les obtenir Capturé à partir des journaux d’exécution du programme de valorisation en devise étrangère, tel que FAGL_FCV ou F.05. Les informations des traitements par lots, disponibles notamment dans les tables TBTCO et TBTCP, fournissent les horodatages d’exécution. Collecte À partir des journaux des traitements par lots (table TBTCO) pour le programme FAGL_FC_VALUATION ou SAPF100. Type d’événement explicit | |||
| Période de comptabilisation clôturée | Représente la clôture officielle d’une période de comptabilisation, qui empêche toute nouvelle écriture opérationnelle. Cette opération garantit l’intégrité des données financières de la période clôturée et correspond à une modification explicite de la configuration. | ||
| Pourquoi c’est important Il s’agit de l’événement de fin définitif du processus de clôture de période. Il est essentiel pour calculer précisément le délai total du cycle de clôture et mesurer le respect des échéances. Où les obtenir La clôture des périodes via la transaction OB52 est enregistrée. Ces modifications peuvent être identifiées en analysant les documents de modification, dans les tables CDHDR et CDPOS, pour la table de configuration T001B. Collecte Extraction des documents de modification (CDHDR/CDPOS) pour la table T001B. Type d’événement explicit | |||
| Période ouverte à l’enregistrement | Cette activité marque le début officiel d’une période financière et permet la comptabilisation des transactions dans le grand livre. Il s’agit d’une modification explicite de la configuration, effectuée par un utilisateur autorisé afin d’ouvrir une période donnée à la comptabilisation pour un ou plusieurs codes société. | ||
| Pourquoi c’est important Cette activité constitue l’événement de début définitif du cas de clôture de période. L’analyse du temps écoulé depuis ce point permet de comprendre l’ensemble du cycle de vie de la période financière. Où les obtenir Les modifications des périodes de comptabilisation effectuées via la transaction OB52 sont journalisées. Elles peuvent être extraites en analysant les documents de modification de la table de configuration sous-jacente T001B, généralement à l’aide des tables CDHDR et CDPOS. Collecte Extraction des documents de modification (CDHDR/CDPOS) pour la table T001B. Type d’événement explicit | |||
| Document intersociétés lettré | Cette activité marque le lettrage d’un poste ouvert entre deux codes société différents. Elle indique qu’une transaction intersociétés a été réglée ou rapprochée. Dans SAP, cette opération est enregistrée par une comptabilisation financière explicite, généralement sous la forme d’un document de lettrage. | ||
| Pourquoi c’est important Les retards de lettrage des postes intersociétés constituent un goulot d’étranglement fréquent du processus de clôture. Le suivi de cette activité est essentiel pour mesurer et améliorer le délai du cycle de rapprochement intersociétés. Où les obtenir Identifié à partir des documents financiers des tables BKPF et BSEG. Un document de lettrage fait le lien avec les postes ouverts et les clôture. Sa date de lettrage (BSEG-AUGDT) sert d’horodatage de l’événement. Les transactions intersociétés sont identifiées à partir des champs relatifs au partenaire commercial. Collecte Identifier dans BKPF/BSEG les documents de lettrage associés à des postes comportant des partenaires commerciaux. Type d’événement explicit | |||
| Écriture d’extourne comptabilisée | Cette activité enregistre la comptabilisation d’un document qui annule une écriture comptable précédemment enregistrée, souvent pour corriger une erreur. SAP crée un lien explicite entre le document d’extourne et le document d’origine. | ||
| Pourquoi c’est important Un nombre élevé d’extournes peut révéler des problèmes de précision de la saisie ou de contrôle des processus. Le suivi de ces événements permet de mesurer le taux de conformité dès la première exécution et d’identifier les domaines à améliorer. Où les obtenir Les documents d’extourne se trouvent dans la table BKPF. Ils sont souvent créés avec la transaction FB08 et contiennent une référence au numéro du document extourné dans le champ BKPF-STBLG. Collecte Identifier les documents dont le champ BKPF-STBLG est renseigné ou qui ont été créés via des T-codes d’extourne. Type d’événement explicit | |||
| Exécution du traitement de lettrage GR/IR | Exécution du programme automatisé de lettrage du compte Goods Receipt/Invoice Receipt. Ce programme met en correspondance les réceptions de marchandises et les réceptions de factures correspondantes, puis lettrage les postes entre eux. | ||
| Pourquoi c’est important Le compte GR/IR est une source fréquente de problèmes de rapprochement. Le suivi de cette activité permet de vérifier que l’étape automatisée s’exécute correctement et de quantifier le volume d’exceptions nécessitant un suivi manuel. Où les obtenir L’exécution est enregistrée dans les journaux des traitements par lots (transaction SM37). Le programme utilisé est généralement SAPF124, exécuté via la transaction F.13. Les tables des journaux de traitements, telles que TBTCO, fournissent les horodatages nécessaires. Collecte À partir des journaux des traitements par lots (table TBTCO) pour le programme de lettrage SAPF124. Type d’événement explicit | |||
| Provision ou charge à payer comptabilisée | Cette activité correspond à l’enregistrement d’une écriture comptable pour une charge à payer, un produit ou une charge constaté(e) d’avance, ou une provision, généralement comptabilisée en fin de période. SAP ne définit pas de type d’événement distinct pour cette opération. Celle-ci est déduite de l’identification d’écritures comptables présentant certaines caractéristiques. | ||
| Pourquoi c’est important L’isolement de ces écritures permet d’analyser le sous-processus de gestion des estimations. Un volume élevé ou des ajustements fréquents des charges à payer peuvent révéler des possibilités d’amélioration du processus. Où les obtenir Cet événement est déduit des tables de documents financiers BKPF et BSEG. Les écritures peuvent être identifiées en filtrant sur un type de document précis (BKPF-BLART), un compte GL donné (BSEG-HKONT) ou des mots-clés présents dans le texte d’en-tête (BKPF-BKTXT). Collecte Filtrer les tables BKPF/BSEG selon le type de document, les comptes GL concernés ou les champs de texte. Type d’événement inferred | |||
| Rapport de balance générale généré | Marque l’exécution d’un rapport destiné à générer la balance générale. Il s’agit d’une étape essentielle pour vérifier que le total des débits est égal au total des crédits avant de produire les états financiers officiels. | ||
| Pourquoi c’est important Il s’agit d’un contrôle qualité essentiel avant le reporting final. Des exécutions répétées de ce rapport peuvent indiquer que des problèmes dans les données sous-jacentes sont détectés puis corrigés, ce qui peut entraîner des retards. Où les obtenir Déduit des journaux d’audit système, tels que ceux de la transaction STAD, qui peuvent enregistrer l’exécution de transactions de reporting de la balance générale comme S_ALR_87012277 ou F.01. Collecte À partir des journaux système (STAD) qui suivent l’exécution des codes de transaction de reporting. Type d’événement inferred | |||
| Rapprochement contrôlé | Indique que le rapprochement d’un compte ou d’un groupe de comptes donné a été contrôlé et confirmé. Dans SAP ECC standard, cet événement n’est pas journalisé explicitement et est souvent géré au moyen de contrôles hors ligne ou de solutions personnalisées. | ||
| Pourquoi c’est important Le suivi du calendrier des contrôles est important pour comprendre les goulots d’étranglement lors des étapes de contrôle et de supervision du processus de clôture. Il peut mettre en évidence les retards liés à la disponibilité de la direction ou aux reprises de traitement. Où les obtenir Ces informations ne sont pas disponibles dans les tables ECC standard. Elles nécessiteraient une solution personnalisée, par exemple un champ de statut dans une table Z personnalisée, un flux de travail simple ou une intégration avec un outil spécialisé de rapprochement tiers. Collecte Capturez le changement de statut à partir d’un flux de travail personnalisé ou d’une table Z, si cette solution est mise en œuvre. Type d’événement inferred | |||
Guides d’extraction
Étapes
- Accéder à l’outil SAP Query : connectez-vous à votre système SAP ECC. Accédez au code de transaction
SQVI(QuickViewer). 2. Créer une nouvelle requête : saisissez un nom pour votre requête, par exempleZ_R2R_PERIOD_CLOSE, puis cliquez sur « Create ». Dans la fenêtre contextuelle, indiquez un titre explicite, tel que « Extraction de la clôture de période Record to Report ». Pour « Data source », sélectionnez « Table join ». 3. Définir les jointures de tables : ajoutez la table principaleBKPF(en-tête du document comptable), puis la tableBSEG(poste du document comptable). SAP proposera automatiquement les conditions de jointure (MANDT, BUKRS, BELNR, GJAHR), que vous devez vérifier et accepter. Pour les activités d’ouverture et de clôture de période, vous aurez besoin d’une requête distincte reliantCDHDRetCDPOS. 4. Sélectionner les champs de sortie (List Fields) : accédez à l’onglet « List fld. select. ». Sélectionnez dans les tables disponibles les champs requis pour l’Event Log, notammentBKPF-BUKRS,BKPF-BELNR,BKPF-GJAHR,BKPF-MONAT,BKPF-CPUDT,BKPF-CPUTM,BKPF-USNAM,BKPF-BLART,BSEG-HKONT,BSEG-DMBTR, ainsi que les autres champs nécessaires. 5. Définir les paramètres d’entrée (Selection Fields) : accédez à l’onglet « Selection fields ». Choisissez les champs qui serviront à filtrer les données lors de l’exécution. Les plus importants sontBKPF-BUKRS(code société) etBKPF-GJAHR(exercice fiscal). Vous pouvez également ajouterBKPF-MONAT(période d’enregistrement) etBKPF-BLART(type de document). 6. Créer des variantes pour chaque activité : SQVI ne pouvant pas combiner différentes sélections de données, comme une SQL UNION, vous devez exécuter la requête plusieurs fois. Pour chaque activité, par exemple « Provision ou charge à payer enregistrée », exécutez la requête et saisissez les valeurs de filtre correspondantes dans l’écran de sélection, comme une liste de types de documents associés aux provisions. Enregistrez ces critères de sélection sous forme de variante. Répétez l’opération pour chaque activité extractible. 7. Exécuter la requête et extraire les données : exécutez la requête pour chaque variante créée. Les filtres propres à l’activité concernée seront alors appliqués. 8. Exporter les résultats : dans l’écran des résultats, exportez les données vers un fichier local. Le format le plus courant est « Spreadsheet ». Répétez l’export pour chaque variante. 9. Combiner et transformer les données : ouvrez les fichiers exportés dans un tableur ou utilisez un outil de script. Regroupez manuellement les données de tous les fichiers dans un fichier maître unique. 10. Ajouter les colonnes constantes et calculées : dans le fichier regroupé, ajoutez les colonnes qui ne sont pas extraites directement des tables SAP. Il s’agit notamment deActivityName(à définir manuellement selon la variante d’origine),FinancialPeriod(en concaténant l’exercice fiscal et la période),EventTime(en combinant les champs de date et d’heure),SourceSystemetLastDataUpdate. 11. Préparer le chargement : enregistrez le fichier final au format CSV ou Excel, avec les en-têtes de colonnes requis par votre outil de Process Mining. Vérifiez les types de données et le formatage avant le chargement.
Configuration
- Source de données : jointure de tables dans SAP Query (SQVI). Les tables clés sont BKPF, BSEG, CDHDR et CDPOS. * Période : il est recommandé d’extraire les données sur au moins 3 à 6 périodes financières complètes afin d’identifier les tendances. Définissez les filtres sur
BKPF-GJAHR(exercice fiscal) etBKPF-MONAT(période). * Filtre sur le code société : filtrez toujours surBKPF-BUKRS(code société) afin de limiter le volume de données et de concentrer l’analyse sur certaines entités juridiques. Il n’est pas recommandé d’extraire simultanément tous les codes société. * Filtre sur le type de document : utilisez des filtres surBKPF-BLART(type de document) pour isoler des activités telles que les provisions, les ajustements ou les contre-passations. Vous devrez identifier les types de documents pertinents pour votre organisation. * Prérequis : l’utilisateur qui exécute l’extraction doit être autorisé à utiliser la transactionSQVIet disposer d’un accès en lecture aux tables financières concernées, par exemple via l’objet d’autorisation S_TABU_DIS. * Considérations de performance : la jointure de BKPF et BSEG peut mobiliser beaucoup de ressources. Exécutez l’extraction en dehors des heures de pointe. Évitez les plages de dates trop larges et ne laissez pas le filtre Code société ouvert, car cela peut provoquer des problèmes de mémoire ou des dépassements de délai.
a Exemple de requête sql
/*
LOGICAL REPRESENTATION FOR SAP QUERY (SQVI)
This is not a single executable script. Due to limitations in SQVI, you must create a base query joining BKPF and BSEG, then run it multiple times using different selection screen variants to extract each activity below. The results must be combined manually.
A separate query joining CDHDR and CDPOS is needed for period open/close activities.
*/
-- Activity 1: Period Opened For Posting
-- Required Query: Join CDHDR and CDPOS in SQVI.
SELECT
CONCAT(T001B.VONJ1, T001B.POPER) AS FinancialPeriod,
'Period Opened For Posting' AS ActivityName,
TO_TIMESTAMP(CONCAT(CDHDR.UDATE, CDHDR.UTIME), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
T001B.BUKRS AS BUKRS,
NULL AS BELNR,
CDHDR.USERNAME AS USNAM,
NULL AS HKONT,
NULL AS BLART,
NULL AS DMBTR,
NULL AS JournalEntryType
FROM CDHDR
JOIN CDPOS ON CDHDR.CHANGENR = CDPOS.CHANGENR
JOIN T001B ON SUBSTRING(CDPOS.TABKEY, 4, 4) = T001B.BUKRS
WHERE CDHDR.OBJECTCLAS = 'DEBI_BUKRS' AND CDPOS.TABNAME = 'T001B' AND CDPOS.FNAME = 'OFPER' AND CDPOS.VALUE_NEW > CDPOS.VALUE_OLD;
UNION ALL
-- Activity 2: Accrual Or Provision Posted
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Accrual Or Provision Posted' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Accrual' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.BLART IN ('SA', '[Your Accrual Doc Type]'); -- Filter by document types used for accruals
UNION ALL
-- Activity 3: Intercompany Document Cleared
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Intercompany Document Cleared' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.AUGBL AS BELNR, -- The clearing document number
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Clearing' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BSEG.AUGBL IS NOT NULL AND BSEG.VBUND IS NOT NULL; -- Identify cleared items with an intercompany trading partner
UNION ALL
-- Activity 4: Foreign Currency Valuation Run
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Foreign Currency Valuation Run' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Valuation' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.TCODE IN ('FAGL_FCV', 'FBB1'); -- Filter by FCV transaction code
UNION ALL
-- Activity 5: GR/IR Clearing Run Executed
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'GR/IR Clearing Run Executed' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Clearing' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.TCODE IN ('F.13', 'F13E'); -- Filter by automated clearing transaction codes
UNION ALL
-- Activity 6: Account Reconciliation Started (Proxy)
-- This is a proxy. It takes the earliest adjusting journal entry timestamp for the period.
SELECT
A.FinancialPeriod,
'Account Reconciliation Started' AS ActivityName,
MIN(A.EventTime) AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
A.BUKRS,
NULL AS BELNR,
NULL AS USNAM,
NULL AS HKONT,
NULL AS BLART,
NULL AS DMBTR,
NULL AS JournalEntryType
FROM (
SELECT CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
BKPF.BUKRS
FROM BKPF
WHERE BKPF.BLART IN ('AB', '[Your Adjusting Doc Type]')
) AS A
GROUP BY A.FinancialPeriod, A.BUKRS;
UNION ALL
-- Activity 7: Adjusting Journal Entry Posted
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Adjusting Journal Entry Posted' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Adjusting' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.BLART IN ('AB', '[Your Adjusting Doc Type]'); -- Filter by document types for adjustments
UNION ALL
-- Activity 8: Reversal Entry Posted
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Reversal Entry Posted' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Reversal' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.STBLG IS NOT NULL; -- STBLG (Reversed Document Number) is populated for reversals
UNION ALL
-- Activity 9: Period Closed For Posting
-- Required Query: Join CDHDR and CDPOS in SQVI.
SELECT
CONCAT(T001B.VONJ1, T001B.POPER) AS FinancialPeriod,
'Period Closed For Posting' AS ActivityName,
TO_TIMESTAMP(CONCAT(CDHDR.UDATE, CDHDR.UTIME), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
T001B.BUKRS AS BUKRS,
NULL AS BELNR,
CDHDR.USERNAME AS USNAM,
NULL AS HKONT,
NULL AS BLART,
NULL AS DMBTR,
NULL AS JournalEntryType
FROM CDHDR
JOIN CDPOS ON CDHDR.CHANGENR = CDPOS.CHANGENR
JOIN T001B ON SUBSTRING(CDPOS.TABKEY, 4, 4) = T001B.BUKRS
WHERE CDHDR.OBJECTCLAS = 'DEBI_BUKRS' AND CDPOS.TABNAME = 'T001B' AND CDPOS.FNAME = 'OFPER' AND CDPOS.VALUE_NEW < CDPOS.VALUE_OLD;
/*
-- Activities Not Extractable via this Method
-- The following activities are not data postings and cannot be reliably extracted by querying finance tables BKPF/BSEG.
-- Extraction would require analyzing application logs (SLG1), system logs (STAT), or custom-built logging solutions.
-- Activity: Trial Balance Report Generated
-- Activity: Financial Statements Generated
-- Activity: Reconciliation Reviewed
*/ Étapes
- Définir le périmètre et concevoir le programme : définissez la logique précise permettant d’identifier chacune des 12 activités requises. Consultez les responsables des processus métier et les analystes fonctionnels SAP afin de confirmer les types de documents, les comptes G/L et les noms de programmes associés aux activités de clôture de période dans votre environnement SAP ECC.
- Créer le programme ABAP : à l’aide de la transaction
SE38(ABAP Editor), créez un nouveau programme exécutable, par exempleZ_PM_R2R_EXTRACTION. Attribuez-lui un titre explicite et définissez le type de programme sur « Executable Program ». - Définir l’écran de sélection : dans le programme, définissez un écran de sélection à l’aide de
PARAMETERSetSELECT-OPTIONS. Cet écran permettra aux utilisateurs de préciser le périmètre d’extraction, notamment le code société (BUKRS), l’exercice fiscal (GJAHR) et la période comptable (MONAT). Cette étape est essentielle pour maîtriser le volume de données. - Déclarer les structures de données : définissez une structure de table interne destinée à contenir les données finales du journal d’événements. Elle doit inclure tous les attributs requis et recommandés :
FinancialPeriod,ActivityName,EventTime,SourceSystem,LastDataUpdate,BUKRS,BELNR,USNAM,HKONT,BLART,DMBTRetJournalEntryType. - Implémenter la logique d’extraction : écrivez la logique ABAP principale pour sélectionner les données correspondant aux 12 activités. Pour chaque activité, interrogez les tables SAP pertinentes, par exemple BKPF, BSEG, TBTCO et CDHDR, puis alimentez une table interne intermédiaire. Utilisez comme modèle la logique fournie dans la section de requête ABAP associée.
- Identifier les activités déduites : pour les activités qui ne sont pas enregistrées explicitement dans SAP standard, telles que « Account Reconciliation Started » ou « Reconciliation Reviewed », implémentez la logique de déduction convenue. Celle-ci peut consister à rechercher la première exécution d’un rapport donné ou à interroger des tables personnalisées « Z » lorsqu’elles existent.
- Consolider les données d’événements : après l’extraction des données de chaque activité, ajoutez les enregistrements de chaque table intermédiaire à la table interne consolidée finale. Vérifiez que le champ
EventTimeest correctement renseigné à partir du champ source pertinent, par exemple la date et l’heure de comptabilisation du document ou la date et l’heure de début du job. - Standardiser et formater les données : avant la sortie, standardisez les champs clés. Combinez l’exercice et la période pour former l’identifiant
FinancialPeriod. Définissez les valeurs statiques deSourceSystemetLastDataUpdate. Vérifiez que les horodatages utilisent un format cohérent. - Développer la fonction de sortie : ajoutez au programme une fonction d’export de la table interne finale. La méthode la plus courante consiste à écrire les données dans un fichier CSV ou délimité par des tabulations sur le SAP Application Server, à l’aide de
OPEN DATASET, ou à permettre à l’utilisateur de les télécharger directement sur son poste avec le module de fonctionGUI_DOWNLOAD. - Tester et valider : testez soigneusement le programme avec un jeu de données représentatif couvrant plusieurs codes société et périodes. Utilisez les étapes de validation pour vérifier l’exactitude et l’exhaustivité des données. Affinez la logique de sélection en fonction des retours des experts fonctionnels.
- Planifier l’exécution (facultatif) : une fois le programme validé, vous pouvez planifier son exécution comme job d’arrière-plan via la transaction
SM36. Vous pourrez ainsi automatiser l’extraction périodique du journal d’événements, sans intervention manuelle.
Configuration
- Critères de sélection : le programme doit comporter un écran de sélection permettant de filtrer les données. Les principaux filtres sont les suivants :
Company Code (BUKRS): obligatoire pour limiter le périmètre aux entités juridiques concernées.Fiscal Year (GJAHR): obligatoire pour définir l’exercice principal de l’extraction.Posting Period (MONAT): obligatoire pour sélectionner les périodes comptables concernées.
- Configuration propre aux activités : de nombreuses sélections dépendent de votre configuration SAP. Elles doivent pouvoir être définies comme paramètres ou constantes dans le programme :
Accrual/Provision Document Types: liste des types de documents (BLART) utilisés pour identifier les écritures de charges à payer et de provisions.Adjusting Entry Document Types: liste des types de documents utilisés pour identifier les écritures d’ajustement.Background Job/Program Names: noms techniques des programmes utilisés pour la valorisation des devises étrangères, par exempleFAGL_FCV, le lettrage GR/IR, par exempleSAPF124, les rapports de balance et la génération des états financiers, par exempleRFBILA00.
- Plage de dates : même si la sélection principale s’effectue par exercice et par période, la logique sous-jacente doit prendre en compte la date et l’heure complètes des événements. Pour une première analyse, il est recommandé d’extraire les données des 3 à 6 dernières périodes comptables clôturées.
- Performances : dans les environnements SAP volumineux, les performances du programme sont essentielles. Vérifiez que les sélections dans la base de données utilisent les champs indexés, en particulier dans les tables telles que
BKPFetBSEG. Évitez de sélectionner tous les champs (SELECT *) et traitez les données par lots de taille maîtrisée si nécessaire. - Autorisations : l’utilisateur ou le compte de service qui exécute ce programme doit être autorisé à accéder à toutes les tables interrogées (
BKPF,BSEG,TBTCO,TBTCP,CDHDR,CDPOS) et à exécuter des transactions telles queSE38pour le développement etSM37/SM36pour la planification et le suivi.
a Exemple de requête abap
REPORT Z_PM_R2R_EXTRACTION.
" ====================================================================
" DATA DECLARATIONS
" ====================================================================
TYPES: BEGIN OF ty_event_log,
FinancialPeriod TYPE string,
ActivityName TYPE string,
EventTime TYPE timestamp,
SourceSystem TYPE string,
LastDataUpdate TYPE timestamp,
BUKRS TYPE bukrs,
BELNR TYPE belnr_d,
USNAM TYPE usnam,
HKONT TYPE hkont,
BLART TYPE blart,
DMBTR TYPE dmbtr,
JournalEntryType TYPE string,
END OF ty_event_log.
DATA: lt_final_log TYPE STANDARD TABLE OF ty_event_log,
ls_log_entry LIKE LINE OF lt_final_log.
DATA: lv_source_system TYPE string VALUE 'SAP ECC'.
GET TIME STAMP FIELD ls_log_entry-LastDataUpdate.
" ====================================================================
" SELECTION SCREEN
" ====================================================================
SELECT-OPTIONS: s_bukrs FOR ls_log_entry-bukrs OBLIGATORY,
s_gjahr FOR bkpf-gjahr OBLIGATORY,
s_monat FOR bkpf-monat OBLIGATORY.
PARAMETERS: p_accrl TYPE blart DEFAULT 'SA', " Example Doc Type for Accruals
p_adjst TYPE blart DEFAULT 'AJ', " Example Doc Type for Adjustments
p_fcv TYPE btcjob DEFAULT 'FAGL_FCV*', " Program for FC Valuation
p_grir TYPE btcjob DEFAULT 'SAPF124*', " Program for GR/IR Clearing
p_fs TYPE btcjob DEFAULT 'RFBILA00'. " Program for Fin. Statements
" ====================================================================
" MAIN LOGIC
" ====================================================================
START-OF-SELECTION.
" --- 1. Period Opened For Posting ---
" Note: This is complex. This example queries change documents for posting period config (T001B).
SELECT h~objectid, h~udate, h~utime, h~username
INTO TABLE @DATA(lt_period_open)
FROM cdhdr AS h
WHERE h~objectclas = 'V_T001B' AND h~change_ind = 'U'.
LOOP AT lt_period_open INTO DATA(ls_period_open).
" Further logic needed to parse OBJECTID and check CDPOS for opening a period.
" This is a simplified placeholder for a complex logic.
ls_log_entry-ActivityName = 'Period Opened For Posting'.
" Populate other fields... append to lt_final_log
ENDLOOP.
" --- 2. Accrual Or Provision Posted ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_accrual)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat AND h~blart = @p_accrl.
LOOP AT lt_accrual INTO DATA(ls_accrual).
CLEAR ls_log_entry.
CONVERT DATE ls_accrual-cpudt TIME ls_accrual-cputm INTO TIME STAMP ls_log_entry-EventTime TIME ZONE sy-zonlo.
CONCATENATE ls_accrual-gjahr ls_accrual-monat INTO ls_log_entry-FinancialPeriod.
ls_log_entry-ActivityName = 'Accrual Or Provision Posted'.
ls_log_entry-BUKRS = ls_accrual-bukrs.
ls_log_entry-BELNR = ls_accrual-belnr.
ls_log_entry-USNAM = ls_accrual-usnam.
ls_log_entry-HKONT = ls_accrual-hkont.
ls_log_entry-BLART = ls_accrual-blart.
ls_log_entry-DMBTR = ls_accrual-dmbtr.
ls_log_entry-JournalEntryType = 'Accrual'.
GET TIME STAMP FIELD ls_log_entry-LastDataUpdate.
ls_log_entry-SourceSystem = lv_source_system.
APPEND ls_log_entry TO lt_final_log.
ENDLOOP.
" --- 3. Intercompany Document Cleared ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_ic_clear)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat
AND h~blart = 'AB' AND i~vbund <> space.
LOOP AT lt_ic_clear INTO DATA(ls_ic_clear).
" Populate ls_log_entry and append to lt_final_log, setting ActivityName = 'Intercompany Document Cleared'
ENDLOOP.
" --- 4. Foreign Currency Valuation Run ---
SELECT j~jobname, j~sdlstrtda, j~sdlstrttm, j~sdluname
INTO TABLE @DATA(lt_fcv_jobs)
FROM tbtco AS j
WHERE j~jobname LIKE @p_fcv AND j~status = 'F'. " F = Finished
LOOP AT lt_fcv_jobs INTO DATA(ls_fcv_job).
" Populate ls_log_entry, deriving FinancialPeriod from date, setting ActivityName = 'Foreign Currency Valuation Run'
ENDLOOP.
" --- 5. GR/IR Clearing Run Executed ---
SELECT j~jobname, j~sdlstrtda, j~sdlstrttm, j~sdluname
INTO TABLE @DATA(lt_grir_jobs)
FROM tbtco AS j
WHERE j~jobname LIKE @p_grir AND j~status = 'F'.
LOOP AT lt_grir_jobs INTO DATA(ls_grir_job).
" Populate ls_log_entry, deriving FinancialPeriod from date, setting ActivityName = 'GR/IR Clearing Run Executed'
ENDLOOP.
" --- 6. Account Reconciliation Started (Inferred) ---
" Note: Inferring this by first run of a report, e.g., FAGLB03. Requires custom logging or complex logic.
" Placeholder: Query a custom log table if available.
" SELECT ... FROM zreco_log ...
" --- 7. Adjusting Journal Entry Posted ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_adjust)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat AND h~blart = @p_adjst.
LOOP AT lt_adjust INTO DATA(ls_adjust).
" Populate ls_log_entry and append, setting ActivityName = 'Adjusting Journal Entry Posted', JournalEntryType = 'Adjusting'
ENDLOOP.
" --- 8. Reversal Entry Posted ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_reversal)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat AND h~stblg <> space.
LOOP AT lt_reversal INTO DATA(ls_reversal).
" Populate ls_log_entry and append, setting ActivityName = 'Reversal Entry Posted', JournalEntryType = 'Reversal'
ENDLOOP.
" --- 9. Trial Balance Report Generated (Inferred from Job) ---
" Similar to other jobs, query TBTCO for Trial Balance report programs.
" SELECT ... FROM tbtco ... WHERE jobname LIKE '[Your Trial Balance Program]'.
" --- 10. Financial Statements Generated ---
SELECT j~jobname, j~sdlstrtda, j~sdlstrttm, j~sdluname
INTO TABLE @DATA(lt_fs_jobs)
FROM tbtco AS j
WHERE j~jobname LIKE @p_fs AND j~status = 'F'.
LOOP AT lt_fs_jobs INTO DATA(ls_fs_job).
" Populate ls_log_entry, deriving FinancialPeriod from date, setting ActivityName = 'Financial Statements Generated'
ENDLOOP.
" --- 11. Reconciliation Reviewed (Inferred) ---
" Note: This activity is almost always managed outside of SAP or in a custom solution.
" Placeholder: Query a custom approval/log table if available.
" SELECT ... FROM zreco_approval ...
" --- 12. Period Closed For Posting ---
" Note: Similar to 'Period Opened', this is very complex. Query change documents for T001B.
SELECT h~objectid, h~udate, h~utime, h~username
INTO TABLE @DATA(lt_period_close)
FROM cdhdr AS h
WHERE h~objectclas = 'V_T001B' AND h~change_ind = 'U'.
LOOP AT lt_period_close INTO DATA(ls_period_close).
" Further logic needed to parse OBJECTID and check CDPOS for closing a period.
ls_log_entry-ActivityName = 'Period Closed For Posting'.
" Populate other fields... append to lt_final_log
ENDLOOP.
" ... Code to display or download the lt_final_log internal table ...
ENDFORMS. Étapes
- Rassemblez les prérequis : obtenez des identifiants d’accès en lecture seule à la base de données SAP ECC sous-jacente. Identifiez le schéma de base de données approprié, généralement
SAPSR3ou un nom similaire fourni par votre administrateur de base de données. - Identifiez la configuration du système : consultez votre équipe SAP Finance afin de déterminer les
Company Codes(BUKRS) et les périodes comptables à analyser. Identifiez en particulier lesDocument Types(BLART) utilisés dans votre système pour les transactions « Accrual Or Provision Posted », « Adjusting Journal Entry Posted » et « Intercompany ». - Vérifiez les noms des programmes et des jobs : confirmez les noms des programmes associés aux principaux jobs par lots, notamment la valorisation des devises étrangères, par exemple
FAGL_FCV, le lettrage GR/IR, par exempleSAPF124, les rapports de balance, par exempleRFBILA00, et la génération des états financiers, par exempleRFBILA00. Vous trouverez ces informations en consultant les jobs planifiés dans la transactionSM37. - Personnalisez la requête SQL : copiez la requête SQL fournie dans un éditeur de texte ou un client SQL. Remplacez les variables d’espace réservé
{{start_date}},{{end_date}}et{{company_codes}}par les valeurs correspondant à votre analyse. Mettez à jour les listes de types de documents et de noms de programmes à partir des informations recueillies aux étapes précédentes. - Connectez-vous à la base de données : utilisez un outil client SQL standard, tel que DBeaver, SQL Server Management Studio ou Oracle SQL Developer, pour vous connecter à la base SAP avec les identifiants obtenus.
- Exécutez la requête : lancez la requête SQL personnalisée sur la base de données. Selon la plage de dates et la taille de vos tables financières, son exécution peut prendre un temps important.
- Examinez les premiers résultats : une fois la requête terminée, effectuez une vérification rapide du résultat. Contrôlez que le nombre de lignes est cohérent, que toutes les colonnes sont présentes et que différentes valeurs de
ActivityNamefigurent dans les résultats. - Exportez les données : exportez l’ensemble du résultat depuis votre client SQL dans un fichier CSV. Enregistrez-le en UTF-8 afin d’éviter les problèmes d’encodage.
- Préparez l’importation : avant d’importer les données dans un outil de Process Mining, vérifiez que les en-têtes de colonnes du fichier CSV correspondent exactement aux noms d’attributs requis, notamment
FinancialPeriod,ActivityNameetEventTime. Vérifiez également que la colonneEventTimeutilise un format d’horodatage cohérent, tel queYYYY-MM-DD HH:MI:SS.
Configuration
- Identifiants de base de données : un utilisateur de base de données en lecture seule, autorisé à accéder aux tables SAP Finance et système principales, est requis. Cela inclut notamment les tables
BKPF,BSEG,TBTCO,CDHDRetCDPOS. - Plage de dates : nous recommandons d’extraire au moins 3 à 6 périodes comptables complètes afin de faire apparaître des variations significatives du processus. Gardez à l’esprit qu’une plage de dates plus étendue augmentera sensiblement le temps d’exécution de la requête.
- Codes société (
BUKRS) : filtrez toujours les données à partir d’une liste précise de codes société. Exécuter la requête sur l’ensemble des codes société d’un système volumineux n’est pas réaliste et risque d’entraîner des problèmes de performances. - Types de documents (
BLART) : l’identification des types d’écritures, notamment les provisions et les ajustements, dépend entièrement de la configuration SAP propre à votre organisation. Vous devez fournir les codes de types de documents corrects dans les clausesWHEREde la requête pour classer les activités avec précision. - Noms des programmes et des jobs : la requête utilise des noms de programmes courants pour les étapes automatisées de clôture. Votre système peut utiliser des programmes enveloppes personnalisés ou des noms de jobs différents. Vérifiez ces éléments dans la transaction
SM37, puis mettez la requête à jour en conséquence. - Considérations relatives aux performances : cette requête accède à de très grandes tables, en particulier
BSEGetCDPOS. Il est fortement recommandé d’exécuter l’extraction en dehors des heures ouvrées afin de limiter son impact sur les performances du système. L’application de filtres précis sur les dates et les codes société constitue le moyen le plus efficace de maîtriser le temps d’exécution.
a Exemple de requête sql
SELECT
CONCAT(CAST(b.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', b.MONAT), 2)) AS FinancialPeriod,
'Period Opened For Posting' AS ActivityName,
c.UDATE + c.UTIME AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
p.TABKEY AS CompanyCode,
NULL AS DocumentNumber,
c.USERNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM CDHDR c
JOIN CDPOS p ON c.OBJECTCLAS = p.OBJECTCLAS AND c.OBJECTID = p.OBJECTID AND c.CHANGENR = p.CHANGENR
WHERE c.OBJECTCLAS = 'V_T001B'
AND p.TABNAME = 'T001B'
AND p.FNAME = 'FRPE1'
AND c.UDATE BETWEEN '{{start_date}}' AND '{{end_date}}'
UNION ALL
SELECT
CONCAT(CAST(b.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', b.MONAT), 2)) AS FinancialPeriod,
'Period Closed For Posting' AS ActivityName,
c.UDATE + c.UTIME AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
p.TABKEY AS CompanyCode,
NULL AS DocumentNumber,
c.USERNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM CDHDR c
JOIN CDPOS p ON c.OBJECTCLAS = p.OBJECTCLAS AND c.OBJECTID = p.OBJECTID AND c.CHANGENR = p.CHANGENR
WHERE c.OBJECTCLAS = 'V_T001B'
AND p.TABNAME = 'T001B'
AND p.FNAME = 'TOPE1'
AND c.UDATE BETWEEN '{{start_date}}' AND '{{end_date}}'
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Accrual Or Provision Posted' AS ActivityName,
h.CPUDT + h.CPUTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Accrual' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.BUDAT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.BLART IN ('SA', '[Your Accrual Doc Type]')
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Intercompany Document Cleared' AS ActivityName,
h.AUGDT AS EventTime, -- Clearing Date
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Clearing' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.AUGDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.BLART IN ('[Your Intercompany Doc Type]')
AND h.AUGBL IS NOT NULL
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Foreign Currency Valuation Run' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME = 'FAGL_FCV' OR p.PROGNAME = 'SAPF100'
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F' -- Finished
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'GR/IR Clearing Run Executed' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME = 'SAPF124' -- Program for F.13
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Account Reconciliation Started' AS ActivityName, -- Proxy event
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME IN ('FAGLL03', 'FBL3N') -- Common reconciliation reports
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Adjusting Journal Entry Posted' AS ActivityName,
h.CPUDT + h.CPUTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Adjusting' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.BUDAT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.BLART IN ('[Your Adjusting Doc Type]')
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Reversal Entry Posted' AS ActivityName,
h.CPUDT + h.CPUTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Reversal' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.BUDAT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.STBLG IS NOT NULL -- STBLG links to the reversed document
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Trial Balance Report Generated' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME IN ('RFSSLD00', 'S_ALR_87012310')
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Financial Statements Generated' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME = 'RFBILA00' -- Program for F.01
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
-- UNION ALL
-- Note: 'Reconciliation Reviewed' is typically not a standard, logged event in SAP ECC.
-- This activity often happens offline or in a custom tool.
-- The following is a placeholder to be adapted if a custom (Z-table) log exists.
-- SELECT
-- CONCAT(CAST(YEAR(z.REVIEW_DATE) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(z.REVIEW_DATE)), 2)) AS FinancialPeriod,
-- 'Reconciliation Reviewed' AS ActivityName,
-- z.REVIEW_DATE AS EventTime,
-- 'SAP_ECC' AS SourceSystem,
-- CURRENT_TIMESTAMP AS LastDataUpdate,
-- z.BUKRS AS CompanyCode,
-- z.HKONT AS DocumentNumber, -- Using GL Account as a proxy identifier
-- z.REVIEWER_USER AS ResponsibleUser,
-- z.HKONT AS GLAccount,
-- NULL AS DocumentType,
-- NULL AS AmountInLocalCurrency,
-- NULL AS JournalEntryType
-- FROM ZRECON_LOG z -- Replace with your custom table for reconciliation status
-- WHERE z.REVIEW_DATE BETWEEN '{{start_date}}' AND '{{end_date}}'
-- AND z.STATUS = 'Reviewed'
; Prêt à commencer ?
Utilisez ce modèle de données pour commencer votre démarche de Process Mining et obtenir des analyses précieuses sur vos opérations de clôture financière. Commencez dès aujourd’hui à optimiser votre processus Record to Report !
Optimisez la clôture Record to Report et réduisez dès maintenant la durée du cycle
Éliminez les goulots d’étranglement et réduisez de 30 % la durée de votre cycle de clôture Record to Report.
Aucune carte bancaire requise. Démarrez votre essai gratuit de 14 jours.