iDempiere RMAタイプの使い方|販売管理 操作マニュアル・技術仕様
This content is not available in your language yet.
📖 販売管理の全体像: 販売管理の全体図 も合わせてご覧ください。
RMAタイプ(RMA Type)は、顧客からの返品(RMA: Return Material Authorization)を分類するためのマスタです。「初期不良」「誤発送」「顧客都合」といった返品理由をあらかじめ登録しておき、顧客返品伝票(Customer RMA)の作成時に選択します。
📌 ポイント: RMAタイプは名称・説明・コメントだけの非常にシンプルなマスタです。返品分析の切り口そのものになるため、あとから増やしにくい粒度(返品理由の大分類)で設計しておくことが実務上いちばん重要です。
RMAタイプでできること
Section titled “RMAタイプでできること”- 返品理由・返品区分の分類コードを定義する
- 顧客返品伝票(
M_RMA)に返品区分を割り当てる - コメント(ヘルプ)欄に、その区分を使う判断基準を記載して運用ルールを共有する
- 使わなくなった区分を「有効」チェックを外して新規選択から除外する(過去伝票は保持)
RMAタイプは単一タブのシンプルなマスタです。
graph TD
subgraph "RMAタイプウィンドウ(Window ID: 331)"
T1["🏷 RMAタイプ<br/>M_RMAType<br/>6項目"]
end
| タブ名 | テーブル | 項目数 | 役割 |
|---|---|---|---|
| RMAタイプ | M_RMAType | 6項目 | 返品区分の名称・説明・コメント |
基本操作手順
Section titled “基本操作手順”graph TD
A["🚀 メニューから開く<br/>返品管理 > RMAタイプ"] --> B["➕ 新規ボタンをクリック"]
B --> C["✏️ 名称を入力<br/>(例: 初期不良)"]
C --> D["📝 説明・コメントを入力<br/>(運用ルールの明文化)"]
D --> E["💾 保存"]
E --> F["🔗 顧客返品伝票で<br/>RMAタイプとして選択可能に"]
アクセス方法(メニューパス)
Section titled “アクセス方法(メニューパス)”メニューから「返品管理 > RMAタイプ」を開きます。
- ツールバーの「新規」ボタンをクリック
- 基本情報を入力:
- 名称(必須): 返品区分名(例:
初期不良、誤発送、顧客都合) - 説明: 区分の補足説明(255文字まで)
- コメント: 運用上の判断基準や注意点(2000文字まで)
- 名称(必須): 返品区分名(例:
- 「保存」をクリック
💡 ヒント: このテーブルには検索キー(
Value)がありません。伝票上の識別は「名称」で行われるため、名称そのものをコード的に読める文字列(例:RMA-01 初期不良)にしておくと一覧での並び順を制御しやすくなります。
不要になった区分は削除せず、「有効」チェックを外してください。新規伝票の選択肢から外れますが、そのRMAタイプを参照している過去の返品伝票はそのまま保持されます。
項目リファレンス
Section titled “項目リファレンス”RMAタイプタブ
Section titled “RMAタイプタブ”| 項目名 | カラム | 必須 | 型 | 説明 |
|---|---|---|---|---|
| クライアント | AD_Client_ID | 必須 | 選択 | テナント |
| 組織 | AD_Org_ID | 必須 | 選択 | 組織 |
| 名称 | Name | 必須 | 文字列(60) | 返品区分の名称 |
| 説明 | Description | - | 文字列(255) | 補足説明 |
| コメント | Help | - | テキスト(2000) | 運用上の判断基準・ヒント |
| 有効 | IsActive | 必須 | チェック | 選択肢として使用するか(既定: Y) |
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. RMAタイプに検索キー(コード)を設定できますか?
Section titled “Q. RMAタイプに検索キー(コード)を設定できますか?”M_RMAType テーブルには Value(検索キー)カラムが存在しないため、標準では設定できません。コード管理が必要な場合は名称の先頭にコードを含めるか、カスタムカラムを追加してください。
Q. RMAタイプは組織ごとに分けられますか?
Section titled “Q. RMAタイプは組織ごとに分けられますか?”M_RMAType のデータアクセスレベルは「クライアント」です。テナント単位で共有されるマスタのため、組織ごとに別の区分体系を持たせる設計には向きません。組織別に運用したい場合は名称に組織を含めるなどの工夫が必要です。
Q. 使用中のRMAタイプを削除できますか?
Section titled “Q. 使用中のRMAタイプを削除できますか?”テーブル自体は削除可能(IsDeleteable=Y)ですが、顧客返品伝票(M_RMA)から参照されているレコードは外部キー制約により削除できません。運用上は削除ではなく「有効」チェックを外す運用を推奨します。
Q. 返品時の在庫戻し入れや返金は、RMAタイプで制御されますか?
Section titled “Q. 返品時の在庫戻し入れや返金は、RMAタイプで制御されますか?”制御されません。M_RMAType は名称・説明・コメントのみを保持する分類マスタで、在庫や会計の挙動を切り替えるフラグは持ちません。返品後の処理は顧客返品伝票の伝票タイプ側で制御します。
🛠 技術仕様(開発者向け)
RMAタイプはマスタデータ型のウィンドウ(AD_Window_ID: 331)で、M_RMAType テーブルに格納されます。専用の M クラスは存在せず、AD から自動生成された X_M_RMAType(199行)のみが提供されています。つまりコア側に beforeSave() / afterSave() などの独自ビジネスロジックは実装されておらず、PO の標準的な永続化処理のみが動作します。Document 型ではありません。
アーキテクチャ概要
Section titled “アーキテクチャ概要”classDiagram
class X_M_RMAType {
<<generated>>
+setName(String)
+getName() String
+setDescription(String)
+setHelp(String)
+getM_RMAType_ID() int
}
class PO {
<<abstract>>
}
class I_M_RMAType {
<<interface>>
}
X_M_RMAType --|> PO
X_M_RMAType ..|> I_M_RMAType
M_RMA --> X_M_RMAType : classifies
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/X_M_RMAType.java
関連DBテーブル
Section titled “関連DBテーブル”M_RMAType(RMAタイプ)
Section titled “M_RMAType(RMAタイプ)”テーブル属性: 削除可(IsDeleteable=Y)/大量データ扱いなし(IsHighVolume=N)/アクセスレベル=クライアント/ビューではない。
| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| M_RMAType_ID | ID | PK | RMAタイプID | 主キー |
| M_RMAType_UU | UUID(36) | N | UUIDキー | |
| AD_Client_ID | Table Direct | Y | クライアント | 既定 @#AD_Client_ID@ |
| AD_Org_ID | Table Direct | Y | 組織 | 既定 @#AD_Org_ID@ |
| Name | String(60) | Y | 名称 | 識別子カラム |
| Description | String(255) | N | 説明 | |
| Help | Text(2000) | N | コメント | |
| IsActive | Yes-No | Y | 有効 | 既定 Y |
| Created / CreatedBy | Date+Time / Search | Y | 作成日時・作成者 | 既定 SYSDATE |
| Updated / UpdatedBy | Date+Time / Search | Y | 更新日時・更新者 | 既定 SYSDATE |
erDiagram
M_RMAType ||--o{ M_RMA : "classifies return"
M_RMA ||--o{ M_RMALine : "lines"
M_RMA }o--|| M_InOut : "original shipment"
M_RMAType_ID を参照しているテーブルは M_RMA(顧客返品伝票)のみです。
ビジネスロジック
Section titled “ビジネスロジック”M クラスが存在しないため、コアに固有のビジネスロジックはありません。保存時の挙動は PO の標準処理(必須チェック、Name の長さ60文字制限、アクセスレベル制御)に従います。
拡張ポイント(カスタマイズ箇所)
Section titled “拡張ポイント(カスタマイズ箇所)”OSGi Model Validator(推奨)
Section titled “OSGi Model Validator(推奨)”M クラスが無いテーブルでは、Model Validator が唯一の安全な検証追加手段です。
public class CustomRMATypeValidator implements ModelValidator { @Override public int modelChange(PO po, int type) throws Exception { if (po instanceof X_M_RMAType && (type == TYPE_BEFORE_NEW || type == TYPE_BEFORE_CHANGE)) { X_M_RMAType rmaType = (X_M_RMAType) po; // 例: 命名規則(RMA-99 形式のプレフィックス)を強制 if (rmaType.getName() == null || !rmaType.getName().matches("RMA-\\d{2} .+")) { throw new AdempiereException("RMAタイプ名は「RMA-99 名称」形式で入力してください"); } } return null; }}Callout
Section titled “Callout”M_RMAType のカラムには AD 上の callout 定義がありません。入力時の自動補完が必要な場合は独自 callout を追加してください。
返品伝票側での活用
Section titled “返品伝票側での活用”RMAタイプごとに処理を分岐させたい場合は、M_RMAType 側ではなく M_RMA の TIMING_BEFORE_COMPLETE / TIMING_AFTER_COMPLETE で getM_RMAType_ID() を判定する実装が定石です。
関連プロセス
Section titled “関連プロセス”このウィンドウには専用のプロセスボタンは定義されていません。
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”RMAタイプは M クラスを持たない軽量マスタのため、返品理由コード体系の強制や返品ワークフローとの連動は Model Validator での拡張が中心になります。
返品分析レポートや品質管理システムとの連携もコア改変なしで実現できます。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。