Skip to content

iDempiere 配送プロセッサの使い方|在庫管理 操作マニュアル・技術仕様

This content is not available in your language yet.

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

配送プロセッサは、配送業者のオンラインサービス(送り状発行・料金照会・追跡)に接続するための認証情報を保持するマスタです。接続先ホストや実装クラスは 配送設定 側に定義し、本ウィンドウでは「どの配送設定を、どのアカウントで使うか」だけを登録します。

📌 ポイント: 接続先の URL・ポート・実装クラスは本ウィンドウには存在しません。それらは配送設定(M_ShippingProcessorCfg)が持ち、配送プロセッサはそれを参照してアカウント情報を上乗せする構造です。

同一の配送業者に対して複数の契約アカウントを持つ場合は、配送設定1件に対して配送プロセッサを複数登録します。

  • 配送設定(接続先定義)とアカウント情報の紐付け
  • 配送業者オンラインサービスのユーザーIDの登録
  • 接続キー(Connection Key)と接続パスワードの登録
  • 有効/無効の切り替えによる接続の停止
  • 組織単位での配送アカウント使い分け

配送プロセッサは単一タブのシンプルなマスタです。

タブ名テーブル項目数役割
Shipping ProcessorM_ShippingProcessor8項目配送設定への参照と接続アカウント情報

💡 ヒント: 先に「配送設定(Shipping Configuration)」を登録しておかないと、本ウィンドウの「Shipping Processor」フィールドで選択できるレコードがありません。設定順序に注意してください。

graph TD
    A["⚙️ 先に配送設定を登録<br/>(ホスト・ポート・実装クラス)"] --> B["📂 メニューから<br/>配送プロセッサを開く"]
    B --> C["➕ 新規<br/>名称を入力"]
    C --> D["🔗 Shipping Processor で<br/>対象の配送設定を選択"]
    D --> E["🔑 ユーザーID・接続キー・<br/>接続パスワードを入力"]
    E --> F["💾 保存"]
    F --> G["🚚 配送業者マスタから<br/>オンライン処理で利用"]

先に配送設定を登録 (ホスト・ポート・実装クラス) メニューから 配送プロセッサを開く 新規 名称を入力 Shipping Processor で 対象の配送設定を選択 ユーザーID・接続キー・ 接続パスワードを入力 保存 配送業者マスタから オンライン処理で利用

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

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

