コンテンツにスキップ

iDempiere 業種カテゴリの使い方|取引先管理 操作マニュアル・技術仕様

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

業種カテゴリ(Position Category)は、役職を分類するためのマスタです。役職マスタの「業種カテゴリ」項目は必須のため、役職を1件でも登録するには、先にこのウィンドウでカテゴリを作成しておく必要があります。

📌 ポイント: 役職(C_Job)の業種カテゴリは必須項目です。iDempiere 導入時のマスタ整備では、業種カテゴリ → 役職 → 役職の割当の順に登録してください。

  • 役職の分類体系の定義(例: 管理職、営業職、技術職、事務職)
  • 説明・コメントによる分類基準の明文化
  • 役職マスタからの参照(必須項目としての選択肢の提供)
  • 有効/無効フラグによる分類の世代管理
  • 分類軸を使った役職一覧の絞り込み

業種カテゴリは単一タブのシンプルなマスタです。

タブ名テーブル項目数役割
業種カテゴリC_JobCategory6項目カテゴリの基本情報(名称・説明・コメント)

💡 ヒント: 英語名は「Position Category(役職カテゴリ)」です。日本語では「業種カテゴリ」と訳されていますが、対象は取引先の業種ではなく役職の分類である点に注意してください。

graph TD
    A["🚀 メニューから開く<br/>取引先管理 > 取引先管理セットアップ > 業種カテゴリ"] --> B["➕ 新規でカテゴリを作成<br/>(名称は必須)"]
    B --> C["📝 説明・コメントに<br/>分類基準を記載"]
    C --> D["💾 保存"]
    D --> E["🔁 必要な分類を<br/>繰り返し登録"]
    E --> F["🏷 役職マスタの<br/>業種カテゴリ欄で選択"]
    F --> G["✅ 役職の登録が可能に"]

メニューから開く 取引先管理 > 取引先管理セットアップ > 業種カテゴリ 新規でカテゴリを作成 (名称は必須) 説明・コメントに 分類基準を記載 保存 必要な分類を 繰り返し登録 役職マスタの 業種カテゴリ欄で選択 役職の登録が可能に

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

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

