外部連携では、「注文を受け取った」と「受注システムへの登録が終わった」を分けて考えます。データが届いていても、取引先コードの不一致で登録できない場合や、一部の更新だけが終わる場合があるためです。接続方法に加えて、どのデータを更新し、どの状態を完了とするかを決める必要があります。
この記事は、連携方式の確認、項目対応表、受付単位、変更・取消、受入テストまでの全体設計を扱います。APIやWebhookの再試行・重複判定・結果不明の復旧は、外部API連携の設計で詳しく解説します。
CSVはデータ形式、EDIは企業間で取引データを電子的に交換する仕組み、APIはソフトウェア間で機能やデータをやり取りする接点です。この3つを、必ずどれか一つだけ選ぶ分類として扱わないことが出発点です。
例えば、取引先から受け取ったEDIデータを、自社システムに取り込むCSVへ変換する構成も考えられます。通信方法とデータ形式を分け、実際に相手側が提供する仕様を起点に検討します。CSVの形式例はRFC 4180、EDIと伝送方法の関係はRFC 1767の導入説明でも確認できます。
これらは接続方法だけからは決まりません。例えば同じ在庫数の「10」でも、在庫を10へ置き換える要求と、10を追加する要求では再取込時の結果が異なります。双方の担当者が同じ意味で扱えるよう、連携仕様に記録します。
下は、外部連携の管理画面を想定した静的な表示例です。項目・コード・件数は説明用の架空データで、実際には操作できません。この例では受信データ1レコードを1件とし、126件の内訳を登録完了120件・保留4件・再処理待ち2件としています。再試行の回数は件数に含めません。
| 送信側 | 受信側 | 変換 |
|---|---|---|
| order_date | 受注日 | 2026-09-10 → 2026/09/10(表示) |
| customer_code | 取引先コード | 合意した空白処理、先頭の0は保持 |
| status | 受注状態 | 01/02/03 → 仮受付/確定/取消 |
| memo | 備考 | 改行の表現を変換、上限超過は保留 |
項目名が同じでも、値の意味や更新条件が異なることがあります。対応表には、受信した値をそのまま使う条件と、変換・保留する条件を記録します。
| 確認項目 | 見落としやすい点 | 先に決めたいこと |
|---|---|---|
| 必須条件 | 相手側では任意でも、自社側では必須になることがあります。 | 欠けていた時にエラーにするか、保留にするかを決めます。 |
| 日付・時刻 | タイムゾーンや時刻の有無でずれやすくなります。 | 保存形式と表示形式を分けて整理します。 |
| コード値 | 同じように見えて意味が違う場合があります。 | 対応表を項目ごとに持つ方が安全です。 |
| 空値・例外値 | 空欄、0、未定の意味が違うと後で判定がぶれます。 | 値ごとに扱いを固定しておきます。 |
取引先コードの「00123」を数値として読み取ると先頭の0が失われます。また、項目が送られていない場合と空文字の場合に、「変更しない」「空に更新する」のどちらを意味するかも定義が必要です。未知のコードを既定の状態へ置き換えたり、長い備考を通知せず切り捨てたりせず、判断できない値を確認できる形で残します。
CSVはセル内にカンマや改行が入る場合もあるため、単純に改行やカンマだけで分割する前提にはしません。日付、識別子、空値などの変換例は、外部連携のデータマッピング設計も参照してください。
ファイル内の1行に不備があった時、正常な行だけ登録する方式と、ファイル全体を保留する方式があります。行が独立しているか、複数の明細で一つの注文を構成するかによって、適切な受付単位が異なります。この判断を、取込処理の実装時に暗黙で決めないことが必要です。
再取込では、ファイル名だけで同じデータと判定しません。名称を変えた再送や、同じ名前での内容変更をどう識別するかを決めます。また、マッピングの変更前に失敗したデータを、どの版のルールで再処理するかも確認します。
Webhookは便利ですが、同じ通知が複数回届く前提で作らないと二重処理が起きやすくなります。再送と冪等性、つまり同じ処理を繰り返しても結果が変わらない仕組みをセットで考える必要があります。
非同期処理では、通知の正当性を確認し、後で処理できる保存が完了してから受領応答を返します。応答後の処理失敗も自社側で確認します。
同じ注文への追加手配まで除外しないよう、業務対象と個々の操作を分けます。受信IDだけでなく、処理が完了しているかも確認します。
タイムアウト後に相手側の処理が終わっている場合もあります。再送の上限を決める前に、結果を照会できるか、同じ操作を再試行しても作用が増えないかを確認します。具体的な復旧条件と同時実行への対策は、Webhook・再送・冪等性の設計で扱います。
連携テストは、正常に流れることの確認だけでは足りません。実際の運用では、空欄、桁超え、未知コード、取消データ、再送などの方が問題になりやすくなります。
| テスト項目 | 見たいこと | 理由 |
|---|---|---|
| 空値・未定値 | エラーか保留か | 人の判断が必要なデータを分けられるか確認しやすくなります。 |
| 未知コード | 落ち方と通知方法 | 相手側の仕様変更に早く気づきやすくなります。 |
| 重複イベント | 二重登録されないか | Webhook連携では特に重要です。 |
| 再送・取消 | やり直しが可能か | 運用で止まらない仕組みに近づけやすくなります。 |
| 一部だけ不正なファイル | 決めた受付単位で登録・保留されるか | 正常分が消えたり、注文の明細が不足したまま確定したりしないか確認します。 |
| 結果不明・処理途中の停止 | 外部の結果と未完了の工程を確認できるか | 一律の再実行による重複と、処理の取りこぼしを確認します。 |
| 仕様変更後の再取込 | 想定したマッピングの版で処理されるか | 同じ元データを異なる意味で処理していないか確認します。 |
外部連携では、自動化を進めるほど便利に見えますが、条件が複雑な領域では人の判断を残した方が安定することがあります。例えば次のような場面です。
この場合は、正常系だけ自動化し、例外は保留キューに入れて確認する方が、全体として扱いやすくなります。
外部連携では、接続仕様と、データの意味・更新条件の両方を決めます。受信・検証・業務登録・通知を分けて記録すると、どの工程が終わり、何を確認すべきかを判断できます。
見直しでは、項目対応表、全件・差分の扱い、一部不正時の受付単位、結果不明の確認方法を確認します。既存の連携を変更する場合は、適用日とマッピングの版を記録し、処理待ちのデータや相手側の運用への影響も確認してから切り替えます。