iDempiere プロジェクトサイクルの使い方|プロジェクト管理 操作マニュアル・技術仕様
This content is not available in your language yet.
📖 プロジェクト管理の全体像: プロジェクト管理の全体図 も合わせてご覧ください。
プロジェクトサイクルは、プロジェクトの進行段階を「ステップ」として共通化し、異なるプロジェクトタイプの標準フェーズを同じ物差しで横断レポートするための設定マスタです。例えば営業案件サイクル(見込み〜契約)とサービスサイクル(導入〜検収)のように、目的別に複数のサイクルを定義できます。
📌 ポイント: サイクルステップは「異なるプロジェクトタイプの類似フェーズをまとめる共通単位」です。プロジェクトタイプごとにフェーズ名が違っても、同じサイクルステップに紐付ければ比較・集計が可能になります。
プロジェクトサイクルでできること
Section titled “プロジェクトサイクルでできること”- プロジェクトのレポート単位(サイクル)の定義
- レポート通貨の指定(プロジェクト自体は別通貨でも可)
- サイクルステップによる進行段階の順序付け(シーケンスNo)
- ステップごとの関連加重(RelativeWeight)の設定
- 複数プロジェクトタイプの標準フェーズをステップへ紐付けて横断比較
プロジェクトサイクルは 3 階層のタブ構成です。
| タブ名 | テーブル | 項目数 | 役割 |
|---|---|---|---|
| プロジェクトサイクル | C_Cycle | 約5項目 | サイクルの定義とレポート通貨 |
| ステップ | C_CycleStep | 約6項目 | 進行段階の順序と加重 |
| サイクルフェーズ | C_CyclePhase | 約4項目 | ステップとプロジェクトタイプの標準フェーズの紐付け |
基本操作手順
Section titled “基本操作手順”graph TD
A["🚀 メニューから開く<br/>プロジェクト管理 > プロジェクトサイクル"] --> B["➕ 新規でサイクルを登録<br/>(名称・レポート通貨)"]
B --> C["📶 ステップタブで<br/>進行段階を順に登録<br/>(シーケンスNo・関連加重)"]
C --> D["🔗 サイクルフェーズタブで<br/>各ステップに<br/>標準フェーズを紐付け"]
D --> E["💾 保存<br/>→ プロジェクト横断レポートの<br/>集計軸として利用可能に"]
アクセス方法
Section titled “アクセス方法”メニューから「プロジェクト管理 > プロジェクトサイクル」を開きます。
- ツールバーの「新規」ボタンをクリック
- 基本情報を入力:
- 名称: サイクル名(例:
営業案件サイクル) - 通貨: レポートで金額を集計する通貨
- 名称: サイクル名(例:
- 「保存」をクリック
- 「ステップ」タブでサイクルステップを登録:
- シーケンスNo: 進行順序(自動で 10, 20, 30… と採番)
- 名称: ステップ名(例:
見込み、提案、契約) - 関連加重: ステップの重み(デフォルト 1、
0にすると集計から無視)
- 「サイクルフェーズ」タブで、各ステップに対応するプロジェクトタイプの標準フェーズを紐付け
💡 ヒント: 事前に プロジェクトタイプ で標準フェーズを登録しておく必要があります。サイクルフェーズタブは「ステップ 1 件に対して複数タイプのフェーズを紐付ける」多対多のリンクです。
項目リファレンス
Section titled “項目リファレンス”プロジェクトサイクルタブ
Section titled “プロジェクトサイクルタブ”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 名称 | 必須 | 文字列(60) | サイクル名 |
| 説明 | - | 文字列(255) | 補足説明 |
| 通貨 | 必須 | 選択 | レポート集計通貨 |
| 有効 | 必須 | チェック | 有効フラグ |
ステップタブ
Section titled “ステップタブ”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| プロジェクトサイクル | 必須 | 選択 | 親サイクル |
| シーケンスNo | 必須 | 整数 | 進行順序(自動採番: MAX+10) |
| 名称 | 必須 | 文字列(60) | ステップ名 |
| 関連加重 | 必須 | 数量 | ステップの相対重み(0 = 無視、デフォルト 1) |
サイクルフェーズタブ
Section titled “サイクルフェーズタブ”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| サイクルステップ | 必須 | 選択 | 親ステップ |
| 標準フェーズ | 必須 | 選択 | 紐付けるプロジェクトタイプの標準フェーズ |
全項目は 画面リファレンス を参照してください。
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”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_Cycle・C_CycleStep・C_CyclePhase の 3 テーブルで構成されます。3 テーブルとも M クラス(ビジネスロジッククラス)は存在せず、生成クラス X_C_Cycle / X_C_CycleStep / X_C_CyclePhase のみで、独自の保存時ロジックや Callout はありません(iDempiere 13 ソース実測)。
アーキテクチャ概要
Section titled “アーキテクチャ概要”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
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/X_C_Cycle.java / X_C_CycleStep.java / X_C_CyclePhase.java(いずれも生成クラス)
関連DBテーブル
Section titled “関連DBテーブル”C_Cycle(プロジェクトサイクル)
Section titled “C_Cycle(プロジェクトサイクル)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_Cycle_ID | ID | PK | サイクルID | 主キー |
| AD_Client_ID / AD_Org_ID | TableDirect | Y | クライアント / 組織 | |
| Name | String(60) | Y | 名称 | 識別子 |
| Description | String(255) | N | 説明 | |
| C_Currency_ID | TableDirect | Y | レポート通貨 | |
| IsActive | YesNo | Y | 有効 | デフォルト Y |
C_CycleStep(サイクルステップ)
Section titled “C_CycleStep(サイクルステップ)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_CycleStep_ID | ID | PK | ステップID | 主キー |
| C_Cycle_ID | TableDirect | Y | 親サイクル | 親リンク |
| SeqNo | Integer | Y | 順序 | デフォルト @SQL=MAX(SeqNo)+10 |
| Name | String(60) | Y | ステップ名 | |
| RelativeWeight | Quantity | Y | 関連加重 | デフォルト 1、0 = 無視 |
C_CyclePhase(サイクルフェーズ)
Section titled “C_CyclePhase(サイクルフェーズ)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_CycleStep_ID | TableDirect | Y | 親ステップ | 親リンク |
| C_Phase_ID | TableDirect | Y | 標準フェーズ | 親リンク(複合キー相当) |
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"
ビジネスロジック
Section titled “ビジネスロジック”M クラスが存在しないため、保存時の独自バリデーション・自動計算はありません。SeqNo の自動採番(MAX+10)は AD の SQL デフォルト値、親子リンクは AD の親カラム定義(IsParent=Y)で実現されています。
拡張ポイント(カスタマイズ箇所)
Section titled “拡張ポイント(カスタマイズ箇所)”OSGi Model Validator(推奨)
Section titled “OSGi Model Validator(推奨)”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 実測)。
関連プロセス
Section titled “関連プロセス”本ウィンドウ固有のプロセスはありません。
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”プロジェクトサイクルを使った横断レポートは、御社のプロジェクト運用に合わせたステップ設計・帳票カスタマイズと組み合わせることで効果を発揮します。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。