iDempiere 配送業者設定の使い方|在庫管理 操作マニュアル・技術仕様
📖 在庫管理の全体像: 在庫管理の業務フロー全体図 も合わせてご覧ください。
配送業者設定は、配送業者が提供する配送サービスの仕様カタログを登録するマスタです。サービスコード・追跡URL・国際配送や土曜配達の対応可否に加え、その業者で選べる荷姿・ラベル種別・集荷方法を子タブで管理します。
📌 ポイント: このウィンドウは 配送設定 と同じテーブル群(
M_ShipperCfg以下)を扱う別ビューです。接続先の定義を触らず、配送業者単位でメンテナンスしたい場合はこちらが便利です。
配送業者設定でできること
Section titled “配送業者設定でできること”- 配送サービス(翌日便・通常便など)の定義と命名
- 業者側のサービスコードの登録
- 追跡URLの登録による荷物追跡ページへのリンク
- 国際配送 / 土曜配達 / 個人宅配送の対応可否フラグ管理
- オンライン連携の有効/無効の切り替え
- 業者が対応する**荷姿(Packaging)**の登録(重量付き)
- 業者が対応する**ラベル種別(Label Type)**の登録(サイズ・印刷方式付き)
- 業者が対応する**集荷方法(Pickup Types)**の登録
- 既存設定のコピーによる類似サービスの一括作成
配送業者を親とする4タブ構成です。
| タブ名 | テーブル | 階層 | 項目数 | 役割 |
|---|---|---|---|---|
| Shipper | M_ShipperCfg | 0 | 13項目 | 配送サービスの基本定義 |
| Packaging | M_ShipperPackagingCfg | 1 | 9項目 | 対応する荷姿 |
| Label Type | M_ShipperLabelsCfg | 1 | 11項目 | 対応するラベル形式 |
| Pickup Types | M_ShipperPickupTypesCfg | 1 | 8項目 | 対応する集荷方法 |
graph TD
T1["🚚 Shipper<br/>M_ShipperCfg<br/>13項目"]
T2["📦 Packaging<br/>M_ShipperPackagingCfg<br/>9項目"]
T3["🏷 Label Type<br/>M_ShipperLabelsCfg<br/>11項目"]
T4["🕐 Pickup Types<br/>M_ShipperPickupTypesCfg<br/>8項目"]
T1 --> T2
T1 --> T3
T1 --> T4
💡 ヒント: 3つの子タブは構造がほぼ共通で、いずれも「検索キー・名称・説明・デフォルト」を持ちます。運用ルールとして検索キーの命名規則(業者コード+種別など)を決めておくと管理しやすくなります。
基本操作手順
Section titled “基本操作手順”graph TD
A["📂 メニューから<br/>配送業者設定を開く"] --> B["➕ 新規<br/>配送サービス名を入力"]
B --> C["🔗 Shipping Processor で<br/>接続先(配送設定)を選択"]
C --> D["🏷 Service Code と<br/>トラックURL を入力"]
D --> E["☑️ 国際配送 / 土曜配達 /<br/>個人宅配送 の可否を設定"]
E --> F["💾 保存"]
F --> G["📦 Packaging タブで<br/>荷姿を登録"]
G --> H["🏷 Label Type タブで<br/>ラベル形式を登録"]
H --> I["🕐 Pickup Types タブで<br/>集荷方法を登録"]
I --> J["⭐ よく使う選択肢に<br/>デフォルトを設定"]
アクセス方法(メニューパス)
Section titled “アクセス方法(メニューパス)”メニューから「在庫管理 > 品目マスタ管理 > Shipper Configuration(配送業者設定)」を開きます。
新規登録(配送サービスの定義)
Section titled “新規登録(配送サービスの定義)”- ツールバーの「新規」ボタンをクリック
- 基本情報を入力:
- 名称: 配送サービス名(必須・60桁。例:
翌日午前便) - 説明: 用途のメモ(任意・255桁)
- Shipping Processor: 接続先の配送設定(オンライン連携する場合に選択)
- Service Code: 業者側のサービスコード(任意・40桁)
- トラックURL: 追跡ページの URL(任意・120桁)
- 名称: 配送サービス名(必須・60桁。例:
- 対応可否フラグを設定(いずれも初期値 N):
- オンラインアクセス: オンライン連携を使う場合にチェック
- International: 国際配送に対応する場合にチェック
- Saturday Delivery: 土曜配達に対応する場合にチェック
- Residential: 個人宅への配送に対応する場合にチェック
- 「保存」をクリック
💡 ヒント: 同一業者で複数サービスを登録する場合は、1件登録したあと「Shipper Copy From …」ボタンで複製し、差分だけ修正すると効率的です。
荷姿(Packaging)の登録
Section titled “荷姿(Packaging)の登録”- 「Packaging」タブに移動
- 以下を入力:
- 検索キー: 一意コード(必須・40桁。例:
BOX-S) - 名称: 荷姿名(必須。例:
小型ダンボール) - 重量: 荷姿自体の重量(任意)
- デフォルト: 既定で選択させる場合にチェック
- 検索キー: 一意コード(必須・40桁。例:
- 「保存」をクリック
ラベル種別(Label Type)の登録
Section titled “ラベル種別(Label Type)の登録”- 「Label Type」タブに移動
- 以下を入力:
- 検索キー / 名称(必須)
- Width / Height: ラベルの幅・高さ
- Label Print Method: 印刷方式(Eltron / Image / Zebra)
- デフォルト: 既定選択肢にする場合にチェック
集荷方法(Pickup Types)の登録
Section titled “集荷方法(Pickup Types)の登録”- 「Pickup Types」タブに移動
- 検索キー・名称(必須)と説明を入力し、常用する方法に「デフォルト」を設定
⚠️ 注意: 子タブの3テーブルは親(
M_ShipperCfg_ID)が必須かつ更新不可です。登録先の配送業者を間違えた場合は、レコードを作り直す必要があります。
項目リファレンス
Section titled “項目リファレンス”Shipper タブ
Section titled “Shipper タブ”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| クライアント / 組織 | 必須 | 選択 | テナント・組織 |
| 名称 | 必須 | 文字列 | 配送サービス名(60桁) |
| 説明 | - | 文字列 | メモ(255桁) |
| 有効 | 必須 | チェック | アクティブ(初期値 Y) |
| オンラインアクセス | 必須 | チェック | オンライン連携の可否(初期値 N) |
| Shipping Processor | - | 選択 | 接続先の配送設定 |
| Service Code | - | 文字列 | 業者側サービスコード(40桁) |
| トラックURL | - | URL | 追跡ページ URL(120桁) |
| International | 必須 | チェック | 国際配送対応(初期値 N) |
| Saturday Delivery | 必須 | チェック | 土曜配達対応(初期値 N) |
| Residential | 必須 | チェック | 個人宅配送対応(初期値 N) |
| Shipper Copy From … | - | ボタン | 既存設定の複製 |
子タブ共通項目
Section titled “子タブ共通項目”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| Shipper | 必須 | 選択 | 親の配送業者設定(更新不可) |
| 検索キー | 必須 | 文字列 | 一意コード(40桁) |
| 名称 | 必須 | 文字列 | 表示名(60桁) |
| 説明 | - | 文字列 | メモ(255桁) |
| デフォルト | 必須 | チェック | 既定選択肢(初期値 N) |
| 有効 | 必須 | チェック | アクティブ(初期値 Y) |
子タブ固有項目
Section titled “子タブ固有項目”| タブ | 項目名 | 型 | 説明 |
|---|---|---|---|
| Packaging | 重量 | 数量 | 荷姿の重量 |
| Label Type | Width / Height | 数量 | ラベルの幅・高さ |
| Label Type | Label Print Method | リスト | E=Eltron / I=Image / Z=Zebra |
| Pickup Types | (固有項目なし) | - | 共通項目のみ |
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. 配送業者マスタ(Shipper)との違いは何ですか?
Section titled “Q. 配送業者マスタ(Shipper)との違いは何ですか?”配送業者マスタ(M_Shipper)は伝票で実際に選択する運用マスタです。本ウィンドウの配送業者設定(M_ShipperCfg)は、オンライン配送連携で使うサービス仕様のカタログであり、別テーブルです。詳しくは 配送業者(Shipper)の使い方 を参照してください。
Q. Shipping Processor を指定しないとどうなりますか?
Section titled “Q. Shipping Processor を指定しないとどうなりますか?”M_ShippingProcessorCfg_ID は必須ではないため、接続先を指定しない配送業者設定も保存できます。ただしオンライン連携(送り状発行・料金照会)は行えないため、オンラインアクセスを使う場合は必ず指定してください。
Q. 「デフォルト」を複数レコードに設定できますか?
Section titled “Q. 「デフォルト」を複数レコードに設定できますか?”IsDefault は単なる Yes-No カラムで、標準では一意制約や排他制御はありません。運用ルールで1件に絞るか、Model Validator で排他制御を実装してください。
Q. 検索キーは業者をまたいで一意にする必要がありますか?
Section titled “Q. 検索キーは業者をまたいで一意にする必要がありますか?”AD メタデータ上、検索キー(Value)は「必要な形式で一意」と定義されています。運用上は業者コードを接頭辞に付けるなど、衝突しない命名規則を推奨します。
Q. 設定はテナントごとに必要ですか?
Section titled “Q. 設定はテナントごとに必要ですか?”M_ShipperCfg 系のテーブルは AccessLevel = 6(System + Client)です。システムレベルの共通定義としても、テナント固有の定義としても登録できます。
- 配送設定(Shipping Configuration)の使い方
- 配送プロセッサ(Shipping Processor)の使い方
- 配送業者(Shipper)の使い方
- 運賃カテゴリの使い方
- 画面リファレンス: Shipper Configuration
🛠 技術仕様(開発者向け)
配送業者設定はマスタデータ型のウィンドウ(AD_Window_ID: 200029)で、ルートテーブルは M_ShipperCfg、子は M_ShipperPackagingCfg / M_ShipperLabelsCfg / M_ShipperPickupTypesCfg の3テーブルです。4テーブルすべて AccessLevel = 6(System + Client)で削除可能です。M_ShipperCfg のテーブル説明は “Method or manner of product delivery” と定義されています。
対応する M クラス(MShipperCfg 70行ほか)はコンストラクタのみの薄い実装で、beforeSave() / afterSave() のオーバーライドはありません。
📌 ポイント: 本ウィンドウは AD_Window_ID: 200028(配送設定)と同じテーブル群を別の起点で表示するビューです。どちらのウィンドウから編集しても同じレコードが更新されます。
アーキテクチャ概要
Section titled “アーキテクチャ概要”classDiagram
class MShipperCfg {
<<constructors only>>
}
class MShipperPackagingCfg {
<<constructors only>>
}
class MShipperLabelsCfg {
<<constructors only>>
}
class MShipperPickupTypesCfg {
<<constructors only>>
}
class X_M_ShipperCfg {
<<generated>>
}
class PO {
<<abstract>>
}
MShipperCfg --|> X_M_ShipperCfg
X_M_ShipperCfg --|> PO
MShipperCfg --> MShipperPackagingCfg : has many
MShipperCfg --> MShipperLabelsCfg : has many
MShipperCfg --> MShipperPickupTypesCfg : has many
MShipperCfg --> MShippingProcessorCfg : references
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/MShipperCfg.java(70行) / MShipperPackagingCfg.java / MShipperLabelsCfg.java / MShipperPickupTypesCfg.java
関連DBテーブル
Section titled “関連DBテーブル”M_ShipperCfg(配送業者設定)
Section titled “M_ShipperCfg(配送業者設定)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| M_ShipperCfg_ID | ID | PK | 配送業者設定ID | 主キー |
| AD_Client_ID / AD_Org_ID | Table Direct | Y | テナント/組織 | 既定 @#AD_Client_ID@ / @#AD_Org_ID@ |
| M_ShippingProcessorCfg_ID | Table Direct(10) | N | 配送設定FK | オンライン連携時に指定 |
| Name | String(60) | Y | 名称 | |
| Description | String(255) | N | 説明 | |
| IsOnline | Yes-No | Y | オンラインアクセス | 既定 N |
| ShippingServiceCode | String(40) | N | サービスコード | |
| TrackingURL | URL(120) | N | 追跡URL | |
| IsInternational | Yes-No | Y | 国際配送 | 既定 N |
| IsSaturdayDelivery | Yes-No | Y | 土曜配達 | 既定 N |
| IsResidential | Yes-No | Y | 個人宅配送 | 既定 N |
| CopyFrom | Button(1) | N | コピー元 | ShipperCopyFrom プロセス |
| IsActive | Yes-No | Y | 有効 | 既定 Y |
M_ShipperPackagingCfg(荷姿)
Section titled “M_ShipperPackagingCfg(荷姿)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| M_ShipperPackagingCfg_ID | ID | PK | 荷姿ID | 主キー |
| M_ShipperCfg_ID | Table Direct(10) | Y | 親FK | 更新不可 |
| Value | String(40) | Y | 検索キー | 一意 |
| Name | String(60) | Y | 名称 | |
| Weight | Quantity(14) | N | 重量 | |
| IsDefault | Yes-No | Y | デフォルト | 既定 N |
M_ShipperLabelsCfg(ラベル種別)
Section titled “M_ShipperLabelsCfg(ラベル種別)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| M_ShipperLabelsCfg_ID | ID | PK | ラベル種別ID | 主キー |
| M_ShipperCfg_ID | Table Direct(10) | Y | 親FK | 更新不可 |
| Value / Name | String | Y | 検索キー/名称 | |
| Width / Height | Quantity(14) | N | 幅・高さ | |
| LabelPrintMethod | List(1) | N | 印刷方式 | E=Eltron, I=Image, Z=Zebra |
| IsDefault | Yes-No | Y | デフォルト | 既定 N |
M_ShipperPickupTypesCfg(集荷方法)
Section titled “M_ShipperPickupTypesCfg(集荷方法)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| M_ShipperPickupTypesCfg_ID | ID | PK | 集荷方法ID | 主キー |
| M_ShipperCfg_ID | Table Direct(10) | Y | 親FK | 更新不可 |
| Value / Name | String | Y | 検索キー/名称 | |
| Description | String(255) | N | 説明 | |
| IsDefault | Yes-No | Y | デフォルト | 既定 N |
erDiagram
M_ShippingProcessorCfg ||--o{ M_ShipperCfg : "processor"
M_ShipperCfg ||--o{ M_ShipperPackagingCfg : "packaging"
M_ShipperCfg ||--o{ M_ShipperLabelsCfg : "label types"
M_ShipperCfg ||--o{ M_ShipperPickupTypesCfg : "pickup types"
ビジネスロジック
Section titled “ビジネスロジック”4テーブルに対応する M クラスはいずれもコンストラクタのみで、バリデーションロジックを持ちません。制約は AD メタデータ側で定義されています。
| 制約 | 内容 |
|---|---|
| 親必須 | 子3テーブルの M_ShipperCfg_ID は IsMandatory=Y かつ IsUpdateable=N |
| 検索キー | Value は必須・40桁、AD 上「必要な形式で一意」と定義 |
| フラグ既定値 | IsOnline / IsInternational / IsSaturdayDelivery / IsResidential / IsDefault はいずれも既定 N |
拡張ポイント(カスタマイズ箇所)
Section titled “拡張ポイント(カスタマイズ箇所)”OSGi Model Validator(推奨)
Section titled “OSGi Model Validator(推奨)”デフォルト選択肢の排他制御など、AD だけでは表現できない制約を追加できます。
public class CustomShipperPackagingValidator implements ModelValidator { @Override public int modelChange(PO po, int type) throws Exception { if (po instanceof MShipperPackagingCfg && (type == TYPE_BEFORE_NEW || type == TYPE_BEFORE_CHANGE)) { MShipperPackagingCfg pkg = (MShipperPackagingCfg) po; if (pkg.isDefault()) { // 例: 同一 Shipper 配下のデフォルトを1件に制限する int cnt = new Query(pkg.getCtx(), MShipperPackagingCfg.Table_Name, "M_ShipperCfg_ID=? AND IsDefault='Y' AND M_ShipperPackagingCfg_ID<>?", pkg.get_TrxName()) .setParameters(pkg.getM_ShipperCfg_ID(), pkg.get_ID()) .count(); if (cnt > 0) { throw new AdempiereException("デフォルトの荷姿は配送業者ごとに1件だけ設定できます"); } } } return null; }}Callout
Section titled “Callout”4テーブルとも標準の Callout は設定されていません(AD メタデータ上 Callout 列は空)。
オンライン連携の実装
Section titled “オンライン連携の実装”配送業者設定の値は、IShipmentProcessor 実装が送り状発行や料金照会のリクエストを組み立てる際に参照されます。業者固有の項目が必要な場合は、テーブルに列を追加するのではなく、独自テーブル+タブ拡張または AD_Column の追加を Application Dictionary 上で行い、プラグイン側の実装で読み取る構成が保守しやすくなります。
関連プロセス
Section titled “関連プロセス”| プロセス名 | クラス | 説明 |
|---|---|---|
| Shipper Copy From | org.adempiere.process.ShipperCopyFrom | 既存の配送業者設定を複製 |
| Shipper Create From | org.adempiere.process.ShipperCreateFrom | 配送業者設定から関連レコードを作成 |
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”配送業者ごとの荷姿・ラベル・集荷方法のカタログは、実際の業者仕様に合わせた項目追加や選択制御が必要になりがちです。 Model Validator とタブ拡張により、コア改変なしで自社の配送オペレーションに合わせた設定画面を実現できます。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。