記事 (1/20)
このモジュールでは、次のことを学習します。
この学習モジュールは、UI Builder を使用したページとコンポーネントの操作方法に精通していることを前提としています。
ページの作成の詳細については、学習モジュール「UI Builder でのページの作成」を参照してください。
記事 (2/20)
重要:この学習モジュールの内容は、Rome ServiceNow リリース用に最後に更新されました。
この学習モジュール全体で Special Occasions アプリケーションを使用して、アプリケーション作成の基礎である概念とプロセスを紹介し、実際に示します。Special Occasions アプリケーションの構築は行いません。
演習では、NeedIt アプリケーションを開発します。
演習は、次の 3 つの方法で示されます。
NeedIt アプリケーションを使用すると、ユーザーは複数の部門からのサービスを要求できます。ソースコントロールを使用して、この学習モジュールに必要なすべての NeedIt アプリケーションファイルから始めます。
演習 (3/20)
ServiceNow は GitHub を使用して、開発者サイトの学習コンテンツをコピーして使用するアプリケーションリポジトリを提供します。リポジトリには、アプリケーションファイルの固定セットであるタグが含まれているため、部分的に構築されたアプリケーションを使用して作業を開始できます。ServiceNow が提供するリポジトリを個人開発者インスタンス (PDI) にコピーしてインポートすることで、モジュール内の実践的な演習に必要なすべてのファイルを取得できます。
注意:ServiceNow が開発者プログラムの学習コンテンツで GitHub を使用する方法の詳細と、リポジトリをフォークしてアプリケーションをインポートする方法に関するビデオを見るには、『GitHub ガイド』を参照してください。
この演習では、次のことを行います。
重要:リポジトリを既にフォークしてインポートしている場合は、次の演習に進み、タグから分岐を作成して、アプリケーションファイルを PDI にロードできます。モジュールを完了するには、NeedIt アプリケーションファイルが必要です。
演習のこのセクションでは、開発者サイトの学習コンテンツで使用するアプリケーションリポジトリのパーソナルフォークを作成します。
演習のこのセクションでは、アプリケーションリポジトリを ServiceNow にインポートします。プロセスの一環として、まず GitHub アカウントの資格情報レコードを作成してから、Studio を使用してアプリケーションリポジトリを PDI にインポートします。
演習 (4/20)
この演習では、モジュールで使用するアプリケーションファイルを含むデータリソースモジュールのために、NeedIt アプリケーションの分岐を作成します。
注意:この演習を開始する前に、「演習:データリソースモジュール用のリポジトリのフォークとアプリケーションのインポート」の説明に従って、NeedIt リポジトリをフォークしてインポートする必要があります。
注意:リポジトリに LoadForUIBDataResourcesModule タグがない場合、タグを作成する前にリポジトリをフォークしています。この演習の「LoadForUIBDataResourcesModule タグなしでの分岐の作成」セクションのステップを完了し、学習モジュール用にインスタンスを準備してください。
注意:分岐の作成に失敗した場合は、フォークしたリポジトリ URL ではなく ServiceNow のリポジトリ URL を [URL] フィールドに入力しているか、あるいは GitHub アカウントで 2 要素認証を有効にしている可能性があります。GitHub 接続問題のトラブルシューティング方法については、『GitHub ガイド』の「GitHub 問題のトラブルシューティング」セクションを参照してください。
リポジトリに LoadForUIBDataResourcesModule タグがない場合にのみ、演習のこのセクションを完了してください。NeedIt アプリケーションを準備するには、既存のタグから分岐を作成し、更新セットをダウンロードして適用して、インスタンスでのアプリケーションの準備を完了します。
記事 (5/20)
データリソースは、ページのコンポーネント用にフェッチするデータを定義します。データリソースを使用すると、ハードコードされたコンポーネント構成からデータフェッチを切り離すことができます。データを動的にフェッチすると、エクスペリエンスとユーザーの両方がデータにアクセスできる限り、複数のページやエクスペリエンス間でコンポーネントが再利用可能になります。
記事 (6/20)
[データリソース] パネルはデフォルトで折りたたまれています。アイコンバーの [データリソース] アイコン () をクリックして、[データリソース] パネルを開きます。
[データリソース] パネルには、次の 3 つのセクションがあります。
記事 (7/20)
データリソースには、次のものがあります。
データリソースは、クライアント側またはサーバー側のいずれかにすることができます。クライアント側のデータリソースは、ドメイン固有のステータス、ユーザー初期設定、ユーザーセッションデータなどのクライアント情報を返すクライアントステータスマネージャーです。サーバー側のデータリソースは、テーブルレコードのリスト、GlideRecord クエリ、アプリケーションプロパティなどのデータを ServiceNow インスタンスから取得します。
継承されたデータリソースは、特定の UI Builder ページに追加されませんが、現在のページとデータリソースの定義場所との関係によって使用できます。たとえば、データリソースはアプリケーションシェルまたは親ページから継承できます。ローカルデータリソースは、UI Builder のページに直接追加されます。
記事 (8/20)
既存のデータリソースをページに追加するには、[データリソースインスタンス] セクションの [+ 追加] ボタンをクリックします。
[データリソース] フライアウトで、アプリケーションを選択します。セキュリティ権限があれば、任意のアプリケーションのデータリソースを任意のページに追加できます。一般的に使用されるデータリソースの多くは、グローバルアプリケーションの一部です。
データリソースは、ローカルデータリソースインスタンスとして追加されます。
データリソースを追加すると、[構成] セクションと [プレビュー] セクションにエラーが表示されます。UI Builder は、データリソースが追加されたときにその評価を試みます。データリソースが構成されるまで、エラーは残ります。
記事 (9/20)
[データリソースインスタンス] セクションで、構成するデータリソースインスタンスを選択します。[構成/イベント] セクションの [構成] タブを選択します。
データリソースインスタンスごとに、わかりやすいラベルと ID を指定します。[ラベルと ID を編集] アイコン () をクリックします。[データブローカーの詳細 (Data broker details)] ダイアログの [データブローカーラベル (Data broker label)] フィールドと [データブローカー ID (Data broker ID)] フィールドに値を入力し、[適用] ボタンをクリックします。
注意:データブローカーは、データリソースの別名です。
データリソースインスタンスの構成を続行します。構成フィールドは、選択したデータリソースインスタンスによって異なります。この例の自分の勤続記念日 (My Work Anniversary) データリソースは、 行事 (Occasion) テーブルをクエリし、現在ログインしているユーザーの勤続記念日を返すように設定されています。
[プレビュー] セクションには、データリソースインスタンスによって返された JSON が動的に表示されます。JSON の構造と内容は、データリソースインスタンスのタイプによって異なります。一部の JSON プロパティはハードコードされています。データリソースインスタンスの構成によって、JSON プロパティに追加したり、 他のプロパティの値を変更したりすることができます。この例では、すべてのデータルックアップレコードインスタンスに対して _row_data プロパティと number プロパティが返されます。[フィールドを返す] 構成フィールドによって、occasion_date プロパティが追加されています。
演習 (10/20)
この演習では、レコードを検索データリソースを NeedIt アプリケーションに追加します。データリソースは、現在ログインしているユーザーが要求元である次の NeedItレコードを返します。
作成するデータリソースには、システム管理者が要求元であり、必要な場合が将来の日付である NeedIt レコードが必要です。
演習のこのセクションでは、NeedIt Experience の Sys Admin home バリアントにレコードを検索データリソースを追加します。
演習のこのセクションでは、次の NeedIt レコードを検索するようにレコードを検索データリソースを構成します。データリソースは [必要な場合] フィールドを使用して、[要求元] の値が現在ログインしているユーザーである次の NeedIt レコードを返します。
記事 (11/20)
データのバインドとは、情報を表示する UI 要素にデータを関連付けるプロセスです。
この例では、[定型化されたテキスト] コンポーネントの [テキスト] フィールドをデータリソースにバインドする方法を示します。ページには、[定型化されたテキスト] コンポーネントが 2 つあります。1 つのコンポーネントには、ハードコードされたテキスト「自分の勤続記念日:」が含まれています。2 番目の [定型化されたテキスト] コンポーネントはデータリソースを使用して、ログインしているユーザーの勤続記念日を表示します。
コンポーネントを構成するときには、フィールドにカーソルを合わせて [動的なデータバインディング] ボタン () を選択し、データリソースをフィールド値にバインドします。
文字 @ はデータバインディングを示します。選択リストからデータリソースを選択します。この例は、自分の勤続記念日データリソースを選択していることを示しています。フィールドのバインドされたデータの装飾 () は、フィールド値がバインドされていることを示します。
デフォルトでは、データリソース (results) によって返される JSON オブジェクト全体がフィールドに渡されます。
返された JSON 内から特定のプロパティ値にドット連結するには、ピリオド (ドット) 文字を入力するかフィールドの最後をクリックし、選択リストから選択します。特定のプロパティ値を取得したり、値を表示したりするには、ドット連結を数回行う必要がある場合もあります。
これで、ページの [定型化されたテキスト] コンポーネントが自分の勤続記念日データリソースにバインドされました。[定型化されたテキスト] コンポーネントの値は動的に決定されます。コンポーネントには、[行事の日付] フィールドの表示値が含まれています。
演習 (12/20)
この演習では、レコードヘッダーコンポーネントを Sys Admin Home バリアントに追加します。[自分の次の NeedIt (My Next NeedIt)] データリソースをレコードヘッダーコンポーネントにバインドします。
演習のこのセクションでは、NeedIt Experience の Sys Admin home バリアントにレコードヘッダーコンポーネントを追加します。
演習のこのセクションでは、レコードヘッダー 1 コンポーネントを構成します。[自分の次の NeedIt (My Next NeedIt)] データリソースをコンポーネントにバインドします。
記事 (13/20)
Glide フォームデータリソースは、フィールド、セクション (タブ)、ヘッダー、アクティビティストリーム、アクティビティログ、リボンを含むフォームまたはフォームの一部を動的にレンダリングするために使用される基本データリソースです。
Glide フォームデータリソースは、@servicenow/now-record-form-connected アプリケーションの一部です。
Glide フォームデータリソースは、フォーム、フォームフィールド、レコードヘッダーのコンポーネントなど、フォームを使用するコンポーネントにバインドされています。
フォーム - フィールドコンポーネントでユーザーの勤続記念日レコードを表示するには、GlideForm データリソースを使用します。フォーム内でレンダリングするレコードを Glide フォームデータリソースに指示するには、 自分の勤続記念日データリソースレコードの sys_id 値を Glide フォームデータリソースの [システム ID] フィールドにバインドします。
[フォーム - フィールド] コンポーネントがレンダリングされるときに、レコードが動的に決定されます。この例のレコードは、システム管理者の勤続記念日用です。
演習 (14/20)
この演習では、Sys Admin home バリアントに Glide フォームデータリソースを追加します。[自分の次の NeedIt (My Next NeedIt)] データリソースを Glide フォームデータリソースにバインドします。ページの両方のデータリソースを、前の演習で追加したレコードヘッダーコンポーネントにバインドします。
演習のこのセクションでは、NeedIt Experience の Sys Admin home バリアントに Glide フォームコンポーネントを追加します。[自分の次の NeedIt (My Next NeedIt)] データリソースを Glide フォームデータリソースにバインドします。
NeedIt テーブルにはフォームが定義されていますが、フォームヘッダーは定義されていません。演習のこのセクションでは、NeedIt テーブルのフォームヘッダーレコードを作成します。
演習のこのセクションでは、次の NeedIt フォームデータリソースを使用するように自分の次の NeedIt (My Next NeedIt) コンポーネント構成を更新します。データリソースが、コンポーネント内でレンダリングするフィールドを決定します。
記事 (15/20)
この学習モジュールではこれまで、レコードを検索と Glide フォームの基本データリソースから作成されたデータリソースインスタンスについて説明してきました。
基本データリソースが、特定のユーザーエクスペリエンスコンポーネントに必要なデータを常に提供するとは限りません。アプリケーションのエクスペリエンスが必要とする、動的に決定されるデータを既存のデータリソースが提供できない場合、開発者はデータリソースを作成できます。データリソースを作成する一般的なプロセスは次のとおりです。
記事 (16/20)
データリソースを作成するには、[データ] パネルの [データリソースインスタンス] セクションにある [+ 追加] ボタンをクリックします。[データリソース] フライアウトの [+ 新規] ボタンをクリックします。
新しいデータリソースのタイプを選択します。
データリソースを定義するために必要な情報は、データリソースのタイプによって異なります。この例では、変換データリソースを定義します。[名前] フィールドの値は、[データリソース] 選択フライアウトで使用されます。
[プロパティ] フィールドを使用して、データリソースの構成フィールドを定義します。
[スクリプト] フィールドを使用して、データリソースから返されるデータを定義します。input オブジェクトには、[プロパティ] フィールドで定義されたプロパティが含まれています。その例は、input.userDisplayName です。
開発者向けのヒント:基本データリソース定義を見つけるには、Application Navigator を使用して [Now Experience フレームワーク] > [データ管理] > [<データリソースタイプ>] を開きます。
新しいデータリソースは、データリソースが作成されたアプリケーションスコープの一部です。データリソースの名前は、データリソース定義レコードから取得されます。
新しいデータリソースは、すべてのユーザーのアクセスを拒否します。
データリソースに権限を付与するアクセス制御を作成します。
注意:語 ux_data_broker は、データリソースの別名です。
基本データリソースと同様に、開発者により作成されたデータリソースの追加、構成、およびバインドを行います。
データリソースが作成されたアプリケーション内で、データリソースを見つけます。[データリソース] 列には、データリソースがタイプ別に整理されることに注意してください。[概要] 列には、データリソース定義レコードから値が自動的に読み込まれます。
データリソースを構成し、予期したデータをデータリソースが返すことを確認します。
データリソースを 1 つ以上のページ要素にバインドします。この例では、[定型化されたテキスト] コンポーネントの [テキスト] フィールドがハードコードではなく動的になっています。
演習 (17/20)
この演習では、テキスト文字列をカスタマイズして作成するデータリソースを作成します。新しいデータリソースをコンポーネントの [プライマリ値] フィールドにバインドします。
演習のこのセクションでは、変換データリソースを作成します。
演習のこのセクションでは、admin ロールを持つユーザーにテキスト文字列にユーザーを追加 (Add User to Text String) データリソースの使用を許可するアクセス制御を作成します。アクセス制御の詳細については、学習モジュール「Securing Applications Against Unauthorized Users (権限のないユーザーに対するアプリケーションの保護)」を参照してください。
演習のこのセクションでは、テキスト文字列にユーザーを追加 (Add User to Text String) データリソースのインスタンスを作成します。データリソースインスタンスを構成します。
演習のこのセクションでは、自分の次の NeedIt レコード (My Next NeedIt Record) コンポーネントのフィールドにデータリソースインスタンスをバインドします。
演習 (18/20)
開発者は、GitHub のようなソースコントロールアプリケーションを使用して、個人開発者インスタンス (PDI) の外部で変更をコミット (完了した作業を保存) できます。アプリケーションに対する変更内容をコミットして、作業をソースコントロールに保存します。
この演習では、このモジュールで完了した作業を GitHub リポジトリに保存します。
注意:ServiceNow が開発者プログラムの学習コンテンツで GitHub を使用する方法の詳細と、作業を保存する方法に関するビデオを見るには、『GitHub ガイド』を参照してください。
記事 (19/20)
データリソースの理解度を確認しましょう。自分の進行状況を評価するには、次の質問が役立ちます。質問ごとに回答を決定し、質問の任意の場所をクリックして回答を表示します。
質問:データリソースに関して、正しい文は次のどれですか?複数の回答が正解の場合があります。
回答:正解は 2、3、4、5 です。データリソースは単一のアプリケーション内で定義されますが、他のアプリケーションスコープで使用できます。
質問:[データリソース] パネルにあるセクションは次のどれですか?複数の回答が正解の場合があります。
回答:正解は 2、4、5 です。バインディングは構成フィールドで行われ、UI Builder のセクションではありません。[ページ] はページの定義に使用されるパネルであり、[データリソース] パネルの一部ではありません。
質問:正誤問題?データブローカーと ux_data_broker は、データリソースの同義語です。
回答:正解は正しいです。データリソース定義レコードは、データブローカーレコードです。データリソースのアクセス制御のアクセス制御タイプは ux_data_broker です。
質問:データリソースへのフィールドのバインドに関して、正しい文は次のどれですか?複数の回答が正解の場合があります。
回答:正解は 1、4、5 です。[動的なデータバインディング] ボタンのあるフィールドのみをデータリソースにバインドできます。クライアント側とサーバー側の両方のデータリソースをバインドできます。
質問:Glide フォームデータリソースとともに使用する UI Builder のコンポーネントは次のどれですか?複数の回答が正解の場合があります。
回答:正解は 3、4、5 です。フォームをレンダリングするコンポーネントで Glide フォームという基本データリソースを使用します。
質問:データリソースタイプに関して、正しい文は次のどれですか?複数の回答が正解の場合があります。
回答:すべて正解です。
質問:データリソースの作成ステップは次のどれですか?複数の回答が正解の場合があります。
回答:正解は 1、3、4 です。データリソースの読み込みアクセス制御を作成する必要はありません。実行アクセス制御を作成します。データリソースをコンポーネントにバインドすることはデータリソースを使用するステップであり、データリソースを作成するステップではありません。
記事 (20/20)
コアコンセプト: