iDempiere 課題ステータスの使い方|取引先管理 操作マニュアル・技術仕様
This content is not available in your language yet.
📖 取引先管理の全体像: 取引先管理の全体図 も合わせてご覧ください。
課題ステータスは、自動課題レポート(Issue Reporting)機能で扱う課題の進捗区分を定義する小さなコードマスタです。R_IssueStatus テーブルに名称と説明だけを保持し、既知課題(Known Issue) から参照されます。
📌 ポイント: このウィンドウは iDempiere 13 標準では無効化されています(AD_Window_ID: 368、標準メニュー未登録)。旧 Compiere 由来の自動課題レポート基盤の一部で、新規の業務設計で使う画面ではありません。顧客からの問い合わせ管理には リクエスト(Request) を使用してください。
課題ステータスでできること
Section titled “課題ステータスでできること”- 課題の進捗区分(例: 受付済・調査中・修正済)を名称ベースで定義
- 定義した区分を既知課題(
R_IssueKnown)の「課題ステータス」項目から選択 - 説明欄に区分の運用ルールを記載
- 「有効」フラグで使わなくなった区分を一覧から除外
- クライアント単位での区分の追加・削除(
R_IssueStatusは削除可能テーブル)
⚠️ 注意: 課題ステータスは進捗の「区分名」を持つだけのマスタです。ワークフロー・承認・通知といった処理は一切持ちません。ステータス遷移を業務ルールとして制御したい場合は、リクエストのステータス機能を利用してください。
課題ステータスは単一タブのシンプルな構成です。
| タブ名 | テーブル | 項目数 | 役割 |
|---|---|---|---|
| 課題ステータス | R_IssueStatus | 5項目 | 区分の名称・説明・有効フラグ |
基本操作手順
Section titled “基本操作手順”graph TD
A["🚀 ウィンドウを開く<br/>(標準メニュー未登録のため<br/>ロール設定でメニュー追加が必要)"] --> B["➕ 新規"]
B --> C["✏️ 名称を入力<br/>(例: 調査中)"]
C --> D["📝 説明を入力<br/>(任意・255文字まで)"]
D --> E["💾 保存"]
E --> F["🔗 既知課題の<br/>課題ステータス項目から選択可能に"]
アクセス方法(メニューパス)
Section titled “アクセス方法(メニューパス)”このウィンドウは iDempiere 13 標準ではメニューに登録されていません。参照・保守が必要な場合は、システム管理者が以下のいずれかの方法で開きます。
- 「システム管理 > 一般ルール > システムルール > ウィンドウ・タブ・フィールド」で AD_Window_ID
368(Issue Status)を確認する - 「システム管理 > 一般ルール > システムルール > メニュー」にウィンドウ 368 のメニュー項目を新規登録し、ロールにアクセス権を付与する
💡 ヒント: 無効化されたウィンドウを業務で使う前に、まず本当に必要かをご検討ください。顧客対応・社内課題の追跡は リクエスト の方が機能が充実しています。
- ツールバーの「新規」ボタンをクリック
- 必須項目を入力:
- 名称: 区分名(60文字まで。例:
Open、Fixed)
- 名称: 区分名(60文字まで。例:
- 必要に応じて 説明(255文字まで)を入力
- 「保存」をクリック
📌 ポイント: 必須項目は「名称」のみです。検索キー(Value)を持たないため、名称そのものが識別子(Identifier)として画面に表示されます。同じ名称を重複登録しないよう運用でご注意ください。
項目リファレンス
Section titled “項目リファレンス”課題ステータス タブ
Section titled “課題ステータス タブ”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| クライアント | 必須 | Table Direct | 対象クライアント(テナント) |
| 組織 | 必須 | Table Direct | 対象組織 |
| 名称 | 必須 | 文字列(60) | 課題ステータスの名称。識別子として表示される |
| 説明 | - | 文字列(255) | 区分の補足説明 |
| 有効 | 必須 | チェック | レコードが有効かどうか |
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. メニューに課題ステータスが表示されません
Section titled “Q. メニューに課題ステータスが表示されません”iDempiere 13 標準ではこのウィンドウは無効化されており、メニューにも登録されていません。仕様どおりの動作です。使用する場合は、システム管理者がメニュー項目を追加し、ロールにウィンドウアクセス権を付与する必要があります。
Q. 検索キー(Value)はありませんか?
Section titled “Q. 検索キー(Value)はありませんか?”R_IssueStatus テーブルには Value カラムが存在しません。保持しているのは Name・Description・IsActive と標準の監査カラム(Created / CreatedBy / Updated / UpdatedBy)のみです。コード体系で管理したい場合は名称にコードを含める運用になります。
Q. 登録した課題ステータスを削除できますか?
Section titled “Q. 登録した課題ステータスを削除できますか?”R_IssueStatus は削除可能テーブル(IsDeleteable=Y)です。ただし既知課題から参照されているレコードを削除すると外部キー制約でエラーになるため、通常は「有効」チェックを外して無効化してください。
Q. ステータスを変更したときに担当者へ通知できますか?
Section titled “Q. ステータスを変更したときに担当者へ通知できますか?”標準では通知機能はありません。R_IssueStatus を参照する R_IssueKnown にもワークフロー定義は紐づいていないためです。通知が必要な場合は、リクエスト機能の利用か、Model Validator によるカスタム実装をご検討ください。
- 既知課題(Known Issue)の使い方
- 課題システム(Issue System)の使い方
- 課題ユーザー(Issue User)の使い方
- リクエスト(Request)の使い方
- 画面リファレンス: 課題ステータス
🛠 技術仕様(開発者向け)
課題ステータスは自動課題レポート基盤のコードマスタで、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) |
アーキテクチャ概要
Section titled “アーキテクチャ概要”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
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/X_R_IssueStatus.java
関連DBテーブル
Section titled “関連DBテーブル”R_IssueStatus(課題ステータス)
Section titled “R_IssueStatus(課題ステータス)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| R_IssueStatus_ID | ID(10) | PK | 課題ステータスID | 主キー |
| R_IssueStatus_UU | UUID(36) | N | UUID | 更新可 |
| AD_Client_ID | Table Direct | Y | クライアント | |
| AD_Org_ID | Table Direct | Y | 組織 | |
| Name | String(60) | Y | 名称 | 識別子(Identifier) |
| Description | String(255) | N | 説明 | |
| IsActive | Yes-No(1) | Y | 有効 | |
| Created / CreatedBy | Date+Time / Search | Y | 作成日時・作成者 | 既定値 SYSDATE |
| Updated / UpdatedBy | Date+Time / Search | Y | 更新日時・更新者 | 既定値 SYSDATE |
erDiagram
R_IssueStatus ||--o{ R_IssueKnown : "status of known issue"
R_IssueKnown ||--o| R_IssueRecommendation : "recommendation"
R_IssueKnown ||--o| R_Request : "linked request"
ビジネスロジック
Section titled “ビジネスロジック”R_IssueStatus には M クラスが存在しないため、コア側の独自ロジックはありません。保存時の挙動は基底クラス PO の標準処理(必須チェック・監査カラム更新・キャッシュ無効化)のみです。
参照側の R_IssueKnown は、R_IssueStatus_ID(Table Direct、任意)と、テキスト型の IssueStatus(現在ステータス、2000文字)を別々に保持します。前者がマスタ参照、後者が自由記述の現況メモという役割分担です。
拡張ポイント
Section titled “拡張ポイント”このテーブルにはカラム単位の 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 で入力品質を担保する構成が実用的です。
関連プロセス
Section titled “関連プロセス”このウィンドウに紐づく標準プロセス・レポートはありません(標準メニュー未登録)。
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”課題ステータスのような無効化された標準ウィンドウを再活用するか、リクエスト機能へ統合するかは、運用要件に応じた設計判断が必要です。 As-Link株式会社では、既存の AD メタデータを活かした課題管理のモダナイズをご提案します。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。