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
Attributs du processus Record to Report, clôture de période et rapprochement
| Nom | Description | ||
|---|---|---|---|
| Période financière FinancialPeriod | Identifiant unique du cycle de reporting financier, généralement composé de l’exercice fiscal et de la période comptable. | ||
| 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. Il est ainsi possible d’analyser l’ensemble du processus de clôture, du début à la fin, pour chaque période. L’analyse permet de suivre le temps de cycle de bout en bout de chaque clôture, de comparer les résultats d’une période à l’autre et de repérer les tendances ou les anomalies. En définissant chaque période financière comme un cas distinct, vous pouvez visualiser et mesurer au fil du temps l’efficacité du processus de clôture, ses goulots d’étranglement et ses variations. Pourquoi est-ce important ? Cet identifiant essentiel délimite le périmètre de l’analyse et permet de comparer, d’une période à l’autre, les temps de cycle de clôture, les charges de travail et la conformité du processus. Où trouver ces données Cet attribut est généralement calculé en concaténant l’exercice fiscal (GJAHR) et la période comptable (MONAT) figurant dans les 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 effectuée pendant le processus de clôture de période. | ||
| Description Cet attribut consigne les différentes étapes du cycle Record to Report, comme « Écriture d’ajustement comptabilisée » ou « États financiers générés ». Il constitue la base de la cartographie du processus et montre l’enchaînement des événements qui composent la clôture de période. L’analyse des activités est au cœur du Process Mining. Elle permet de visualiser le flux du processus, de repérer l’ordre des tâches, de découvrir les variantes et de mesurer la fréquence et la durée de chaque étape. Ces éléments aident à localiser les goulots d’étranglement et les parcours non standard, ainsi qu’à repérer les possibilités de standardisation ou d’automatisation. Pourquoi est-ce important ? Cet attribut est indispensable à la création de la cartographie du processus : il permet de visualiser et d’analyser l’enchaînement des tâches de clôture de période. Où trouver ces données Cet attribut est calculé à partir d’une combinaison de codes de transaction SAP (TCODE), de types de document (BLART) ou d’exécutions de programmes spécifiques, comme FAGL_FCV pour la valorisation des devises étrangères. Exemples Écriture d’ajustement comptabiliséeDébut du rapprochement des comptesPériode clôturée aux comptabilisations | |||
| 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 si les données analysées sont à jour. Il précise la date et l’heure de la dernière exécution du pipeline de données et renseigne ainsi sur la fraîcheur des analyses de processus. Dans les Dashboards, notamment ceux qui suivent l’avancement en temps réel, cet horodatage permet de savoir si les informations affichées sont à jour ou datent de la veille. Il aide à définir les attentes et à interpréter correctement les résultats de l’analyse. Pourquoi est-ce important ? Indique si les données sont à jour, ce qui permet de vérifier que les analyses et les Dashboards sont récentes et pertinentes. Où trouver ces données Cet horodatage est généré et ajouté par l’outil d’extraction des données ou d’ETL à la fin de chaque chargement. Exemples 2024-05-21T04:00:00Z2024-05-20T04:00:00Z2024-05-19T04:00:00Z | |||
| Heure de l’événement EventTime | Horodatage indiquant la date et l’heure auxquelles une activité ou un événement a eu lieu. | ||
| Description L’heure de l’événement indique la date et l’heure précises de chaque activité du processus. Elle constitue la base chronologique de l’analyse et correspond généralement à la combinaison de la date et de l’heure de création du document. Cet horodatage est indispensable pour remettre les événements dans le bon ordre et reconstituer le déroulement du processus. Il sert à calculer toutes les mesures de durée, notamment les temps de cycle entre les activités, les temps d’attente et la durée totale de la clôture. L’analyse des horodatages permet de repérer les retards et de comprendre la répartition temporelle du travail. Pourquoi est-ce important ? Cet attribut obligatoire établit l’ordre chronologique des événements, nécessaire au calcul des temps de cycle et à la détection des goulots d’étranglement. Où trouver ces données Pour les documents financiers, cet attribut provient généralement de la date de saisie du document (CPUDT) et de l’heure de saisie (CPUTM) dans la table BKPF. Exemples 2023-12-28T14:30:15Z2024-01-02T09:05:00Z2024-01-05T17:21:45Z | |||
| Système source SourceSystem | Identifiant du système source dont les données ont été extraites. | ||
| Description Cet attribut précise l’origine des données d’événement, par exemple le nom ou l’identifiant de l’instance SAP ECC concernée. Dans les organisations qui utilisent plusieurs ERP ou systèmes financiers, il est essentiel pour distinguer les différentes sources. Même dans un environnement composé d’un seul système, il constitue une métadonnée importante pour la gouvernance des données, les audits et le dépannage. Il confirme la provenance des données, ce qui contribue à la fiabilité de l’analyse et à la traçabilité des données. Pourquoi est-ce important ? Cet attribut assure la traçabilité des données et en confirme l’origine pour les besoins de gouvernance. Dans les environnements multisystèmes, il est essentiel pour distinguer les processus. Où trouver ces données Il s’agit généralement d’une valeur statique ajoutée lors de l’extraction des données, qui identifie le client SAP et l’ID 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 des états financiers sont établis. | ||
| Description Le code société est une unité organisationnelle fondamentale dans SAP Financials. Il représente une société indépendante qui tient sa propre comptabilité équilibrée. Toutes les opérations 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 les différentes entités juridiques d’un groupe. Vous pouvez ainsi repérer les bonnes pratiques des entités les plus performantes et identifier celles qui rencontrent des retards, un volume élevé d’ajustements ou des écarts de processus. C’est une dimension clé pour segmenter l’analyse. Pourquoi est-ce important ? Permet de comparer les délais de clôture et la conformité entre différentes entités juridiques, un élément important pour l’analyse financière à l’échelle du groupe. Où trouver ces données Ce champ est disponible dans presque toutes les tables de documents financiers SAP, principalement dans BKPF (en-tête) et BSEG (poste individuel). Exemples 10002000US01DE01 | |||
| Compte général HKONT | Numéro du compte du grand livre auquel un poste individuel est imputé. | ||
| Description Le compte général est un élément central des données de base financières qui sert à classer les opérations. Chaque comptabilisation financière est affectée à un ou plusieurs comptes généraux. Lors de la clôture de période, l’analyse des activités par compte général est essentielle pour les Dashboards « Goulots d’étranglement des rapprochements de comptes » et « Analyse des volumes d’écritures d’ajustement ». Elle permet de repérer les comptes les plus difficiles à rapprocher, ceux qui nécessitent le plus d’ajustements et ceux qui présentent le risque d’anomalie significative le plus élevé. Les équipes peuvent ainsi concentrer leurs efforts sur les comptes problématiques. Pourquoi est-ce important ? Permet d’analyser de façon ciblée les rapprochements et les écritures d’ajustement, afin de repérer les comptes problématiques qui entraînent des retards ou nécessitent des corrections fréquentes. Où trouver ces données 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 indique le montant associé à une comptabilisation financière. Il mesure l’incidence d’une opération sur le grand livre. L’analyse des montants est essentielle pour hiérarchiser les problèmes et comprendre les risques financiers. Par exemple, le Dashboard « Analyse des volumes d’écritures d’ajustement » est bien plus utile s’il permet de distinguer un grand nombre d’ajustements de faible montant d’un petit nombre d’ajustements de montant élevé. Les équipes peuvent ainsi se concentrer sur les opérations ayant une incidence financière significative. Pourquoi est-ce important ? Quantifie l’incidence financière des opérations et permet de les analyser selon leur importance, par exemple pour repérer les écritures d’ajustement de montant élevé. Où trouver ces données 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 pour un exercice fiscal et un code société donnés. | ||
| Description Le numéro de document comptable est la clé principale des comptabilisations financières dans SAP. Chaque écriture de journal, facture ou document de paiement reçoit un numéro unique. Bien qu’il soit rarement utilisé pour les analyses de processus à haut niveau, ce numéro est précieux pour examiner les détails. Depuis un Dashboard de Process Mining, les analystes peuvent s’en servir pour retrouver directement la transaction correspondante dans SAP et étudier une anomalie, comme une écriture d’ajustement importante ou un poste de rapprochement en retard. Il relie directement le résultat de l’analyse à la transaction source. Pourquoi est-ce important ? Permet de retrouver directement la transaction source dans SAP et d’examiner en détail des écritures comptables précises à partir de la vue du processus. Où trouver ces données Se trouve dans la table BKPF (BELNR), où il constitue la clé principale. Exemples 100000456719000001233000008901 | |||
| Type d’écriture de journal JournalEntryType | Classement des écritures de journal, par exemple « Standard », « Ajustement », « Charge à payer » ou « Extourne ». | ||
| Description Cet attribut calculé classe les documents financiers selon leur fonction 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 généraux utilisés. Cette classification est essentielle au Dashboard « Analyse des volumes d’écritures d’ajustement » et aux indicateurs associés. En identifiant explicitement les écritures d’ajustement ou de charges à payer, les analystes peuvent en mesurer le volume et la valeur, suivre leur évolution et examiner les raisons de leur nécessité. Elle permet de distinguer les comptabilisations opérationnelles courantes des ajustements de fin de période. Pourquoi est-ce important ? Classe les comptabilisations pour permettre une analyse ciblée et le suivi des principaux types d’écriture, comme les ajustements et les charges à payer, qui renseignent sur la santé du processus. Où trouver ces données Il s’agit d’un champ calculé. 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) dans BKPF. Exemples AjustementCharge à payerExtourneStandard | |||
| Type de document BLART | Code permettant de classer les différents types de documents comptables. | ||
| Description Dans SAP, le type de document distingue différentes opérations, comme les factures fournisseurs (KR), les paiements clients (DZ) et les écritures du grand livre (SA). Il détermine également certaines propriétés, telles que la plage de numérotation des documents. Pour l’analyse de la clôture de période, le type de document constitue un filtre utile. Il permet d’isoler des activités précises, comme les charges à payer, les provisions ou les extournes. Vous pouvez ainsi analyser le volume et l’incidence financière des différentes opérations liées à la clôture et définir des activités spécifiques dans le modèle de processus. Pourquoi est-ce important ? Permet de classer et de filtrer les opérations afin d’isoler et d’analyser des activités précises, comme les charges à payer, les extournes ou les comptabilisations intersociétés. Où trouver ces données Se trouve dans la table d’en-tête des documents, BKPF (BLART). Exemples SAABKR | |||
| Utilisateur responsable USNAM | ID 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 indique qui est à l’origine de chaque activité. L’analyse par utilisateur est essentielle pour comprendre la répartition de la charge de travail, repérer les besoins de formation et examiner les écarts de processus. Les Dashboards qui présentent les activités par utilisateur peuvent mettre en évidence les membres d’équipe surchargés ou les personnes qui ne suivent pas les procédures standard. Ces informations contribuent également à la gestion des performances et à la répartition des ressources au sein de l’équipe financière. Pourquoi est-ce important ? Permet d’analyser la répartition de la charge de travail et les performances de l’équipe, ainsi que de repérer les écarts de processus associés à des personnes précises. Où trouver ces données Disponible dans la table BKPF (USNAM) pour la création de documents. Pour les traitements par lots, il figure dans TBTCO (SDLUNAME). Exemples JSMITHRDOEFIN_ADMIN | |||
| Date d’achèvement cible TargetCompletionDate | Date limite prévue pour une activité ou pour la clôture de la période dans son ensemble. | ||
| Description La date d’achèvement cible définit l’échéance de référence pour mesurer le processus de clôture de période. Elle indique la date à laquelle les jalons concernés ou la clôture finale doivent être terminés. Cet attribut est essentiel pour toute analyse des performances ou de la 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 détermine si les tâches sont dans les délais, en retard ou susceptibles de l’être, ce qui permet de gérer le processus de clôture de manière proactive. Pourquoi est-ce important ? Permet de suivre la conformité et les performances en fournissant une référence pour vérifier si les activités de clôture sont terminées dans les délais et mesurer les KPI de respect des échéances. Où trouver ces données 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 (comme 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ée 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, comme un traitement par lots planifié pour l’évaluation des devises étrangères ou un robot qui comptabilise des écritures récurrentes. Cette distinction est souvent établie à partir du nom d’utilisateur associé à la transaction (par exemple, « BATCHUSER »). Connaître le degré d’automatisation est essentiel pour repérer les possibilités de gagner en efficacité. L’analyse de cet attribut permet de visualiser les étapes manuelles 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 est-ce important ? Distingue les activités manuelles de celles exécutées par le système. Cette distinction est essentielle pour repérer les possibilités d’automatisation et mesurer précisément la charge de travail manuelle. Où trouver ces données Cet attribut est calculé. La logique repose généralement sur le nom d’utilisateur (USNAM) : une liste d’identifiants connus d’utilisateurs système ou de traitement par lots permet de repérer les tâches automatisées. Exemples truefalse | |||
| Est en retard IsOverdue | Indicateur calculé précisant si une activité a été terminée après la date cible prévue. | ||
| Description Cet attribut booléen compare l’heure réelle d’achèvement d’une activité (EventTime) à son échéance prévue (TargetCompletionDate). Si l’heure de l’événement est postérieure à la date cible, l’indicateur prend la valeur vrai. Cet attribut alimente directement le Dashboard « Conformité de la clôture et tâches en retard » et le KPI « Taux de clôture de période dans les délais ». Il signale clairement et immédiatement tout écart par rapport au calendrier. Les responsables peuvent ainsi repérer rapidement les tâches en retard, comprendre leur effet sur le calendrier global et demander aux équipes de respecter les échéances. Pourquoi est-ce important ? Signale clairement le non-respect du calendrier, ce qui permet de repérer rapidement les tâches en retard et de mesurer le respect des échéances. Où trouver ces données Cet attribut est calculé dans l’outil de Process Mining en comparant EventTime à TargetCompletionDate. Exemples truefalse | |||
| Est une reprise IsRework | Indicateur calculé qui repère 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 vérifié » suivie d’une nouvelle « Écriture d’ajustement comptabilisée » sur le même compte peut être considérée comme une reprise. Cet attribut est essentiel pour quantifier les pertes liées au processus. Il alimente le Dashboard « Reprises de rapprochement » et le KPI « Taux de reprises de rapprochement ». En isolant les reprises, les équipes peuvent en rechercher les causes, mesurer leur effet sur le temps de cycle et suivre les résultats des initiatives d’amélioration visant à obtenir le bon résultat dès la première fois. Pourquoi est-ce important ? Mesure les inefficacités du processus en signalant les corrections et les répétitions, afin de quantifier et de réduire les efforts inutiles. Où trouver ces données Cet attribut est calculé dans l’outil de Process Mining à partir de séquences d’activités précises (par exemple, des boucles) ou d’attributs (par exemple, ReversalReason n’est pas nul). Exemples truefalse | |||
| Exercice fiscal GJAHR | Exercice fiscal au cours duquel la transaction a été comptabilisé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 apporte un contexte important à toutes les transactions. Même s’il fait souvent partie de l’identifiant de cas, disposer de l’exercice fiscal comme attribut distinct facilite l’analyse des tendances à long terme. Vous pouvez ainsi comparer d’une année sur l’autre les temps de cycle de clôture, le volume d’ajustements et d’autres KPI, et repérer les améliorations ou les baisses de performance au fil des ans. Pourquoi est-ce important ? Apporte un contexte temporel essentiel et permet de comparer les performances du processus de clôture d’un exercice à l’autre. Où trouver ces données Disponible dans la table d’en-tête des documents BKPF (GJAHR). Exemples 202320242022 | |||
| Motif de l’extourne ReversalReason | Code indiquant la raison de l’extourne d’un document financier. | ||
| Description Lorsqu’un document est extourné dans SAP, un code motif peut préciser la raison de l’opération, par exemple « Extourne sur la période en cours » ou « Écriture incorrecte ». Cet attribut apporte un éclairage essentiel sur les causes des reprises. L’analyse des motifs d’extourne permet de repérer les erreurs récurrentes, comme une saisie incorrecte ou une date erronée. Ces informations peuvent servir à mettre en place des mesures préventives, à améliorer la formation ou à renforcer les contrôles système afin de réduire les erreurs et les extournes qui en découlent, et ainsi d’améliorer la clôture. Pourquoi est-ce important ? Éclaire directement les causes profondes des erreurs et des reprises, et aide à repérer les possibilités d’amélioration des processus et de prévention des erreurs. Où trouver ces données Se trouve dans la table d’en-tête des documents, BKPF (STGRD). Exemples 010205 | |||
| Partenaire commercial VBUND | Identifiant de la société affiliée du groupe concernée par une transaction intersociétés. | ||
| Description L’ID du partenaire commercial identifie 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 « Flux de rapprochement intersociétés » et l’indicateur de temps de cycle du rapprochement intersociétés. En filtrant les transactions pour lesquelles un partenaire commercial est renseigné, l’analyse porte spécifiquement sur l’efficacité et les délais du processus de rapprochement intersociétés, souvent une difficulté majeure lors de la clôture de période. Pourquoi est-ce important ? Identifie précisément les transactions intersociétés et permet d’analyser de façon ciblée un processus de rapprochement souvent complexe et long. Où trouver ces données Se trouve 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 concerné par une transaction, par exemple les finances, les ventes ou la logistique. Il est souvent déduit des données de base du centre de coûts associé à une comptabilisation ou des données de base de l’utilisateur. L’analyse par service alimente le Dashboard « Répartition de la charge de travail de l’équipe de clôture ». Elle permet de comprendre la contribution des différentes fonctions de l’entreprise à la charge de travail de fin de période, notamment lorsqu’elles lancent des opérations qui nécessiteront ensuite des ajustements ou des rapprochements. Elle peut mettre en évidence l’incidence de services autres que l’équipe financière sur le processus de clôture. Pourquoi est-ce important ? Permet d’analyser la charge de travail et le respect des processus dans les différentes fonctions de l’entreprise, et de comprendre leur incidence sur l’efficacité de la clôture financière. Où trouver ces données Souvent déduit du centre de coûts (KOSTL) dans BSEG ou des données RH de base de l’utilisateur responsable. Cette opération peut nécessiter de joindre plusieurs tables. Exemples Finances du groupeComptabilité fournisseursFP&A | |||
| Statut du rapprochement ReconciliationStatus | Statut actuel d’un rapprochement de comptes, par exemple « Ouvert », « En cours de vérification » ou « Approuvé ». | ||
| Description Cet attribut suit l’avancement d’un rapprochement de comptes dans son flux de travail. Il indique si le rapprochement a été commencé, soumis à vérification, approuvé ou rejeté. Il permet de suivre en temps réel l’avancement des rapprochements. Vous pouvez repérer ceux qui sont bloqués et connaître la durée du blocage, ce qui facilite le suivi d’indicateurs comme le temps de cycle du rapprochement des comptes. Il donne de la 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 est-ce important ? Donne de la visibilité sur le flux de travail de rapprochement, permet d’en suivre l’avancement, de repérer les goulots d’étranglement et de mesurer les délais de vérification et d’approbation. Où trouver ces données Ces informations se trouvent souvent dans un outil de rapprochement distinct (par exemple, SAP Account Substantiation and Automation de BlackLine) ou dans un champ de statut personnalisé. Elles ne figurent généralement pas dans les champs standard de BKPF/BSEG. Exemples Non démarréEn coursApprouvéRejeté | |||
Activités du processus Record to Report, clôture de période et rapprochement
| Activité | Description | ||
|---|---|---|---|
| Début du rapprochement des comptes | Cette étape marque le début du rapprochement d’un ensemble de comptes généraux pour la période. Dans SAP ECC standard, il ne s’agit pas d’un événement distinct ; on le déduit généralement d’activités connexes, comme la première exécution d’un rapport clé. | ||
| Pourquoi est-ce important ? Cette activité fournit un jalon clé pour mesurer la durée de toute la phase de rapprochement. Savoir quand le rapprochement commence est essentiel au calcul de l’indicateur de temps de cycle du rapprochement des comptes. Où trouver ces données Cet événement n’est pas consigné explicitement. Il doit être déduit d’autres sources, comme le journal d’audit système (transaction STAD), qui permet de repérer la première exécution d’un rapport d’affichage des soldes tel que FAGLB03 ou FS10N. Données à recueillir Déduire le début à partir de la première exécution des transactions de rapport pertinentes (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 pour corriger les soldes des comptes une fois le traitement initial des opérations de la période terminé. Dans SAP, cet événement est enregistré comme une comptabilisation financière standard. | ||
| Pourquoi est-ce important ? Cette étape est essentielle à l’analyse des volumes d’écritures d’ajustement. Un volume élevé d’ajustements peut révéler des problèmes de précision en amont et constitue une cible importante pour les initiatives d’amélioration des processus. Où trouver ces données Ces écritures figurent dans les tables BKPF et BSEG. Elles sont généralement repérées par un type de document spécifique réservé aux ajustements (BKPF-BLART) ou par leur comptabilisation dans des périodes de clôture spéciales, comme les périodes 13 à 16. Données à recueillir Filtrer BKPF pour repérer 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 étape correspond au moment où les états financiers officiels, comme le compte de résultat et le bilan, sont générés. Elle est généralement repérée en suivant l’exécution d’un programme de rapport spécifique. | ||
| Pourquoi est-ce important ? Ce jalon important marque la fin du traitement des données et le début de la phase finale de vérification et d’approbation. Le temps écoulé entre cet événement et l’approbation constitue un indicateur clé. Où trouver ces données Cette étape est déduite des journaux d’audit système, comme STAD, qui consignent l’exécution du programme de génération des états financiers, le plus souvent via la transaction F.01. Données à recueillir À partir des journaux système (STAD), qui consignent l’exécution de la transaction F.01 de génération des états financiers. Type d’événement inferred | |||
| Exécution de la valorisation des devises étrangères | Cette étape correspond à l’exécution d’un programme qui réévalue les postes ouverts et les soldes en devises étrangères à l’aide des taux de change de fin de période. Elle est généralement exécutée par traitement par lots dans le cadre des opérations de clôture. | ||
| Pourquoi est-ce important ? Cette étape est essentielle pour garantir l’exactitude des états financiers des organisations multinationales. L’analyse de son calendrier et de sa durée permet de repérer des possibilités d’automatisation et d’amélioration des performances. Où trouver ces données Les journaux d’exécution du programme de valorisation des devises étrangères, comme FAGL_FCV ou F.05, permettent de suivre cette étape. Les détails des traitements par lots figurant dans des tables telles que TBTCO et TBTCP fournissent les horodatages d’exécution. Données à recueillir À partir des journaux de traitements par lots (table TBTCO) du programme FAGL_FC_VALUATION ou SAPF100. Type d’événement explicit | |||
| Période clôturée aux comptabilisations | Cette étape correspond à la clôture officielle d’une période comptable, qui empêche toute nouvelle écriture opérationnelle. Cette mesure préserve l’intégrité des données financières de la période clôturée et prend la forme d’une modification explicite de la configuration. | ||
| Pourquoi est-ce important ? Il s’agit de l’événement de fin de référence du processus de clôture de période. Il est essentiel pour calculer avec précision le temps de cycle total de clôture et mesurer le respect des délais. Où trouver ces données La clôture des périodes via la transaction OB52 est consignée. Ces modifications peuvent être repérées en analysant les documents de modification (tables CDHDR et CDPOS) de la table de configuration T001B. Données à recueillir Extraction des documents de modification (CDHDR/CDPOS) de la table T001B. Type d’événement explicit | |||
| Période ouverte à la comptabilisation | Cette étape marque le début officiel d’une période financière et autorise la comptabilisation des opérations dans le grand livre. Il s’agit d’une modification explicite de la configuration, effectuée par un utilisateur autorisé, qui ouvre une période donnée aux comptabilisations pour un ou plusieurs codes société. | ||
| Pourquoi est-ce important ? Cette activité constitue l’événement de début de référence du cas de clôture de période. L’analyse du temps écoulé depuis cette étape permet de comprendre le cycle de vie complet de la période financière. Où trouver ces données Les modifications des périodes comptables effectuées via la transaction OB52 sont consignées. Elles peuvent être extraites en analysant les documents de modification de la table de configuration T001B, généralement à l’aide des tables CDHDR et CDPOS. Données à recueillir Extraction des documents de modification (CDHDR/CDPOS) de 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, elle est enregistrée sous la forme d’une comptabilisation financière explicite, généralement un document de lettrage. | ||
| Pourquoi est-ce important ? Les retards de lettrage des postes intersociétés constituent un goulot d’étranglement fréquent lors de la clôture. Le suivi de cette activité est essentiel pour mesurer et améliorer le temps de cycle du rapprochement intersociétés. Où trouver ces données Cette étape est repérée dans les documents financiers des tables BKPF et BSEG. Un document de lettrage est associé aux postes ouverts et les clôture ; sa date de lettrage (BSEG-AUGDT) sert d’horodatage à l’événement. Les transactions intersociétés sont identifiées à l’aide des champs de partenaire commercial. Données à recueillir Repérer dans BKPF/BSEG les documents de lettrage portant sur des postes associés à des partenaires commerciaux. Type d’événement explicit | |||
| Écriture d’extourne comptabilisée | Cette activité correspond à la comptabilisation d’un document qui annule une écriture de journal antérieure, souvent pour corriger une erreur. SAP établit un lien explicite entre le document d’extourne et le document d’origine. | ||
| Pourquoi est-ce important ? Un nombre élevé d’extournes peut révéler des problèmes de saisie ou de contrôle des processus. Le suivi de ces événements permet de mesurer le taux de traitement correct dès la première fois et de repérer les points à améliorer. Où trouver ces données Les documents d’extourne figurent dans la table BKPF. Ils sont souvent créés avec la transaction FB08 et contiennent, dans le champ BKPF-STBLG, une référence au numéro du document extourné. Données à recueillir Repérer les documents dont le champ BKPF-STBLG est renseigné ou qui ont été créés à l’aide de codes de transaction d’extourne. Type d’événement explicit | |||
| Exécution du lettrage GR/IR | Exécution du programme de lettrage automatique du compte Réception de marchandises/Réception de factures. Ce programme rapproche les réceptions de marchandises et les réceptions de factures correspondantes, puis lettre les postes entre eux. | ||
| Pourquoi est-ce important ? Le compte GR/IR est souvent à l’origine de problèmes de rapprochement. Le suivi de cette activité permet de vérifier le bon fonctionnement de l’étape automatisée et de quantifier les exceptions nécessitant un suivi manuel. Où trouver ces données L’exécution est consignée dans les journaux de traitements par lots (transaction SM37). Le programme utilisé est généralement SAPF124, lancé via la transaction F.13. Les tables de journaux de tâches, comme TBTCO, fournissent les horodatages nécessaires. Données à recueillir À partir des journaux de traitements par lots (table TBTCO) du programme de lettrage SAPF124. Type d’événement explicit | |||
| Provision ou charge à payer comptabilisée | Cette étape correspond à la comptabilisation d’une écriture de journal pour une charge à payer, une charge constatée d’avance ou une provision, généralement en fin de période. SAP ne dispose pas d’un type d’événement distinct pour cette opération : elle est déduite des caractéristiques de certaines écritures de journal. | ||
| Pourquoi est-ce important ? L’identification de ces écritures permet d’analyser le sous-processus de gestion des estimations. Un volume élevé de charges à payer ou des ajustements fréquents peuvent signaler des pistes d’amélioration du processus. Où trouver ces données Cette étape est déduite des tables de documents financiers BKPF et BSEG. Les écritures peuvent être repérées à l’aide d’un type de document donné (BKPF-BLART), d’un compte général spécifique (BSEG-HKONT) ou de mots-clés dans le texte d’en-tête (BKPF-BKTXT). Données à recueillir Filtrer les tables BKPF/BSEG par type de document, comptes généraux spécifiques ou champs de texte. Type d’événement inferred | |||
| Rapport de balance générale généré | Cette étape marque l’exécution d’un rapport qui génère la balance générale. Elle permet de vérifier que le total des débits est égal à celui des crédits avant l’établissement des états financiers officiels. | ||
| Pourquoi est-ce important ? Il s’agit d’un contrôle qualité important avant la production des rapports définitifs. Des exécutions répétées peuvent indiquer que des problèmes dans les données sous-jacentes sont détectés puis corrigés, ce qui risque d’entraîner des retards. Où trouver ces données Cette étape est déduite des journaux d’audit système, comme celui de la transaction STAD, qui peut consigner l’exécution de transactions de rapport de balance générale telles que S_ALR_87012277 ou F.01. Données à recueillir À partir des journaux système (STAD), qui consignent l’exécution des codes de transaction de rapport. Type d’événement inferred | |||
| Rapprochement vérifié | Indique qu’un rapprochement portant sur un compte ou un groupe de comptes a été vérifié et confirmé. Dans SAP ECC standard, cet événement n’est pas consigné explicitement et est souvent géré au moyen de contrôles hors ligne ou de solutions personnalisées. | ||
| Pourquoi est-ce important ? Le suivi du calendrier des vérifications permet de comprendre les goulots d’étranglement lors des étapes de contrôle et de supervision de la clôture. Il peut mettre en évidence les retards dus à la disponibilité des responsables ou aux reprises. Où trouver ces données Ces informations ne sont pas disponibles dans les tables ECC standard. Elles nécessitent une solution personnalisée, par exemple un champ de statut dans une table Z dédiée, un flux de travail simple ou une intégration avec un outil spécialisé de rapprochement tiers. Données à recueillir Consigner le changement de statut à partir d’un flux de travail personnalisé ou d’une table Z, si cette solution est mise en place. Type d’événement inferred | |||
Guides d’extraction
Étapes
- Accédez à l’outil SAP Query : connectez-vous à votre système SAP ECC. Ouvrez le code de transaction
SQVI(QuickViewer). 2. Créez une 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 descriptif, tel que « Extraction de la clôture de période Record to Report ». Pour « Data source », sélectionnez « Table join ». 3. Définissez les jointures entre les tables : ajoutez la table principaleBKPF(en-tête de pièce comptable), puis la tableBSEG(segment de pièce comptable). SAP propose automatiquement les conditions de jointure (MANDT, BUKRS, BELNR, GJAHR) ; vérifiez-les et acceptez-les. Pour les activités d’ouverture et de clôture de période, vous devrez créer une requête distincte reliantCDHDRetCDPOS. 4. Sélectionnez les champs de sortie (champs de liste) : ouvrez l’onglet « List fld. select. ». Sélectionnez dans les tables disponibles les champs nécessaires au journal d’événements, notammentBKPF-BUKRS,BKPF-BELNR,BKPF-GJAHR,BKPF-MONAT,BKPF-CPUDT,BKPF-CPUTM,BKPF-USNAM,BKPF-BLART,BSEG-HKONT,BSEG-DMBTRet tout autre champ nécessaire. 5. Définissez les paramètres d’entrée (champs de sélection) : ouvrez 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 comptable) etBKPF-BLART(type de document). 6. Créez des variantes pour chaque activité : comme SQVI ne permet pas de combiner différentes sélections de données (par exemple avec un SQL UNION), vous devez exécuter la requête plusieurs fois. Pour chaque activité (par exemple, « Provision ou charge à payer comptabilisée »), exécutez la requête et saisissez les valeurs de filtre correspondantes dans l’écran de sélection, comme la liste des types de document liés aux provisions. Enregistrez ces critères sous forme de variante. Répétez l’opération pour chaque activité pouvant être extraite. 7. Exécutez la requête et extrayez les données : exécutez la requête pour chaque variante créée. Les filtres propres à l’activité sont alors appliqués. 8. Exportez 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. Regroupez et transformez 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 seul fichier principal. 10. Ajoutez les colonnes constantes et calculées : dans le fichier regroupé, ajoutez les colonnes qui ne sont pas directement extraites des tables SAP, notammentActivityName(à définir manuellement selon la variante d’origine des données),FinancialPeriod(en combinant l’exercice fiscal et la période),EventTime(en combinant les champs de date et d’heure),SourceSystemetLastDataUpdate. 11. Préparez le fichier pour l’importation : 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 la mise en forme avant l’importation.
Configuration
- Source de données : jointure de tables dans SAP Query (SQVI). Les principales tables sont BKPF, BSEG, CDHDR et CDPOS. * Période : il est recommandé d’extraire les données d’au moins 3 à 6 périodes financières complètes afin de repérer 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é) pour limiter le volume de données et cibler certaines entités juridiques. Il est déconseillé d’extraire simultanément les données de tous les codes société. * Filtre sur le type de document : utilisez les filtres surBKPF-BLART(type de document) pour isoler des activités comme les provisions, les ajustements ou les contre-passations. Vous devrez déterminer les types de document pertinents pour votre organisation. * Prérequis : l’utilisateur qui effectue l’extraction doit être autorisé à utiliser la transactionSQVIet à afficher les tables financières concernées (par exemple, via l’objet d’autorisation S_TABU_DIS). * Performances : la jointure de BKPF et BSEG peut mobiliser beaucoup de ressources. Effectuez l’extraction en dehors des heures de pointe. Évitez les périodes trop longues et ne laissez pas le filtre sur le code société sans restriction, car cela peut entraîner des problèmes de mémoire ou des délais d’expiration.
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éfinissez le périmètre et la conception du programme : établissez 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 pour confirmer les types de document, les comptes généraux et les noms de programme associés aux activités de clôture de fin de période dans votre environnement SAP ECC.
- Créez le programme ABAP : dans la transaction
SE38(éditeur ABAP), créez un nouveau programme exécutable, par exempleZ_PM_R2R_EXTRACTION. Donnez-lui un titre descriptif et sélectionnez le type « Executable Program ». - Définissez 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 de l’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éclarez 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. - Mettez en œuvre la logique d’extraction des données : écrivez la logique ABAP principale pour sélectionner les données correspondant à chacune des 12 activités. Pour chaque activité, interrogez les tables SAP pertinentes (par exemple, BKPF, BSEG, TBTCO, CDHDR) et alimentez une table interne intermédiaire. Utilisez comme modèle la logique présentée dans la section de requête ABAP associée.
- Repérez les activités déduites : pour les activités qui ne sont pas consignées explicitement dans SAP standard, comme « Rapprochement de compte démarré » ou « Rapprochement vérifié », mettez en œuvre la logique de déduction convenue. Il peut s’agir de repérer la première exécution d’un rapport donné ou d’interroger des tables personnalisées « Z » si elles existent.
- Regroupez les données d’événement : après avoir extrait les 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 de démarrage du traitement. - Normalisez et mettez en forme les données : avant la sortie, normalisez les champs clés. Combinez l’exercice fiscal et la période pour créer l’identifiant
FinancialPeriod. Définissez des valeurs fixes pourSourceSystemetLastDataUpdate. Veillez à utiliser un format uniforme pour les horodatages. - Développez la fonction d’exportation : ajoutez au programme une fonction permettant d’exporter 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 serveur d’applications SAP (avec
OPEN DATASET), ou à permettre à l’utilisateur de les télécharger directement sur son poste (avec le module de fonctionGUI_DOWNLOAD). - Testez et validez : testez soigneusement le programme avec un jeu de données représentatif couvrant plusieurs codes société et périodes. Suivez les étapes de validation pour vérifier l’exactitude et l’exhaustivité des données. Ajustez la logique de sélection en fonction des commentaires des experts fonctionnels.
- Planifiez l’exécution (facultatif) : une fois le programme validé, vous pouvez le planifier comme traitement en arrière-plan via la transaction
SM36. L’extraction périodique du journal d’événements s’effectue alors automatiquement, 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 :
Code société (BUKRS): obligatoire pour limiter le périmètre aux entités juridiques concernées.Exercice fiscal (GJAHR): obligatoire pour définir l’exercice principal de l’extraction.Période comptable (MONAT): obligatoire pour sélectionner les périodes financières concernées.
- Configuration propre aux activités : de nombreux paramètres dépendent de votre configuration SAP. Ils doivent pouvoir être définis comme paramètres ou constantes dans le programme :
Types de document de provision/charge à payer: liste des types de document (BLART) permettant d’identifier les comptabilisations de provisions et de charges à payer.Types de document d’écriture d’ajustement: liste des types de document permettant d’identifier les écritures d’ajustement.Noms des traitements/programmes en arrière-plan: noms techniques des programmes utilisés pour l’évaluation des devises étrangères (par exemple,FAGL_FCV), le rapprochement GR/IR (par exemple,SAPF124), les rapports de balance de vérification et la génération des états financiers (par exemple,RFBILA00).
- Période : même si la sélection principale porte sur l’exercice fiscal et la période, la logique sous-jacente doit tenir compte de la date et de 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 financières clôturées.
- Performances : dans les grands environnements SAP, les performances du programme sont essentielles. Veillez à ce que les sélections dans la base de données utilisent des champs indexés, en particulier dans les tables comme
BKPFetBSEG. Évitez de sélectionner tous les champs (SELECT *) et, si nécessaire, traitez les données par lots de taille raisonnable. - Autorisations : l’utilisateur ou le compte de service qui exécute le programme doit être autorisé à accéder à toutes les tables interrogées (
BKPF,BSEG,TBTCO,TBTCP,CDHDR,CDPOS) et à exécuter les transactions telles queSE38(développement) etSM37/SM36(planification et suivi).
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
- Réunissez les prérequis : obtenez des identifiants donnant un accès en lecture seule à la base de données SAP ECC sous-jacente. Repérez le schéma de base de données approprié, généralement
SAPSR3ou un nom similaire communiqué par votre administrateur de base de données. - Repérez la configuration du système : consultez l’équipe Finance SAP pour déterminer les
codes société(BUKRS) et les périodes financières à analyser. Il est essentiel d’identifier lestypes de document(BLART) utilisés dans votre système pour les activités « Provision ou charge à payer comptabilisée », « Écriture d’ajustement comptabilisée » et les transactions « intersociétés ». - Vérifiez les noms des programmes et des traitements : confirmez les noms des programmes utilisés pour les principaux traitements par lots, comme l’évaluation des devises étrangères (par exemple,
FAGL_FCV), le rapprochement GR/IR (par exemple,SAPF124), les rapports de balance de vérification (par exemple,RFBILA00) et la génération des états financiers (par exemple,RFBILA00). Vous pouvez les trouver en consultant les traitements 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 de substitution
{{start_date}},{{end_date}}et{{company_codes}}par les valeurs correspondant à votre analyse. Mettez à jour les listes de types de document et de noms de programme à partir des informations recueillies aux étapes précédentes. - Connectez-vous à la base de données : utilisez un 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 période choisie et la taille de vos tables financières, son exécution peut prendre beaucoup de temps.
- Vérifiez les premiers résultats : une fois la requête terminée, examinez rapidement les résultats. Vérifiez que le nombre de lignes est cohérent, que toutes les colonnes sont présentes et que plusieurs valeurs
ActivityNamefigurent dans les résultats. - Exportez les données : exportez l’ensemble des résultats depuis votre client SQL vers un fichier CSV. Enregistrez-le en UTF-8 pour éviter les problèmes d’encodage des caractères.
- Préparez l’importation : avant d’importer le fichier 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 (
FinancialPeriod,ActivityName,EventTime, etc.). Vérifiez également que la colonneEventTimeutilise un format d’horodatage uniforme, tel queYYYY-MM-DD HH:MI:SS.
Configuration
- Identifiants de base de données : un compte de base de données en lecture seule, autorisé à accéder aux principales tables financières et système de SAP, est nécessaire. Il doit notamment permettre d’accéder aux tables
BKPF,BSEG,TBTCO,CDHDRetCDPOS. - Période : nous recommandons d’extraire les données d’au moins 3 à 6 périodes financières complètes afin de repérer des variations significatives dans le processus. Gardez à l’esprit qu’une période plus longue augmentera considérablement 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 tous les codes société d’un grand système n’est pas réaliste et risque d’entraîner des problèmes de performances. - Types de document (
BLART) : l’identification des types d’écriture comptable, comme les provisions et les ajustements, dépend entièrement de la configuration SAP propre à votre organisation. Pour classer correctement les activités, vous devez indiquer les codes de type de document appropriés dans les clausesWHEREde la requête. - Noms des programmes et des traitements : la requête utilise des noms de programme courants pour les étapes automatisées de clôture. Votre système peut utiliser des programmes d’encapsulation personnalisés ou des noms de traitement différents. Vérifiez-les dans la transaction
SM37et adaptez la requête en conséquence. - Performances : cette requête accède à des tables très volumineuses, notamment
BSEGetCDPOS. Il est vivement recommandé d’effectuer l’extraction en dehors des heures ouvrées pour ne pas nuire aux performances du système. Des filtres précis sur la période et le code société sont le moyen le plus efficace de maîtriser le temps d’exécution.
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 lancer votre démarche de Process Mining et mieux comprendre 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 le temps de cycle
Éliminez les goulots d’étranglement et réduisez de 30 % le temps de cycle de clôture Record to Report.
Aucune carte bancaire requise. Démarrez votre essai gratuit de 14 jours.