一括更新 (Bulk Updates)
一括更新 API を使用すると、単一の非同期リクエストで複数の 予約 (bookings) または 車両 (vehicles) を効率的に変更できます。これは、外部システムの状態と一致させるためにエンティティの大規模なセットを更新する必要がある同期タスクに特に役立ちます。
これらの操作のエントリポイントは POST /api/v2/microservices/bulk/task api です。
予約の更新 (Booking Updates)
booking_update タスクタイプを使用すると、複数の予約にわたって特定のフィールドを変更できます。
サポートされているフィールド (Supported Fields)
次のフィールドが更新可能です。ペイロードに含まれていないフィールドは変更されません。
| フィールド | タイプ | 説明 |
|---|---|---|
min_pickup_time | DateTime (ISO8601) | ピックアップの最も早い許可時間。計画制約に影響します。 |
max_pickup_time | DateTime (ISO8601) | ピックアップの最も遅い許可時間。 |
min_dropoff_time | DateTime (ISO8601) | ドロップオフの最も早い許可時間。 |
max_dropoff_time | DateTime (ISO8601) | ドロップオフの最も遅い許可時間。 |
pickup_operations_location_external_id | String | ピックアップ場所を指定されたオペレーション場所の座標に更新します。 |
dropoff_operations_location_external_id | String | ドロップオフ場所を 指定されたオペレーション場所の座標に更新します。 |
demand | Map<String, Int> | 需要の部分的な更新。volume、weight、passengers などのキーは、他に影響を与えることなく個別に更新できます。 |
vehicle_labels | Map<String, Any> | 必要な車両ラベル/特性のセットを 置換 します。車両の互換性マッチングに使用されます。 |
product_kind | String | 製品/サービスの分類を更新します。 |
order_position | Enum | トリップ内の注文の位置を制限します。値: first_in_trip, last_in_trip。 |
data | Object | 非構造化データ BLOB を更新します。remarks、group、udf1、udf2、cluster_code、store_open_hours などのフィールドをサポートします。 |
customer_id | String | 予約に関連付けられた顧客 ID を更新します。 |
ノードとルートの自動更新 (Automatic Node and Route Updates)
予約のコア制約に影響を与えるフィールドを更新すると、システムはこれらの変更を基礎となるノードに自動的に伝播し、割り当てられた車両の再スケジュールをトリガーする可能性があります。
- ノードの更新: 時間枠、需要、車両ラベル、またはオペレーション場所を変更すると、関連するピックアップおよびドロップオフノードのプロパティが自動的に更新されます。
- ルートの更新: オペレーション場所(停留所の場所を定義する)を変更すると、予約がすでに車両に割り当てられている場合、ルートの再計算がトリガーされます。
予約の 状態 に依存するフィールドの更新は制限される場合があることに注意してください。たとえば、すでに COMPLETED または CANCELLED である予約 の時間枠または需要を更新することはできません。システムは、ノードに影響を与える変更を適用する前に、予約が適切な状態(例:NEW、PREPARED、ASSIGNED)にあるかどうかを確認します。
車両の更新 (Vehicle Updates)
vehicle_update タスクタイプを使用すると、車両のプロパティを変更できます。
サポートされているフィールド (Supported Fields)
次のフィールドは、車両のプロパティと制約を定義します。
| フィールド | タイプ | 説明 |
|---|---|---|
service_number | String | 車両の運用識別子(ユーザーに表示されることが多い)。 |
registration_number | String | ナンバープレートまたは公式登録番号。 |
color | String | 車両の視覚識別子(例:Hex コードまたは名前)。 |
driver_id | Integer | この車両に割り当てられたドライバーの ID。 |
vehicle_type_id | Integer | 車両タイプの ID(容量、プロファイルなどを定義)。 |
vehicle_cost | Float | 最適化でこの車両を使用することに関連するコスト係数。 |
geofence_ids | List<Integer> | 車両が制限または関連付けられているジオフェンス ID のリスト。 |
start_time | DateTime (ISO8601) | 車両がサービスを開始できるようになる時間。 |
end_time | DateTime (ISO8601) | 車両サービスが終了しなければならない時間。 |
start_point | Object | 車両がシフトを開始する場所を定義します。以下の 場所定義 を参照してください。 |
end_point | Object | 車両がシフトを終了する場所を定義します。以下の 場所定義 を参照してください。 |
場所定義 (Location Definitions)
start_point と end_point については、次のいずれかを使用して場所を定義できます。
- 座標:
latとlonを提供します。 - オペレーション場所:
operations_location_external_idを提供します。
同じポイントに対して座標とオペレーション場所 ID の両方を提供することはできません。相互排他的な検証が適用されます。
ルートの再構築 (Route Rebuilding)
車両の start_point または end_point を変更することは、ルート構造全体に影響を与える重要な変更です。
車両の開始または終了場所を更新すると、システムは自動的に ルート再構築 をトリガーします。これにより、その車両に現在割り当てられているすべてのノードを再スケジュールして、新しい開始/終了制約に対応しようとします。