ラボリクエストテンプレートは、独自のフィールド、制約条件、権限を備えたあらかじめ定義したリクエストフォームです。新しくラボリクエストを作成する際、最初に、現在の材料ファミリにある使用可能なテンプレートの中から選択します。
ラボリクエストテンプレートは、フォーム管理ページで「lab_request」タイプで作成した定義を用いて作成します。この記事では、「フォームの管理」ページで管理者がラボリクエストテンプレートを構成する方法について説明します。

新しいラボリクエストの定義を作成する
新しいラボリクエストテンプレートを作成するには、Uncountableのフォーム管理ページを表示します。
- Definitionsタブを選択します。
- 青色の[+ Create Definition]ボタンをクリックします。
- テンプレートの名前を入力します。
- Typeを「lab_request」に設定して定義を追加します。

これで、空白のテンプレートが作成されます。このテンプレートに、必要なフィールドを追加して構成できます。構成設定は、定義上で次のタブに分かれています。
- Structure:グループ、フィールド、制約を追加します。
- Settings:テンプレート名、ワークフロー、材料ファミリ、その他の設定を変更します。
- Runsheets and Labels:工程表とラベルをリクエストに関連付けます。
- Actions:リクエストの操作ボタンを追加または編集します。
- Permissions:テンプレートにアクセスや編集できるユーザーおよびユーザーグループを指定します。
- Triggers:トリガーセットを追加し、リクエストで使用できるようにします。

ラボリクエストの構成
新しいラボリクエストテンプレートには、最初、グループやフィールドはありません。グループやフィールドを追加するには、「Structure」タブにアクセスします。
- 「フォーム」(A)をクリックします。
- 次のサブメニューから選択します(B)。
- Add Group
- Add Fields
- Add Static Field

グループを追加する
すべてのリクエストフィールドにはグループが必要です。そのため、最初にグループを追加することをお勧めします。グループを設定していないフィールドを追加すると、名前のないインライングループに追加されます。
- 「Add Group」を選択します。
- 次のグループオプションから選択します。
- Fields:フィールドの追加や整理を行うための基本グループです。
- Inline:このグループタイプでは、グループの中にさらに子グループを作成できるため、階層的な構造で情報を整理できます。これにより、複雑なデータや権限管理をより柔軟に行うことが可能になります。
- Tab:タブ付きインターフェースを使うことで、コンテンツを複数のビューに分けて表示できます。ユーザーはタブをクリックすることで、必要な情報に素早くアクセスできます。
- List:構成可能なリストをリクエストに追加します。
- Comment Thread:コメントや会話を整理し、スレッド形式で表示することに特化したグループです。
- Custom:構成済みのカスタムグループ(ラボ測定、タイムシート、タスクなど)から選択します。
- Embedded Entities:ラボリクエストに直接追加される埋め込みエンティティまたはカスタムエンティティです。
- Related Entities:関連するエンティティを直接ラボリクエストに表示します。
- Sub-Entities:カスタムエンティティを使用して、親となるラボリクエストにサブリクエストを追加できます。
使用できるラボリクエストグループのタイプについて詳しくは、こちらを参照してください。
グループの表示設定
ラボリクエストのグループ、子グループ、フィールドの順番を変更するには、「フォーム」セクションのグループやフィールドをクリックしてドラッグします。

リクエストでのフィールドグループのその他の表示設定は、親グループと子グループの「Group Settings」タブで行います。


ここでは、ユーザーは次の表示設定を構成できます。
- Columns:親グループで、インライン子グループを選択した親グループ内でどのように整列させるかを設定します。
- Single:子グループを縦に並べます。
- Half-half:子グループをカラム内に整列します。
- Display Type:選択したグループの周囲のボックスを削除します。
- Standard/Box:デフォルトで、グループはボックス内に表示されます。
- No Box:選択するとボックスが削除されます。
- Collapsible:このボックスを選択すると、選択したグループをヘッダーのみ残して折りたたむことができます。
- Start Visible:親グループを「Collapsible」に設定する場合、このボックスの選択を解除すると、グループがデフォルトで折りたたまれて表示されます。
- Palette:親または子グループの背景色をカスタマイズします。









フィールドの追加
フィールドは、ラボリクエストの定義でグループに直接追加します。Formタブに追加したフィールドは、プラットフォームによって作成された新しい、名前のないインライングループに追加されます。一般的に使用されるラボリクエストのテンプレートフィールドには次のようなものがあります。
- Status
- Run Number
- Experiments
- Name
- Lab
- Priority
- Lead
- Desired End Date
- Actual End Date
- Notes
- Attachments
フィールドを追加するには、次の手順に従います。
- 「Fields」を選択します。
- Existing Fieldsサブメニュー(A)から選択します。
- または、[Create New Field](B)をクリックして新しいフィールドを作成します。

