iDempiere パフォーマンスゴールの使い方|会計 操作マニュアル・技術仕様
📖 会計の全体像: 会計の全体図 も合わせてご覧ください。
パフォーマンスゴールは、KPI(売上高・受注件数など)の目標値を定義し、実績との達成率をダッシュボードに表示するためのウィンドウです。目標値とパフォーマンス測定(実績の取得方法)を組み合わせ、全社・ロール別・ユーザー別のゴールを設定できます。
📌 ポイント: ゴールは「誰の目標か(ロール/ユーザー)」「何を測るか(測定)」「いくつを目指すか(目標値)」の 3 点で構成されます。達成率(0〜1)は測定の実行時に自動計算され、ログイン ユーザーのダッシュボードにグラフ表示されます。
パフォーマンスゴールでできること
Section titled “パフォーマンスゴールでできること”- KPI 目標値(測定目標)の設定と達成率の自動計算
- 全社共通/ロール別/ユーザー別のゴール割り当て
- 測定スコープ(年・四半期・月・週・日)と表示単位の指定
- サマリゴール(子ゴールの加重集計)による階層管理
- 制限タブによる対象の絞り込み(組織・取引先・品目等)
- ダッシュボードのグラフ種類(Chart Type)とカラースキーマの指定
| タブ名 | テーブル | 項目数 | 役割 |
|---|---|---|---|
| ゴール | PA_Goal | 約22項目 | 目標値・対象者・スコープ・表示設定 |
| 制限 | PA_GoalRestriction | 約11項目 | 測定対象の絞り込み(組織・取引先・品目) |
基本操作手順
Section titled “基本操作手順”graph TD
A["🚀 メニューから開く<br/>会計管理 > パフォーマンス測定 > パフォーマンスゴール"] --> B["➕ 新規でゴールを定義<br/>(名称・シーケンスNo)"]
B --> C["🎯 測定と測定目標を設定<br/>(例: 月次売上 1,000万円)"]
C --> D{対象者}
D -->|全社共通| E["ロール・ユーザーを空のまま"]
D -->|ロール別| F["ロールを指定"]
D -->|個人別| G["ユーザーを指定"]
E --> H["📅 測定スコープを選択<br/>(年/四半期/月/週/日)"]
F --> H
G --> H
H --> I["💾 保存"]
I --> J["🔍 制限タブで対象を絞り込み<br/>(任意: 組織・取引先・品目)"]
J --> K["📊 ダッシュボードで<br/>達成率グラフを確認"]
アクセス方法
Section titled “アクセス方法”メニューから「会計管理 > パフォーマンス測定 > パフォーマンスゴール」を開きます。
- ツールバーの「新規」ボタンをクリック
- 基本情報を入力:
- 名称: ゴール名(例:
月次売上目標) - シーケンスNo: ダッシュボードの表示順
- 測定: 実績を取得するパフォーマンス測定を選択(サマリゴール以外は必須)
- 測定目標: 目標値(例:
10000000) - 測定スコープ: 集計期間の単位(年/四半期/月/週/日)
- カラースキーマ: 達成率に応じた表示色
- ロール/ユーザー: 対象者(空なら全体)
- 名称: ゴール名(例:
- 「保存」をクリック
- 必要に応じて「制限」タブで対象組織・取引先・品目を絞り込み
⚠️ 注意: 制限タブの絞り込みは、測定側(測定計算の取引先カラム・品目カラム等)が該当データを持つ場合のみ有効です。測定がサポートしないディメンションの制限は無視されます。
項目リファレンス
Section titled “項目リファレンス”ゴールタブ(主要項目)
Section titled “ゴールタブ(主要項目)”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 名称 | 必須 | 文字列 | ゴール名 |
| シーケンスNo | 必須 | 整数 | 表示順 |
| サマリレベル | 必須 | チェック | 子ゴールを集計する親ゴール |
| 親ゴール | - | 選択 | サマリゴール配下に置く場合に指定 |
| 測定 | 条件付必須 | 選択 | 実績の取得方法(サマリ以外は必須) |
| 測定目標 | 必須 | 数値 | 目標値 |
| 測定スコープ | 必須 | リスト | 集計期間単位(年/四半期/月/週/日) |
| 測定表示 | - | リスト | 初期表示する期間単位 |
| ロール/ユーザー | - | 選択 | ゴールの対象者 |
| カラースキーマ | 必須 | 選択 | 達成率の色分け(パフォーマンスカラースキーマ) |
| Chart Type | 必須 | リスト | グラフ種類(初期値: 棒グラフ) |
| 関連加重 | 必須 | 数値 | サマリ集計時の重み(0=集計対象外、初期値 1) |
| 実績測定/パフォーマンスゴール | 自動 | 数値 | 実績値/達成率(0〜1)。測定実行時に自動更新 |
| 開始日付/終了日付 | - | 日付 | 測定対象期間の制限 |
全項目の一覧は 画面リファレンス を参照してください。
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. 「測定」を空にして保存するとエラーになります。
Section titled “Q. 「測定」を空にして保存するとエラーになります。”サマリレベルでないゴールには測定が必須です(MGoal.beforeSave() の必須チェック)。逆にサマリレベルのゴールに測定を設定しても、保存時に自動でクリアされます。サマリゴールは子ゴールの加重平均で達成率が決まるため、自身の測定を持ちません。
Q. ユーザーを指定したのにロールが勝手に変わりました。
Section titled “Q. ユーザーを指定したのにロールが勝手に変わりました。”仕様です。MGoal.beforeSave() はユーザー指定時にそのユーザーが対象組織で持つロールを検証し、ロール未設定または不整合の場合は自動補正します(ロールが 1 つならそれを設定、複数なら先頭のロール)。ユーザーの実ロールと矛盾したゴール割当を防ぐための動作です。
Q. 実績値・達成率はいつ更新されますか?
Section titled “Q. 実績値・達成率はいつ更新されますか?”測定目標や測定スコープを変更して保存したとき(afterSave() の updateGoal(true))と、ダッシュボード表示や測定側の更新処理が走ったときに再計算されます。最新実行日(DateLastRun)で最後の計算時刻を確認できます。
Q. 関連加重(Relative Weight)は何に使いますか?
Section titled “Q. 関連加重(Relative Weight)は何に使いますか?”サマリゴールが子ゴールを集計する際の重み付けです。0 にするとそのゴールはサマリ集計から除外されます。
🛠 技術仕様(開発者向け)
パフォーマンスゴールは PA_Goal テーブル(MGoal クラス・609行)と PA_GoalRestriction テーブル(MGoalRestriction クラス・78行)で構成されます。MGoal はダッシュボードのパフォーマンスウィジェットの中核で、達成率計算・対象ユーザー解決・グラフ表示用データの提供を担います。Document 型ではありません。
アーキテクチャ概要
Section titled “アーキテクチャ概要”classDiagram
class MGoal {
+getUserGoals(ctx, AD_User_ID) MGoal[]
+getGoals(ctx) MGoal[]
+getMeasureGoals(ctx, PA_Measure_ID) MGoal[]
+getMultiplier(goal) BigDecimal
+getRestrictions(reload) MGoalRestriction[]
+getMeasure() MMeasure
+updateGoal(force) boolean
+setMeasureActual(actual)
+setGoalPerformance()
+getPercent() int
#beforeSave(newRecord) boolean
#afterSave(newRecord, success) boolean
}
class MGoalRestriction {
+制限タイプ別の対象ID保持
}
class MMeasure {
+updateGoals() boolean
}
MGoal --|> X_PA_Goal : generated
MGoalRestriction --|> X_PA_GoalRestriction : generated
MGoal --> MGoalRestriction : has many
MGoal --> MMeasure : measure
MMeasure --> MGoal : 実績を反映
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/MGoal.java / MGoalRestriction.java
関連DBテーブル
Section titled “関連DBテーブル”PA_Goal(ゴール)
Section titled “PA_Goal(ゴール)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| PA_Goal_ID | ID | PK | ゴールID | 主キー |
| Name | String(60) | Y | 名称 | |
| SeqNo | Integer | Y | 表示順 | |
| IsSummary | YesNo | Y | サマリレベル | Y なら PA_Measure_ID を強制クリア |
| PA_GoalParent_ID | Table | N | 親ゴール | 階層構造 |
| PA_Measure_ID | TableDirect | 条件付 | 測定FK | サマリ以外は必須(beforeSave検証) |
| MeasureTarget | Number | Y | 測定目標 | |
| MeasureActual | Number | Y | 実績測定 | 自動更新 |
| GoalPerformance | Number | Y | 達成率 | 0〜1、自動計算 |
| MeasureScope | List(1) | Y | 測定スコープ | 年/四半期/月/週/日 |
| MeasureDisplay | List(1) | N | 測定表示 | 初期表示単位 |
| AD_Role_ID / AD_User_ID | TableDirect / Search | N | 対象ロール/ユーザー | デフォルト -1、beforeSave で整合補正 |
| PA_ColorSchema_ID | TableDirect | Y | カラースキーマ | |
| ChartType | List(2) | Y | グラフ種類 | デフォルト BC(棒グラフ) |
| RelativeWeight | Number | Y | 関連加重 | デフォルト 1、0=集計除外 |
| DateFrom / DateTo | Date+Time | N | 対象期間 | |
| DateLastRun | Date+Time | N | 最新実行日 |
PA_GoalRestriction(ゴール制限)
Section titled “PA_GoalRestriction(ゴール制限)”| カラム名 | 型 | 必須 | 説明 |
|---|---|---|---|
| PA_Goal_ID | TableDirect | Y | ゴールFK |
| GoalRestrictionType | List(1) | Y | 制限タイプ(組織/取引先/取引先G/品目/品目カテゴリ) |
| Org_ID / C_BPartner_ID / C_BP_Group_ID / M_Product_ID / M_Product_Category_ID | Table 他 | N | 制限タイプに応じた対象 |
ビジネスロジック
Section titled “ビジネスロジック”MGoal.beforeSave():
- 測定必須チェック:
IsSummary=NかつPA_Measure_ID=0はエラー(FillMandatory)。IsSummary=YならPA_Measure_IDを 0 にリセット - ユーザー/ロール整合:
AD_User_ID指定時、当該ユーザーが対象組織で持つロールとAD_Role_IDを突合し、不整合なら自動補正(ロール 0 件→クリア、1 件→そのロール、複数→一致確認のうえ先頭)
MGoal.afterSave():
- 新規、または
MeasureTarget/MeasureScope変更時にupdateGoal(true)を実行し、測定経由で実績・達成率を再計算
達成率の算出:
setMeasureActual()→setGoalPerformance()でGoalPerformance = MeasureActual / MeasureTarget(0〜1)を設定。getPercent()はパーセント整数を返し、カラースキーマの色判定に使われます
拡張ポイント
Section titled “拡張ポイント”- Model Validator: ゴール作成の権限制御や目標値の承認フローは
PA_Goalへのバリデータで実装できます - 独自 KPI: 実績の取得ロジック自体を拡張する場合は、ゴールではなく測定側の計算クラス(
CalculationClass)を実装します - このテーブルに標準の callout はありません
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”KPI ダッシュボードの拡張(独自指標の追加、達成率の通知連携等)をコア改変なしで実装できます。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。