注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
スケジューリングとリソース割り当てのワークフローにおける主な課題は、特定のイベントをいつどこで実施できるか、またはどこに移動できるかを把握することです。ほとんどのスケジュールには制約があり、スケジュールの選択肢がすべて同じように適切であるとは限りません。こうした制約や基準をロジックに組み込むことで、ツールはユーザーが選択肢をすばやく評価できるように支援できます。候補関数機能は、組織が定義したロジックに基づいて、スケジュールオブジェクトのパックの配置候補がどの程度適切かを視覚的に示し、ユーザーの操作を導きます。
各候補関数は TypeScript 関数を元にしています。ルールロジックの出力を使用して、割り当てが可能な領域、または逆に割り当てが不可能な領域を強調表示できます。アプリケーション作成者は、Workshop ウィジェットの設定を通じて、これらの候補に従うことを強制するオプションを利用できます。この機能を有効にすると、パックは最も近い強調表示された領域に強制的に配置されます。
Scheduling Gantt Chart の候補関数の結果は静的です。関数はアプリケーションの初回読み込み時に実行され、その後に行われたアクションは考慮されません。この点は、この機能がワークフローに適しているかどうかに影響します。
以下に、候補関数を効果的に使用する2つの例を示します。
次の画像では、割り当て対象の人物(この場合は「Susan」)が希望する場所を候補として提示するように候補関数が記述されています。緑色の領域は Garden City が Susan の希望する場所であることを示し、灰色で示された Sandbar は希望する場所ではありません。
以下の例では、アプリケーションを使用してパイロットにフライトを割り当てています。垂直に区切られた時間帯(緑色)は、フライトの開始時刻や終了時刻は調整せず、担当パイロットのみを変更する必要があることをスケジューラーに示しています。
以下のデータ型は、行またはパックからトリガーされる検索関数を記述するために必要な情報を表しており、検索グループの詳細も含まれています。
/*
候補関数は、パックの主キーのリストと
Gantt の開始時刻および終了時刻を受け取り、パックの主キーから、
行の主キーをタイムスロットの配列に対応付けるマッピングへのマッピングを返します。
*/
type ISuggestion = (
scheduleObjectPrimaryKeys: string[],
domainStart: Timestamp,
domainEnd: Timestamp,
) => FunctionsMap<string, FunctionsMap<string, Array<ISuggestionSlot>>>
/* 候補のデータ型 */
export interface IDomain {
start: Long;
end: Long;
}
/* rating は、ウィジェット UI のハイライト色を決めるために使われます。
-1 から1までのスケールに基づき、1に近いほどハイライトは濃い
緑色になります。-1に近いほどハイライトは赤色になります。
*/
export interface ISuggestionSlot {
domain: IDomain;
rating: Float;
}
export type IValidSlots = Array<ISuggestionSlot>;
export type ISlotMappings = FunctionsMap<string, IValidSlots>;
export type ISuggestionResult = FunctionsMap<string, ISlotMappings>;
/*
スケジュールオブジェクトの開始時刻および終了時刻が設定されており、割り当てられた
リソースのみを変更できるワークフロー(垂直スライスがハイライトされます)では、ALL_ROWS_ID を
ショートカットとして使用できます。
*/
export const ALL_ROWS_ID = "__ALL_ROWS";