アプリケーションの構築Workshop動的スケジュール検証ルール

注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

検証ルール

制約は、あらゆるスケジューリングワークフローの固有の部分です。単純な時間制限から頻繁に変更されるルールマトリックスまで、ルールの複雑さはさまざまです。検証ルールを使用すると、これらの制約をコード化できるため、組織の運用を定義する制限と制約を理解しながら、エンドユーザーがスケジュールを構築および変更することができます。

各検証ルールは、スケジュールオブジェクトの現在の状態が関数ロジックで定義された特定の条件を満たしているかどうかを評価するTypeScript関数によってサポートされています。

ユーザーは、Workshopのスケジューリングガントチャートウィジェットのフロントエンドで検証ルールの結果が表示されます。初期ロード時に、オントロジーの現在の状態に基づいてすべてのルールが評価されます。スケジュールを変更するたびに、ルールが再評価されます。このプロセスにより、ユーザーは、彼らの意思決定が特定の制約と制限にどのように準拠しているかを知ることができます。

以下は、スケジューリングガントチャートウィジェット内のスケジューリング制約の例です。最初の画像では、No Operator Overlapsルールが適用されていることが、トグルで示されています。このオプションにより、このルールに従った結果のみが表示されます。次の画像は、出力を示しています。この例では、2つの行の間で競合があり、オペレーターの Brad Evans と Ashley Brown が重複しています。

Example validation rules interface. Example of non-compliant validation rule.

検証ルールの実装

検証ルールを実装するには、新しいルールオブジェクトタイプを作成して、関数とスケジュールオブジェクトタイプの間のマップとして機能させる必要があります。

オブジェクトの元データセットには、以下の5つの行が必要です。

  • 主キー
  • タイトル: Workshopでルールの表示名として使用されます
  • 制約タイプ: ルールが失敗した場合にUIで表示されるアイコン/シンボルを決定するために使用されます。
    • "HARD"の値は、赤い丸に感嘆符でグラフィカルに表されます。
    • "SOFT"の値は、オレンジ色の三角形に感嘆符でグラフィカルに表されます。
  • 関数RID
  • 関数バージョン(タグ)

オブジェクトタイプには、以下のタイプクラスが必要です。

プロパティタイプクラスの種類タイプクラス名
主キースケジュールfoo-rule
タイトル--
制約タイプスケジュールfoo-rule-constraint
関数RIDスケジュールfoo-rule-function-id
関数バージョン(タグ)スケジュールfoo-rule-function-version

最後のステップは、ルールオブジェクトとスケジュールオブジェクト間の多対多のリンクを設定することです。使用される結合テーブルは空でも構いません。ただし、リンクの両側に以下のタイプクラスを追加する必要があります。

schedules:schedulable-rule-link

関数インターフェース

以下のタイプは、検証ルールを記述するために必要な情報を表しており、各オブジェクトに対するルールのステータスも含まれています。