メニューから「取引先管理 > 取引先管理セットアップ > 業種カテゴリ」を開きます(AD_Window_ID: 352)。

  1. ツールバーの「新規」ボタンをクリック
  2. 基本情報を入力:
    • 名称(必須): カテゴリ名(例: 管理職営業職技術職
    • 説明: 短い説明(255文字まで)
    • コメント: どの役職をこの分類に含めるかの基準(2,000文字まで)
  3. 保存」をクリック
  4. 必要な分類の数だけ 1〜3 を繰り返します

⚠️ 注意: このテーブルのアクセスレベルは「クライアントのみ」です。システムレベル(全テナント共有)のカテゴリは作成できないため、テナントごとに登録が必要です。

カテゴリ名含める役職の例備考
管理職部長、課長承認権限の設計と対応させやすい
営業職営業担当、営業アシスタント販売実績の集計軸に利用
技術職エンジニア、品質保証技能・資格管理と組み合わせ
事務職経理担当、総務担当内部統制上の職務分掌に対応
社外取引先窓口、監査人役職側の従業員チェックを外して運用
項目名必須説明
クライアント必須選択テナント(既定値は自動セット)
組織必須選択組織(既定値は自動セット)
名称必須文字列(60)カテゴリ名。識別子として使用
説明-文字列(255)短い説明
コメント-テキスト(2000)分類基準などのヒント
有効必須チェック既定値はY。外すと新規選択の対象外

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

Q. 業種カテゴリを登録せずに役職を作れますか?

Section titled “Q. 業種カテゴリを登録せずに役職を作れますか?”

作れません。役職(C_Job)の C_JobCategory_IDIsMandatory=Y の必須カラムです。役職登録の前提となるマスタなので、導入時の初期設定チェックリストに必ず含めてください。

Q. カテゴリを削除できますか?

Section titled “Q. カテゴリを削除できますか?”

C_JobCategory テーブルは削除可能(IsDeleteable=Y)ですが、役職から参照されているカテゴリは外部キー制約により削除できません。使用中の分類は「有効」チェックを外して無効化してください。

Q. カテゴリごとに権限や承認ルールを変えられますか?

Section titled “Q. カテゴリごとに権限や承認ルールを変えられますか?”

標準では、業種カテゴリによる権限制御・承認ルートの自動切り替えは行われません。分類はあくまで属性です。役職カテゴリを承認フローに連動させたい場合は、ワークフローの承認者決定ロジックをカスタマイズする必要があります。

Q. 名称を後から変更しても問題ありませんか?

Section titled “Q. 名称を後から変更しても問題ありませんか?”

Name は識別子(IsIdentifier=Y)として役職画面の選択肢に表示されます。名称を変えると既存の役職の表示も変わりますが、参照関係(ID)は維持されるためデータ整合性の問題はありません。分類の意味そのものを変える場合は、新規カテゴリの追加と旧カテゴリの無効化を推奨します。

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

業種カテゴリはマスタデータ型のウィンドウで、C_JobCategory テーブルに格納されます。専用の M クラスは存在せず、生成クラス X_C_JobCategory とインターフェース I_C_JobCategory のみが提供されます。したがってモデル層のカスタムバリデーション(beforeSave / afterSave)は標準にありません。Document 型でもありません。

テーブルアクセスレベル削除可大量データビュー
C_JobCategory2(クライアントのみ)YNN
classDiagram
    class X_C_JobCategory {
        <<generated>>
        +getName() String
        +getDescription() String
        +getC_JobCategory_ID() int
    }
    class I_C_JobCategory {
        <<interface>>
    }
    class X_C_Job {
        <<generated>>
    }
    class PO {
        <<abstract>>
    }
    X_C_JobCategory --|> PO
    X_C_JobCategory ..|> I_C_JobCategory
    X_C_Job --> X_C_JobCategory : C_JobCategory_ID (mandatory)

<> +getName() String +getDescription() String +getC_JobCategory_ID() int <> <> <> > PO X_C_JobCategory ..

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

カラム名必須説明備考
C_JobCategory_IDIDPK業種カテゴリID主キー
AD_Client_IDTable DirectYテナント既定値 @#AD_Client_ID@
AD_Org_IDTable DirectY組織既定値 @#AD_Org_ID@
NameString(60)Y名称識別子(IsIdentifier=Y)
DescriptionString(255)N説明
HelpText(2000)Nコメント/ヒント
IsActiveYes-NoY有効既定値 Y
C_JobCategory_UUUUIDNUUID
erDiagram
    C_JobCategory ||--o{ C_Job : "classifies (mandatory)"
    C_Job ||--o{ C_JobAssignment : "assignments"
    C_Job ||--o{ C_JobRemuneration : "remunerations"
    C_JobAssignment }o--|| AD_User : "employee"

classifies (mandatory)

M クラスが存在しないため、独自の保存前後処理はありません。実装上の要点は以下のとおりです。

  • 必須参照: C_Job.C_JobCategory_IDIsMandatory=Y。カテゴリが1件もない状態では役職を登録できません。
  • 更新可否: Name / Description / Help / IsActiveIsUpdateable=Y で、登録後も変更可能です。
  • アクセスレベル: AccessLevel=2(クライアントのみ)。システム共通データとして配布することはできません。

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

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

M クラスがなくても、テーブル名判定で Model Validator を適用できます。

public class CustomJobCategoryValidator implements ModelValidator {
@Override
public int modelChange(PO po, int type) throws Exception {
if (I_C_JobCategory.Table_Name.equals(po.get_TableName())
&& type == TYPE_BEFORE_DELETE) {
// 例: 役職から参照中のカテゴリは無効化を促す
int cnt = new Query(po.getCtx(), I_C_Job.Table_Name,
"C_JobCategory_ID=?", po.get_TrxName())
.setParameters(po.get_ID())
.count();
if (cnt > 0) {
throw new AdempiereException("役職から参照されているため削除できません。無効化してください");
}
}
return null;
}
}

C_JobCategory のカラムには標準 Callout が設定されていません。分類選択に応じた既定値セットが必要な場合は、参照元である C_Job 側に独自 Callout を追加します。

カテゴリ単位のヘルパーメソッド(配下役職の一覧取得など)が必要な場合は、X_C_JobCategory を継承した M クラスをプラグインで定義し、IModelFactory として OSGi 登録します。


役職分類は、承認フローや権限設計の出発点になります。カテゴリを軸にした承認者の自動決定や職務分掌チェックは、OSGiプラグインでコアを触らずに実装できます。

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

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