コンテンツにスキップ

iDempiere 配送設定の使い方|在庫管理 操作マニュアル・技術仕様

📖 在庫管理の全体像: 在庫管理の業務フロー全体図 も合わせてご覧ください。

配送設定は、配送業者のオンラインサービスに接続するための接続先定義と、その業者が提供する配送サービス・荷姿・ラベル種別・集荷方法を階層的に登録するマスタです。配送業者ごとの「使える選択肢のカタログ」をここで作り、実際のアカウント情報は 配送プロセッサ に登録します。

📌 ポイント: 配送設定は接続先の技術定義(ホスト・ポート・実装クラス)を持ちます。ユーザーIDやパスワードは持ちません。認証情報と接続定義を分離することで、1つの接続定義を複数アカウントで共有できます。

  • オンライン配送サービスの接続先ホスト・ポートの定義
  • プロキシサーバー(アドレス・ポート・ログオン・パスワード)の設定
  • サービスパス実装クラスIShipmentProcessor 実装)の指定
  • 配送業者(Shipper)ごとのサービスコード・追跡URLの登録
  • 国際配送・土曜配達・個人宅配送の対応可否フラグ設定
  • 業者ごとの荷姿(Packaging)ラベル種別(Label Type)・**集荷方法(Pickup Types)**のカタログ登録
  • 既存の配送業者設定からのコピー(Shipper Copy From ボタン)

配送設定は5タブ・3階層構成です。

タブ名テーブル階層項目数役割
Shipping ProcessorM_ShippingProcessorCfg014項目接続先ホスト・プロキシ・実装クラス
ShipperM_ShipperCfg113項目配送業者ごとのサービス定義
PackagingM_ShipperPackagingCfg29項目業者が対応する荷姿
Label TypeM_ShipperLabelsCfg211項目業者が対応するラベル形式
Pickup TypesM_ShipperPickupTypesCfg28項目業者が対応する集荷方法
graph TD
    T1["🌐 Shipping Processor<br/>M_ShippingProcessorCfg<br/>14項目"]
    T2["🚚 Shipper<br/>M_ShipperCfg<br/>13項目"]
    T3["📦 Packaging<br/>M_ShipperPackagingCfg<br/>9項目"]
    T4["🏷 Label Type<br/>M_ShipperLabelsCfg<br/>11項目"]
    T5["🕐 Pickup Types<br/>M_ShipperPickupTypesCfg<br/>8項目"]
    T1 --> T2
    T2 --> T3
    T2 --> T4
    T2 --> T5

Shipping Processor M_ShippingProcessorCfg 14項目 Shipper M_ShipperCfg 13項目 Packaging M_ShipperPackagingCfg 9項目 Label Type M_ShipperLabelsCfg 11項目 Pickup Types M_ShipperPickupTypesCfg 8項目

💡 ヒント: 荷姿・ラベル種別・集荷方法の3タブは配送業者(Shipper)タブの子です。まず配送業者を保存してから、その配下に選択肢を登録してください。

graph TD
    A["📂 メニューから<br/>配送設定を開く"] --> B["➕ 新規<br/>名称・ホストアドレス・ポートを入力"]
    B --> C{"プロキシ経由?"}
    C -->|"Yes"| D["🔀 プロキシアドレス・ポート・<br/>ログオン・パスワードを入力"]
    C -->|"No"| E["⚙️ Service Path と<br/>Shipping Processor Class を入力"]
    D --> E
    E --> F["💾 保存"]
    F --> G["🚚 Shipper タブで<br/>配送サービスを登録"]
    G --> H["📦 Packaging / 🏷 Label Type /<br/>🕐 Pickup Types を登録"]
    H --> I["🔑 配送プロセッサで<br/>アカウント情報を紐付け"]

メニューから 配送設定を開く 新規 名称・ホストアドレス・ポートを入力 プロキシ経由? プロキシアドレス・ポート・ ログオン・パスワードを入力 Service Path と Shipping Processor Class を入力 保存 Shipper タブで 配送サービスを登録 Packaging / Label Type / Pickup Types を登録 配送プロセッサで アカウント情報を紐付け

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

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

