Skip to content

iDempiere 課題ステータスの使い方|取引先管理 操作マニュアル・技術仕様

This content is not available in your language yet.

📖 取引先管理の全体像: 取引先管理の全体図 も合わせてご覧ください。

課題ステータスは、自動課題レポート(Issue Reporting)機能で扱う課題の進捗区分を定義する小さなコードマスタです。R_IssueStatus テーブルに名称と説明だけを保持し、既知課題(Known Issue) から参照されます。

📌 ポイント: このウィンドウは iDempiere 13 標準では無効化されています(AD_Window_ID: 368、標準メニュー未登録)。旧 Compiere 由来の自動課題レポート基盤の一部で、新規の業務設計で使う画面ではありません。顧客からの問い合わせ管理には リクエスト(Request) を使用してください。

  • 課題の進捗区分(例: 受付済・調査中・修正済)を名称ベースで定義
  • 定義した区分を既知課題(R_IssueKnown)の「課題ステータス」項目から選択
  • 説明欄に区分の運用ルールを記載
  • 「有効」フラグで使わなくなった区分を一覧から除外
  • クライアント単位での区分の追加・削除(R_IssueStatus は削除可能テーブル)

⚠️ 注意: 課題ステータスは進捗の「区分名」を持つだけのマスタです。ワークフロー・承認・通知といった処理は一切持ちません。ステータス遷移を業務ルールとして制御したい場合は、リクエストのステータス機能を利用してください。

課題ステータスは単一タブのシンプルな構成です。

タブ名テーブル項目数役割
課題ステータスR_IssueStatus5項目区分の名称・説明・有効フラグ
graph TD
    A["🚀 ウィンドウを開く<br/>(標準メニュー未登録のため<br/>ロール設定でメニュー追加が必要)"] --> B["➕ 新規"]
    B --> C["✏️ 名称を入力<br/>(例: 調査中)"]
    C --> D["📝 説明を入力<br/>(任意・255文字まで)"]
    D --> E["💾 保存"]
    E --> F["🔗 既知課題の<br/>課題ステータス項目から選択可能に"]

ウィンドウを開く (標準メニュー未登録のため ロール設定でメニュー追加が必要) 新規 名称を入力 (例: 調査中) 説明を入力 (任意・255文字まで) 保存 既知課題の 課題ステータス項目から選択可能に

アクセス方法(メニューパス)

Section titled “アクセス方法(メニューパス)”

このウィンドウは iDempiere 13 標準ではメニューに登録されていません。参照・保守が必要な場合は、システム管理者が以下のいずれかの方法で開きます。

  1. システム管理 > 一般ルール > システムルール > ウィンドウ・タブ・フィールド」で AD_Window_ID 368(Issue Status)を確認する
  2. システム管理 > 一般ルール > システムルール > メニュー」にウィンドウ 368 のメニュー項目を新規登録し、ロールにアクセス権を付与する

