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