メニューから「在庫管理 > 品目マスタ管理 > Shipping Configuration(配送設定)」を開きます。

  1. ツールバーの「新規」ボタンをクリック
  2. 接続情報を入力:
    • 名称: 接続定義の識別名(必須・60桁)
    • ホストアドレス: 接続先の URL または DNS 名(必須・60桁)
    • ホストポート: 通信ポート(必須
    • Service Path: サービスのパス(任意・60桁)
    • Shipping Processor Class: IShipmentProcessor 実装クラスの完全修飾名(任意・60桁)
  3. 社内からプロキシ経由で外部接続する場合は、プロキシアドレスプロキシポートプロキシログオンプロキシパスワードを入力
  4. 保存」をクリック
  1. Shipper」タブに移動
  2. 以下を入力:
    • 名称: 配送サービス名(必須
    • Service Code: 業者側のサービスコード(任意・40桁)
    • トラックURL: 追跡ページの URL(任意・120桁)
    • オンラインアクセス: オンライン連携を使う場合にチェック
    • International / Saturday Delivery / Residential: 国際配送・土曜配達・個人宅配送の対応可否
  3. 保存」をクリック

💡 ヒント: 「Shipper Copy From …」ボタンで既存の配送業者設定を複製できます。同じ業者で複数サービス(翌日便・通常便など)を登録するときに便利です。

荷姿・ラベル種別・集荷方法の登録

Section titled “荷姿・ラベル種別・集荷方法の登録”

配送業者タブを選択した状態で、それぞれの子タブに選択肢を追加します。

タブ主な入力項目
Packaging検索キー・名称・重量・デフォルト
Label Type検索キー・名称・幅・高さ・ラベル印刷方式・デフォルト
Pickup Types検索キー・名称・デフォルト

各タブとも検索キー名称が必須で、検索キーは一意である必要があります。よく使う選択肢には「デフォルト」チェックを付けておくと入力が省力化されます。

項目名必須説明
名称必須文字列接続定義名(60桁)
説明-文字列用途のメモ(255桁)
ホストアドレス必須文字列接続先 URL / DNS(60桁)
ホストポート必須整数通信ポート
プロキシアドレス-文字列プロキシサーバーのアドレス
プロキシポート-整数プロキシサーバーのポート
プロキシログオン-文字列プロキシ認証ユーザー
プロキシパスワード-文字列プロキシ認証パスワード
Service Path-文字列サービスのパス
Shipping Processor Class-文字列IShipmentProcessor 実装クラス名
有効必須チェックアクティブ(初期値 Y)
項目名必須説明
Shipping Processor-選択親の配送設定
名称必須文字列配送サービス名(60桁)
説明-文字列メモ(255桁)
オンラインアクセス必須チェックオンライン連携の可否(初期値 N)
Service Code-文字列業者側サービスコード(40桁)
トラックURL-URL追跡ページ URL(120桁)
International必須チェック国際配送対応(初期値 N)
Saturday Delivery必須チェック土曜配達対応(初期値 N)
Residential必須チェック個人宅配送対応(初期値 N)
Shipper Copy From …-ボタン既存設定の複製
項目名必須説明
検索キー必須文字列一意コード(40桁)
名称必須文字列ラベル種別名
Width / Height-数量ラベルの幅・高さ
Label Print Method-リスト印刷方式(Eltron / Image / Zebra)
デフォルト必須チェック既定選択肢(初期値 N)

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

Q. 配送設定と配送業者設定ウィンドウの違いは何ですか?

Section titled “Q. 配送設定と配送業者設定ウィンドウの違いは何ですか?”

**配送設定(本ウィンドウ)は接続先定義(M_ShippingProcessorCfg)を起点に、その配下の配送業者・荷姿・ラベル・集荷方法まで一括で管理します。配送業者設定**は配送業者(M_ShipperCfg)を起点にした同じデータの別ビューです。接続先を含めて設定するなら本ウィンドウ、業者単位のメンテナンスなら配送業者設定が便利です。

Q. Shipping Processor Class には何を入力しますか?

Section titled “Q. Shipping Processor Class には何を入力しますか?”

org.adempiere.model.IShipmentProcessor を実装したクラスの完全修飾名を入力します。標準の iDempiere には配送業者固有の実装は同梱されていないため、利用する業者に対応したプラグインが必要です。

Q. ラベル印刷方式の選択肢は何ですか?

Section titled “Q. ラベル印刷方式の選択肢は何ですか?”

Eltron(E)・Image(I)・Zebra(Z)の3種類です。ラベルプリンタの機種に合わせて選択します。

Q. プロキシ設定は必須ですか?

Section titled “Q. プロキシ設定は必須ですか?”

任意です。iDempiere サーバーが直接インターネットに出られる環境ではプロキシ欄を空欄のままにしてください。プロキシ経由が必要な場合のみアドレス・ポート等を入力します。

Q. これらの設定はテナントごとに必要ですか?

Section titled “Q. これらの設定はテナントごとに必要ですか?”

M_ShippingProcessorCfg 系のテーブルは AccessLevel = 6(System + Client)です。システムレベルで共通定義を持つことも、テナント個別に持つこともできます。標準の参照データとして提供される設定を利用する場合はシステムレベルの定義がそのまま使えます。

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

配送設定はマスタデータ型のウィンドウ(AD_Window_ID: 200028)で、5つのテーブルを3階層で扱います。ルートは M_ShippingProcessorCfg、その子が M_ShipperCfg、さらにその子が M_ShipperPackagingCfg / M_ShipperLabelsCfg / M_ShipperPickupTypesCfg です。5テーブルすべて AccessLevel = 6(System + Client)で削除可能です。

対応する M クラス(MShippingProcessorCfg 70行、MShipperCfg 70行、MShipperPackagingCfgMShipperLabelsCfgMShipperPickupTypesCfg)はいずれもコンストラクタのみの薄いクラスで、beforeSave() / afterSave() のオーバーライドはありません。ビジネスロジックは持たない純粋な設定テーブルです。

classDiagram
    class MShippingProcessorCfg {
        <<constructors only>>
    }
    class MShipperCfg {
        <<constructors only>>
    }
    class MShipperPackagingCfg {
        <<constructors only>>
    }
    class MShipperLabelsCfg {
        <<constructors only>>
    }
    class MShipperPickupTypesCfg {
        <<constructors only>>
    }
    class X_M_ShippingProcessorCfg {
        <<generated>>
    }
    class PO {
        <<abstract>>
    }
    MShippingProcessorCfg --|> X_M_ShippingProcessorCfg
    X_M_ShippingProcessorCfg --|> PO
    MShippingProcessorCfg --> MShipperCfg : has many
    MShipperCfg --> MShipperPackagingCfg : has many
    MShipperCfg --> MShipperLabelsCfg : has many
    MShipperCfg --> MShipperPickupTypesCfg : has many
    MShippingProcessorCfg <-- MShippingProcessor : referenced by

<> <> <> > X_M_ShippingProcessorCfg X_M_ShippingProcessorCfg --

パッケージ: org.compiere.model ソースファイル: org.adempiere.base/src/org/compiere/model/MShippingProcessorCfg.java(70行)ほか

カラム名必須説明備考
M_ShippingProcessorCfg_IDIDPK配送設定ID主キー
AD_Client_ID / AD_Org_IDTable DirectYテナント/組織AccessLevel 6
NameString(60)Y名称
DescriptionString(255)N説明
HostAddressString(60)Yホストアドレス
HostPortInteger(14)Yホストポート
ProxyAddressString(60)Nプロキシアドレス
ProxyPortInteger(14)Nプロキシポート
ProxyLogonString(60)Nプロキシログオン
ProxyPasswordString(60)Nプロキシパスワード
ServicePathString(60)Nサービスパス
ShippingProcessorClassString(60)N実装クラス名IShipmentProcessor 実装
IsActiveYes-NoY有効既定 Y
カラム名必須説明備考
M_ShipperCfg_IDIDPK配送業者設定ID主キー
M_ShippingProcessorCfg_IDTable Direct(10)N配送設定FK
NameString(60)Y名称
IsOnlineYes-NoYオンラインアクセス既定 N
ShippingServiceCodeString(40)Nサービスコード
TrackingURLURL(120)N追跡URL
IsInternationalYes-NoY国際配送既定 N
IsSaturdayDeliveryYes-NoY土曜配達既定 N
IsResidentialYes-NoY個人宅配送既定 N
CopyFromButtonNコピー元ShipperCopyFrom プロセス

M_ShipperPackagingCfg / M_ShipperLabelsCfg / M_ShipperPickupTypesCfg

Section titled “M_ShipperPackagingCfg / M_ShipperLabelsCfg / M_ShipperPickupTypesCfg”

3テーブルとも M_ShipperCfg_ID(必須・更新不可)を親とし、Value(検索キー・40桁・必須)、Name(60桁・必須)、DescriptionIsDefault(既定 N)を共通で持ちます。固有カラムは次のとおりです。

テーブル固有カラム説明
M_ShipperPackagingCfgWeightQuantity(14)荷姿の重量
M_ShipperLabelsCfgWidth / HeightQuantity(14)ラベルの幅・高さ
M_ShipperLabelsCfgLabelPrintMethodList(1)E=Eltron, I=Image, Z=Zebra
M_ShipperPickupTypesCfg(固有カラムなし)-共通カラムのみ
erDiagram
    M_ShippingProcessorCfg ||--o{ M_ShipperCfg : "shippers"
    M_ShippingProcessorCfg ||--o{ M_ShippingProcessor : "credentials"
    M_ShipperCfg ||--o{ M_ShipperPackagingCfg : "packaging"
    M_ShipperCfg ||--o{ M_ShipperLabelsCfg : "label types"
    M_ShipperCfg ||--o{ M_ShipperPickupTypesCfg : "pickup types"

label types pickup types

5つの M クラスはいずれもコンストラクタのみの実装で、バリデーションや派生処理は持ちません。参照整合性は AD 上の外部キー定義(M_ShipperCfg_ID が必須かつ更新不可、など)で担保されています。

配送設定の値が実際に使われるのは、MShippingProcessor の委譲ゲッター経由でオンライン配送処理が接続情報を取得するタイミングです。M_ShippingProcessorCfg 自体は接続を行いません。

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

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

IShipmentProcessorFactory による実装の登録

Section titled “IShipmentProcessorFactory による実装の登録”

org.adempiere.base.IShipmentProcessorFactory を実装した OSGi サービスを登録し、ShippingProcessorClass に指定したクラス名から IShipmentProcessor インスタンスを返します。この仕組みにより、配送業者ごとの実装をプラグインとして差し替えられます。

public class CustomShipperCfgValidator implements ModelValidator {
@Override
public int modelChange(PO po, int type) throws Exception {
if (po instanceof MShipperCfg
&& (type == TYPE_BEFORE_NEW || type == TYPE_BEFORE_CHANGE)) {
MShipperCfg cfg = (MShipperCfg) po;
// 例: オンライン連携を有効にする場合は接続先の指定を必須にする
if (cfg.isOnline() && cfg.getM_ShippingProcessorCfg_ID() == 0) {
throw new AdempiereException("オンラインアクセスを有効にする場合は配送設定を指定してください");
}
}
return null;
}
}

5テーブルとも標準の Callout は設定されていません(AD メタデータ上 Callout 列は空)。

プロセス名クラス説明
Shipper Copy Fromorg.adempiere.process.ShipperCopyFrom既存の配送業者設定を複製
Shipper Create Fromorg.adempiere.process.ShipperCreateFrom配送業者設定から関連レコードを作成

配送設定は、国内配送業者の API 仕様に合わせた項目追加やラベル形式の拡張が必要になることが多い領域です。 IShipmentProcessorFactory と Model Validator を組み合わせれば、コア改変なしで自社の配送オペレーションに適合させられます。

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

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