Skip to content

iDempiere プロジェクトサイクルの使い方|プロジェクト管理 操作マニュアル・技術仕様

This content is not available in your language yet.

📖 プロジェクト管理の全体像: プロジェクト管理の全体図 も合わせてご覧ください。

プロジェクトサイクルは、プロジェクトの進行段階を「ステップ」として共通化し、異なるプロジェクトタイプの標準フェーズを同じ物差しで横断レポートするための設定マスタです。例えば営業案件サイクル(見込み〜契約)とサービスサイクル(導入〜検収)のように、目的別に複数のサイクルを定義できます。

📌 ポイント: サイクルステップは「異なるプロジェクトタイプの類似フェーズをまとめる共通単位」です。プロジェクトタイプごとにフェーズ名が違っても、同じサイクルステップに紐付ければ比較・集計が可能になります。

プロジェクトサイクルでできること

Section titled “プロジェクトサイクルでできること”
  • プロジェクトのレポート単位(サイクル)の定義
  • レポート通貨の指定(プロジェクト自体は別通貨でも可)
  • サイクルステップによる進行段階の順序付け(シーケンスNo)
  • ステップごとの関連加重(RelativeWeight)の設定
  • 複数プロジェクトタイプの標準フェーズをステップへ紐付けて横断比較

プロジェクトサイクルは 3 階層のタブ構成です。

タブ名テーブル項目数役割
プロジェクトサイクルC_Cycle約5項目サイクルの定義とレポート通貨
ステップC_CycleStep約6項目進行段階の順序と加重
サイクルフェーズC_CyclePhase約4項目ステップとプロジェクトタイプの標準フェーズの紐付け
graph TD
    A["🚀 メニューから開く<br/>プロジェクト管理 > プロジェクトサイクル"] --> B["➕ 新規でサイクルを登録<br/>(名称・レポート通貨)"]
    B --> C["📶 ステップタブで<br/>進行段階を順に登録<br/>(シーケンスNo・関連加重)"]
    C --> D["🔗 サイクルフェーズタブで<br/>各ステップに<br/>標準フェーズを紐付け"]
    D --> E["💾 保存<br/>→ プロジェクト横断レポートの<br/>集計軸として利用可能に"]

メニューから開く プロジェクト管理 > プロジェクトサイクル 新規でサイクルを登録 (名称・レポート通貨) ステップタブで 進行段階を順に登録 (シーケンスNo・関連加重) サイクルフェーズタブで 各ステップに 標準フェーズを紐付け 保存 → プロジェクト横断レポートの 集計軸として利用可能に