もう一つの便利なフィールドタイプが固定リストです。これは、リクエストで選択したエンティティのドロップダウンメニューを表示するフィールドです。属性と制約を使用して固定リストフィールドを参照することで、ドロップダウンで行った選択内容でリクエストに追加したリストグループが自動的に絞り込まれます。

フィールド表示設定
個々のフィールドの表示は、「Format Override」タブで設定できます。フォーマットを上書きすることで、ラボリクエスト内やエクスポート時のフィールドの表示を制御できます。「Format Override」タブでは次の内容を設定できます。
- Render:リクエスト上のフィールドの表示方法を調整します。たとえば、フィールドはドロップダウン、URLリンク、読み取り専用エンティティリンク、プレーンテキストで表示できます。
- Export Render:エクスポート時にフィールドをどのように表示するかを定義します。
- Field Size:フィールドの幅を、「Wide (4 spaces)」、「Medium (2 spaces)」、「Narrow (1 space)」から設定します。たとえば、Batch Sizeフィールドを、グループに合わせてインラインで収まるようにサイズを変更したり、ページ幅全体に広げたりすることができます。
- Render Behavior:コンテンツや制約に基づいてフィールドの表示を変更します。
- Decorations:フィールドに視覚要素または拡張機能を追加します。





たとえば、GHSフィールドをラボリクエストテンプレートに追加すると、デフォルトでドロップダウン選択メニューとして表示されますが、Render表示設定を使用すると、このフィールドをピクトグラムで表示するよう設定できます。
GHSフィールドをピクトグラムで表示する方法について詳細はこちらをご覧ください。

Static Fieldを追加する
Static fieldは、インタラクティブではないフィールドで、ユーザーの入力や変更ができない、情報を表示するフィールドです。Static fieldには次のオプションがあります。
- Checkbox:チェックされている、またはチェックされていないボックスを追加します。
- Date:日付を選択および追加します。
- Date and time:日付と時刻を選択および追加します。
- JSON:JSON形式のデータをリクエストに追加します。これは、後から参照あるいは処理する必要がある情報を取得する場合に便利です。
- Numeric values:固定数値を表示します。これは参照メトリック、計算、定義済みの値を表示する場合に使用します。
- Text fields:指示、ラベル、その他の説明などの固定情報を表示するテキストフィールドを表示します。
Static fieldを追加するには、次の手順に従います。
- 「Static Field」を選択します。
- 「Existing Static Fields」サブメニューから選択します。
- 値を入力してフィールドを追加します。


制約条件を追加する
制約条件で、グループまたはフィールドの表示、編集可/不可、動作を、リクエストのフェーズ、ほかのフィールドでの選択、リクエストを送信したユーザーの役割や権限などの要素に基づいて設定できます。
グループ制約条件
グループに対して制約条件を設定すると、グループ内のすべてのフィールドに自動的に適用されます。たとえば、Tabグループに制約を追加して、関連するステージで、または関連するユーザーにのみそのタブを表示するように設定できます。グループ制約条件を追加するには、次の手順に従います。
- フィールドグループを選択します。
- 「Constraints」タブで、次のオプションから選択します。
- 参照:参照制約条件を使用すると、ほかのフィールドの値に基づいてグループを更新できます。参照制約条件を使用してリストグループを絞り込む方法についてはこちらをご覧ください。
- Editable:編集可能性制約条件は、いつグループが編集可能になるかを定義します。「常時」、「表示しない」といったオプションから選択するか、特定のワークフローフェーズや条件の場合のみに編集を制限します。たとえば、これらの制約条件を使用して、送信後に当該グループがロックされるようにすることができます。
- Visible:表示可能性制約条件は、あらかじめ定義した条件に基づいて、いつグループが表示されるかを制御します。複数のリクエストテンプレートを作成しなくても、1つのリクエストフォームのレイアウトをユーザーの選択、プロジェクトの関連付け、ワークフローのステージに基づいて動的に調整できます。

フィールド制約条件
制約条件は、フィールドに直接追加することもできます。フィールド制約条件は、いつ、どのように個々のフィールドを表示あるいは変更するかを定義します。フィールド制約条件を追加するには、次の手順に従います。
- フィールドを選択します。
- 「Constraints」タブで、次のオプションから選択します。
- Editable:編集可能性制約条件は、いつフィールドが編集可能になるかを定義します。
- 参照:ほかのフィールドの値に基づいてフィールドを動的に更新できます。
- 必須:リクエストを送信する前に、必ずフィールドに入力されていることを確認します。
- Constrain Value:フィールドの値に条件を追加します。
- Visible:あらかじめ定義した条件に基づいて、いつグループが表示されるかを制御します。不要なフィールドが含まれるリクエストフォームで負荷をかけることなく、関連する場合にのみフィールドを表示させることができます。
- アクティブ:フィールドのコンポーネントを有効にするかどうかを定義します。デフォルトの動作はtrueです。
- Should Copy:関連付けられたエンティティがコピーされたときにフィールドをコピーするかどうかを定義します。デフォルトの動作はtrueです。

