注: 以下の翻訳の正確性は検証されていません。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;
}