メニューから「プロジェクト管理 > プロジェクトサイクル」を開きます。

  1. ツールバーの「新規」ボタンをクリック
  2. 基本情報を入力:
    • 名称: サイクル名(例: 営業案件サイクル
    • 通貨: レポートで金額を集計する通貨
  3. 保存」をクリック
  4. ステップ」タブでサイクルステップを登録:
    • シーケンスNo: 進行順序(自動で 10, 20, 30… と採番)
    • 名称: ステップ名(例: 見込み提案契約
    • 関連加重: ステップの重み(デフォルト 1、0 にすると集計から無視)
  5. サイクルフェーズ」タブで、各ステップに対応するプロジェクトタイプの標準フェーズを紐付け

💡 ヒント: 事前に プロジェクトタイプ で標準フェーズを登録しておく必要があります。サイクルフェーズタブは「ステップ 1 件に対して複数タイプのフェーズを紐付ける」多対多のリンクです。

項目名必須説明
名称必須文字列(60)サイクル名
説明-文字列(255)補足説明
通貨必須選択レポート集計通貨
有効必須チェック有効フラグ
項目名必須説明
プロジェクトサイクル必須選択親サイクル
シーケンスNo必須整数進行順序(自動採番: MAX+10)
名称必須文字列(60)ステップ名
関連加重必須数量ステップの相対重み(0 = 無視、デフォルト 1)
項目名必須説明
サイクルステップ必須選択親ステップ
標準フェーズ必須選択紐付けるプロジェクトタイプの標準フェーズ

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

Q. 通貨はなぜ必須ですか? プロジェクトと違う通貨でもよいですか?

Section titled “Q. 通貨はなぜ必須ですか? プロジェクトと違う通貨でもよいですか?”

サイクルの通貨は「レポートを集計する通貨」です。AD の説明文にも「プロジェクト自体は別通貨でもよい」と明記されており、多通貨プロジェクトを 1 つの通貨に換算して横断比較するために必須になっています。

Q. 関連加重(RelativeWeight)を 0 にするとどうなりますか?

Section titled “Q. 関連加重(RelativeWeight)を 0 にするとどうなりますか?”

カラム定義(RelativeWeight: Relative weight of this step (0 = ignored))のとおり、0 のステップは集計上無視されます。参考情報として登録しつつレポートに含めたくないステップに使用します。

Q. サイクルフェーズに登録できるフェーズが表示されません

Section titled “Q. サイクルフェーズに登録できるフェーズが表示されません”

サイクルフェーズタブで選択できるのは プロジェクトタイプ の「標準フェーズ」(C_Phase)です。先にプロジェクトタイプ側で標準フェーズを登録してください。

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

プロジェクトサイクルはマスタデータ型ウィンドウ(AD_Window_ID: 208)で、C_CycleC_CycleStepC_CyclePhase の 3 テーブルで構成されます。3 テーブルとも M クラス(ビジネスロジッククラス)は存在せず、生成クラス X_C_Cycle / X_C_CycleStep / X_C_CyclePhase のみで、独自の保存時ロジックや Callout はありません(iDempiere 13 ソース実測)。

classDiagram
    class X_C_Cycle {
        <<generated>>
    }
    class X_C_CycleStep {
        <<generated>>
    }
    class X_C_CyclePhase {
        <<generated>>
    }
    class PO {
        <<abstract>>
    }
    X_C_Cycle --|> PO
    X_C_CycleStep --|> PO
    X_C_CyclePhase --|> PO
    X_C_Cycle --> X_C_CycleStep : has many
    X_C_CycleStep --> X_C_CyclePhase : has many

<> <> > PO X_C_CycleStep --

パッケージ: org.compiere.model ソースファイル: org.adempiere.base/src/org/compiere/model/X_C_Cycle.java / X_C_CycleStep.java / X_C_CyclePhase.java(いずれも生成クラス)

C_Cycle(プロジェクトサイクル)

Section titled “C_Cycle(プロジェクトサイクル)”
カラム名必須説明備考
C_Cycle_IDIDPKサイクルID主キー
AD_Client_ID / AD_Org_IDTableDirectYクライアント / 組織
NameString(60)Y名称識別子
DescriptionString(255)N説明
C_Currency_IDTableDirectYレポート通貨
IsActiveYesNoY有効デフォルト Y
カラム名必須説明備考
C_CycleStep_IDIDPKステップID主キー
C_Cycle_IDTableDirectY親サイクル親リンク
SeqNoIntegerY順序デフォルト @SQL=MAX(SeqNo)+10
NameString(60)Yステップ名
RelativeWeightQuantityY関連加重デフォルト 1、0 = 無視

C_CyclePhase(サイクルフェーズ)

Section titled “C_CyclePhase(サイクルフェーズ)”
カラム名必須説明備考
C_CycleStep_IDTableDirectY親ステップ親リンク
C_Phase_IDTableDirectY標準フェーズ親リンク(複合キー相当)
erDiagram
    C_Cycle ||--o{ C_CycleStep : "steps"
    C_CycleStep ||--o{ C_CyclePhase : "phase links"
    C_CyclePhase }o--|| C_Phase : "standard phase"
    C_Phase }o--|| C_ProjectType : "belongs to"
    C_Cycle }o--|| C_Currency : "report currency"

phase links standard phase belongs to report currency

M クラスが存在しないため、保存時の独自バリデーション・自動計算はありません。SeqNo の自動採番(MAX+10)は AD の SQL デフォルト値、親子リンクは AD の親カラム定義(IsParent=Y)で実現されています。

拡張ポイント(カスタマイズ箇所)

Section titled “拡張ポイント(カスタマイズ箇所)”

M クラスが無いテーブルでも、Model Validator はテーブル名ベースで動作するため通常どおり拡張できます:

public class CycleValidator implements ModelValidator {
@Override
public int modelChange(PO po, int type) throws Exception {
if (po.get_TableName().equals("C_CycleStep")
&& (type == TYPE_BEFORE_NEW || type == TYPE_BEFORE_CHANGE)) {
// 例: 関連加重の負数を禁止
BigDecimal weight = (BigDecimal) po.get_Value("RelativeWeight");
if (weight != null && weight.signum() < 0)
throw new AdempiereException("関連加重には負数を設定できません");
}
return null;
}
}

このテーブル群に標準の Callout は登録されていません(gw_column.tsv 実測)。

本ウィンドウ固有のプロセスはありません。


プロジェクトサイクルを使った横断レポートは、御社のプロジェクト運用に合わせたステップ設計・帳票カスタマイズと組み合わせることで効果を発揮します。

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

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