Skip to content

iDempiere パフォーマンス測定の使い方|会計 操作マニュアル・技術仕様

This content is not available in your language yet.

📖 会計の全体像: 会計の全体図 も合わせてご覧ください。

パフォーマンス測定は、KPI の実績値をどうやって取得するかを定義するウィンドウです。SQL 計算・手入力・達成タスク・比率・リクエスト件数など複数の測定タイプから選択でき、定義した測定をパフォーマンスゴールに紐づけることで達成率がダッシュボードに表示されます。

📌 ポイント: 測定タイプによって必須項目が変わります(計算→測定計算、比率→比率、ユーザー定義→計算クラス、リクエスト→リクエストタイプ、プロジェクト→プロジェクトタイプ)。まずタイプを決めてから対応する参照先を設定してください。

パフォーマンス測定でできること

Section titled “パフォーマンス測定でできること”
  • KPI 実績値の取得方法(測定タイプ)の定義
  • SQL ベースの自動集計(測定計算との連携)
  • マニュアル値の入力による手動 KPI 管理
  • 実績タブ(Achievement)によるタスク達成率の管理
  • 比率(PA_Ratio)・リクエスト件数・プロジェクト集計による測定
  • Java 計算クラスによる独自ロジックの組み込み
タブ名テーブル項目数役割
測定PA_Measure約16項目測定タイプと取得方法の定義
パフォーマンス実績PA_Achievement約11項目達成タスクの一覧(測定タイプ=実績用)
graph TD
    A["🚀 メニューから開く<br/>会計管理 > パフォーマンス測定 > パフォーマンス測定"] --> B["➕ 新規で名称を入力"]
    B --> C{測定タイプ}
    C -->|計算| D["🧮 測定計算を選択<br/>(SQL 定義を参照)"]
    C -->|マニュアル| E["✍️ マニュアル実績に<br/>実績値を直接入力"]
    C -->|実績| F["✅ パフォーマンス実績タブで<br/>達成タスクを登録"]
    C -->|比率 / リクエスト / プロジェクト| G["🔗 比率・リクエストタイプ・<br/>プロジェクトタイプを選択"]
    D --> H["💾 保存"]
    E --> H
    F --> H
    G --> H
    H --> I["🎯 パフォーマンスゴールに紐づけ<br/>→ ダッシュボードに表示"]

メニューから開く 会計管理 > パフォーマンス測定 > パフォーマンス測定 新規で名称を入力 測定計算を選択 (SQL 定義を参照) マニュアル実績に 実績値を直接入力 パフォーマンス実績タブで 達成タスクを登録 比率・リクエストタイプ・ プロジェクトタイプを選択 保存 パフォーマンスゴールに紐づけ → ダッシュボードに表示 測定タイプ 計算 マニュアル 実績 比率 / リクエスト / プロジェクト