ラボリクエストの設定
「Settings」タブで、さまざまなオプションを設定してラボリクエストをニーズに合わせてカスタマイズできます。

ラボリクエストの設定には次の項目があります。
- Name(A):リクエスト定義の名前を変更します。
- Material Families(B):デフォルトで、リクエストはすべての材料ファミリで使用できます。使用を制限するには、材料ファミリの設定を更新してください。
- フェーズ ワークフロー(C):リクエストフェーズ ワークフローを選択します。ワークフローは、「フォームの管理」の「Phase Workflow」タブで設定します。
- Show Measurements(D):測定をラボリクエストに表示するかどうかを設定します。
- Show Workflow(E):リクエストの上部にフェーズワークフローの図を追加し、現在のフェーズを示し、先のフェーズを確認できるようにします。
- Debug Mode(F):デバッグモードで設定を確認し、潜在的な問題を解決します。有効にすると、個々のフィールドに参照名が表示されます。これはこの定義を使用して作成されたすべてのリクエストに表示されるため、使用には注意してください。
- Use Legacy Status(G):リクエストに従来のステータスを使用できるようにします。
- Archive(H):ラボリクエストテンプレートが不要になった場合、これをアーカイブしてリスト表示を簡潔に保つことができます。たとえば、既存のテンプレートから新しいテンプレートを作成したときに、元のテンプレートを必ずアーカイブするようにすると、一覧が乱雑にならずに混乱を避けられます。
- Form Layout Width(I):フォームレイアウトの幅を「Full」と「Standard」から選択します。




RunsheetとLabel
Uncountableでは、RunsheetとLabelsはラボリクエストの重要な構成要素です。この2つは「Runsheets and Labels」タブでテンプレートに追加できます。Runsheetは、ラボリクエストからダウンロード可能な、設定可能なエクスポートフォーマットです。Labelは、ラボリクエストに関連付けて、サンプルのダウンロード可能なLabelを生成できます。
テンプレートを特定のRunsheetとLabelに関連付けることで、特定の種類のラボリクエストを使用するときにダウンロード可能な内容を設定できます。
詳しくは、次の記事を参照してください。
操作
ラボリクエスト定義の「Actions」タブには、「エンティティアクション」と「操作ボタン」の2つのセクションがあります。
- エンティティアクションでは、ラボリクエストのエンティティ上にあらかじめ定義したアクションをトリガーできます。トリガーするアクションは「Trigger Sets」で構成し、複数の定義で再利用できます。リクエストに追加した後、ツールバーの「Actions」ドロップダウンメニューで選択可能になります。
- 操作ボタンは、定義の「Actions」タブで直接構成します。操作ボタンをリクエストに追加すると、ユーザーがラボリクエストで直接アクションをトリガーできます。
操作ボタンをリクエストテンプレートに追加する方法については、こちらをご覧ください。
権限
「Permissions」タブで、ラボリクエストにアクセスできるユーザーを制御できます。 デフォルトで、すべてのユーザーが表示できます。アクセス権を制限するには、次の手順に従います。
- デフォルトの「All Users」権限をオフにして、表示を制限します(A)。
- [Add Row]をクリックして、特定のユーザーまたは役割に対する新しい権限セットを追加します(B)。

トリガー
「Triggers」タブで、ラボリクエスト定義で使用可能なすべての有効なトリガーを表示できます。これらのトリガーは「Trigger Sets」タブで構成し、「Actions」タブの操作ボタンを作成する際に使用します。

ラボリクエストテンプレートをロックする
ラボリクエストテンプレートをロックすることで編集できなくなり、予期しない変更を防ぐことができます。次のいずれかでロックできます。
- 制約条件を追加する:「Never Editable」制約条件を特定のグループやフィールドに追加します。たとえば、制限したいフィールドを特定のタブグループに集約し、タブ全体とすべてのフィールドがユーザーグループによって表示または編集されないようにする制約条件を追加します。詳細については、前述の「制約条件」のセクションを参照してください。
- 権限を設定する:編集または表示権限を制限してユーザーやユーザーグループを選択します。詳しくは、前述の「権限」のセクションを参照してください。
ベストプラクティス
- 古いテンプレートはアーカイブする:ラボリクエストテンプレートが不要になった場合は、これをアーカイブして、リスト表示を簡潔な状態に保ちます。たとえば、既存のテンプレートから新しいテンプレートを作成したときに、元のテンプレートを必ずアーカイブするようにすると、一覧が乱雑にならずに混乱を避けられます。
- 標準ラボリクエストのトリガーを使用する:標準ラボリクエストのバリエーションを作成する際は、すべてのデフォルトトリガーが含まれるように、標準ラボリクエストのトリガーセットを適用してください。注記:標準のトリガーセットを変更すると、関連付けられているすべてのリクエストに影響します。変更が必要な場合は、調整を行う前にトリガーセットのコピーを作成してください。