メニューから「在庫管理 > 品目マスタ管理 > Shipping Processor(配送プロセッサ)」を開きます。

  1. ツールバーの「新規」ボタンをクリック
  2. 以下を入力:
    • 名称: 配送プロセッサの識別名(必須・60桁)
    • Shipping Processor: 参照する配送設定(必須
    • ユーザーID: 配送業者から発行されたアカウント番号/ユーザーID(必須・60桁)
    • Connection Key: 接続キー(任意・60桁)
    • Connection Password: 接続パスワード(必須・60桁)
  3. 保存」をクリック

⚠️ 注意: 接続パスワードは M_ShippingProcessor.ConnectionPassword に文字列カラムとして保持されます。運用ルール上、配送プロセッサウィンドウへのアクセス権は必要最小限のロールに限定することを推奨します。

項目名必須説明
クライアント必須選択テナント
組織必須選択組織
Shipping Processor必須選択参照する配送設定(M_ShippingProcessorCfg)
名称必須文字列配送プロセッサ名(60桁)
有効必須チェックアクティブ(初期値 Y)
ユーザーID必須文字列配送業者のユーザーID/アカウント番号(60桁)
Connection Key-文字列接続キー(60桁)
Connection Password必須文字列接続パスワード(60桁)

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

graph TD
    A["配送設定<br/>M_ShippingProcessorCfg<br/>ホスト・ポート・実装クラス"] --> B["配送プロセッサ<br/>M_ShippingProcessor<br/>ユーザーID・接続キー・パスワード"]
    A --> C["配送業者設定<br/>M_ShipperCfg<br/>サービスコード・追跡URL"]
    C --> D["荷姿 / ラベル種別 / 集荷方法<br/>M_ShipperPackagingCfg ほか"]
    B --> E["オンライン配送処理<br/>IShipmentProcessor"]
    C --> E

配送設定 M_ShippingProcessorCfg ホスト・ポート・実装クラス 配送プロセッサ M_ShippingProcessor ユーザーID・接続キー・パスワード 配送業者設定 M_ShipperCfg サービスコード・追跡URL 荷姿 / ラベル種別 / 集荷方法 M_ShipperPackagingCfg ほか オンライン配送処理 IShipmentProcessor

Q. 「Shipping Processor」フィールドで何も選択できません。

Section titled “Q. 「Shipping Processor」フィールドで何も選択できません。”

配送設定(M_ShippingProcessorCfg)が1件も登録されていないためです。先に 配送設定 ウィンドウで接続先を登録してください。

Q. ホストアドレスやポートはどこで設定しますか?

Section titled “Q. ホストアドレスやポートはどこで設定しますか?”

配送プロセッサではなく配送設定側で設定します。配送プロセッサから getHostAddress() などを呼ぶと、内部で参照先の配送設定を読み込んで値を返す実装になっています。

Q. 同じ配送業者で複数のアカウントを使い分けられますか?

Section titled “Q. 同じ配送業者で複数のアカウントを使い分けられますか?”

はい。配送設定1件に対して配送プロセッサを複数登録し、組織や用途に応じて使い分けられます。使用しないアカウントは「有効」チェックを外してください。

Q. 実装クラスは何を指定すればよいですか?

Section titled “Q. 実装クラスは何を指定すればよいですか?”

配送業者ごとのオンライン連携クラス(IShipmentProcessor の実装)を配送設定の「Shipping Processor Class」に指定します。標準では業者固有の実装は同梱されないため、利用する配送業者に合わせたプラグインの開発または導入が必要です。

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

配送プロセッサはマスタデータ型のウィンドウ(AD_Window_ID: 200024)で、M_ShippingProcessor テーブル(AccessLevel = 3 = Client + Organization、削除可能)に格納されます。MShippingProcessor クラス(139行)は X_M_ShippingProcessor を継承する薄いラッパーで、接続情報のゲッターをすべて参照先の MShippingProcessorCfg に委譲します。Document 型ではありません。

classDiagram
    class MShippingProcessor {
        +getShippingProcessorClass() String
        +getHostAddress() String
        +getHostPort() int
        +getProxyAddress() String
        +getProxyPort() int
        +getProxyLogon() String
        +getProxyPassword() String
        +getServicePath() String
    }
    class MShippingProcessorCfg {
        <<config>>
    }
    class X_M_ShippingProcessor {
        <<generated>>
    }
    class PO {
        <<abstract>>
    }
    class IShipmentProcessor {
        <<interface>>
        +processShipment(...) boolean
        +rateInquiry(...) boolean
        +voidShipment(...) boolean
    }
    MShippingProcessor --|> X_M_ShippingProcessor
    X_M_ShippingProcessor --|> PO
    MShippingProcessor --> MShippingProcessorCfg : delegates to
    MShippingProcessor ..> IShipmentProcessor : credentials for

+getShippingProcessorClass() String +getHostAddress() String +getHostPort() int +getProxyAddress() String +getProxyPort() int +getProxyLogon() String +getProxyPassword() String +getServicePath() String <> <> <> <> +processShipment(...) boolean +rateInquiry(...) boolean +voidShipment(...) boolean > X_M_ShippingProcessor X_M_ShippingProcessor --

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

M_ShippingProcessor(配送プロセッサ)

Section titled “M_ShippingProcessor(配送プロセッサ)”
カラム名必須説明備考
M_ShippingProcessor_IDIDPK配送プロセッサID主キー
AD_Client_IDTable DirectYテナント既定 @#AD_Client_ID@
AD_Org_IDTable DirectY組織既定 @#AD_Org_ID@
M_ShippingProcessorCfg_IDTable Direct(10)Y配送設定FK接続先定義への参照
NameString(60)Y名称
UserIDString(60)YユーザーID配送業者アカウント
ConnectionKeyString(60)N接続キー
ConnectionPasswordString(60)Y接続パスワード
IsActiveYes-NoY有効既定 Y
M_ShippingProcessor_UUUUID(36)NUUID
erDiagram
    M_ShippingProcessorCfg ||--o{ M_ShippingProcessor : "credentials"
    M_ShippingProcessorCfg ||--o{ M_ShipperCfg : "shippers"
    M_ShipperCfg ||--o{ M_ShipperPackagingCfg : "packaging"
    M_ShipperCfg ||--o{ M_ShipperLabelsCfg : "labels"
    M_ShipperCfg ||--o{ M_ShipperPickupTypesCfg : "pickup types"

pickup types

MShippingProcessor には beforeSave() / afterSave() のオーバーライドはありません。クラスの実体は接続情報の委譲ゲッター群です。

public String getHostAddress()
{
MShippingProcessorCfg cfg = new MShippingProcessorCfg(getCtx(), getM_ShippingProcessorCfg_ID(), get_TrxName());
return cfg.getHostAddress();
}

getShippingProcessorClass() / getHostAddress() / getHostPort() / getProxyAddress() / getProxyPort() / getProxyLogon() / getProxyPassword() / getServicePath() の8メソッドがすべてこの形式です。

⚠️ 注意: 各ゲッターは呼び出しのたびに new MShippingProcessorCfg(...) を実行し、DB から設定を読み込みます。キャッシュは行われないため、ループ内で連続呼び出しすると設定テーブルへのクエリが繰り返し発行されます。まとめて使う場合は一度ローカル変数に退避してください。

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

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

配送業者のオンライン連携は org.adempiere.model.IShipmentProcessor を実装して追加します。

public interface IShipmentProcessor {
boolean processShipment(Properties ctx, MShippingTransaction st, String trxName);
boolean rateInquiry(Properties ctx, MShippingTransaction st, boolean isPriviledgedRate, String trxName);
boolean voidShipment(Properties ctx, MShippingTransaction st, String trxName);
}
メソッド用途
processShipmentオンラインでの出荷登録・送り状発行
rateInquiry配送料金の照会
voidShipment登録済み出荷の取り消し

実装クラスは IShipmentProcessorFactoryorg.adempiere.base)を通じて OSGi サービスとして登録し、配送設定の「Shipping Processor Class」に完全修飾クラス名を指定します。

public class CustomShippingProcessorValidator implements ModelValidator {
@Override
public int modelChange(PO po, int type) throws Exception {
if (po instanceof MShippingProcessor
&& (type == TYPE_BEFORE_NEW || type == TYPE_BEFORE_CHANGE)) {
MShippingProcessor sp = (MShippingProcessor) po;
// 例: 本番の配送設定には検証済みアカウントのみ許可する
if (sp.getUserID() != null && sp.getUserID().startsWith("TEST")) {
throw new AdempiereException("テスト用アカウントは本番環境で登録できません");
}
}
return null;
}
}

M_ShippingProcessor の各カラムには標準の Callout は設定されていません(AD メタデータ上 Callout 列は空)。

本ウィンドウ固有の実行プロセスはありません。オンライン処理は出荷伝票側から IShipmentProcessor 実装を経由して呼び出されます。


国内配送業者(ヤマト運輸・佐川急便・日本郵便など)のオンライン API 連携は、IShipmentProcessor を実装した OSGi プラグインとして追加できます。 送り状発行・料金照会・追跡番号取り込みまで、コア改変なしで組み込み可能です。

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

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