メインコンテンツまでスキップ

filter expression 構成フィールドまたは vehicle_label フィールド内のオブジェクトのフィルタリング (Filtering objects inside filter expression configuration fields or vehicle_label field)

SWAT API モデル内では、一部のオブジェクトは、処理パイプライン内の「フィルター式」を介した柔軟なユーザー定義フィルタリングをサポートしています。例としては、プロセッサ車両ラベル があります。これらのフィルタリング式は、QuerySet フィルターと同様の構文を使用して、処理への選択的なオブジェクトの包含を可能にします。たとえば、論理削除された予約を処理に含めるには、プロセス中に予約フィルター式を適用できます。

{
"and": [
{
"pk__in": [
<some_booking_id_list>
]
},
{
"is_invalidated__exact": true
}
]
}

ほとんどのオブジェクトフィールドを使用して、このフィルタリングアプローチを適用できます。

vehicle_labels フィールドでのフィルターの使用 (Using filters in vehicle_labels field)

同じアプローチを適用して、vehiclesbookings、および nodes 間のラベルのマッチングプロセスを管理できます。

booking objectbooking.vehicle_labels フィールドには、注文の配達に適した車両の車両ラベルがリストされています。次の例では、この vehicle_labels フィールドを使用して注文を最適化することで、T01、T02、または T03 ラベルを持つ 車両 のみがこれらの注文を履行するために使用されるようにします。

"vehicle_labels": {
"or": [
"T01",
"T02",
"T03"
]
}

この機能は、フリートと注文に対して確立されたルールを使用して柔軟なグループ化が必要な場合に役立ちます。

または、別の例:

{"and": 
[{"or": ["2", "3"]}, {"not": {"and": ["4", "5"]}}]
}

リレーションの活用 (Leveraging relations)

フィルタリング式は、__ 構文を使用して設定できるオブジェクト間のリレーションをサポートしています。たとえば、次の booking_filter_expression を使用すると、prepared 状態にある予約だけでなく、コード N10 を含む locations_groups に属する operations_locations が設定されている予約を選択できます。これは、一対多と多対多の両方のリレーションをサポートするネストされたルックアップを行う効果的な方法です。

{
"state__in": [
"prepared"
],
"pickup_operations_location__group__code__in": [
"N10"
]
}