注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
検索関数を使用すると、スケジューリングワークフローで発生する個別の固有の問題に対して、解決策の候補をすばやく見つけて評価できます。
各検索関数は TypeScript 関数を元にしています。柔軟なインターフェースにより、構築者はパック、タイムスロット、またはその両方を返す関数を作成できます。また、検索関数は行ベースまたはパックベースにすることができます。
行ベースの検索関数では、ユーザーは空いている領域を右クリックし、行オブジェクトと時刻を関数の入力として渡す必要があります。パックベースの検索関数では、ユーザーはパックを右クリックし、オブジェクトと時刻を関数の入力として渡す必要があります。
以下の画像は、パックを返す検索関数のインターフェースを示しています。
以下の画像は、タイムスロットを返す検索関数のインターフェースを示しています。
検索関数が実行されると、スケジューリングガントチャートに新しい検索グループが作成され、結果が黄色で強調表示されます。検索グループは、グループヘッダーの右側にあるキャレット記号(^)を選択して折りたたんだり展開したりできます。また、以下の画像に示すように、結果の概要の選択肢を選択すると、検索関数の出力を含むパネルが開き、検索結果の詳細を表示できます。
以下のデータ型は、行またはパックからトリガーされる検索関数を作成するために必要な情報を表しており、検索グループの詳細も含まれています。
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;
}