注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
検索機能を使うことで、ユーザーはスケジューリングワークフローで発生する特定のユニークな問題に対する解決策を素早く見つけ出し、評価することができます。
各検索機能は TypeScript 関数によってサポートされています。柔軟なインターフェースにより、ビルダーはパック、タイムスロット、またはその組み合わせを返す関数を記述することができます。さらに、検索機能は、行ベースまたはパックベースにすることができます。
行ベースの検索機能では、ユーザーは空のスペースを右クリックして、行オブジェクトと時間を関数の入力として渡す必要があります。パックベースの検索機能では、ユーザーはパックを右クリックして、オブジェクトと時間を関数の入力として渡す必要があります。
以下の画像は、パックを返す検索機能のインターフェースを示しています。
以下の画像は、タイムスロットを返す検索機能のインターフェースを示しています。
検索機能が実行されると、スケジューリング ガント チャートに新しい検索グループが作成され、結果は黄色で強調表示されます。検索グループは、グループヘッダーの右側にあるケアット記号(^)を選択することで折りたたんだり展開したりできます。さらに、ユーザーは Results Overview オプションを選択して、検索機能の出力が表示されるパネルを開き、検索結果を詳細に表示することができます。以下の画像で示されています。
以下のタイプは、検索グループの詳細を含め、行またはパックからトリガーされた際に検索機能を記述するために必要な情報を示しています。
type IPuckSearch = (puck: ObjectReference) => ISearchResult
type IRowSearch = (rowId: string, selectedTime: Timestamp) => ISearchResult
/*
検索関数は、時間枠、パック、または両方を返すことができます。SLOTとPUCKは、
IHighlightでタイプとして使用されます。
*/
export enum HighlightType {
SLOT = "SLOT",
PUCK = "PUCK",
}
/*
IHighlightで、一連の時間枠を返す関数に使用されます。
*/
export interface IDomain {
start: Long;
end: Long;
}
/*
検索機能が実行された後にUIで強調表示されるものを決定するために使用されます
*/
export interface IHighlight {
type: string;
// "SLOT"に必要
domain?: IDomain;
containerId?: string;
// "PUCK"に必要
schedulableObjectPrimaryKey?: string;
schedulableObjectTypeId?: string;
// 任意
comment?: string;
}
/*
新しく作成された検索グループのタイトルと、関数が返す行を定義します。
*/
export interface IRowGroup {
title: string;
containerIds: string[];
highlights: IHighlight[];
}
/*
関数の全体的な戻り値のタイプです。
*/
export interface ISearchResult {
rowGroup?: IRowGroup;
sourcePuckIds?: string[];
error?: string;
}