配送計画をAPIで登録する

配送計画をAPIで登録する

概要

このページでは、配送計画をAPIで登録するための方法について説明します。

目次

A. 登録の流れ

配送計画をAPIで登録したい場合、Salesforce環境の取引先情報を配送先のマスタとして利用するため、APIの登録であってもSalesforce環境が必要です。

また、配送計画はドライバー、車両、デバイスに紐づいたデータであるため、ドライバー、車両、デバイスについても事前にSalesforce環境で登録しておいてください。

登録にあたっては、配送先のマスタとなる取引先が登録されていることを前提とし、1車両が行う1日の配送全体を指す「 概要 」 と、配送計画内で車両が向かう1件1件の配送先への配送を表す「 詳細 」をそれぞれ登録する必要があります。

登録の全体的な流れは以下の通りです。


(事前準備1)Salesforceに取引先の登録
画面上からの登録方法については、「配送先(取引先)の登録」を参考にしてください。
(事前準備2)Salesforce APIの利用準備
(事前準備3)Cariot APIの利用準備
Salesforceに配送計画の概要の登録(上図①)
SalesforceAPIを用いて配送計画(概要)のレコード作成を行います。
配送計画オブジェクト(Cariot__Delivery__c)
Cariot APIを使って配送計画の登録(上図②)
Salesforceに概要をAPI経由で登録すると、APIのレスポンスとしてSalesforceIDが返却されます。そのSalesforceIDを用いて、Cariot側に配送計画の情報を登録します。

通常、画面から実施する配送計画の予実の取得、配送先のスキップ、遅延検知の停止/再開といった各種操作についても、API経由で利用することができます。

配送計画の取得用のCariotAPIのコール
配送先のスキップ
配送に対する遅延検知のストップ

B. 配送概要の登録(Salesforce)

Salesforce上では「詳細」を保持していないため、「概要」だけを登録します。詳細情報に関してはCariotのAWS上に存在しています。

API経由でのSalesforceへのレコード登録方法については、「 Salesforceのオブジェクト/レコードをAPIで操作する 」を参照してください。

オブジェクトAPI名: Cariot__Delivery__c

項目は以下の通りです。

項目名項目API名データ型
配送日Cariot__DeliveryDate__c日付
配送区分Cariot__DeliveryCategory__cテキスト(80)
配送番号Nameテキスト(80)
業務開始日時Cariot__StartTime__c日付/時間
業務終了日時Cariot__EndTime__c日付/時間
ドライバーCariot__Driver__c参照(ドライバー)
車両Cariot__Vehicle__c参照(車両)

C. 配送概要・詳細の登録(Cariot API)

「概要」と「詳細」はそれぞれ以下の項目を持ちます。

概要情報
配送日
配送区分 : 表示・編集・コピーの単位になるグルーピング
配送番号 : 配送区分ごと・日付ごとにユニークな値(文字列)
業務開始日時 : ドライバーの業務開始時刻
業務終了日時 : ドライバーの業務終了時刻
ドライバー : ドライバーオブジェクトのID( Cariot__Driver__c のID)
車両 : 車両オブジェクトのID( Cariot__Vehicle__c のID)
オーナー : 配送計画のレコードの所有者 SalesforceのユーザーID
詳細情報
配送先(取引先) : 取引先のSalesforceのオブジェクトID
到着時刻(計画)
出発時刻(計画)
到着時刻(実績)
出発時刻(実績)
メモ : メモ情報
スキップフラグ : この配送先をスキップするかどうかの真偽値

なお、配送日、業務開始日時などの日付や時間を表す項目は、エポックミリ秒(協定世界時 (UTC) での1970年1月1日午前0時0分0秒からの経過ミリ秒数)を利用してください。
作成・更新・削除

配送計画の作成・更新・削除は下記のAPIで行います。

path : /api/delivery_plans
method : POST
注意点
作成には、配送ごとにsfidが必要になります。先にSalesforce側のAPIを用いて配送を作成しておく必要があります。
date : API実行時よりも未来の日付である必要があります。
category : 画面上では「配送区分」として扱われます。また、配送計画の画面上では、基本この配送区分単位で作業を行うことになります。(編集作業など)

request

作成・更新する内容は upserts に、削除する配送があった場合は deletes に削除対象の配送のSfidを入れてください。
response

リクエストで出したものを含んだレスポンスが返却されます。
エラーが有った場合は、どの配送・配送先でエラーが出たのかを含めて返却します。

error : 作成時にエラーがあった場合は、このオブジェクトが存在します。エラーがなければ空です。
sifd : どの配送でエラーが起きたか
messages[] : エラーメッセージ
items[] : どの配送先のエラーか
seq : 配送先のシーケンス(0始まり)
messages[] : エラーメッセージ
messages[] : エラーメッセージのタイトル一覧
details[] : エラーメッセージの詳細一覧
plans[] : 配送計画の一覧(詳細はSwagger参照)

参照

sfidを指定して配送計画の一覧情報を取得します。

path : /api/delivery_plans
method : GET

request

リクエストパラメータの ID に sfid をカンマ区切りで渡します。

response

sfidに一致する配送計画の一覧が返却されます。

配送先のスキップ

対象の配送先に行かなくなった場合に、その配送先を遅延検知の対象から外す時に使用します。

path : /api/delivery_plans/{sfid}/skip
method : POST

遅延検知の停止/再開

配送そのものの遅延検知を行う、または行わないようにします。

path : /api/delivery_plans/{sfid}/delay_detection
method : POST
Powered by Helpfeel