メニューから「会計管理 > パフォーマンス測定 > パフォーマンス測定」を開きます。

  1. ツールバーの「新規」ボタンをクリック
  2. 基本情報を入力:
    • 名称: 測定名(例: 月次受注金額
    • 測定データタイプ: 時系列(Time)/状態(Status)
    • 測定タイプ: 取得方法を選択(下表参照)
  3. 測定タイプに応じた参照先を設定
  4. 保存」をクリック
測定タイプ必須設定実績値の取得方法
計算(Calculated)測定計算測定計算の SQL を実行して自動集計
マニュアル(Manual)マニュアル実績この画面で入力した値をそのまま使用
実績(Achievements)パフォーマンス実績タブ達成済みタスクの割合・合計
比率(Ratio)比率(PA_Ratio)会計実績ベースの比率計算
リクエスト(Request)リクエストタイプ該当タイプのリクエスト件数
プロジェクト(Project)プロジェクトタイプ該当タイプのプロジェクト集計
ユーザー定義(User defined)計算クラスJava クラス(Measure 実装)を実行

パフォーマンス実績(Achievement)の登録

Section titled “パフォーマンス実績(Achievement)の登録”
  1. 測定タイプ「実績」の測定を保存
  2. パフォーマンス実績」タブに移動
  3. タスクごとにレコードを作成:
    • 名称/シーケンスNo: タスク名と順序
    • マニュアル実績: このタスクの実績値
    • 完成(Achieved): 達成したらチェック
  4. 達成チェックを付けて保存すると、ゴールの実績値に反映されます
項目名必須説明
名称必須文字列測定の名称
測定データタイプ必須リスト時系列(初期値)/状態
測定タイプ必須リスト取得方法(初期値: マニュアル)
測定計算条件付必須選択タイプ=計算 の場合に必須
比率条件付必須選択タイプ=比率 の場合に必須
計算クラス条件付必須文字列タイプ=ユーザー定義 の場合に必須
リクエストタイプ条件付必須選択タイプ=リクエスト の場合に必須
プロジェクトタイプ条件付必須選択タイプ=プロジェクト の場合に必須
マニュアル実績/メモ-数値/テキストタイプ=マニュアル の実績値
ベンチマーク-選択外部指標との比較用
レポート階層-選択集計に使う組織・科目ツリーの指定

全項目の一覧は 画面リファレンス を参照してください。

Q. 保存時に「必須項目を入力してください」と言われます。

Section titled “Q. 保存時に「必須項目を入力してください」と言われます。”

測定タイプごとの条件付き必須チェック(MMeasure.beforeSave())です。計算→測定計算、比率→比率、ユーザー定義→計算クラス、リクエスト→リクエストタイプ、プロジェクト→プロジェクトタイプ、がそれぞれ未設定だと保存できません。

Q. マニュアル実績を更新したのにゴールに反映されません。

Section titled “Q. マニュアル実績を更新したのにゴールに反映されません。”

測定タイプが「マニュアル」の場合は保存時に afterSave() が関連ゴールを自動更新します(updateManualGoals())。反映されない場合は、ゴール側がこの測定を参照しているか、ゴールの期間(測定スコープ・開始/終了日付)内かを確認してください。

Q. 実績(Achievement)タブの「完成」をチェックすると値が変わりました。

Section titled “Q. 実績(Achievement)タブの「完成」をチェックすると値が変わりました。”

仕様です。MAchievement.beforeSave() は達成チェック時にマニュアル実績が 0 なら 1 を、伝票日付が空なら当日をセットします。達成タスクは保存のたびに updateAchievementGoals() でゴールへ集計されます。

Q. SQL でも標準タイプでも表現できない KPI はどうしますか?

Section titled “Q. SQL でも標準タイプでも表現できない KPI はどうしますか?”

測定タイプ「ユーザー定義」で計算クラス(Measure インターフェースを実装した Java クラス)を指定します。OSGi プラグインとしてデプロイすれば、外部 API 参照など任意のロジックで実績値を返せます。

🛠 技術仕様(開発者向け)

パフォーマンス測定は PA_Measure テーブル(MMeasure クラス・759行)と PA_Achievement テーブル(MAchievement クラス・155行)で構成されます。MMeasure は測定タイプごとの実績集計とゴールへの反映(updateGoals())を担い、ImmutablePOSupport パターンのキャッシュ参照を持ちます。Document 型ではありません。

classDiagram
    class MMeasure {
        +get(PA_Measure_ID) MMeasure
        +getGraphColumnList(goal) ArrayList~GraphColumn~
        +updateGoals() boolean
        #beforeSave(newRecord) boolean
        #afterSave(newRecord, success) boolean
        +markImmutable() MMeasure
    }
    class MAchievement {
        +get(measure) MAchievement[]
        +getOfMeasure(ctx, PA_Measure_ID) MAchievement[]
        #beforeSave(newRecord) boolean
        #afterSave(newRecord, success) boolean
    }
    class MMeasureCalc {
        +getSqlPI(...) String
    }
    class MGoal {
        +setMeasureActual(actual)
    }
    MMeasure --|> X_PA_Measure : generated
    MAchievement --|> X_PA_Achievement : generated
    MMeasure --> MAchievement : has many
    MMeasure --> MMeasureCalc : MeasureType=C
    MMeasure --> MGoal : updateGoals

+get(PA_Measure_ID) MMeasure +getGraphColumnList(goal) ArrayList~GraphColumn~ +updateGoals() boolean #beforeSave(newRecord) boolean #afterSave(newRecord, success) boolean +markImmutable() MMeasure +get(measure) MAchievement[] +getOfMeasure(ctx, PA_Measure_ID) MAchievement[] #beforeSave(newRecord) boolean #afterSave(newRecord, success) boolean +getSqlPI(...) String +setMeasureActual(actual) > X_PA_Measure : generated MAchievement --

パッケージ: org.compiere.model ソースファイル: org.adempiere.base/src/org/compiere/model/MMeasure.java / MAchievement.java

カラム名必須説明備考
PA_Measure_IDIDPK測定ID主キー
NameString(60)Y名称
MeasureDataTypeList(1)Yデータタイプデフォルト T(時系列)
MeasureTypeList(1)Y測定タイプデフォルト M(マニュアル)
PA_MeasureCalc_IDTableDirect条件付測定計算FKタイプ=計算で必須
PA_Ratio_IDTableDirect条件付比率FKタイプ=比率で必須
CalculationClassString(60)条件付計算クラスタイプ=ユーザー定義で必須
R_RequestType_IDTableDirect条件付リクエストタイプFKタイプ=リクエストで必須
C_ProjectType_IDTableDirect条件付プロジェクトタイプFKタイプ=プロジェクトで必須
ManualActual / ManualNoteNumber / TextNマニュアル実績/メモタイプ=マニュアル用
PA_Benchmark_IDTableDirectNベンチマークFK
PA_Hierarchy_IDTableDirectNレポート階層FK

PA_Achievement(パフォーマンス実績)

Section titled “PA_Achievement(パフォーマンス実績)”
カラム名必須説明備考
PA_Measure_IDTableDirectY測定FK
Name / SeqNoString / IntegerYタスク名/順序
IsAchievedYesNoY完成
ManualActualNumberY実績値達成時 0 なら 1 に自動補正
DateDocDateN伝票日付達成時に未設定なら当日を自動セット
NoteText(2000)Nメモ

MMeasure.beforeSave() — 測定タイプ別の条件付き必須検証:

MeasureType必須カラム
CalculatedPA_MeasureCalc_ID
RatioPA_Ratio_ID
UserDefinedCalculationClass
RequestR_RequestType_ID
ProjectC_ProjectType_ID

MMeasure.afterSave() — タイプ=マニュアルの場合、updateManualGoals() で関連ゴールの実績値を即時更新。

MMeasure.updateGoals() — 全タイプ共通のゴール反映処理。タイプに応じて測定計算 SQL の実行・実績集計・件数集計を行い、MGoal.setMeasureActual() を呼び出します。getGraphColumnList(goal) はダッシュボードのグラフ描画用データを返します。

MAchievement.beforeSave()IsAchieved=Y のとき ManualActual=0 なら 1 を、DateDoc 未設定なら現在時刻をセット。afterSave() / afterDelete()updateAchievementGoals() を実行し、ゴールへ再集計します。

  • 計算クラス(Measure インターフェース): MeasureType=UserDefined で任意の Java ロジックを組み込む標準拡張ポイントです。OSGi プラグインでクラスを提供し、CalculationClass に FQCN を設定します
  • Model Validator: 測定定義の変更統制(本番 KPI の定義変更を管理者に限定する等)は PA_Measure へのバリデータで実装できます
  • このテーブルに標準の callout はありません

Measure 計算クラスによる独自 KPI の追加や、外部 BI ツールとの実績連携をコア改変なしで実装できます。

As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。

OSS ERP導入・カスタマイズサービスの詳細はこちら