決算・レポーティング:期間決算と照合のデータテンプレート
決算・レポーティング:期間決算と照合のデータテンプレート
- 収集を推奨する属性
- 追跡すべき主なアクティビティ
- データ抽出ガイド
決算・レポーティング:期間決算と照合の属性
| 名前 | 説明 | ||
|---|---|---|---|
| 会計期間 FinancialPeriod | 通常、会計年度と計上期間を組み合わせて表す、財務報告サイクルの一意の識別子です。 | ||
| 説明 会計期間は主要なケース識別子として機能し、特定の報告サイクルにおける決算や勘定照合に関するすべてのアクティビティをまとめます。たとえば、2023年12月は「2023-12」と表します。これにより、期間ごとに期間決算プロセス全体を最初から最後まで分析できます。 分析では、各決算のエンドツーエンドのサイクルタイムを追跡し、期間ごとの実績を比較して、傾向や異常を特定できます。会計期間ごとに一意のケースを定義することで、期間決算プロセスの効率、ボトルネック、経時的なばらつきを可視化し、測定できます。 重要な理由 分析の基準となる重要なケース識別子です。期間ごとの決算サイクルタイム、作業量、プロセスのコンプライアンスを比較できます。 入手先 通常、財務伝票ヘッダーの会計年度(GJAHR)と計上期間(MONAT)を連結して導出します。たとえば、BKPFテーブルから取得します。 例 2023-122024-032023年第4四半期 | |||
| アクティビティ ActivityName | 期間決算プロセスで実行された特定の業務イベントまたはタスクの名称です。 | ||
| 説明 この属性には、決算・レポーティングサイクルで行われる個々の手順が記録されます。たとえば、「調整仕訳の計上」や「財務諸表の生成」などです。期間決算を構成するイベントの順序を示す、プロセスマップの基盤となります。 アクティビティの分析は、プロセスマイニングの基本です。プロセスの流れを可視化し、タスクの順序を特定し、プロセスのバリアントを見つけ、各手順の頻度と所要時間を測定できます。ボトルネック、標準外のプロセス経路、標準化や自動化の機会を特定するうえで役立ちます。 重要な理由 期間決算におけるタスクの順序を可視化・分析するプロセスマップの作成に必須の属性です。 入手先 SAPのトランザクションコード(TCODE)、伝票タイプ(BLART)、または特定のプログラム実行(例:外貨評価のFAGL_FCV)を組み合わせて導出します。 例 調整仕訳の計上勘定照合の開始計上期間の締め | |||
| イベント時刻 EventTime | アクティビティまたはイベントが発生した日時を示すタイムスタンプです。 | ||
| 説明 イベント時刻は、プロセス内の各アクティビティの正確な日時を示し、分析の時系列の基準となります。通常、伝票の作成日と作成時刻を組み合わせて設定します。 イベントの順序を正しく並べ、プロセスの流れを再構成するために欠かせません。アクティビティ間のサイクルタイム、待機時間、期間決算全体の所要時間など、時間に関するすべての指標の算出に使います。タイムスタンプを分析すると、遅延や作業の時間的な分布を把握できます。 重要な理由 必須属性としてイベントの時系列を示し、サイクルタイムの算出やプロセスのボトルネックの特定に必要な情報を提供します。 入手先 通常、財務伝票のBKPFテーブルにある伝票入力日(CPUDT)と入力時刻(CPUTM)から取得します。 例 2023-12-28T14:30:15Z2024-01-02T09:05:00Z2024-01-05T17:21:45Z | |||
| ソースシステム SourceSystem | データの抽出元となるソースシステムの識別子です。 | ||
| 説明 この属性は、特定のSAP ECCインスタンス名やIDなど、イベントデータの取得元を示します。複数のERPや財務システムを持つ組織では、ソースごとのデータを区別するために欠かせません。 単一システムの環境でも、データガバナンス、監査、トラブルシューティングに必要なメタデータとして機能します。データの出所を確認できるため、分析への信頼性を高め、データの来歴を明確にできます。 重要な理由 データの来歴を示し、ガバナンスのためにデータの取得元を確認できます。複数システムの環境では、プロセスを区別するうえで欠かせません。 入手先 通常、データ抽出時に追加する固定値で、特定のSAPクライアントとシステムIDを示します(例:テーブルT000から取得)。 例 ECC本番環境100SAP_E74_200ECC財務 | |||
| 最終データ更新 LastDataUpdate | ソースシステムからデータを最後に更新または抽出した日時を示すタイムスタンプです。 | ||
| 説明 この属性は、分析対象データの鮮度を示します。データパイプラインが最後に実行された日時を表示し、インサイトがどの時点のプロセス状況を反映しているかを把握できます。 特にリアルタイムの進捗を追跡するダッシュボードでは、最新の情報を見ているのか、前日のデータを見ているのかを判断するために重要です。利用者の期待値を適切に保ち、分析結果を正しく解釈するうえでも役立ちます。 重要な理由 データの鮮度を利用者に伝え、分析やダッシュボードの情報が適時かつ適切であることを確認できます。 入手先 各データ読み込みの終了時に、データ抽出ツールまたはETLツールがこのタイムスタンプを生成して追加します。 例 2024-05-21T04:00:00Z2024-05-20T04:00:00Z2024-05-19T04:00:00Z | |||
| 仕訳タイプ JournalEntryType | 「標準」「調整」「未払計上」「取消」など、仕訳を分類する区分です。 | ||
| 説明 この属性は、決算プロセスにおける業務上の目的に基づいて財務伝票を分類したものです。伝票タイプ(BLART)、取消理由(STGRD)、使用された特定の総勘定元帳勘定などを組み合わせて判定します。 「調整仕訳の量の分析」ダッシュボードと関連KPIの基礎となる属性です。調整仕訳や未払計上仕訳を明確に識別することで、件数や金額を測定し、経時的な傾向を追跡して、計上が必要となる根本原因を調査できます。通常の業務計上と期間末の調整を区別できます。 重要な理由 計上を分類して対象を絞った分析を可能にします。調整や未払計上など、プロセスの健全性を示す主要な仕訳タイプを追跡・測定できます。 入手先 導出項目です。通常はBKPFの伝票タイプ(BLART)などを使い、業務ルールに基づいて判定ロジックを定義する必要があります。 例 調整未払計上取消標準 | |||
| 会社コード BUKRS | 財務諸表を作成する対象となる法人を表す組織単位です。 | ||
| 説明 会社コードは、SAP財務会計における基本的な組織単位です。独立した帳簿を持つ会社を表し、すべての財務取引は会社コード単位で計上されます。 プロセスマイニングでは、会社コードで絞り込むことで、企業グループ内の異なる法人間で期間決算プロセスを比較できます。実績の高い法人のベストプラクティスを特定し、遅延、調整件数の多さ、プロセス逸脱に課題を抱える法人を見つけられます。分析対象を分類するための重要な切り口です。 重要な理由 異なる法人間で期間決算の実績とコンプライアンスを比較できます。グループ全体の財務分析に欠かせない属性です。 入手先 SAPのほとんどの財務伝票テーブルで利用できます。主なテーブルはBKPF(ヘッダー)とBSEG(明細)です。 例 10002000US01DE01 | |||
| 伝票タイプ BLART | 会計伝票の種類を分類するコードです。 | ||
| 説明 SAPでは伝票タイプを使って、仕入先請求書(KR)、得意先入金(DZ)、総勘定元帳への計上(SA)など、さまざまな業務取引を区別します。また、伝票番号範囲などの属性も制御します。 期間末決算の分析では、伝票タイプを使って対象を絞り込めます。未払計上、引当金、取消仕訳など、特定のアクティビティを切り分けて、決算関連取引の件数や財務への影響を分析できます。プロセスモデルで特定のアクティビティを定義する際にも利用できます。 重要な理由 取引を分類・絞り込み、未払計上、取消、会社間計上などの特定のアクティビティを切り分けて分析できます。 入手先 伝票ヘッダーテーブルBKPF(BLART)にあります。 例 SAABKR | |||
| 伝票番号 BELNR | 会計年度と会社コードの中で、会計伝票を一意に識別する番号です。 | ||
| 説明 会計伝票番号は、SAPの財務計上を識別する主キーです。仕訳、請求書、支払伝票には、それぞれ一意の番号が割り当てられます。 通常、全体的なプロセス分析には使いませんが、詳細を確認する際に役立ちます。プロセスマイニングのダッシュボードから伝票番号を使ってSAPの該当取引に直接移動し、多額の調整仕訳や照合の遅れなどの異常を詳しく調査できます。分析で得たインサイトを元の取引に結び付けられます。 重要な理由 SAPの元取引に直接リンクし、プロセスの表示から個々の会計明細へドリルダウンして詳しく分析できます。 入手先 BKPFテーブルのBELNRにあり、主キーとして使用されます。 例 100000456719000001233000008901 | |||
| 担当ユーザー USNAM | 取引を作成または実行した担当者のSAPユーザーIDです。 | ||
| 説明 この項目には、伝票を計上したユーザー、レポートを実行したユーザー、または決算関連プログラムを実行したユーザーが記録されます。各アクティビティの担当者を特定できます。 ユーザー別の分析は、作業量の分布や研修の必要性を把握し、プロセス逸脱を調査するうえで重要です。ユーザーごとのアクティビティを示すダッシュボードから、負荷が集中しているチームメンバーや、標準外の手順を実行している可能性のある担当者を特定できます。財務チーム内の業績管理やリソース配分にも役立ちます。 重要な理由 作業量の分布やチームの実績を分析し、特定の担当者に関連するプロセス逸脱を特定できます。 入手先 伝票作成者はBKPFテーブル(USNAM)で確認できます。バッチジョブの場合はTBTCO(SDLUNAME)に記録されています。 例 JSMITHRDOE財務管理者 | |||
| 現地通貨額 DMBTR | 会社コードの現地通貨で表した、取引明細の金額です。 | ||
| 説明 この属性は、財務計上に関連する金額を示します。総勘定元帳に対する取引の影響を測る基本的な定量指標です。 金額を分析すると、問題への対応の優先順位を決め、財務リスクを把握できます。たとえば、「調整仕訳の量の分析」ダッシュボードで、金額の小さい調整が多数ある場合と、金額の大きい調整が少数ある場合を区別できます。財務上の影響が大きい取引に注目しやすくなります。 重要な理由 取引の財務的な影響を数値化し、金額の大きい調整仕訳など、重要性に基づく分析を可能にします。 入手先 伝票明細テーブルBSEG(DMBTR)で確認できます。 例 1500.75-25000.00123456.00 | |||
| 総勘定元帳勘定 HKONT | 明細が計上される総勘定元帳勘定の番号です。 | ||
| 説明 総勘定元帳(GL)勘定は、取引を分類する財務の基本マスターデータです。すべての財務計上は、1つ以上の総勘定元帳勘定に割り当てられます。 期間決算では、総勘定元帳勘定別にアクティビティを分析することで、「勘定照合のボトルネック」や「調整仕訳の量の分析」のダッシュボードに役立つ情報が得られます。照合が難しい勘定、調整が多く必要な勘定、重要な虚偽表示のリスクが高い勘定を特定できます。問題のある勘定にチームの対応を集中させることができます。 重要な理由 照合や調整仕訳を対象別に分析し、遅延や頻繁な修正の原因となる問題のある勘定を特定できます。 入手先 財務伝票の明細テーブルBSEG(HKONT)で確認できます。 例 113100400500750000 | |||
| 会計年度 GJAHR | トランザクションが転記された会計年度です。 | ||
| 説明 会計年度は、財務データを整理するための基本項目です。会計期間のケースIDを構成する重要な要素であり、すべてのトランザクションの把握に必要なコンテキストを提供します。 ケースIDに含まれることが多い項目ですが、会計年度を独立した属性として持つと、長期的な傾向分析に役立ちます。決算サイクルタイム、調整件数、その他のKPIを年度ごとに比較できるため、複数年にわたるパフォーマンスの改善や悪化を把握できます。 重要な理由 期間に関する重要なコンテキストを提供し、決算プロセスのパフォーマンスを年度ごとに比較できます。 入手先 伝票ヘッダーテーブルBKPFのGJAHRで取得できます。 例 202320242022 | |||
| 取引先 VBUND | 会社間取引に関与するグループ内企業の識別子です。 | ||
| 説明 取引先IDは、会社間取引に参加する相手の会社コードを識別するために使います。関連する法人間の勘定照合に欠かせない属性です。 この属性は、「会社間照合フロー」ダッシュボードと「会社間照合サイクルタイム」のKPIを支えます。取引先が設定された取引に絞り込むことで、期間決算時に大きな課題となりやすい会社間照合プロセスの効率と適時性を重点的に分析できます。 重要な理由 会社間取引を特定し、複雑で時間のかかることが多い会社間照合プロセスを重点的に分析できます。 入手先 伝票明細テーブルBSEG(VBUND)で確認できます。 例 1000US013000 | |||
| 取消理由 ReversalReason | 財務伝票を取り消した理由を示すコードです。 | ||
| 説明 SAPで伝票を取り消す際、取消の目的を説明する理由コードを割り当てることができます。たとえば、「当期中の取消」や「入力誤り」などです。 この属性から、手戻りが発生する理由を把握できます。取消理由を分析すると、データ入力の誤りや日付の間違いなど、エラーの傾向を特定できます。その結果を予防策の導入、研修の改善、システム統制の強化に役立て、エラーやその後の取消を減らして決算を効率化できます。 重要な理由 エラーや手戻りの根本原因を把握し、プロセス改善やエラー防止の機会を特定できます。 入手先 伝票ヘッダーテーブルBKPF(STGRD)にあります。 例 010205 | |||
| 手戻りあり IsRework | 取消や却下された照合など、手戻りに該当するアクティビティを識別する計算フラグです。 | ||
| 説明 この真偽値属性は、非効率な繰り返しやプロセス内の修正を示すイベントまたはイベントの連続にフラグを付けます。たとえば、同じ勘定で「照合レビュー済み」の後に「調整仕訳転記済み」が発生した場合、手戻りとして識別できます。 この属性は、プロセスの無駄を定量化するうえで欠かせず、「照合の手戻り件数」ダッシュボードと「照合の手戻り率」KPIを支えます。手戻りを切り分けることで、チームは根本原因を調査し、サイクルタイムへの影響を測定できます。また、最初から正しく処理することを目指す改善施策の効果も追跡できます。 重要な理由 修正や繰り返しに該当するアクティビティにフラグを付け、プロセスの非効率を定量化します。無駄な作業の測定と削減に役立ちます。 入手先 計算属性です。特定のアクティビティの連続(例:ループ)や属性(例:ReversalReasonがnullではない)に基づき、プロセスマイニングツールでロジックを定義します。 例 truefalse | |||
| 期限超過 IsOverdue | アクティビティが予定された目標日を過ぎて完了したかを示す計算フラグです。 | ||
| 説明 この真偽値属性は、アクティビティの実際の完了時刻(EventTime)と予定期限(TargetCompletionDate)を比較します。イベント時刻が目標日より後の場合、フラグはtrueになります。 この属性は、「決算コンプライアンスと期限超過タスク」ダッシュボードと「期限内の期間決算率」KPIに直接役立ちます。スケジュールからの遅れを明確かつ即座に把握できるため、管理者は遅延タスクをすばやく特定し、全体のスケジュールへの影響を把握して、期限の遵守に対するチームの責任を明確にできます。 重要な理由 スケジュールの不遵守を明確に示し、遅延タスクの迅速な特定と期限内のパフォーマンス測定を可能にします。 入手先 計算属性です。プロセスマイニングツールでEventTimeとTargetCompletionDateを比較して算出します。 例 truefalse | |||
| 照合ステータス ReconciliationStatus | 「未処理」「レビュー中」「承認済み」など、勘定照合の現在のステータスです。 | ||
| 説明 この属性は、ワークフローの進行に合わせて勘定照合の状態を追跡します。照合の開始、レビューへの提出、承認、却下などの状況を示します。 照合アクティビティの進捗をリアルタイムで監視するための重要な属性です。どの照合が停滞しているか、停滞期間がどれくらいかを特定でき、「勘定照合サイクルタイム」などのKPIにも役立ちます。承認プロセスの状況を把握でき、照合のボトルネックやチームの作業量を追跡するダッシュボードに欠かせません。 重要な理由 照合ワークフローの進捗を把握し、ボトルネックを特定するとともに、レビューや承認にかかる時間を測定できます。 入手先 この情報は、通常、別の照合ツール(例:BlackLineのSAP Account Substantiation and Automation)または独自のステータス項目で管理されます。BKPF/BSEGの標準項目として含まれていることは一般的ではありません。 例 未開始進行中承認済み却下 | |||
| 目標完了日 TargetCompletionDate | アクティビティまたは期間決算全体の予定期限です。 | ||
| 説明 目標完了日は、期間決算プロセスの進捗を測る基準となるスケジュールを示します。特定のマイルストーンや最終決算を完了すべき期限です。 この属性は、パフォーマンスやコンプライアンスに関する分析に欠かせません。「期限内の期間決算率」KPIの算出や、「決算コンプライアンスと期限超過タスク」ダッシュボードに使用します。実際のイベント時刻を目標日と比較することで、タスクが予定どおりか、遅延しているか、遅延のリスクがあるかを判定でき、決算プロセスを先回りして管理できます。 重要な理由 決算アクティビティが期限内に完了したかを測るベースラインとなり、コンプライアンスとパフォーマンスの監視や、納期遵守に関するKPIを支援します。 入手先 通常、別のカレンダー、決算管理ツール(SAP Financial Closing cockpitなど)、またはスプレッドシートで管理されるマスターデータです。トランザクションデータには含まれません。 例 2023-12-29T23:59:59Z2024-01-03T17:00:00Z2024-01-02T12:00:00Z | |||
| 自動化済み IsAutomated | アクティビティが人のユーザーによって実行されたか、自動化されたシステムによって実行されたかを示すフラグです。 | ||
| 説明 この真偽値属性は、手作業のタスクと、外貨評価の定期バッチジョブや定期仕訳を登録するボットなど、システムが自動実行するタスクを区別します。トランザクションに関連付けられたユーザー名(例:「BATCHUSER」)を分析して判定することがよくあります。 自動化の度合いを把握することは、効率化の機会を見つけるうえで重要です。この属性を分析すると、プロセスのどの部分が手作業で、自動化の余地があるかを可視化できます。また、システムが生成したアクティビティを除外し、人の業務負荷を正確に評価するのにも役立ちます。 重要な理由 手作業のアクティビティとシステム主導のアクティビティを区別します。自動化の機会を見つけ、手作業の負荷を正確に測定するうえで重要です。 入手先 派生属性です。通常はユーザー名(USNAM)に基づいて判定し、既知のシステムユーザーIDまたはバッチユーザーIDの一覧を使ってタスクが自動化されたものかを識別します。 例 truefalse | |||
| 部門 Department | アクティビティまたは取引を担当する機能部門または原価センタです。 | ||
| 説明 この属性は、取引に関連する「財務」「営業」「物流」などの業務部門を示します。計上に関連付けられた原価センターのマスターデータや、ユーザーのマスターデータから導出することがよくあります。 部門別の分析は、「決算チームの作業量分布」ダッシュボードに役立ちます。特に、後から調整や照合が必要になる取引の開始など、各業務部門が期間末の作業量にどのように関わっているかを把握できます。財務チーム以外で決算プロセスに影響を与えている領域も明らかになります。 重要な理由 業務部門ごとの作業量やプロセスの遵守状況を分析し、各部門が財務決算の効率に与える影響を把握できます。 入手先 多くの場合、BSEGの原価センター(KOSTL)または担当ユーザーの人事マスターデータから導出します。複数のテーブルを結合する必要がある場合があります。 例 経理財務買掛金財務計画・分析 | |||
決算・レポーティング:期間決算と照合のアクティビティ
| アクティビティ | 説明 | ||
|---|---|---|---|
| 勘定照合の開始 | 期間内の一連の総勘定元帳勘定について、照合プロセスの開始を示します。標準のSAP ECCでは独立したイベントとして記録されないため、関連するアクティビティ、たとえば残高レポートの初回実行から推定します。 | ||
| 重要な理由 照合フェーズ全体の所要時間を測るための重要な節目となります。勘定照合サイクルタイムの重要業績評価指標(KPI)を算出するには、照合の開始時点を把握する必要があります。 入手先 このイベントは明示的に記録されません。システム監査ログ(トランザクションSTAD)などを参照し、FAGLB03やFS10Nのような残高表示レポートの初回実行から推定する必要があります。 記録 システムログで関連レポートのトランザクション(例:FAGLB03)の初回実行を確認し、推定します。 イベントタイプ inferred | |||
| 外貨評価の実行 | 期間末の為替レートを使って、外貨建ての未消込明細と残高を再評価するプログラムの実行を示します。通常、期間末決算の手順の一環として、バッチジョブで実行されます。 | ||
| 重要な理由 多国籍企業の正確な財務報告に欠かせない手順です。実行時刻と所要時間を分析すると、自動化やパフォーマンス改善の機会を見つけられます。 入手先 FAGL_FCVやF.05など、外貨評価プログラムの実行ログから取得します。TBTCOやTBTCPなどのテーブルにあるバッチジョブの詳細から、実行時刻を確認できます。 記録 プログラムFAGL_FC_VALUATIONまたはSAPF100のバッチジョブログ(テーブルTBTCO)から取得します。 イベントタイプ explicit | |||
| 計上期間の締め | 計上期間を正式に締め、以降の通常の仕訳計上を防止します。これにより、締めた期間の財務データの整合性を保ちます。設定を明示的に変更して実行します。 | ||
| 重要な理由 期間決算プロセスの明確な終了イベントです。期間決算サイクルタイムの合計を正確に算出し、期限どおりに完了したかを測定するために欠かせません。 入手先 トランザクションOB52による期間の締めは記録されます。設定テーブルT001Bの変更文書(テーブルCDHDRおよびCDPOS)を分析すると、変更内容を確認できます。 記録 テーブルT001Bの変更文書(CDHDR/CDPOS)から抽出します。 イベントタイプ explicit | |||
| 調整仕訳の計上 | 期間内の初回取引処理が完了した後、勘定残高を修正するために調整仕訳を計上します。このイベントは、SAPの標準的な財務伝票の計上として記録されます。 | ||
| 重要な理由 調整仕訳の量の分析に欠かせないアクティビティです。調整件数が多い場合は、上流プロセスの精度に問題がある可能性があり、プロセス改善の主な対象となります。 入手先 テーブルBKPFおよびBSEGで確認できます。通常、調整用に設定された特定の伝票タイプ(BKPF-BLART)や、13~16などの特別期間への計上によって識別します。 記録 特別期間に計上された伝票、または調整用の伝票タイプを持つ伝票をBKPFで絞り込みます。 イベントタイプ explicit | |||
| 財務諸表の生成 | 損益計算書や貸借対照表などの正式な財務諸表が生成された時点を示します。通常、特定のレポートプログラムの実行を追跡して記録します。 | ||
| 重要な理由 データ処理の終了と、最終確認・承認フェーズの開始を示す重要な節目です。このイベントから承認までの時間は、重要なKPIです。 入手先 財務諸表生成プログラムの実行を記録するSTADなどのシステム監査ログから推定します。最も一般的なのはトランザクションF.01です。 記録 財務諸表用トランザクションF.01の実行を記録したシステムログ(STAD)から取得します。 イベントタイプ inferred | |||
| 転記期間開始 | 会計期間の正式な開始を示し、総勘定元帳への取引計上を可能にします。権限を持つユーザーが設定を明示的に変更し、1つ以上の会社コードで特定の期間への計上を許可します。 | ||
| 重要な理由 このアクティビティは、期間決算プロセスのケースにおける明確な開始イベントです。この時点からの所要時間を分析することで、会計期間全体の流れを把握できます。 入手先 トランザクションOB52による転記期間の変更はログに記録されます。通常、設定テーブルT001Bの変更文書をCDHDRおよびCDPOSテーブルで分析することで、変更内容を抽出できます。 記録 テーブルT001Bの変更文書(CDHDR/CDPOS)から抽出します。 イベントタイプ explicit | |||
| GR/IR消込の実行 | 入庫/請求書受領勘定の自動消込プログラムを実行します。このプログラムは、対応する入庫と請求書受領を照合し、相互に消し込みます。 | ||
| 重要な理由 GR/IR勘定は、照合上の問題が頻繁に発生する領域です。このアクティビティを監視することで、自動処理が正しく実行されているかを確認でき、手作業での対応が必要な例外の件数も把握できます。 入手先 実行記録はバッチジョブログ(トランザクションSM37)に残ります。通常、プログラムSAPF124をトランザクションF.13から実行します。TBTCOなどのジョブログテーブルから必要なタイムスタンプを取得できます。 記録 消込プログラムSAPF124のバッチジョブログ(テーブルTBTCO)から取得します。 イベントタイプ explicit | |||
| 会社間伝票の消込 | 異なる2つの会社コード間の未消込明細が消し込まれたことを示します。会社間取引の決済または照合が完了した状態です。SAPでは通常、消込伝票として明示的に記録されます。 | ||
| 重要な理由 会社間明細の消込遅延は、決算プロセスでよく見られるボトルネックです。このアクティビティを追跡することは、会社間照合のサイクルタイムを測定し、改善するうえで重要です。 入手先 BKPFおよびBSEGの財務伝票から識別します。消込伝票は未消込明細と関連付けられ、それらを消し込みます。イベントのタイムスタンプには消込日付(BSEG-AUGDT)を使用します。会社間取引は取引先項目で識別します。 記録 取引先を含む明細に関係する消込伝票をBKPF/BSEGから識別します。 イベントタイプ explicit | |||
| 取消仕訳の計上 | 以前に計上した仕訳を取り消す伝票の計上を記録します。多くの場合、誤りの修正を目的とします。SAPでは、取消伝票と元の伝票が明示的に関連付けられます。 | ||
| 重要な理由 取消件数が多い場合は、データ入力の精度やプロセス統制に問題がある可能性があります。これらのイベントを追跡すると、初回正確率を測定し、改善が必要な領域を特定できます。 入手先 取消伝票はBKPFテーブルで確認できます。トランザクションFB08で作成されることが多く、BKPF-STBLG項目に取消対象の伝票番号が記録されます。 記録 BKPF-STBLGに値が設定されている伝票、または取消用のTコードで作成された伝票を識別します。 イベントタイプ explicit | |||
| 未払計上または引当金の計上 | 未払計上、繰延、または引当金に関する仕訳の記録を示します。これらは通常、期間末に計上されます。SAPに独立したイベントタイプとして記録されるものではなく、特性に基づいて特定の仕訳を識別し、イベントとして推定します。 | ||
| 重要な理由 これらの仕訳を切り分けることで、見積もり管理のサブプロセスを分析できます。未払計上の件数が多い場合や頻繁に調整されている場合は、プロセス改善が必要な領域を示している可能性があります。 入手先 財務伝票テーブルBKPFおよびBSEGから推定します。特定の伝票タイプ(BKPF-BLART)、固有の総勘定元帳勘定(BSEG-HKONT)、またはヘッダーテキスト(BKPF-BKTXT)のキーワードで絞り込むと、該当する仕訳を識別できます。 記録 BKPF/BSEGテーブルを伝票タイプ、特定の総勘定元帳勘定、またはテキスト項目で絞り込みます。 イベントタイプ inferred | |||
| 照合のレビュー | 特定の勘定または勘定グループの照合がレビューされ、確認されたことを示します。標準のSAP ECCでは明示的に記録されないため、オフラインの統制やカスタムソリューションで管理されることがよくあります。 | ||
| 重要な理由 レビューのタイミングを追跡すると、決算プロセスの統制・監督段階におけるボトルネックを把握できます。管理者の対応可能時間や手戻りによる遅延も明らかになります。 入手先 この情報は標準のECCテーブルでは取得できません。カスタムZテーブルのステータス項目、簡易ワークフロー、または照合専用のサードパーティーツールとの連携など、カスタムソリューションが必要です。 記録 導入済みの場合は、カスタムワークフローまたはZテーブルからステータス変更を取得します。 イベントタイプ inferred | |||
| 試算表レポートの生成 | 試算表を生成するレポートの実行を示します。正式な財務諸表を作成する前に、借方合計と貸方合計が一致していることを確認する重要な手順です。 | ||
| 重要な理由 最終報告前の重要な品質チェックです。このレポートが繰り返し実行されている場合、基礎データの問題が見つかって修正されている可能性があり、遅延につながることがあります。 入手先 トランザクションSTADなどのシステム監査ログから推定します。S_ALR_87012277やF.01など、試算表レポートのトランザクション実行を記録できます。 記録 レポート用トランザクションコードの実行を記録したシステムログ(STAD)から取得します。 イベントタイプ inferred | |||
データ抽出ガイド
ステップ
- SAP Queryツールにアクセス:SAP ECCシステムにログインします。トランザクションコード
SQVI(QuickViewer)を開きます。 2. 新しいクエリを作成:クエリ名(例:Z_R2R_PERIOD_CLOSE)を入力し、「作成」をクリックします。ポップアップで「決算・レポーティング期間決算の抽出」など、内容が分かるタイトルを入力します。「データソース」には「テーブル結合」を選択します。 3. テーブル結合を定義:主テーブルBKPF(会計伝票ヘッダー)を追加し、次にBSEG(会計伝票明細)を追加します。SAPが結合条件(MANDT、BUKRS、BELNR、GJAHR)を自動的に提案するので、確認して適用します。期間の開始・終了アクティビティには、CDHDRとCDPOSを結合する別のクエリが必要です。 4. 出力項目(リスト項目)を選択:「リスト項目選択」タブを開きます。利用可能なテーブルから、イベントログに必要な項目を選択します。BKPF-BUKRS、BKPF-BELNR、BKPF-GJAHR、BKPF-MONAT、BKPF-CPUDT、BKPF-CPUTM、BKPF-USNAM、BKPF-BLART、BSEG-HKONT、BSEG-DMBTRなどが含まれます。 5. 入力パラメーター(選択項目)を定義:「選択項目」タブを開きます。実行時にデータを絞り込むための項目を選択します。特に重要なのはBKPF-BUKRS(会社コード)とBKPF-GJAHR(会計年度)です。BKPF-MONAT(転記期間)やBKPF-BLART(伝票タイプ)も追加できます。 6. アクティビティごとにバリアントを作成:SQVIでは、SQLのUNIONのように異なるデータ選択を組み合わせられないため、クエリを複数回実行する必要があります。各アクティビティ(例:「未払計上または引当計上済み」)についてクエリを実行し、選択画面で未払計上に該当する伝票タイプの一覧など、固有のフィルター値を入力します。この選択条件をバリアントとして保存し、抽出可能なアクティビティごとに繰り返します。 7. クエリを実行してデータを抽出:作成した各バリアントでクエリを実行します。アクティビティごとに設定したフィルターを使ってデータが抽出されます。 8. 結果をエクスポート:結果画面からデータをローカルファイルにエクスポートします。一般的な形式は「スプレッドシート」です。バリアントごとにエクスポートを繰り返します。 9. データを統合して変換:エクスポートしたファイルを表計算ソフトまたはスクリプトツールで開きます。すべてのファイルのデータを手作業で1つのマスターファイルにまとめます。 10. 固定値列と計算列を追加:統合したファイルに、SAPテーブルから直接抽出できない列を追加します。ActivityName(データの取得元となったバリアントに基づいて手動で設定)、FinancialPeriod(会計年度と期間を連結)、EventTime(日付と時刻の項目を結合)、SourceSystem、LastDataUpdateなどです。 11. アップロード用に書式を整える:最終ファイルを、プロセスマイニングツールで必要な列名を設定したCSVまたはExcel形式で保存します。アップロード前にデータ型と書式を確認します。
設定
- データソース:SAP Query(SQVI)でテーブルを結合します。主なテーブルはBKPF、BSEG、CDHDR、CDPOSです。 * 期間:傾向を把握するため、少なくとも3~6会計期間分のデータを抽出することを推奨します。
BKPF-GJAHR(会計年度)とBKPF-MONAT(期間)で絞り込みます。 * 会社コードのフィルター:データ量を抑え、特定の法人に分析対象を絞るため、必ずBKPF-BUKRS(会社コード)でフィルターします。すべての会社コードを一度に抽出することは推奨しません。 * 伝票タイプのフィルター:BKPF-BLART(伝票タイプ)で絞り込み、未払計上、調整、取消などの特定のアクティビティを抽出します。組織で使用している該当の伝票タイプを確認してください。 * 前提条件:抽出を実行するユーザーには、SQVIトランザクションの使用権限と、関連する財務テーブル(例:権限オブジェクトS_TABU_DIS)の表示権限が必要です。 * パフォーマンスに関する注意:BKPFとBSEGの結合は、システムリソースを多く消費する場合があります。業務時間外に抽出を実行してください。日付範囲を広くしすぎたり、会社コードのフィルターを設定しなかったりすると、メモリ不足やタイムアウトにつながる可能性があります。
クエリの例 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
*/ ステップ
- プログラムの範囲と設計:必要な12のアクティビティをそれぞれ識別するロジックを定義します。業務プロセスオーナーとSAP機能担当者に確認し、お使いのSAP ECC環境で期間決算アクティビティに関連する伝票タイプ、総勘定元帳勘定、プログラム名を確定します。
- ABAPプログラムを作成:トランザクション
SE38(ABAPエディター)で新しい実行可能プログラム(例:Z_PM_R2R_EXTRACTION)を作成します。内容が分かるタイトルを付け、プログラムタイプに「実行可能プログラム」を設定します。 - 選択画面を定義:プログラム内で
PARAMETERSとSELECT-OPTIONSを使って選択画面を定義します。この画面で、会社コード(BUKRS)、会計年度(GJAHR)、転記期間(MONAT)など、抽出範囲を指定できます。データ量を制御するうえで重要です。 - データ構造を宣言:最終的なイベントログデータを格納する内部テーブル構造を定義します。必須および推奨属性として、
FinancialPeriod、ActivityName、EventTime、SourceSystem、LastDataUpdate、BUKRS、BELNR、USNAM、HKONT、BLART、DMBTR、JournalEntryTypeを含めます。 - データ抽出ロジックを実装:12の各アクティビティのデータを選択するABAPの中核ロジックを記述します。アクティビティごとに関連するSAPテーブル(例:BKPF、BSEG、TBTCO、CDHDR)を照会し、中間内部テーブルにデータを格納します。付属のABAPクエリのセクションにあるロジックをテンプレートとして使います。
- 推定されるアクティビティを識別:「勘定照合開始」や「照合レビュー済み」など、SAP標準機能で明示的に記録されないアクティビティには、合意した推定ロジックを実装します。特定レポートの初回実行を確認したり、存在する場合は独自の「Zテーブル」を照会したりする方法があります。
- イベントデータを統合:個々のアクティビティのデータを抽出した後、各中間テーブルのレコードを最終的な統合内部テーブルに追加します。
EventTimeには、伝票の転記日時やジョブの開始日時など、関連するソース項目から正しい値を設定します。 - データを標準化して書式を整える:出力前に主要項目を標準化します。会計年度と期間を結合して
FinancialPeriod識別子を作成します。SourceSystemとLastDataUpdateには固定値を設定し、タイムスタンプの形式を統一します。 - 出力機能を開発:最終的な内部テーブルをエクスポートする機能をプログラムに追加します。一般的な方法は、
OPEN DATASETを使ってSAPアプリケーションサーバー上のCSVまたはタブ区切りファイルに書き出す方法、または関数モジュールGUI_DOWNLOADを使ってユーザーのローカルマシンに直接ダウンロードする方法です。 - テストと検証:複数の会社コードと期間を含む代表的なデータセットでプログラムを十分にテストします。検証手順に従って、データの正確性と完全性を確認します。機能担当者からのフィードバックに基づき、選択ロジックを調整します。
- 実行をスケジュール(任意):検証後、トランザクション
SM36でプログラムをバックグラウンドジョブとしてスケジュールできます。手作業なしでイベントログを定期的に自動抽出できます。
設定
- 選択条件:データを絞り込む選択画面をプログラムに用意します。主なフィルターは次のとおりです。
会社コード(BUKRS):対象を関連する法人に限定するため必須です。会計年度(GJAHR):抽出対象の基本となる年度を指定するため必須です。転記期間(MONAT):対象となる会計期間を選択するため必須です。
- アクティビティごとの設定:選択項目の多くは、SAPの個別設定によって異なります。プログラム内のパラメーターまたは定数として設定できるようにします。
未払計上/引当計上の伝票タイプ:未払計上と引当計上の転記を識別するために使う伝票タイプ(BLART)の一覧です。調整仕訳の伝票タイプ:調整仕訳を識別するために使う伝票タイプの一覧です。バックグラウンドジョブ/プログラム名:外貨評価(例:FAGL_FCV)、GR/IR消込(例:SAPF124)、試算表レポート、財務諸表の作成(例:RFBILA00)に使うプログラムの技術名です。
- 期間:主な選択条件は会計年度と期間ですが、基盤となるロジックではイベントの日時全体を考慮します。初回分析では、直近の完了済み会計期間から3~6期間分のデータを抽出することを推奨します。
- パフォーマンス:大規模なSAP環境では、プログラムのパフォーマンスが重要です。特に
BKPFやBSEGなどのテーブルでは、データベースの選択にインデックス項目を使ってください。すべての項目を選択する(SELECT *)ことは避け、必要に応じてデータを扱いやすい単位に分けて処理します。 - 権限:プログラムを実行するユーザーまたはサービスアカウントには、照会するすべてのテーブル(
BKPF、BSEG、TBTCO、TBTCP、CDHDR、CDPOS)へのアクセス権限と、開発用のSE38、スケジュールと監視用のSM37/SM36などのトランザクションを実行する権限が必要です。
クエリの例 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. ステップ
- 前提条件を確認:基盤となるSAP ECCデータベースへの読み取り専用アクセス情報を取得します。正しいデータベーススキーマを確認します。通常は
SAPSR3などの名前ですが、データベース管理者に確認してください。 - システム設定を確認:SAP財務チームに相談し、分析対象の会社コード(BUKRS)と会計期間を確認します。特に、「未払計上または引当計上済み」「調整仕訳転記済み」「会社間取引」に使われる伝票タイプ(BLART)を特定してください。
- プログラム名とジョブ名を確認:外貨評価(例:
FAGL_FCV)、GR/IR消込(例:SAPF124)、試算表レポート(例:RFBILA00)、財務諸表作成(例:RFBILA00)など、主要なバッチジョブのプログラム名を確認します。トランザクションSM37でスケジュール済みジョブを確認できます。 - SQLクエリをカスタマイズ:提示されたSQLクエリをテキストエディターまたはSQLクライアントにコピーします。プレースホルダー変数
{{start_date}}、{{end_date}}、{{company_codes}}を分析に使う実際の値に置き換えます。前の手順で確認した情報に基づき、伝票タイプとプログラム名の一覧を更新します。 - データベースに接続:DBeaver、SQL Server Management Studio、Oracle SQL Developerなどの標準的なSQLクライアントを使い、取得した認証情報でSAPデータベースに接続します。
- クエリを実行:カスタマイズしたSQLクエリをデータベースに対して実行します。期間の長さや財務テーブルのデータ量によっては、完了までにかなり時間がかかる場合があります。
- 初回の結果を確認:クエリの完了後、出力を簡単に確認します。行数が妥当か、すべての列が含まれているか、異なる
ActivityNameの値が結果に含まれているかを確認します。 - データをエクスポート:SQLクライアントから結果全体をCSVファイルにエクスポートします。文字化けを防ぐため、UTF-8エンコーディングで保存してください。
- アップロードの準備:プロセスマイニングツールにアップロードする前に、CSVファイルの列名が必要な属性名(
FinancialPeriod、ActivityName、EventTimeなど)と完全に一致していることを確認します。また、EventTime列のタイムスタンプ形式(例:YYYY-MM-DD HH:MI:SS)が統一されていることも確認してください。
設定
- データベース認証情報:SAPの主要な財務テーブルとシステムテーブルにアクセスできる読み取り専用データベースユーザーが必要です。対象には
BKPF、BSEG、TBTCO、CDHDR、CDPOSなどのテーブルが含まれます。 - 期間:プロセスの意味のある違いを把握するため、少なくとも3~6会計期間分のデータを抽出することを推奨します。期間を広げると、クエリの実行時間が大幅に長くなる点にご注意ください。
- 会社コード(
BUKRS):必ず特定の会社コード一覧で絞り込んでください。大規模なシステムですべての会社コードを対象にクエリを実行するのは現実的ではなく、パフォーマンスの問題につながる可能性があります。 - 伝票タイプ(
BLART):未払計上や調整などの仕訳タイプは、組織固有のSAP設定に基づいて識別します。アクティビティを正確に分類するため、クエリのWHERE句に正しい伝票タイプコードを指定してください。 - プログラム名とジョブ名:クエリでは、決算ステップの自動化に一般的に使われるプログラム名を使用しています。システムによっては、独自のラッパープログラムや異なるジョブ名を使っている場合があります。トランザクション
SM37で確認し、必要に応じてクエリを更新してください。 - パフォーマンスに関する注意:このクエリは、特に
BSEGとCDPOSなどの非常に大きなテーブルにアクセスします。システムのパフォーマンスへの影響を避けるため、業務時間外に抽出を実行することを強く推奨します。実行時間を抑えるには、日付と会社コードの範囲を狭く絞り込むのが最も効果的です。
クエリの例 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'
; 始める準備はできましたか?
このデータテンプレートを使ってプロセスマイニングを始め、財務決算業務のインサイトを得ましょう。今日から決算・レポーティングプロセスの改善に取り組めます。
決算・レポーティングの決算を最適化し、今すぐサイクルタイムを短縮
ボトルネックを解消し、決算・レポーティングの決算サイクルを30%短縮しましょう。
クレジットカードは不要です。14日間の無料トライアルを開始できます。