SkippedShipment

ソリューション内の未処理の配送の詳細を指定します。軽微なケースの場合、またはスキップの原因を特定できた場合は、その理由をここに報告します。

JSON 表現
{
  "index": integer,
  "label": string,
  "reasons": [
    {
      object (Reason)
    }
  ]
}
フィールド
index

integer

このインデックスは、ソース ShipmentModel の出荷のインデックスに対応します。

label

string

対応する Shipment.label のコピー(Shipment で指定されている場合)。

reasons[]

object (Reason)

配送がスキップされた理由を説明するリスト。Reason の上のコメントをご覧ください。

理由

配送がスキップされた理由を説明できる場合は、その理由をここに記載します。理由がすべての車両で同じでない場合、reason に複数の要素が含まれます。スキップされた配送に重複する理由を設定することはできません(例: exampleVehicleIndex を除くすべての項目が同じ)。例:

reasons {
  code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
  exampleVehicleIndex: 1
  exampleExceededCapacityType: "Apples"
}
reasons {
  code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
  exampleVehicleIndex: 3
  exampleExceededCapacityType: "Pears"
}
reasons {
  code: CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT
  exampleVehicleIndex: 1
}

スキップされた配送は、すべての車両に対応していません。理由はすべての車両で異なる場合がありますが、少なくとも 1 つの車両の「りんご」の収容力を超え(車両 1 を含む)、少なくとも 1 つの車両の「Pears」の収容力を超え(車両 3 を含む)、少なくとも 1 つの車両の距離制限を超えます(車両 1 を含む)。

JSON 表現
{
  "code": enum (Code),
  "exampleExceededCapacityType": string,
  "exampleVehicleIndex": integer
}
フィールド
code

enum (Code)

Code のコメントをご覧ください。

exampleExceededCapacityType

string

理由コードが DEMAND_EXCEEDS_VEHICLE_CAPACITY の場合、超過している容量タイプを 1 つ記録します。

exampleVehicleIndex

integer

理由が出荷車両の非互換性に関連している場合、このフィールドは該当する 1 つの車両のインデックスを提供します。

コード

理由タイプを識別するコード。この順序は意味がありません。特に、両方の理由がある場合、特定の理由がソリューションで別の理由より先に現れるかどうかはわかりません。

列挙型
CODE_UNSPECIFIED これは絶対に使用しないでください。配送がスキップされた理由が不明な場合は、空の理由セットを返します。
NO_VEHICLE モデルに車両が含まれていないため、すべての出荷が不可能である。
DEMAND_EXCEEDS_VEHICLE_CAPACITY 一部の容量タイプ(そのうちの 1 つは exampleExceededCapacityType)について、出荷の需要が車両の積載量を超えています。
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT

この配送(車両の startLocation から配送の集荷/配達場所、および車両の最終場所)に必要な最小距離が、車両の routeDistanceLimit を超えています。

この計算では測地線距離を使用します。

CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT

この配送に必要な最小時間(移動時間、待ち時間、サービス時間など)が、車両の routeDurationLimit を超えています。

注:移動時間は、最適なシナリオ、すなわち測地線距離 x 36 m/s(おおよそ 130 km/時)で計算されます。

CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT 上記と同じですが、ここでは最小移動時間と車両の travelDurationLimit のみを比較します。
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS 最も早い開始時間に出発した場合、車両は最適なシナリオ(時間計算については CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT を参照)ではこの出荷を実行できません。合計時間により、車両は最新の終了時間の後に終了します。
VEHICLE_NOT_ALLOWED 配送の allowedVehicleIndices フィールドが空ではなく、この車両は属していません。