iDempiere レポートキューブの使い方|会計 操作マニュアル・技術仕様
This content is not available in your language yet.
📖 会計の全体像: 会計の全体図 も合わせてご覧ください。
レポートキューブは、会計仕訳の明細(Fact_Acct)を会計期間×選択したディメンション(品目・取引先・プロジェクト等)で事前集計しておくための設定マスタです。集計結果はサマリーテーブル(Fact_Acct_Summary)に格納され、財務レポートの実行時に明細を都度集計する代わりに参照されるため、大量データ環境でのレポート実行が大幅に高速化されます。
📌 ポイント: レポートキューブは「作れば自動で速くなる」ものではなく、集計データの再計算(更新)が必要です。前回再計算日時(Last Recalculated)以降に転記があった期間だけを差分更新する仕組みが組み込まれています。
レポートキューブでできること
Section titled “レポートキューブでできること”- 会計ファクトの期間別サマリーの事前計算(Fact_Acct_Summary への格納)
- 集計に含めるディメンションの選択(品目・取引先・販売地域・プロジェクト・キャンペーン等 17 種類のフラグ)
- 会計カレンダー単位での集計期間の指定
- 前回再計算以降に変更のあった期間のみの差分再計算
- 財務レポート実行時の集計済みデータ参照による高速化
レポートキューブは 1 タブのシンプルな構成です。
| タブ名 | テーブル | 項目数 | 役割 |
|---|---|---|---|
| Report Cube | PA_ReportCube | 約24項目 | キューブ名・カレンダー・ディメンションフラグ・最終再計算日時 |
基本操作手順
Section titled “基本操作手順”graph TD
A["🚀 メニューから開く<br/>会計管理 > 会計レポート > レポートキューブ"] --> B["➕ 新規で名称・カレンダーを入力"]
B --> C["📐 集計に含めるディメンションを<br/>チェックで選択<br/>(品目・取引先・プロジェクト等)"]
C --> D["💾 保存"]
D --> E["🔄 キューブの再計算を実行<br/>(Fact_Acct_Summary へ集計)"]
E --> F["📊 財務レポートで<br/>キューブ集計を利用"]
⚠️ 注意: ディメンションのチェックを後から変更した場合、既存の集計データと設定が不整合になります。設定変更後は必ずキューブ全体の再計算を実施してください。
アクセス方法
Section titled “アクセス方法”メニューから「会計管理 > 会計レポート > レポートキューブ」を開きます。
- ツールバーの「新規」ボタンをクリック
- 基本情報を入力:
- 名称: キューブ名(例:
月次集計キューブ) - カレンダー: 集計の基準となる会計カレンダー
- 名称: キューブ名(例:
- ディメンションを選択:
- 集計軸として保持したいディメンションのみチェック(例: Product Dimension、Business Partner Dimension)
- チェックしたディメンションが多いほどサマリー行数が増え、事前計算の効果が薄れます
- 「保存」をクリック
項目リファレンス
Section titled “項目リファレンス”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 名称 | 必須 | 文字列 | キューブの名称 |
| 説明 | - | テキスト | 補足説明 |
| カレンダー | 必須 | 選択 | 集計期間の基準となる会計カレンダー |
| Product Dimension | - | チェック | 品目をキューブのディメンションに含める |
| Business Partner Dimension | - | チェック | 取引先をディメンションに含める |
| 販売地域ディメンション | - | チェック | 販売地域をディメンションに含める |
| Project Dimension | - | チェック | プロジェクトをディメンションに含める |
| Campaign Dimension | - | チェック | キャンペーンをディメンションに含める |
| Activity Dimension | - | チェック | 活動をディメンションに含める |
| GL Budget Dimension | - | チェック | GL予算をディメンションに含める |
| OrgTrx Dimension | - | チェック | 取引組織をディメンションに含める |
| Sub Acct Dimension | - | チェック | 補助勘定をディメンションに含める |
| Last Recalculated | 自動 | 日時 | 最後に再計算した日時(差分更新の基準) |
全項目(ユーザー要素・場所ディメンション等を含む 17 種類のフラグ)は 全項目一覧はリファレンス参照 をご覧ください。
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. キューブの再計算はどのように動作しますか?
Section titled “Q. キューブの再計算はどのように動作しますか?”前回再計算日時(Last Recalculated)が記録されている場合、それ以降に会計ファクトの変更があった期間だけを対象に、サマリーテーブルの該当期間データを削除してから再集計・挿入します(差分更新)。変更のあった期間がなければ「Nothing to update」で終了します。リセット指定時はキューブ全体を再計算します。
Q. 再計算が「Unable to lock cube for update」エラーになります
Section titled “Q. 再計算が「Unable to lock cube for update」エラーになります”キューブの再計算中は Processing フラグを Y に更新して排他ロックを取得します。既に別の再計算が実行中(Processing='Y' のまま)の場合はロックが取得できずエラーになります。実行中の処理完了を待つか、異常終了で Processing='Y' が残留していないかを確認してください。
Q. どのレポートでキューブが使われますか?
Section titled “Q. どのレポートでキューブが使われますか?”財務レポート(FinReport)がレポートキューブに対応しています。レポート実行時にキューブを指定すると、明細(Fact_Acct)ではなく事前集計済みの Fact_Acct_Summary を参照します。詳細は 財務諸表・会計レポート を参照してください。
Q. ディメンションはすべてチェックした方がよいですか?
Section titled “Q. ディメンションはすべてチェックした方がよいですか?”いいえ。チェックしたディメンションの組み合わせごとにサマリー行が生成されるため、ディメンションが多いほど集計行数が増え、事前計算のメリットが減ります。実際にレポートの集計軸として使うディメンションのみを選択してください。
🛠 技術仕様(開発者向け)
レポートキューブは PA_ReportCube テーブル(アクセスレベル: Client+Org)に格納される設定マスタで、MReportCube クラス(257行)が Fact_Acct_Summary の再集計ロジックを担います。Document 型ではありません(DocAction なし)。
アーキテクチャ概要
Section titled “アーキテクチャ概要”classDiagram
class MReportCube {
+update(boolean reset, boolean force) String
+getChangedPeriodKeyNamePairs() KeyNamePair[]
}
class X_PA_ReportCube {
<<generated>>
}
class PO {
<<abstract>>
}
MReportCube --|> X_PA_ReportCube
X_PA_ReportCube --|> PO
MReportCube ..> Fact_Acct_Summary : DELETE + INSERT
FinReport ..> MReportCube : uses summary
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/MReportCube.java
関連DBテーブル
Section titled “関連DBテーブル”PA_ReportCube(レポートキューブ)
Section titled “PA_ReportCube(レポートキューブ)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| PA_ReportCube_ID | ID | PK | レポートキューブID | 主キー |
| AD_Client_ID | TableDirect | Y | クライアント | |
| AD_Org_ID | TableDirect | Y | 組織 | |
| Name | String(60) | Y | 名称 | 識別子 |
| Description | Text(255) | N | 説明 | |
| C_Calendar_ID | TableDirect | Y | 会計カレンダー | 集計期間の基準 |
| IsProductDim ほか計17フラグ | YesNo | N | ディメンションフラグ | 品目/取引先/販売地域/OrgTrx/活動/キャンペーン/プロジェクト(+フェーズ/タスク)/GL予算/場所From・To/補助勘定/ユーザー要素1・2/ユーザーカラム1・2 |
| LastRecalculated | Date+Time | N | 最終再計算日時 | 差分更新の基準 |
| Processing | YesNo | Y | 処理中フラグ | 再計算の排他ロック。default N |
ビジネスロジック
Section titled “ビジネスロジック”update(boolean reset, boolean force)
Section titled “update(boolean reset, boolean force)”MReportCube.update() が Fact_Acct_Summary 再集計の本体です:
- 差分期間の特定:
LastRecalculatedがありreset=falseの場合、getChangedPeriodKeyNamePairs()で前回再計算以降に変更のあった会計期間のみを抽出。変更期間がなければNothing to updateで終了 - 排他ロック:
force=falseの場合、UPDATE PA_ReportCube SET Processing='Y' WHERE Processing='N'でロック取得。取得できなければAdempiereException(Unable to lock cube for update) - 削除:
DELETE FROM Fact_Acct_Summaryを対象キューブ(差分更新時は対象期間)に対して実行 - 挿入:
INSERT INTO Fact_Acct_Summary ... SELECTで Fact_Acct を期間・会計スキーマ・勘定科目・転記タイプ・GL予算(+選択ディメンション)でグループ化し、SUM(AmtAcctDr)/SUM(AmtAcctCr)/SUM(Qty)を集計して格納
拡張ポイント
Section titled “拡張ポイント”PA_ReportCube 自体に callout はありません。一般的な拡張手段:
- Model Validator:
PA_ReportCubeの保存前後に独自チェックを追加(例: 命名規則、ディメンション数の上限) - カスタムプロセス:
MReportCube.update(reset, force)を呼び出す独自のスケジュール再計算プロセスを OSGi プラグインとして実装可能(夜間バッチでの全キューブ更新等)
関連プロセス
Section titled “関連プロセス”| プロセス名 | 説明 |
|---|---|
| キューブ再計算(Recalculate Cube) | Fact_Acct_Summary を再集計(内部で MReportCube.update() を実行) |
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”レポートキューブの再計算スケジューリングや独自集計軸の追加は、OSGi プラグインでコア改変なしに実現できます。大量仕訳環境での財務レポート高速化もご相談ください。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。