決算・レポーティング:期間決算と照合のデータテンプレート
決算・レポーティング:期間決算と照合のデータテンプレート
- 収集を推奨する属性
- プロセス分析で追跡する主要なアクティビティ
- データ抽出の手順
決算・レポーティング:期間決算と照合の属性
| 名前 | 説明 | ||
|---|---|---|---|
| 財務期間 FinancialPeriod | 財務報告サイクルを一意に識別する項目です。たとえば、2023年12月を示す「2023-12」のように、期間末決算プロセスのケースとして使用します。 | ||
| 説明 財務期間は、特定の期間の帳簿を締めることに関連するすべてのアクティビティをまとめる、中心的なケース識別子です。通常は暦月または会計期間を単位とし、各財務期間が期間末プロセスの1回分に相当します。 プロセスマイニング分析では、この属性によって、開始から最終報告までの期間決算のライフサイクル全体を追跡できます。期間ごとのサイクルタイムの比較、共通する処理経路の特定、月次・四半期・年次の決算手順における差異の分析にも使えます。各期間をケースとして扱うことで、時間の経過に伴うパフォーマンスを測定し、全体に共通するボトルネックを特定できます。 重要な理由 分析の基準となる必須のケース識別子です。期間決算のパフォーマンスを時系列で比較し、傾向や繰り返し発生する問題を特定できます。 入手先 通常はBKPFなどの財務伝票ヘッダーから、会計年度(GJAHR)と転記期間(MONAT)の項目を組み合わせて生成します。 例 2023-122024-032024年第1四半期 | |||
| アクティビティ ActivityName | 期間決算プロセス内で実行される特定の業務ステップまたはタスクの名称です。たとえば、「修正仕訳の転記」や「転記期間の終了」などがあります。 | ||
| 説明 期間決算および照合プロセス全体における、1つのイベントまたはタスクを表す属性です。アクティビティはプロセスマップを構成する基本要素であり、実行された作業の順序を示します。通常は、SAP S/4HANA内のトランザクションコード、伝票タイプ、ステータス変更などを組み合わせて生成します。 アクティビティの分析は、プロセスマイニングの基本です。プロセスフローの可視化、標準手順からの逸脱の特定、処理に時間がかかるボトルネックの発見、タスクの頻度や順序の把握に役立ちます。期間決算バリアント分析や当期決算ステータスなどのダッシュボードにも欠かせません。 重要な理由 プロセスの各ステップを定義し、プロセスマップの基盤となります。プロセスフロー、逸脱、ボトルネックの分析も可能にします。 入手先 トランザクションコード(TCODE)、伝票タイプ(BLART)、または財務決算タスクに関連するテーブルのステータス項目など、さまざまなソースから生成します。SAP Financial Closing Cockpitのデータなどが該当します。 例 転記期間の開始勘定照合の開始財務諸表の生成会社間照合の開始 | |||
| 開始時刻 EventTime | 特定のアクティビティが開始された時点、またはシステムに記録された時点を示すタイムスタンプです。 | ||
| 説明 イベント時刻は、アクティビティが発生した正確な日時を記録します。財務転記では、伝票の作成時刻(CPUTM)または転記日(BUDAT)であることが多く、ステータス変更やタスクでは、変更が記録された時点のタイムスタンプです。 この属性は、アクティビティを時系列に並べるために欠かせず、時間に基づくすべての分析の基盤になります。アクティビティ間のサイクルタイム、特定タスクの所要時間、プロセス全体のエンドツーエンド期間の計算に使います。期間決算サイクルタイム平均や照合承認時間平均などのKPIを直接支えます。 重要な理由 この必須タイムスタンプにより、イベントを時系列に並べられます。すべての所要時間およびパフォーマンス計算の基盤です。 入手先 BKPFなどのテーブルにある作成日(CPUDT)や作成時刻(CPUTM)などのタイムスタンプ項目、または各種ステータステーブルの変更日項目(例:CDHDR、CDPOS)から取得します。 例 2023-12-28T09:15:30Z2024-01-02T14:00:12Z2024-01-05T11:21:00Z | |||
| GL勘定番号 GlAccountNumber | 総勘定元帳における特定の勘定を識別する番号です。 | ||
| 説明 総勘定元帳(GL)勘定番号は、現金、買掛金、収益などの財務取引を記録する個々の勘定を識別します。照合や修正仕訳など、多くの期間末アクティビティは特定のGL勘定に直接関連します。 詳細な財務プロセス分析に欠かせない属性です。「修正仕訳分析」ダッシュボードでは、勘定別の調整件数を表示し、問題のある領域を特定できます。「GL勘定照合時間平均」KPIでも、この属性を使って特定の勘定に関連する遅延を特定します。 重要な理由 プロセスアクティビティを特定の財務勘定に結び付け、照合や仕訳を詳細に分析して問題の根本原因を特定できます。 入手先 財務伝票の明細テーブル、主にBSEG(項目HKONT)またはS/4HANAのユニバーサルジャーナルテーブルACDOCAに記録されています。 例 113100004000000073000000 | |||
| 会社コード CompanyCode | SAP組織内の法人または会社を一意に識別する項目です。 | ||
| 説明 会社コードは、企業内の独立した会計単位を表します。この単位では、完全かつ独立した勘定体系を作成できます。期間末の決算アクティビティはすべて会社コード単位で実行されます。 財務分析における基本的な組織ディメンションです。プロセスマイニングでは、異なる法人間で期間決算プロセスを比較できます。「期間決算バリアント分析」ダッシュボードでは、会社コードを使って不整合を特定し、決算手順の標準化を促進します。 重要な理由 組織に関する重要な背景情報を提供し、異なる法人間でプロセスを比較して、差異やベストプラクティスを特定できます。 入手先 SAPのほぼすべての財務テーブルに存在します。特にヘッダーテーブルBKPFの項目BUKRSに記録されています。 例 10001710US01DE01 | |||
| 伝票番号 DocumentNumber | 仕訳などの財務伝票を一意に識別する番号です。 | ||
| 説明 伝票番号は、SAPがすべての財務転記に割り当てる一意のキーです。決算プロセスのアクティビティを構成する個々の取引を追跡および監査する際の主要な参照情報になります。 ケースIDそのものではありませんが、ソースシステムへの重要なリンクを提供します。分析担当者は、伝票番号を使ってプロセスマイニングの画面からSAP S/4HANAの具体的な取引詳細へドリルダウンし、根本原因を分析できます。特定の修正仕訳や照合転記を調査する際に特に役立ちます。 重要な理由 SAP内の基となる取引を直接参照でき、プロセスモデルからのドリルダウンと監査可能性を高めます。 入手先 財務伝票ヘッダーテーブルBKPF(項目BELNR)や、BSEGまたはACDOCAなどの明細テーブルに記録されています。 例 100000045190000001300000023 | |||
| 担当ユーザー ResponsibleUser | アクティビティを実行した、またはタスクを担当したユーザーのIDです。 | ||
| 説明 仕訳の転記や照合の承認など、特定のタスクを実行した従業員を示す属性です。通常は、システムログや伝票ヘッダーにユーザーIDとして記録されます。 ユーザー単位でプロセスを分析すると、作業量の分布、個人のパフォーマンス、トレーニングの必要性を把握できます。リソース配分効率ダッシュボードでは、この属性を使ってユーザーごとのアクティビティ処理時間を可視化します。多くのユーザーが繰り返し実行しているタスクを明らかにし、自動化候補の特定にも役立ちます。 重要な理由 プロセスアクティビティと実行担当者を結び付け、作業量の分析、リソースの最適化、パフォーマンス管理を可能にします。 入手先 通常はBKPFなどの伝票ヘッダーテーブル(項目USNAM:ユーザー名)や、CDHDRなどの変更文書テーブル(項目USERNAME)に記録されています。 例 ABROWNCSMITHDJOHNSON | |||
| 照合ステータス ReconciliationStatus | 「オープン」「進行中」「承認済み」など、勘定照合アクティビティのステータスです。 | ||
| 説明 この属性は、特定の勘定科目またはタスクに対する照合プロセスの状態を追跡します。照合が開始済み、レビュー提出済み、承認済み、却下済みのいずれであるかを示します。ステータスの変更は、プロセスにおける重要なイベントです。 この属性は、「照合のやり直し分析」ダッシュボードの基盤となります。ステータスの順序を分析すると、「承認済み」の後に追加修正が行われたタイミングを特定でき、やり直しの発生を把握できます。また、却下や再オープンを経ずに承認された照合を示すことで、「初回照合承認率」KPIにも役立ちます。 重要な理由 照合タスクの進捗と結果を追跡し、やり直しの特定、承認率の測定、ボトルネックの分析を可能にします。 入手先 通常は、使用している照合ツールに関連するテーブルに保存されます。たとえば、SAP Financial Closing cockpitや、BlackLineのSAP Account Substantiation and Automationなどです。 例 未着手準備中承認済み却下 | |||
| 目標完了日 TargetCompletionDate | 財務諸表の作成など、重要なアクティビティを完了するために設定された予定日または期限日です。 | ||
| 説明 目標完了日は、決算プロセスにおける特定のマイルストーンの社内または社外の期限を示します。タスクを完了する予定の日付です。 この属性は、期限に対するスケジュール遵守状況とパフォーマンスを測定するために欠かせません。「レポート期限遵守」ダッシュボードと「財務諸表期限内完了率」KPIでは、この目標日と 重要な理由 期限に対するパフォーマンスを分析し、決算に関する重要なアクティビティの期限内完了率の測定と改善に役立ちます。 入手先 多くの場合、SAP Financial Closing cockpitなどのタスク管理またはスケジューリングシステムに保存されます。ここでは、決算タスクリストに予定終了日が定義されています。 例 2024-01-05T23:59:59Z2024-04-04T23:59:59Z2024-07-05T23:59:59Z | |||
| 終了時刻 EndTime | アクティビティが完了した時点を示すタイムスタンプです。 | ||
| 説明 終了時刻はタスクの完了を示します。システムに記録される瞬時イベントでは、開始時刻と同じになる場合があります。所要時間を測定できるアクティビティでは、完了時のタイムスタンプを表します。 開始時刻と組み合わせることで、各アクティビティの 重要な理由 アクティビティの所要時間(Processing Time)を計算できます。パフォーマンスのボトルネックを特定し、効率を分析するうえで欠かせません。 入手先 開始時刻と同様に、さまざまなタイムスタンプ項目から取得できます。アクティビティによっては開始時刻と同じ場合があります。それ以外では、アプリケーションテーブルや変更ログ(CDHDR、CDPOS)にある「完了日時」または「変更日時」の項目を使うことがあります。 例 2023-12-28T09:16:10Z2024-01-02T17:30:00Z2024-01-05T11:21:00Z | |||
| ソースシステム SourceSystemId | データを抽出した特定のSAP S/4HANAインスタンスまたはクライアントを識別する項目です。 | ||
| 説明 データの発生元システムを示す属性です。地域や事業部門ごとに複数のSAPインスタンスを使用する環境では、データソースを区別するために欠かせません。 主にデータガバナンス、監査、データ整合性の確保に使います。分析では、複数のソースシステムを1つのプロセスマイニングモデルに統合した場合に、システム間のプロセスを比較するフィルターとして利用できます。 重要な理由 データの出所と背景を明確にするために必要なデータリネージを提供します。特に複数システムが存在する環境で役立ちます。 入手先 通常はデータ抽出時に追加されるメタデータです。SAPのシステムID(SY-SYSID)またはクライアント(SY-MANDT)から取得することが多い項目です。 例 S4H_PROD_100S4H_QAS_200ECC_LEGACY_001 | |||
| トランザクションコード TransactionCode | アクティビティの実行に使われたSAPのトランザクションコード(Tコード)です。 | ||
| 説明 トランザクションコードは、SAPで特定の機能やプログラムを開始するためのショートカットです。たとえば、FB01は伝票の転記に、FAGLB03は総勘定元帳勘定残高の表示に使われます。Tコードは、実行されたアクティビティを示す明確な技術情報となることが多い項目です。 この属性は、プロセスモデルのアクティビティ定義の作成に役立ちます。自動アクティビティと手動アクティビティを区別し、システム上でタスクがどのように実行されたかを正確に把握するための信頼性の高い方法です。Tコードを分析すると、従業員が使用している標準外または非効率的な手順を見つけられます。 重要な理由 アクティビティがどのように実行されたかをシステムレベルで技術的に把握できます。手動ステップと自動ステップの区別や、標準外の手順の特定に役立ちます。 入手先 財務伝票ヘッダーテーブルBKPF(項目TCODE)または変更伝票ログに記録されています。 例 FB01FAGL_FCVF.13 | |||
| 仕訳伝票タイプ JournalEntryType | 転記する財務伝票の種類です。通常の仕訳、未払計上、修正仕訳などを区別します。 | ||
| 説明 仕訳伝票タイプは、SAPの用語では伝票タイプとも呼ばれ、会計伝票を分類するキーです。伝票を転記できる勘定科目タイプを制御し、仕入先請求書(KR)、総勘定元帳への転記(SA)、顧客からの入金(DZ)など、異なる業務トランザクションを区別するために使われます。 決算の文脈では、この属性によって特定のアクティビティタイプを切り分けられます。たとえば、修正仕訳に絞り込むことで、「修正仕訳分析」ダッシュボードと「修正仕訳件数」KPIを支援できます。また、「手動転記比率」の計算にも役立ちます。 重要な理由 財務トランザクションを分類し、手動修正など、円滑な決算に関わる特定の転記タイプに絞って分析できます。 入手先 財務伝票ヘッダーテーブルBKPFの標準項目です(項目BLART)。 例 SAKRAB | |||
| 伝票通貨 DocumentCurrency | 財務伝票の金額に使用される通貨コードです。 | ||
| 説明 この属性は、トランザクションが記録された通貨を示します。USD、EUR、JPYなどが該当します。 多国籍の組織では、通貨別の分析が重要になる場合があります。金額を正しく解釈できるほか、集計分析のために単一のレポート通貨へ換算する際にも必要です。この情報がなければ、 重要な理由 金額を正しく解釈するために、あらゆる金額に必要な文脈を提供します。特に複数通貨の環境で重要です。 入手先 財務伝票ヘッダーテーブルBKPF(フィールドWAERS)に格納されています。 例 USDEURJPY | |||
| 伝票金額 DocumentAmount | 伝票通貨で表した財務転記の合計金額です。 | ||
| 説明 この属性は、財務伝票に関連付けられた金額を示します。期末修正では、転記する未払計上額や修正額が該当します。 金額の分析は、重要性の評価に役立ちます。財務リスクが高い可能性のある高額な修正仕訳を優先的に調査できます。また、一定のしきい値を超えるトランザクションだけにプロセスマップを絞り込み、重要なアクティビティを中心に表示することも可能です。 重要な理由 金額の影響度と重要性に基づいて問題の優先順位を付けられるようになり、分析に財務的な視点を加えます。 入手先 通常は、BSEGやACDOCAなどの明細テーブルから集計する必要があります(項目WRBTR:伝票通貨の金額)。 例 15000.00250.75-500.00 | |||
| 最終データ更新日時 LastDataUpdate | ソースシステムのデータが最後に更新または抽出された時点を示すタイムスタンプです。 | ||
| 説明 直近のデータ抽出日時を記録する属性です。プロセスマイニングツールで分析しているデータの鮮度を把握できます。 主な目的は、データガバナンスと利用者への情報提供です。ダッシュボードの閲覧者は、分析がどの時点のデータに基づいているかを確認できます。特に「当期決算ステータス」のような準リアルタイム監視ダッシュボードでは重要です。今日、昨日、または先週のデータを見ているのかを把握するのに役立ちます。 重要な理由 データの適時性を利用者に伝え、プロセスに関する分析結果がどの時点の状況を示しているかを理解できるようにします。 入手先 データ抽出またはETLツールが実行された時点で、データセットに生成および付与されるメタデータです。 例 2024-06-10T08:00:00Z2024-06-09T08:00:00Z | |||
| 実績完了日 ActualCompletionDate | 主要なアクティビティまたは期間決算全体が完了した実際の日付です。 | ||
| 説明 この属性は、重要なマイルストーンが実際に完了した日付を記録します。財務諸表の最終承認、または転記期間の締め処理が完了した時点のタイムスタンプです。
重要な理由 マイルストーンの実際のタイミングを把握できます。計画した期限に対するパフォーマンスの測定や、遅延の分析に必要です。 入手先 「Financial Statements Approved」や「Period Closed For Posting」など、シーケンス内の最後のアクティビティのEventTimeから取得されます。 例 2024-01-06T10:00:00Z2024-04-05T17:00:00Z2024-07-04T11:00:00Z | |||
| 期間決算サイクル時間 PeriodCloseCycleTime | 財務期間の最初のアクティビティから最後のアクティビティまでにかかった合計時間です。 | ||
| 説明 この指標は、1つのケース(Financial Period)における期間決算プロセスの開始から完了までの所要時間を表します。期間内で最初に実行されたアクティビティと最後に実行されたアクティビティのタイムスタンプの差として算出されます。 主要なKPIの1つであり、「Period Close Cycle Time Overview」ダッシュボードと「Average Period Close Cycle Time」KPIを直接支えます。決算プロセス全体の効率と速度を把握できるため、時系列での比較や、異なる会社コード間のベンチマークに役立ちます。 重要な理由 プロセス全体の所要時間を測る主要KPIです。時間の経過に伴う効率改善を大局的に追跡できます。 入手先 ケース単位で算出します。各 例 P5D10H30MP7D2HP6D | |||
| 期限どおりかどうか IsOnTime | マイルストーンが目標日以前に完了した場合にtrueとなるブール型フラグです。 | ||
| 説明 この属性は、スケジュールを遵守できたかどうかを単純な二値で示します。特定のマイルストーン(財務諸表の承認など)について、 「Financial Statement On-Time Rate」KPIの基礎となる計算です。日付の比較結果を「期限どおり」または「遅延」という明確なステータスに変換するため、ダッシュボードやレポートで簡単に可視化できます。決算の早期化に向けた施策の効果測定にも役立ちます。 重要な理由 期限遵守の分析を明確な成功または未達の結果に整理し、期限どおりに完了した実績を簡単に追跡・報告できます。 入手先 計算フィールド: 例 truefalse | |||
| 照合のやり直しかどうか IsReconciliationRework | 照合アクティビティの後に却下または追加の調整が行われた場合にtrueとなるブール型フラグです。 | ||
| 説明 この計算属性は、照合サブプロセス内で発生したやり直しを特定します。照合が却下された場合、提出後に再オープンされた場合、またはGL勘定に対して照合が完了したはずの後に調整仕訳が転記された場合に、アクティビティまたはケースをフラグ付けします。 このフラグは、「Reconciliation Rework Analysis」ダッシュボードと「Reconciliation Rework Rate」KPIで使うことを目的としています。複雑なプロセスシーケンスを、やり直しの程度を定量化できる単純な測定可能属性に変換し、初回品質の改善に取り組むべき領域を明らかにします。 重要な理由 プロセスの非効率化につながる代表的な要因であるやり直しを直接定量化し、照合品質の分析と改善を重点的に進められます。 入手先 アクティビティのシーケンスに基づいて算出します。たとえば、同じ期間内の同じGL勘定について、「Reconciliation Approved」の後に「Adjusting Journal Entry Posted」が続く場合、フラグをtrueに設定します。 例 truefalse | |||
| 自動化済みかどうか IsAutomated | アクティビティがシステムユーザーまたは自動化されたプロセスによって実行されたかどうかを示すブール型フラグです。 | ||
| 説明 このフラグは、人が手動で実行したタスクと、通貨評価のスケジュール済みバッチジョブや自動消込処理など、システムが自動的に実行したタスクを区別します。通常は、 この属性は、決算プロセスの自動化レベルを把握するうえで重要です。大量の手動タスクを明らかにすることで、さらなる自動化の機会を特定できます。また、ボトルネックが手動ステップと自動ステップのどちらで発生しているかを確認する根本原因分析にも使われます。 重要な理由 人によるアクティビティとシステムによるアクティビティを区別します。両者の自動化の可能性を特定し、効率を分析するうえで欠かせません。 入手先 これは派生属性です。多くの場合、「ResponsibleUser」フィールドに適用したルール(「BATCHUSER」のようなシステムユーザーまたはバッチユーザーのIDを確認するルール)またはTransaction Codeに基づいて設定されます。 例 truefalse | |||
決算・レポーティング:期間決算と照合のアクティビティ
| アクティビティ | 説明 | ||
|---|---|---|---|
| 会社間照合の開始 | 同じ企業グループ内の異なる会社コード間で取引を突合し、照合するプロセスの開始を示します。通常は、照合ジョブの実行、またはSAPのICMRツールで新しい照合ケースを作成することで開始します。 | ||
| 重要な理由 会社間照合は、複雑で時間のかかる処理になりがちです。所要時間と処理経路を分析することは、グループ決算を効率化し、連結財務情報の正確性を確保するうえで重要です。 入手先 SAP Intercompany Matching and Reconciliation(ICMR)モジュール内のステータス変更、または対象期間の最初の照合文書の作成から推定します。 取得 対象期間のICMRツール内にある照合単位の作成日またはステータス変更のタイムスタンプを追跡します。 イベントタイプ inferred | |||
| 修正仕訳の転記 | 最初の照合後に、通常はレビューで見つかった差異を修正するために作成される訂正仕訳を示します。総勘定元帳に転記される明示的な取引です。 | ||
| 重要な理由 修正仕訳の頻度が高い場合、上流プロセスや照合における初回品質の低さを示しています。これらの仕訳を分析することは、エラーの根本原因を特定し、やり直しを減らすうえで重要です。 入手先 テーブルACDOCAおよびBKPFの明示的な伝票として記録されます。特定の伝票タイプ、決算サイクル後半の転記日、または特定のテキスト説明で識別できます。 取得 伝票タイプと照合アクティビティに対する転記日の組み合わせを条件に、BKPFの仕訳を絞り込みます。 イベントタイプ explicit | |||
| 勘定照合の承認 | GL勘定照合の最終承認を示します。残高の裏付けが確認され、問題が解決されたことを意味します。照合ツールでステータスが「承認済み」に変更された時点から推定します。 | ||
| 重要な理由 重要な統制アクティビティの完了を示すマイルストーンです。承認時間を追跡すると、レビュープロセスのボトルネックを特定でき、やり直しや初回合格率の測定にも役立ちます。 入手先 SAP Account Substantiation and Automationなどの照合管理システムから、最終承認ステータスのタイムスタンプを追跡して取得します。 取得 照合のステータス項目が最終状態である「承認済み」に更新された時点のタイムスタンプを特定します。 イベントタイプ inferred | |||
| 勘定照合の開始 | GL勘定残高の裏付けを確認する手動または半自動プロセスの開始を示します。照合のステータスが「新規」から「進行中」に変更された時点、または最初の担当者の操作が記録された時点から推定します。 | ||
| 重要な理由 貸借対照表残高の裏付け確認にかかる期間と作業量を把握するための重要なマイルストーンです。どの勘定や部門が照合を遅れて開始しているかを特定できます。 入手先 通常は、SAP Account Substantiation and Automation by BlackLineなどの専用照合ツール、またはその他のサードパーティーシステムから取得します。ステータス変更のタイムスタンプから推定します。 取得 特定のGL勘定の照合が「未開始」状態から初めて変更された時点のタイムスタンプを追跡します。 イベントタイプ inferred | |||
| 財務諸表の生成 | 貸借対照表や損益計算書など、正式な財務諸表の作成を示します。期間末の会計処理と連結プロセスの集大成にあたります。 | ||
| 重要な理由 決算・レポーティングサイクルにおける主要なマイルストーンです。報告期限を守り、関係者に適時に情報を提供するうえで、そのタイミングが重要です。 入手先 SAP Financial Closing Cockpitなどの財務決算管理ツールで取得するのが最適です。この場合は明示的なタスクとして記録されます。それ以外では、レポート生成ログまたはファイル作成のタイムスタンプから推定する必要があります。 取得 決算ツールで「Generate Financial Statements」タスクの完了ステータスを追跡するか、レポート実行ログを分析します。 イベントタイプ inferred | |||
| 転記期間の終了 | サイクルの最終アクティビティです。転記期間を正式に閉じ、それ以降の取引を防止します。確定した財務報告のデータ整合性を確保するための処理です。 | ||
| 重要な理由 プロセスの確定的な終了イベントです。期間決算の総サイクルタイムを計算し、プロセス完了の傾向を分析するうえで欠かせません。 入手先 期間の開始と同様に、トランザクションOB52を通じた転記期間管理テーブルT001Bの更新を記録する変更文書(テーブルCDHDRおよびCDPOS)から取得します。 取得 テーブルT001Bの変更ログを絞り込み、対象の会計年度および期間が閉じられたことを特定します。 イベントタイプ explicit | |||
| 転記期間の開始 | 財務期間の開始を示すアクティビティです。取引を記録できるよう転記期間を開きます。SAPで財務管理者が実行する、明示的に記録された設定変更であり、新しい期間への仕訳入力を可能にします。 | ||
| 重要な理由 このアクティビティは、期間末決算プロセスの主な開始イベントです。全体のサイクルタイムを正確に測定でき、プロセス分析の明確な起点になります。 入手先 このイベントは、転記期間管理テーブルT001Bへの変更を記録する変更文書(テーブルCDHDRおよびCDPOS)から取得します。通常はトランザクションOB52を通じて実行されます。 取得 特定の会計年度および期間に関連するテーブルT001Bの変更ログを絞り込みます。 イベントタイプ explicit | |||
| 外貨評価の実行 | 期間末の為替レートに基づき、外貨建ての未消込明細と残高を再評価する標準的な月末処理です。このプログラムを実行すると、評価差額が転記されます。 | ||
| 重要な理由 会計基準へのコンプライアンスを確保し、正確な財務状況を示します。このアクティビティを追跡すると、すべての外貨評価が適時に実行されていることを確認できます。 入手先 外貨評価プログラム(例:FAGL_FCV)の実行ログから取得します。ジョブの詳細はテーブルTBTCOおよびTBTCPに保存されます。 取得 トランザクションFAGL_FCVまたは基盤プログラムに関連するジョブの実行ログを監視します。 イベントタイプ explicit | |||
| 未払・見越計上の実行 | 発生主義会計に基づく正確な財務報告に必要な、未払費用、繰延、その他の引当金に関する手動仕訳の作成を記録するイベントです。これらは総勘定元帳に転記される明示的な取引です。 | ||
| 重要な理由 これらの転記を追跡すると、手動調整の量とタイミングを分析できます。件数が多い場合は、自動化や上流プロセスの改善余地を示している可能性があります。 入手先 ユニバーサルジャーナルテーブルACDOCAおよびヘッダーテーブルBKPFの明示的な仕訳として記録されます。未払・見越計上用に設定された特定の伝票タイプで識別できます。 取得 テーブルBKPFで、伝票タイプ(例:SAまたはカスタムタイプ)と対象期間内の転記日を条件に伝票を絞り込みます。 イベントタイプ explicit | |||
| 自動消込実行 | SAPで自動消込プログラムを実行することを示します。たとえば、GR/IR(入庫/請求書受領)消込があります。これらのジョブは、特定のGL勘定の未消込明細を突合して消し込み、手動照合の負担を減らします。 | ||
| 重要な理由 このアクティビティから、照合プロセスの自動化レベルを把握できます。実行時の失敗や例外は、大量の手作業や遅延につながる可能性があります。 入手先 自動消込用のF.13やF.13Eなど、特定のバッチジョブの実行ログから取得します。実行の詳細はジョブログテーブルTBTCOおよびTBTCPに記録されます。 取得 SAPのジョブログで、F.13などのトランザクションに関連するジョブの開始および終了タイムスタンプを監視します。 イベントタイプ explicit | |||
| 補助元帳データ転送の完了 | 売掛金、買掛金、固定資産会計などの補助元帳から総勘定元帳へ、集計データを転送するバッチジョブの完了を示します。決算手順の開始前に、基となるすべての業務取引がGLに反映されていることを確認します。 | ||
| 重要な理由 補助元帳の決算遅延は、プロセス全体の大きなボトルネックになる可能性があります。このアクティビティを追跡すると、ソースシステムからのデータ収集や連携における非効率を特定できます。 入手先 元帳の決済とデータ転送を担う特定のバッチジョブが正常に完了したステータスから推定します。ジョブログはテーブルTBTCOおよびTBTCPで確認できます。 取得 SAPのジョブ概要(トランザクションSM37)で、関連するバッチジョブの完了タイムスタンプを特定して監視します。 イベントタイプ explicit | |||
| 試算表の作成 | レビュー用の試算表が生成され、保存されたことを示します。最終財務諸表を作成する前の重要なチェックポイントです。このイベントの取得には、レポート出力を保存する手順が必要になることがあります。 | ||
| 重要な理由 試算表の作成は重要な品質ゲートです。タイミングを分析すると、最終報告に向けた準備状況を把握でき、前段のアクティビティの遅延も明らかにできます。 入手先 多くの場合、明示的なイベントではありません。ユーザーと日付のスタンプ付きでバリアントが保存されている場合は、特定のレポートトランザクションの実行から推定できます。また、SAP Financial Closing Cockpitなどのツールでプロセスを管理している場合も推定可能です。 取得 レポート実行ログや決算コックピットのタスクリストなど、信頼できる記録方法が存在するかを確認するため、システム分析が必要です。 イベントタイプ inferred | |||
| 財務諸表の承認 | 公開前に、権限を持つ経営陣が財務諸表を最終承認することを示します。オフラインで行われることが多い処理ですが、正式なデジタル承認ステップがあれば取得できます。 | ||
| 重要な理由 最終的な品質および統制のゲートです。タイミングを追跡することで、報告期限への準拠状況と経営レビューサイクル全体の効率を把握できます。 入手先 財務諸表の承認用ワークフローまたはステータス項目が存在する場合に取得できます。たとえば、SAP Financial Closing Cockpitや文書管理システム内の情報が該当します。 取得 財務諸表一式の最終承認を示すデータ項目とタイムスタンプを特定します。 イベントタイプ inferred | |||
| 連結タスクの実行 | SAP Group Reporting内で連結アクティビティを実行することを示します。通貨換算、組替、会社間利益の消去などが含まれます。通常、これらのタスクは連結モニターで管理および記録されます。 | ||
| 重要な理由 複数の法人を持つ組織にとって、連結プロセスは重要なクリティカルパスです。これらのタスクを監視すると、グループ決算を効率化し、連結報告を適時に行えます。 入手先 SAP S/4HANA for Group ReportingのData MonitorまたはConsolidation Monitor内のステータスログから取得します。各タスクには通常、ユーザー、タイムスタンプ、ステータスが記録されます。 取得 Group Reportingの連結モニターを構成する基盤テーブルから、タスク実行ログを抽出します。 イベントタイプ explicit | |||
抽出ガイド
ステップ
- CDS Viewを特定して確認する:SAP HANA StudioまたはADTを備えたEclipseを使って、SAP S/4HANAシステムにログインします。ABAP Development Toolsで、I_JournalEntryItem、I_BatchJob、I_ConsolidationTaskLogなど、質問で示された標準CDS Viewの存在を検索して確認します。勘定照合などのプロセスでは、ステータス変更を取得するために、Z_I_ACCOUNTRECONCILIATIONなどのカスタムCDS Viewを作成する必要がある場合があります。
- OData経由でCDS Viewを公開する:SAPバックエンドで、トランザクション
SEGW(Gateway Service Builder)を使って新しいプロジェクトを作成します。Data Modelフォルダーを右クリックし、「Reference -> Data Source」を選択します。必要なCDS Viewを追加します。ランタイムオブジェクトを生成し、これらのViewを外部から利用できるODataサービスを作成します。 - ODataサービスを有効化する:SAP Gatewayハブでトランザクション
/IWFND/MAINT_SERVICEを開きます。「Add Service」をクリックし、前の手順で生成したサービスを検索して追加します。これにより、サービスが有効になり、クエリを実行できるようになります。 - データ接続を確立する:選択したデータ抽出ツール(Python、Power BI、専用ETLプラットフォームなど)から、新しく作成したODataサービスへの接続を確立します。CDS Viewへのアクセス権限を持つサービスURLと適切な認証情報が必要です。
- クエリを調整して実行する:提供されたSQLクエリをコピーします。日付範囲、会社コード、カスタムCDS View名、バッチジョブ名のプレースホルダーを、使用しているSAP環境に合わせて変更します。ODataサービスのエンドポイントに対してクエリを実行します。ODataでは異なる構文($filter、$select)を使うため、UNION ALLクエリのロジックをアクティビティごとの個別API呼び出しに変換する必要がある場合があります。
- アクティビティデータを統合する:通常、ODataは複雑なUNION ALLクエリを1回の呼び出しで直接処理できません。そのため、クエリ内のアクティビティブロックごとに個別のリクエストを実行します。すべてのリクエストの結果を、クライアントツール内の1つのデータセットまたはテーブルに統合します。
- データを変換してクリーンアップする:統合したデータを確認します。
EventTime列とEndTime列が一貫したタイムスタンプ形式になっていることを確認します。FinancialPeriodが「YYYY-MM」形式になっていることを確認します。ResponsibleUserやDocumentNumberなどの列にNULL値がある場合は、必要に応じて処理します。 - イベントログとしてエクスポートする:最終的に統合したデータセットをCSVファイルにエクスポートします。列見出しが必要な属性(
FinancialPeriod、ActivityName、EventTime、EndTime、ResponsibleUserなど)と一致していることを確認します。このファイルをProcessMindにアップロードする準備が整います。
設定
- CDS View:クエリでは、標準CDS ViewとカスタムCDS Viewを組み合わせて使用します。
I_JournalEntryItem(仕訳用)やI_BatchJob(自動実行用)などの標準Viewが必要です。Z_I_ACCOUNTRECONCILIATIONなどのカスタムViewは、標準Viewでは取得できない社内プロセスのステータスを記録するために必要になることがあります。 - 日付範囲:データ量を管理するため、抽出対象の日付範囲を指定します。クエリの
[Start Date]と[End Date]のプレースホルダーは、通常、意味のある分析ができるよう、3~6会計期間全体を対象に設定します。 - 主要なフィルター:パフォーマンスと関連性を確保するには、フィルターが欠かせません。必ず
CompanyCodeで絞り込んでください。その他の重要なフィルターには、Ledger(先行元帳の場合は「0L」など)、FiscalYear、通常転記・未払計上・修正を区別するDocumentTypeの値があります。 - 前提条件:抽出を実行するユーザーには、指定したCDS ViewへのアクセスとODataサービスの実行に必要なSAP権限が必要です(権限オブジェクト
S_SERVICE、S_RFCなど)。SAP Gatewayサービスを設定して有効化しておく必要があります。 - パフォーマンス:
I_JournalEntryItemへのクエリは、システムに大きな負荷をかける場合があります。特に日付、会社コード、元帳には、必ず選択性の高いフィルターを適用してください。業務負荷の低い時間帯に抽出するか、継続的な監視には増分ロード方式を検討してください。
a サンプルクエリ sql
SELECT
CONCAT(CAST(PostingDate AS DATE FORMAT 'YYYY'), '-', CAST(PostingDate AS DATE FORMAT 'MM')) AS FinancialPeriod,
'Period Opened For Posting' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
CAST(CreationDateTime AS TIMESTAMP) AS EndTime,
CreatedByUser AS ResponsibleUser,
CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_FinPostingPeriodControl -- This is a proxy; this activity is a configuration change often found in change logs (CDHDR/CDPOS for table T001B)
WHERE PostingPeriodVariant = '[Your Variant]' AND FiscalYear = '[Your Fiscal Year]' AND FromPostingPeriod = 1 AND AuthorizationGroup IS NOT NULL -- Logic to detect the opening event
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod, -- Infer period from Job Name if patterned, otherwise use job start date
'Subledger Data Transfer Completed' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE '[Subledger Job Prefix]%' AND JobStatus = 'F' -- 'F' for Finished
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(CAST(CreationDate AS DATE FORMAT 'YYYY'), '-', CAST(CreationDate AS DATE FORMAT 'MM')) AS FinancialPeriod,
'Intercompany Reconciliation Started' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
NULL AS EndTime,
CreatedByUser AS ResponsibleUser,
LeadingCompanyCode AS CompanyCode,
NULL AS GlAccountNumber,
ReconciliationCase AS DocumentNumber,
ReconciliationCaseStatus AS ReconciliationStatus,
NULL AS TargetCompletionDate,
NULL AS ProcessingTime
FROM I_ICRcnCase -- Part of SAP S/4HANA for group reporting
WHERE CreationDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Accruals And Provisions Posted' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
CAST(CreationDateTime AS TIMESTAMP) AS EndTime,
CreatedByUser AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
AccountingDocument AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_JournalEntryItem
WHERE DocumentType IN ('[Accrual Doc Type 1]', '[Accrual Doc Type 2]') -- e.g., 'SA', 'AC'
AND PostingDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Automated Clearing Run Executed' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE 'SAPF124%' AND JobStatus = 'F'
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Foreign Currency Valuation Run' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE 'FAGL_FCV%' AND JobStatus = 'F'
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
-- This activity often requires a custom view on a custom table or an add-on like SAP Account Substantiation and Automation.
-- The following is a placeholder for such a custom view.
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Account Reconciliation Started' AS ActivityName,
CAST(ChangedAt AS TIMESTAMP) AS EventTime,
NULL AS EndTime,
ChangedBy AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
ReconciliationID AS DocumentNumber,
'In Progress' AS ReconciliationStatus,
PlannedCompletionDate AS TargetCompletionDate,
NULL AS ProcessingTime
FROM Z_I_ACCOUNTRECONCILIATION -- Placeholder for your custom reconciliation status view
WHERE Status = 'IN_PROGRESS' AND OldStatus = 'NEW'
AND ChangeDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Adjusting Journal Entry Posted' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
CAST(CreationDateTime AS TIMESTAMP) AS EndTime,
CreatedByUser AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
AccountingDocument AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_JournalEntryItem
WHERE DocumentType IN ('[Adjustment Doc Type 1]', '[Adjustment Doc Type 2]') -- e.g., 'AJ'
AND PostingDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
-- This activity often requires a custom view on a custom table or an add-on product.
-- The following is a placeholder for such a custom view.
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Account Reconciliation Approved' AS ActivityName,
CAST(ChangedAt AS TIMESTAMP) AS EventTime,
CAST(ChangedAt AS TIMESTAMP) AS EndTime,
ApprovedBy AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
ReconciliationID AS DocumentNumber,
'Approved' AS ReconciliationStatus,
PlannedCompletionDate AS TargetCompletionDate,
NULL AS ProcessingTime
FROM Z_I_ACCOUNTRECONCILIATION -- Placeholder for your custom reconciliation status view
WHERE Status = 'APPROVED'
AND ChangeDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Consolidation Tasks Executed' AS ActivityName,
CAST(TaskExecutionUTCTimestamp AS TIMESTAMP) AS EventTime,
CAST(TaskCompletionUTCTimestamp AS TIMESTAMP) AS EndTime,
ExecutedByUser AS ResponsibleUser,
ConsolidationUnitCompanyCode AS CompanyCode, -- Assuming mapping exists
NULL AS GlAccountNumber,
DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(TaskExecutionUTCTimestamp AS TIMESTAMP), CAST(TaskCompletionUTCTimestamp AS TIMESTAMP)) AS ProcessingTime
FROM I_ConsolidationTaskLog
WHERE ConsolidationTaskStatus = 'S' -- Successful
AND TaskExecutionUTCDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Trial Balance Prepared' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE '[Trial Balance Job Prefix]%' AND JobStatus = 'F' -- Example: FAGL_TRIAL_BALANCE_RUN
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Financial Statements Generated' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE '[Fin Statement Job Prefix]%' AND JobStatus = 'F'
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
-- Approval is often a manual step. This requires a custom solution to capture.
-- The following is a placeholder for such a custom view.
SELECT
CONCAT(ApprovalYear, '-', LPAD(ApprovalPeriod, 2, '0')) AS FinancialPeriod,
'Financial Statements Approved' AS ActivityName,
CAST(ApprovalTimestamp AS TIMESTAMP) AS EventTime,
CAST(ApprovalTimestamp AS TIMESTAMP) AS EndTime,
ApproverUser AS ResponsibleUser,
CompanyCode,
NULL AS GlAccountNumber,
FinancialStatementVersion AS DocumentNumber,
'Approved' AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM Z_I_FINSTATEMENTAPPROVAL -- Placeholder for custom approval tracking view
WHERE ApprovalDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(CAST(LastChangeDate AS DATE FORMAT 'YYYY'), '-', CAST(LastChangeDate AS DATE FORMAT 'MM')) AS FinancialPeriod,
'Period Closed For Posting' AS ActivityName,
CAST(LastChangeDateTime AS TIMESTAMP) AS EventTime,
CAST(LastChangeDateTime AS TIMESTAMP) AS EndTime,
LastChangedByUser AS ResponsibleUser,
CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_FinPostingPeriodControl -- Proxy, see note on 'Period Opened'
WHERE PostingPeriodStatus = 'C' -- 'C' for Closed
AND LastChangeDate BETWEEN '[Start Date]' AND '[End Date]'; ステップ
- 必要なアプリケーションテーブルを含むSAP HANAスキーマへの直接読み取りアクセスが利用できることを確認し、ACDOCA、TBTCO、CDHDR、CDPOSのスキーマ所有者を特定します。クエリ内のスキーマのプレースホルダーを、承認済みのスキーマ名に置き換えます。
- 会計年度、会計期間、会社コードの範囲、抽出日付範囲を確認します。通常は3~6か月の完全な決算サイクルを対象にし、日付パラメーターをシステムに適した値に置き換えます。
- 転記期間設定の変更、バッチジョブの完了、照合ステータスの変更、連結実行、レポート生成、承認記録について、ローカルの項目マッピングを検証します。クエリでは、すべてのSAP S/4HANA環境に存在するとは限らないソースオブジェクトに、明示的なプレースホルダーを使用しています。実行前に、これらのプレースホルダーをシステムで承認されたViewまたはテーブルに置き換えます。
- 読み取り専用のデータベース認証情報でクエリを実行します。クエリは必要な各アクティビティについて1行のイベントを明示的に作成し、イベントの順序から追加イベントを推測することはありません。
- 返された列を確認します。FinancialPeriodはケース識別子、ActivityNameはイベントアクティビティ、EventTimeは必須のイベントタイムスタンプです。EndTime、ResponsibleUser、CompanyCode、GlAccountNumber、DocumentNumber、ReconciliationStatus、TargetCompletionDateは、ソースレコードに存在する場合に含まれます。
- 特定の期間にソースレコードがないアクティビティも含め、必要なすべてのアクティビティが結果に含まれていることを確認します。クエリは、欠落しているアクティビティタイプについてActivityNameを「Activity Coverage Validation」に設定した検証行を返します。対象のインポートで業務イベントだけが必要な場合は、ProcessMindにアップロードする前にこの行を削除するか、別途処理してください。
- 代表的なイベントをSAPのアプリケーションレコードおよびジョブログと照合します。仕訳イベントがACDOCAレコードに、ジョブイベントがTBTCOレコードに、変更イベントがCDHDRおよびCDPOSレコード、または設定済みの照合・承認ソースに対応していることを確認します。
- 結果をUTF-8のCSV、またはProcessMindが対応する別の表形式でエクスポートします。FinancialPeriod、ActivityName、EventTimeの列名は正確に維持します。FinancialPeriodとEventTimeの順に並べ替え、明示的に抽出したイベントごとに1行を保持します。
- イベントログをProcessMindにアップロードし、FinancialPeriodをケース識別子、ActivityNameをアクティビティ、EventTimeを開始タイムスタンプとして設定します。利用できる場合はEndTimeを終了タイムスタンプとしてマッピングし、残りの列をイベント属性またはケース属性としてマッピングします。
重要なソースマッピングに関する注意:SAP S/4HANAには、すべての照合ツール、連結モニター、レポートアーカイブ、承認ワークフロー、転記期間設定に共通する単一のテーブル構造はありません。クエリ内の各[Your table name]および[Your column name]プレースホルダーを、システムで確認済みのオブジェクトと列に置き換えてください。プレースホルダーを実行可能なSQLとして扱わないでください。
設定
- データベースアクセス:ACDOCA、TBTCO、CDHDR、CDPOS、および転記期間管理、照合、連結、レポーティング、承認に使用する設定済みのソースオブジェクトに対してSELECT権限を持つ、読み取り専用のSAP HANAデータベースユーザーを使用します。
- スキーマ設定:[Your SAP schema]を、アプリケーションオブジェクトを含む実際のスキーマに置き換えます。オブジェクトがテーブル、Calculation View、承認済みのレポートViewのいずれであるかを確認します。
- 日付範囲:通常は3~6か月の完全な決算サイクルを抽出します。開始・終了アクティビティ、遅延転記、取消、承認、決算後の修正を含めます。
- 会計期間:会社コードで使用する会計年度と会計期間で絞り込みます。会計年度バリアントが異なる場合、暦年の期間を前提にしないでください。
- 会社コード:特定の法人を対象とする場合は、会社コードで絞り込みます。範囲が別の組織マッピングで管理されている場合は、[Configure based on your system]を使用します。
- 伝票タイプ:仕訳の抽出対象を、未払計上、引当、修正、評価、消込、その他の決算転記に使用する伝票タイプに限定します。これらのフィルターを有効にする前に、ローカルの伝票タイプ設定を確認します。
- ジョブステータス:完了アクティビティには、完了済みまたは正常終了したジョブだけを含めます。ステータス条件を適用する前に、ローカルのTBTCOステータス値を検証します。
- 変更伝票:ローカル設定を確認したうえで、関連するオブジェクトクラスと変更インジケーターによりCDHDRとCDPOSを絞り込みます。変更伝票だけでは、すべての業務アクティビティを特定できない場合があります。
- 照合および承認ソース:照合ステータスの遷移、作成者の操作、承認、目標日、電子サインオフについて、確認済みのソースオブジェクトを設定します。これらのソースは、導入されているSAPコンポーネントと拡張機能によって異なります。
- パフォーマンス:会計年度、会計期間、会社コード、転記日、イベントタイムスタンプに対する条件を限定します。各UNION ALL分岐にフィルターを適用し、ACDOCAの無制限スキャンを避け、承認済みのレポート時間帯に実行します。
- データ型:タイムスタンプを共通のタイムゾーンとデータ型に正規化します。空文字列はNULLに変換し、会社コード、勘定科目番号、伝票番号の先頭ゼロを保持します。
- 前提条件:必要なSAPコンポーネント、照合ツール、連結機能、ジョブログ、変更伝票の有効化、レポートまたはワークフローの監査ログが利用可能で、データが記録されていることを確認します。
- セキュリティとコンプライアンス:最小権限アクセスを適用し、財務データとユーザーデータを保護し、抽出目的を文書化して、組織のSAPおよびデータベース監査要件に従います。
a サンプルクエリ sql
WITH
params AS (
SELECT
TO_DATE('[Start date YYYY-MM-DD]') AS start_date,
TO_DATE('[End date YYYY-MM-DD]') AS end_date,
'[Fiscal year]' AS fiscal_year_filter,
'[Fiscal period]' AS fiscal_period_filter,
'[Company code filter]' AS company_code_filter
FROM DUMMY
),
base_events AS (
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0') AS FinancialPeriod,
'Accruals And Provisions Posted' AS ActivityName,
CAST(a.BUDAT AS TIMESTAMP) AS EventTime,
CAST(NULL AS TIMESTAMP) AS EndTime,
CAST(a.USNAM AS NVARCHAR(80)) AS ResponsibleUser,
CAST(a.RBUKRS AS NVARCHAR(20)) AS CompanyCode,
CAST(a.RACCT AS NVARCHAR(40)) AS GlAccountNumber,
CAST(a.BELNR AS NVARCHAR(40)) AS DocumentNumber,
CAST(NULL AS NVARCHAR(40)) AS ReconciliationStatus,
CAST(NULL AS DATE) AS TargetCompletionDate
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Accrual document type]', '[Provision document type]')
UNION ALL
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0'),
'Adjusting Journal Entry Posted',
CAST(a.BUDAT AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(a.USNAM AS NVARCHAR(80)),
CAST(a.RBUKRS AS NVARCHAR(20)),
CAST(a.RACCT AS NVARCHAR(40)),
CAST(a.BELNR AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Adjusting journal entry document type]')
UNION ALL
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0'),
'Foreign Currency Valuation Run',
CAST(a.BUDAT AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(a.USNAM AS NVARCHAR(80)),
CAST(a.RBUKRS AS NVARCHAR(20)),
CAST(a.RACCT AS NVARCHAR(40)),
CAST(a.BELNR AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Foreign currency valuation document type]')
UNION ALL
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0'),
'Automated Clearing Run Executed',
CAST(a.BUDAT AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(a.USNAM AS NVARCHAR(80)),
CAST(a.RBUKRS AS NVARCHAR(20)),
CAST(a.RACCT AS NVARCHAR(40)),
CAST(a.BELNR AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Automated clearing document type]')
UNION ALL
SELECT
CAST(j.[Financial period column] AS NVARCHAR(20)),
'Subledger Data Transfer Completed',
CAST(j.[Job end timestamp column] AS TIMESTAMP),
CAST(j.[Job end timestamp column] AS TIMESTAMP),
CAST(j.[Job user column] AS NVARCHAR(80)),
CAST(j.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(j.[Job name column] AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].TBTCO j
CROSS JOIN params p
WHERE j.[Job end timestamp column] >= p.start_date
AND j.[Job end timestamp column] < ADD_DAYS(p.end_date, 1)
AND j.[Job status column] = '[Successful job status]'
AND j.[Job name column] IN ('[AR transfer job]', '[AP transfer job]', '[Asset Accounting transfer job]')
UNION ALL
SELECT
CAST(j.[Financial period column] AS NVARCHAR(20)),
'Intercompany Reconciliation Started',
CAST(j.[Job start timestamp column] AS TIMESTAMP),
CAST(j.[Job end timestamp column] AS TIMESTAMP),
CAST(j.[Job user column] AS NVARCHAR(80)),
CAST(j.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(j.[Job name column] AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].TBTCO j
CROSS JOIN params p
WHERE j.[Job start timestamp column] >= p.start_date
AND j.[Job start timestamp column] < ADD_DAYS(p.end_date, 1)
AND j.[Job name column] IN ('[Intercompany reconciliation job]')
UNION ALL
SELECT
CAST(r.[Financial period column] AS NVARCHAR(20)),
'Intercompany Reconciliation Started',
CAST(r.[Status change timestamp column] AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(r.[Responsible user column] AS NVARCHAR(80)),
CAST(r.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(r.[Reconciliation case column] AS NVARCHAR(40)),
CAST(r.[Status column] AS NVARCHAR(40)),
CAST(r.[Target completion date column] AS DATE)
FROM [Your table name for intercompany reconciliation] r
CROSS JOIN params p
WHERE r.[Status change timestamp column] >= p.start_date
AND r.[Status change timestamp column] < ADD_DAYS(p.end_date, 1)
AND r.[Status column] IN ('Started', 'In Progress')
UNION ALL
SELECT
CAST(r.[Financial period column] AS NVARCHAR(20)),
'Account Reconciliation Started',
CAST(r.[Status change timestamp column] AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(r.[Responsible user column] AS NVARCHAR(80)),
CAST(r.[Company code column] AS NVARCHAR(20)),
CAST(r.[GL account column] AS NVARCHAR(40)),
CAST(r.[Reconciliation case column] AS NVARCHAR(40)),
CAST(r.[Status column] AS NVARCHAR(40)),
CAST(r.[Target completion date column] AS DATE)
FROM [Your table name for account reconciliation] r
CROSS JOIN params p
WHERE r.[Status change timestamp column] >= p.start_date
AND r.[Status change timestamp column] < ADD_DAYS(p.end_date, 1)
AND r.[Status column] IN ('In Progress')
UNION ALL
SELECT
CAST(r.[Financial period column] AS NVARCHAR(20)),
'Account Reconciliation Approved',
CAST(r.[Status change timestamp column] AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(r.[Approver user column] AS NVARCHAR(80)),
CAST(r.[Company code column] AS NVARCHAR(20)),
CAST(r.[GL account column] AS NVARCHAR(40)),
CAST(r.[Reconciliation case column] AS NVARCHAR(40)),
CAST(r.[Status column] AS NVARCHAR(40)),
CAST(r.[Target completion date column] AS DATE)
FROM [Your table name for account reconciliation] r
CROSS JOIN params p
WHERE r.[Status change timestamp column] >= p.start_date
AND r.[Status change timestamp column] < ADD_DAYS(p.end_date, 1)
AND r.[Status column] = 'Approved'
UNION ALL
SELECT
CAST(c.[Financial period column] AS NVARCHAR(20)),
'Consolidation Tasks Executed',
CAST(c.[Execution start timestamp column] AS TIMESTAMP),
CAST(c.[Execution end timestamp column] AS TIMESTAMP),
CAST(c.[Responsible user column] AS NVARCHAR(80)),
CAST(c.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(c.[Task identifier column] AS NVARCHAR(40)),
CAST(c.[Status column] AS NVARCHAR(40)),
CAST(c.[Target completion date column] AS DATE)
FROM [Your table name for consolidation execution] c
CROSS JOIN params p
WHERE c.[Execution start timestamp column] >= p.start_date
AND c.[Execution start timestamp column] < ADD_DAYS(p.end_date, 1)
AND c.[Status column] IN ('Completed', 'Successful')
UNION ALL
SELECT
CAST(t.[Financial period column] AS NVARCHAR(20)),
'Trial Balance Prepared',
CAST(t.[Report saved timestamp column] AS TIMESTAMP),
CAST(t.[Report saved timestamp column] AS TIMESTAMP),
CAST(t.[Responsible user column] AS NVARCHAR(80)),
CAST(t.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(t.[Report identifier column] AS NVARCHAR(40)),
CAST(t.[Status column] AS NVARCHAR(40)),
CAST(t.[Target completion date column] AS DATE)
FROM [Your table name for trial balance output] t
CROSS JOIN params p
WHERE t.[Report saved timestamp column] >= p.start_date
AND t.[Report saved timestamp column] < ADD_DAYS(p.end_date, 1)
AND t.[Status column] IN ('Saved', 'Completed')
UNION ALL
SELECT
CAST(f.[Financial period column] AS NVARCHAR(20)),
'Financial Statements Generated',
CAST(f.[Generation timestamp column] AS TIMESTAMP),
CAST(f.[Generation timestamp column] AS TIMESTAMP),
CAST(f.[Responsible user column] AS NVARCHAR(80)),
CAST(f.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(f.[Report identifier column] AS NVARCHAR(40)),
CAST(f.[Status column] AS NVARCHAR(40)),
CAST(f.[Target completion date column] AS DATE)
FROM [Your table name for financial statement output] f
CROSS JOIN params p
WHERE f.[Generation timestamp column] >= p.start_date
AND f.[Generation timestamp column] < ADD_DAYS(p.end_date, 1)
AND f.[Status column] IN ('Generated', 'Saved', 'Completed')
UNION ALL
SELECT
CAST(f.[Financial period column] AS NVARCHAR(20)),
'Financial Statements Approved',
CAST(f.[Approval timestamp column] AS TIMESTAMP),
CAST(f.[Approval timestamp column] AS TIMESTAMP),
CAST(f.[Approver user column] AS NVARCHAR(80)),
CAST(f.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(f.[Report identifier column] AS NVARCHAR(40)),
CAST(f.[Status column] AS NVARCHAR(40)),
CAST(f.[Target completion date column] AS DATE)
FROM [Your table name for financial statement approval] f
CROSS JOIN params p
WHERE f.[Approval timestamp column] >= p.start_date
AND f.[Approval timestamp column] < ADD_DAYS(p.end_date, 1)
AND f.[Status column] = 'Approved'
UNION ALL
SELECT
CAST(x.[Financial period column] AS NVARCHAR(20)),
'Period Opened For Posting',
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Changed by column] AS NVARCHAR(80)),
CAST(x.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(x.[Change document number column] AS NVARCHAR(40)),
CAST(x.[New status column] AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your table name for posting period changes] x
CROSS JOIN params p
WHERE x.[Change timestamp column] >= p.start_date
AND x.[Change timestamp column] < ADD_DAYS(p.end_date, 1)
AND x.[New status column] = 'Open'
UNION ALL
SELECT
CAST(x.[Financial period column] AS NVARCHAR(20)),
'Period Closed For Posting',
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Changed by column] AS NVARCHAR(80)),
CAST(x.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(x.[Change document number column] AS NVARCHAR(40)),
CAST(x.[New status column] AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your table name for posting period changes] x
CROSS JOIN params p
WHERE x.[Change timestamp column] >= p.start_date
AND x.[Change timestamp column] < ADD_DAYS(p.end_date, 1)
AND x.[New status column] = 'Closed'
),
activity_list AS (
SELECT 'Period Opened For Posting' AS ActivityName FROM DUMMY
UNION ALL SELECT 'Subledger Data Transfer Completed' FROM DUMMY
UNION ALL SELECT 'Intercompany Reconciliation Started' FROM DUMMY
UNION ALL SELECT 'Accruals And Provisions Posted' FROM DUMMY
UNION ALL SELECT 'Automated Clearing Run Executed' FROM DUMMY
UNION ALL SELECT 'Foreign Currency Valuation Run' FROM DUMMY
UNION ALL SELECT 'Account Reconciliation Started' FROM DUMMY
UNION ALL SELECT 'Adjusting Journal Entry Posted' FROM DUMMY
UNION ALL SELECT 'Account Reconciliation Approved' FROM DUMMY
UNION ALL SELECT 'Consolidation Tasks Executed' FROM DUMMY
UNION ALL SELECT 'Trial Balance Prepared' FROM DUMMY
UNION ALL SELECT 'Financial Statements Generated' FROM DUMMY
UNION ALL SELECT 'Financial Statements Approved' FROM DUMMY
UNION ALL SELECT 'Period Closed For Posting' FROM DUMMY
),
missing_activities AS (
SELECT
CAST(NULL AS NVARCHAR(20)) AS FinancialPeriod,
'Activity Coverage Validation' AS ActivityName,
CAST(NULL AS TIMESTAMP) AS EventTime,
CAST(NULL AS TIMESTAMP) AS EndTime,
CAST(NULL AS NVARCHAR(80)) AS ResponsibleUser,
CAST(NULL AS NVARCHAR(20)) AS CompanyCode,
CAST(NULL AS NVARCHAR(40)) AS GlAccountNumber,
CAST(NULL AS NVARCHAR(40)) AS DocumentNumber,
CAST('Missing activity: ' || al.ActivityName AS NVARCHAR(40)) AS ReconciliationStatus,
CAST(NULL AS DATE) AS TargetCompletionDate
FROM activity_list al
LEFT JOIN base_events b ON b.ActivityName = al.ActivityName
WHERE b.ActivityName IS NULL
)
SELECT
FinancialPeriod,
ActivityName,
EventTime,
EndTime,
ResponsibleUser,
CompanyCode,
GlAccountNumber,
DocumentNumber,
ReconciliationStatus,
TargetCompletionDate
FROM base_events
UNION ALL
SELECT
FinancialPeriod,
ActivityName,
EventTime,
EndTime,
ResponsibleUser,
CompanyCode,
GlAccountNumber,
DocumentNumber,
ReconciliationStatus,
TargetCompletionDate
FROM missing_activities
ORDER BY FinancialPeriod, EventTime, ActivityName 準備はできましたか?
このデータテンプレートを利用して、組織の業務効率とコンプライアンスを高めてください。今日から決算・レポーティングプロセスの変革を始められます。
決算・レポーティングの期間決算と照合を今すぐ最適化
非効率な箇所を見つけ出し、決算サイクルを最大30%短縮します。
クレジットカードは必要ありません。数分で始められます。