UI ビルダーページにフォームを追加する
フォームコンポーネントを使用して、1 つ以上のフォームを UI ビルダー ページに追加します。
フォームを含めて、UI ビルダー ページに機能を追加します。フォームのフィールドとそのプロパティ (必須にするなど) を定義します。次に、フォームの入力および送信時にデータを収集します。図 : 1. フォームコンポーネントの例
1 つのページに複数のフォームを追加できます。ネストされたフォームを持つコンポーネントが既に含まれているページにフォームを追加することもできます。サンプルユースケースは次のとおりです。
- 独自のフォームコントローラーインスタンスを使用して、フォームを含むインラインタブを追加することで、レコードページを拡張します。
- レコードページにフォームを含むモーダルを追加します。
Xanadu ServiceNow より前のリリースで作成されたフォームを含む既存のページの場合、別のフォームをページに追加する前に、元のフォームにプリセットを適用する必要があります。プリセットの適用は、ページに複数のフォームを追加するための前提条件で、複数のフォームをページ上で期待どおりに機能させることができます。フォームコントローラープリセットは、すべてのフォームコントローラーに適用する必要があります。
- 既存のフォームを含むページを開きます。
- データドロワーで、[データリソース] リストを展開し、元のフォームコントローラーを選択します。
- [プリセット] フィールドを選択します。
- [フォームコントローラープリセット] を選択します。
- [適用] を選択します。
- [X] を選択して [フォームコントローラーを編集 (Edit Form Controller)] ポップアップを閉じます。
フォームコントローラーの 1 つだけで、[アプリシェルにマッピングされているか] プロパティが true に設定されている必要があります。このプロパティは、ページ上のプライマリフォームを指定するために使用されます。プライマリフォームは、グローバルイベントの処理を担当します。複数のフォームコントローラーでプロパティを true に設定したり、プロパティが true に設定されたフォームコントローラーを 0 にしたりしないでください。
- 1 つ以上のフォームを含むページを開きます。
- コンテンツツリーでフォームを選択します。
- 構成パネルの [構成] タブで、[フォームコントローラー] を選択します。
- [フォームコントローラーを編集 (Edit Form Controller)] ポップアップで、[フォームコントローラー] リストを下にスクロールして、[アプリシェルにマッピングされているか] オプションを見つけます。
- ページ上の各フォームコンポーネントのオプションをオンまたはオフにして、フォームコントローラーが 1 つだけアプリシェルにマッピングされていることを確認します。
フォームイベント処理の詳細
競合イベント処理の知識を持つ経験豊富な開発者には、次の詳細が役立つ場合があります。
[アプリシェルにマッピングされているか] が true に設定されている場合、フォームは次のイベントを自動的に処理します。
- 画面ステータスが変更されました
-
- 説明:フォームがダーティであることを示すアクション。
- 出力:
CTRL_RECORD#SCREEN_STATUS_CHANGED
- 要求された構成メニューを更新
-
- 説明:アバターメニューのレコード構成メニューアイテムを設定するアクション。
- 出力:
CTRL_RECORD#UPDATE_CONFIGURATION_MENU_REQUEST
- 電話が要求された
-
- 説明:CTI プラグインが有効な場合に電話をかけるアクション。
- 出力:
CTRL_RECORD#PHONE_REQUESTED
- フォームのロードステータスが変更された
-
- 説明:フォームがデータをロードしているときにロード中の回転を表示するアクション。
- 出力:
CTRL_RECORD#FORM_LOADING_STATE_CHANGED
フォームコンポーネントとそのプロパティの詳細については、ServiceNow 開発者サイトの「フォームの概要」を参照してください。