配送計画をAPIで登録する
概要
このページでは、配送計画をAPIで登録するための方法について説明します。
目次
配送計画を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のコール
配送先のスキップ
配送に対する遅延検知のストップ
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 | 参照(車両) |
「概要」と「詳細」はそれぞれ以下の項目を持ちます。
概要情報
配送日
配送区分 : 表示・編集・コピーの単位になるグルーピング
配送番号 : 配送区分ごと・日付ごとにユニークな値(文字列)
業務開始日時 : ドライバーの業務開始時刻
業務終了日時 : ドライバーの業務終了時刻
ドライバー : ドライバーオブジェクトの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