💡 ヒント: 無効化されたウィンドウを業務で使う前に、まず本当に必要かをご検討ください。顧客対応・社内課題の追跡は リクエスト の方が機能が充実しています。

  1. ツールバーの「新規」ボタンをクリック
  2. 必須項目を入力:
    • 名称: 区分名(60文字まで。例: OpenFixed
  3. 必要に応じて 説明(255文字まで)を入力
  4. 保存」をクリック

📌 ポイント: 必須項目は「名称」のみです。検索キー(Value)を持たないため、名称そのものが識別子(Identifier)として画面に表示されます。同じ名称を重複登録しないよう運用でご注意ください。

項目名必須説明
クライアント必須Table Direct対象クライアント(テナント)
組織必須Table Direct対象組織
名称必須文字列(60)課題ステータスの名称。識別子として表示される
説明-文字列(255)区分の補足説明
有効必須チェックレコードが有効かどうか

全項目一覧はリファレンス参照

Q. メニューに課題ステータスが表示されません

Section titled “Q. メニューに課題ステータスが表示されません”

iDempiere 13 標準ではこのウィンドウは無効化されており、メニューにも登録されていません。仕様どおりの動作です。使用する場合は、システム管理者がメニュー項目を追加し、ロールにウィンドウアクセス権を付与する必要があります。

Q. 検索キー(Value)はありませんか?

Section titled “Q. 検索キー(Value)はありませんか?”

R_IssueStatus テーブルには Value カラムが存在しません。保持しているのは NameDescriptionIsActive と標準の監査カラム(Created / CreatedBy / Updated / UpdatedBy)のみです。コード体系で管理したい場合は名称にコードを含める運用になります。

Q. 登録した課題ステータスを削除できますか?

Section titled “Q. 登録した課題ステータスを削除できますか?”

R_IssueStatus は削除可能テーブル(IsDeleteable=Y)です。ただし既知課題から参照されているレコードを削除すると外部キー制約でエラーになるため、通常は「有効」チェックを外して無効化してください。

Q. ステータスを変更したときに担当者へ通知できますか?

Section titled “Q. ステータスを変更したときに担当者へ通知できますか?”

標準では通知機能はありません。R_IssueStatus を参照する R_IssueKnown にもワークフロー定義は紐づいていないためです。通知が必要な場合は、リクエスト機能の利用か、Model Validator によるカスタム実装をご検討ください。

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

課題ステータスは自動課題レポート基盤のコードマスタで、R_IssueStatus テーブルに格納されます。専用のビジネスロジッククラス(M クラス)は存在せず、AD から自動生成された X_R_IssueStatus(183行)のみが提供されます。つまり beforeSave / afterSave などの独自ロジックを持たない純粋なデータ保持クラスです。

項目
テーブルR_IssueStatus
ウィンドウAD_Window_ID: 368(Issue Status、iDempiere 13 では無効化)
モデルクラスX_R_IssueStatus(生成クラスのみ・183行)
インターフェースI_R_IssueStatus
アクセスレベル6(システム+クライアント)
削除可否可(IsDeleteable=Y
大量データいいえ(IsHighVolume=N
classDiagram
    class X_R_IssueStatus {
        <<generated>>
        +getName() String
        +setName(String)
        +getDescription() String
        +setDescription(String)
    }
    class I_R_IssueStatus {
        <<interface>>
    }
    class PO {
        <<abstract>>
    }
    X_R_IssueStatus --|> PO
    X_R_IssueStatus ..|> I_R_IssueStatus
    X_R_IssueKnown --> X_R_IssueStatus : R_IssueStatus_ID

<> +getName() String +setName(String) +getDescription() String +setDescription(String) <> <> > PO X_R_IssueStatus ..

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

カラム名必須説明備考
R_IssueStatus_IDID(10)PK課題ステータスID主キー
R_IssueStatus_UUUUID(36)NUUID更新可
AD_Client_IDTable DirectYクライアント
AD_Org_IDTable DirectY組織
NameString(60)Y名称識別子(Identifier)
DescriptionString(255)N説明
IsActiveYes-No(1)Y有効
Created / CreatedByDate+Time / SearchY作成日時・作成者既定値 SYSDATE
Updated / UpdatedByDate+Time / SearchY更新日時・更新者既定値 SYSDATE
erDiagram
    R_IssueStatus ||--o{ R_IssueKnown : "status of known issue"
    R_IssueKnown ||--o| R_IssueRecommendation : "recommendation"
    R_IssueKnown ||--o| R_Request : "linked request"

status of known issue linked request

R_IssueStatus には M クラスが存在しないため、コア側の独自ロジックはありません。保存時の挙動は基底クラス PO の標準処理(必須チェック・監査カラム更新・キャッシュ無効化)のみです。

参照側の R_IssueKnown は、R_IssueStatus_ID(Table Direct、任意)と、テキスト型の IssueStatus(現在ステータス、2000文字)を別々に保持します。前者がマスタ参照、後者が自由記述の現況メモという役割分担です。

このテーブルにはカラム単位の Callout は定義されていませんAD_Column.Callout はすべて未設定)。拡張は OSGi プラグインの Model Validator で行うのが安全です。

public class CustomIssueStatusValidator implements ModelValidator {
@Override
public String modelChange(PO po, int type) throws Exception {
if (po instanceof X_R_IssueStatus
&& (type == TYPE_BEFORE_NEW || type == TYPE_BEFORE_CHANGE)) {
X_R_IssueStatus st = (X_R_IssueStatus) po;
// 例: 名称の重複を禁止する
String sql = "SELECT COUNT(*) FROM R_IssueStatus"
+ " WHERE Name=? AND R_IssueStatus_ID<>? AND AD_Client_ID=?";
int cnt = DB.getSQLValue(po.get_TrxName(), sql,
st.getName(), st.get_ID(), st.getAD_Client_ID());
if (cnt > 0)
throw new AdempiereException("同名の課題ステータスが既に存在します");
}
return null;
}
@Override
public String docValidate(PO po, int timing) {
return null; // R_IssueStatus は伝票型ではないため不要
}
}

無効化されたウィンドウを社内で活用する場合は、AD にメニュー項目を追加したうえで、上記のような Model Validator で入力品質を担保する構成が実用的です。

このウィンドウに紐づく標準プロセス・レポートはありません(標準メニュー未登録)。


課題ステータスのような無効化された標準ウィンドウを再活用するか、リクエスト機能へ統合するかは、運用要件に応じた設計判断が必要です。 As-Link株式会社では、既存の AD メタデータを活かした課題管理のモダナイズをご提案します。

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

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