概要
このページでは、配送計画をAPIで登録するための方法について説明します。
目次 |
A. 登録の流れ |
B. 配送概要の登録(Salesforce) |
C. 配送概要・詳細の登録(Cariot 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
- 詳細 : https://api-doc.cariot.jp/#!/DeliveryPlan/post_api_delivery_plans
- 注意点
- 作成には、配送ごとに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
- 詳細 : https://api-doc.cariot.jp/#!/DeliveryPlan/get_api_delivery_plans
request
リクエストパラメータの ID に sfid をカンマ区切りで渡します。
response
sfidに一致する配送計画の一覧が返却されます。
配送先のスキップ
対象の配送先に行かなくなった場合に、その配送先を遅延検知の対象から外す時に使用します。
- path : /api/delivery_plans/{sfid}/skip
- method : POST
- 詳細 : https://api-doc.cariot.jp/#!/DeliveryPlan/post_api_delivery_plans_sfid_skip
遅延検知の停止/再開
配送そのものの遅延検知を行う、または行わないようにします。
- path : /api/delivery_plans/{sfid}/delay_detection
- method : POST
- 詳細 : https://api-doc.cariot.jp/#!/DeliveryPlan/post_api_delivery_plans_sfid_delay_detection