iDempiere 業種カテゴリの使い方|取引先管理 操作マニュアル・技術仕様
This content is not available in your language yet.
📖 取引先管理の全体像: 取引先管理の全体図 も合わせてご覧ください。
業種カテゴリ(Position Category)は、役職を分類するためのマスタです。役職マスタの「業種カテゴリ」項目は必須のため、役職を1件でも登録するには、先にこのウィンドウでカテゴリを作成しておく必要があります。
📌 ポイント: 役職(
C_Job)の業種カテゴリは必須項目です。iDempiere 導入時のマスタ整備では、業種カテゴリ → 役職 → 役職の割当の順に登録してください。
業種カテゴリでできること
Section titled “業種カテゴリでできること”- 役職の分類体系の定義(例: 管理職、営業職、技術職、事務職)
- 説明・コメントによる分類基準の明文化
- 役職マスタからの参照(必須項目としての選択肢の提供)
- 有効/無効フラグによる分類の世代管理
- 分類軸を使った役職一覧の絞り込み
業種カテゴリは単一タブのシンプルなマスタです。
| タブ名 | テーブル | 項目数 | 役割 |
|---|---|---|---|
| 業種カテゴリ | C_JobCategory | 6項目 | カテゴリの基本情報(名称・説明・コメント) |
💡 ヒント: 英語名は「Position Category(役職カテゴリ)」です。日本語では「業種カテゴリ」と訳されていますが、対象は取引先の業種ではなく役職の分類である点に注意してください。
基本操作手順
Section titled “基本操作手順”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)。
- ツールバーの「新規」ボタンをクリック
- 基本情報を入力:
- 名称(必須): カテゴリ名(例:
管理職、営業職、技術職) - 説明: 短い説明(255文字まで)
- コメント: どの役職をこの分類に含めるかの基準(2,000文字まで)
- 名称(必須): カテゴリ名(例:
- 「保存」をクリック
- 必要な分類の数だけ 1〜3 を繰り返します
⚠️ 注意: このテーブルのアクセスレベルは「クライアントのみ」です。システムレベル(全テナント共有)のカテゴリは作成できないため、テナントごとに登録が必要です。
代表的な分類設計例
Section titled “代表的な分類設計例”| カテゴリ名 | 含める役職の例 | 備考 |
|---|---|---|
| 管理職 | 部長、課長 | 承認権限の設計と対応させやすい |
| 営業職 | 営業担当、営業アシスタント | 販売実績の集計軸に利用 |
| 技術職 | エンジニア、品質保証 | 技能・資格管理と組み合わせ |
| 事務職 | 経理担当、総務担当 | 内部統制上の職務分掌に対応 |
| 社外 | 取引先窓口、監査人 | 役職側の従業員チェックを外して運用 |
項目リファレンス
Section titled “項目リファレンス”業種カテゴリタブ
Section titled “業種カテゴリタブ”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| クライアント | 必須 | 選択 | テナント(既定値は自動セット) |
| 組織 | 必須 | 選択 | 組織(既定値は自動セット) |
| 名称 | 必須 | 文字列(60) | カテゴリ名。識別子として使用 |
| 説明 | - | 文字列(255) | 短い説明 |
| コメント | - | テキスト(2000) | 分類基準などのヒント |
| 有効 | 必須 | チェック | 既定値はY。外すと新規選択の対象外 |
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. 業種カテゴリを登録せずに役職を作れますか?
Section titled “Q. 業種カテゴリを登録せずに役職を作れますか?”作れません。役職(C_Job)の C_JobCategory_ID は IsMandatory=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_JobCategory | 2(クライアントのみ) | Y | N | N |
アーキテクチャ概要
Section titled “アーキテクチャ概要”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)
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/X_C_JobCategory.java
関連DBテーブル
Section titled “関連DBテーブル”C_JobCategory(業種カテゴリ)
Section titled “C_JobCategory(業種カテゴリ)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_JobCategory_ID | ID | PK | 業種カテゴリID | 主キー |
| AD_Client_ID | Table Direct | Y | テナント | 既定値 @#AD_Client_ID@ |
| AD_Org_ID | Table Direct | Y | 組織 | 既定値 @#AD_Org_ID@ |
| Name | String(60) | Y | 名称 | 識別子(IsIdentifier=Y) |
| Description | String(255) | N | 説明 | |
| Help | Text(2000) | N | コメント/ヒント | |
| IsActive | Yes-No | Y | 有効 | 既定値 Y |
| C_JobCategory_UU | UUID | N | UUID |
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"
ビジネスロジック
Section titled “ビジネスロジック”M クラスが存在しないため、独自の保存前後処理はありません。実装上の要点は以下のとおりです。
- 必須参照:
C_Job.C_JobCategory_IDはIsMandatory=Y。カテゴリが1件もない状態では役職を登録できません。 - 更新可否:
Name/Description/Help/IsActiveはIsUpdateable=Yで、登録後も変更可能です。 - アクセスレベル:
AccessLevel=2(クライアントのみ)。システム共通データとして配布することはできません。
拡張ポイント(カスタマイズ箇所)
Section titled “拡張ポイント(カスタマイズ箇所)”OSGi Model Validator(推奨)
Section titled “OSGi Model Validator(推奨)”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; }}Callout
Section titled “Callout”C_JobCategory のカラムには標準 Callout が設定されていません。分類選択に応じた既定値セットが必要な場合は、参照元である C_Job 側に独自 Callout を追加します。
独自 M クラスの追加
Section titled “独自 M クラスの追加”カテゴリ単位のヘルパーメソッド(配下役職の一覧取得など)が必要な場合は、X_C_JobCategory を継承した M クラスをプラグインで定義し、IModelFactory として OSGi 登録します。
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”役職分類は、承認フローや権限設計の出発点になります。カテゴリを軸にした承認者の自動決定や職務分掌チェックは、OSGiプラグインでコアを触らずに実装できます。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。