注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
制約は、あらゆるスケジューリングワークフローの固有の部分です。単純な時間制限から頻繁に変更されるルールマトリックスまで、ルールの複雑さはさまざまです。検証ルールを使用すると、これらの制約をコード化できるため、組織の運用を定義する制限と制約を理解しながら、エンドユーザーがスケジュールを構築および変更することができます。
各検証ルールは、スケジュールオブジェクトの現在の状態が関数ロジックで定義された特定の条件を満たしているかどうかを評価するTypeScript関数によってサポートされています。
ユーザーは、Workshopのスケジューリングガントチャートウィジェットのフロントエンドで検証ルールの結果が表示されます。初期ロード時に、オントロジーの現在の状態に基づいてすべてのルールが評価されます。スケジュールを変更するたびに、ルールが再評価されます。このプロセスにより、ユーザーは、彼らの意思決定が特定の制約と制限にどのように準拠しているかを知ることができます。
以下は、スケジューリングガントチャートウィジェット内のスケジューリング制約の例です。最初の画像では、No Operator Overlapsルールが適用されていることが、トグルで示されています。このオプションにより、このルールに従った結果のみが表示されます。次の画像は、出力を示しています。この例では、2つの行の間で競合があり、オペレーターの Brad Evans と Ashley Brown が重複しています。
検証ルールを実装するには、新しいルールオブジェクトタイプを作成して、関数とスケジュールオブジェクトタイプの間のマップとして機能させる必要があります。
オブジェクトの元データセットには、以下の5つの行が必要です。
オブジェクトタイプには、以下のタイプクラスが必要です。
プロパティ | タイプクラスの種類 | タイプクラス名 |
---|---|---|
主キー | スケジュール | foo-rule |
タイトル | - | - |
制約タイプ | スケジュール | foo-rule-constraint |
関数RID | スケジュール | foo-rule-function-id |
関数バージョン(タグ) | スケジュール | foo-rule-function-version |
最後のステップは、ルールオブジェクトとスケジュールオブジェクト間の多対多のリンクを設定することです。使用される結合テーブルは空でも構いません。ただし、リンクの両側に以下のタイプクラスを追加する必要があります。
schedules:schedulable-rule-link
以下のタイプは、検証ルールを記述するために必要な情報を表しており、各オブジェクトに対するルールのステータスも含まれています。