ウィジェットオプションスキーマ

  • リリースバージョン: Australia
  • 更新日 2026年04月28日
  • 所要時間:7分
  • ウィジェットインスタンスを使用すると、ユーザーはページに追加する各ウィジェットを一意に構成できます。オプションスキーマを使用して、ウィジェットのパラメーターを定義します。

    インスタンスオプションの保存

    ウィジェットを開発するときは、オプションスキーマを編集してウィジェットのパラメーターを作成したり、インスタンスオプションを格納するテーブルを作成したりできます。既存のオプションスキーマを編集すると、定義されたインスタンスオプションは、sp_instanceテーブルの [追加オプション]、[JSON 形式 ] フィールドに JSON 形式で保存されます。次のフィールドタイプを使用できます。

    • 文字列
    • ブーリアン
    • 整数
    • 参照
    • 選択肢
    • Field_list (テーブルに依存)
    • Field_name (テーブルに依存)
    • Glide_list

    オプションスキーマでサポートされていない他のフィールドタイプを使用するには、カスタムウィジェットオプションスキーマを保存する拡張テーブルを作成します。テーブルを使用すると、次のことが可能になります。

    • 詳細にカスタマイズされたフィールドを含む、任意の ServiceNow フィールドタイプをオプションスキーマに追加します。
    • 複雑なオプションスキーマを定義します。
    • インスタンスオプションを検索してフィルタリングします。
    注:
    テーブルにオプションを格納するとより複雑なオプションを定義できますが、この方法はオプション スキーマを編集するよりも保守が難しくなります。不要なテーブルを作成したり、サーバー呼び出しをウィジェットに追加したりすることを避けるため、可能であれば既存のオプションスキーマを編集してください。複雑なオプションや検索可能なオプションが必要な場合のみ、オプションをテーブルに格納します。

    ウィジェットでのオプションの使用

    options グローバル変数 を使用して、クライアントスクリプトとサーバースクリプトの両方からウィジェットのオプションにアクセスします。options.optionName を使用して、ウィジェットクライアントスクリプトまたはサーバースクリプトの任意のオプション値にアクセスできます。

    クライアントスクリプト
    function() {
      /* widget controller */
      var c = this;
        console.log(c.options.text_color) //Outputs the text_color option for this instance
    }
    サーバースクリプト
    (function() {
         $sp.log(options.text_color) //Logs the value of the text_color option to the browser console.
    })();

    デフォルトオプションの定義

    オプション値がインスタンスに設定される前は、そのオプション変数にアクセスすると未定義の値として表示されます。ウィジェットサーバースクリプトを使用して、オプションのデフォルト値を指定します。

    (function() {
      options.text_color=options.text_color||"blue";
      options.maximum_entry_count=options.maximum_entry_count||5;
    })

    ウィジェットオプションスキーマの編集

    ウィジェットインスタンスを使用すると、ユーザーはページに追加する各ウィジェットを一意に構成できます。オプションスキーマを編集して、ウィジェットの基本パラメーターを定義します。

    始める前に

    新しいウィジェットをクローン作成または作成している必要があります。

    必要なロール:admin または sp_admin

    手順

    1. 移動先 すべて > サービスポータル > サービスポータル構成 > ウィジェットエディター.
    2. オプションスキーマを設定するウィジェットを選択します。
    3. メニューアイコン ( メニューアイコン) をクリックし、[ オプションスキーマを編集] を選択します。
      このオプションは、ウィジェットを編集する権限を持つユーザーにのみ表示されます。
    4. [ + ] をクリックしてウィジェットオプションを追加します。
    5. ラベル、名前、タイプ、ヒント、およびフォームセクションを定義します。

      選択した タイプ に応じて、より多くのフィールドが表示されます。

      柔軟なウィジェットオプションを追加すると、より再利用可能なウィジェットを作成できます。デフォルト値を追加して、ユーザーが各ウィジェットオプションを理解できるようにすることができます。フォームセクションを選択しない場合、デフォルトは [ その他のオプション] に設定されます。

      フィールドが次のように入力されたウィジェットオプションスキーマフォーム:label=time zone, name=zone, type=string, hint=blank, default value=America/Denver
    6. [保存] をクリックします。
      定義したオプションスキーマは、sp_widgetテーブルの [オプションスキーマ ] フィールドに JSON 形式で保存されます。このオプションスキーマに基づいて、ウィジェットの各インスタンスは個別に定義されたインスタンスオプションを使用できます。
    7. サービスポータルデザイナーのページにウィジェットを追加して、オプションスキーマをテストします。
      1. 移動先 サービスポータル > サービスポータル構成 > サービスポータルデザイナー.
      2. ウィジェットをページに追加し、ウィジェットインスタンスの編集アイコンをクリックしてインスタンスオプションを表示します。
      3. ウィジェットインスタンスオプションを設定します
      4. sp_instanceテーブルのインスタンスレコードに移動して、構成を表示します。
        インスタンスオプションは、[ 追加オプション] の [JSON 形式 ] フィールドに JSON 形式で保存されます。

    インスタンスオプションをテーブルに保存する

    既存のオプションスキーマを編集する代わりに、ウィジェットインスタンスオプションを保存するテーブルを作成します。テーブルをウィジェットオプションスキーマとして使用する場合は、任意の ServiceNow フィールドタイプを使用してカスタムフィールドを定義したり、フィールドにフィルターを追加したり、インスタンスオプションを検索またはクエリしたりすることができます。

    始める前に

    必要なロール:admin または sp_admin

    このタスクについて

    カスタムオプションスキーマを定義するには、sp_instance拡張テーブルにフィールドを追加し、拡張テーブルをデータソースとして使用するようにウィジェットを設定します。拡張テーブルを使用すると、次のことができます。

    • 詳細にカスタマイズされたフィールドを含む、任意の ServiceNow フィールドタイプをオプションスキーマに追加します。
    • 複雑なウィジェットオプションを定義します。
    • インスタンスオプションを検索してフィルタリングします。
    注:
    テーブルにオプションを格納するとより複雑なオプションを定義できますが、この方法はオプション スキーマを編集するよりも保守が難しくなります。不要なテーブルを作成したり、サーバー呼び出しをウィジェットに追加したりすることを避けるため、可能であれば既存のオプションスキーマを編集してください。複雑なオプションや検索可能なオプションが必要な場合のみ、オプションをテーブルに格納します。

    手順

    1. カスタムオプションスキーマを格納するsp_instanceテーブルを拡張するテーブルを作成します。
      1. 移動先 システム定義 > テーブル.
      2. [新規] をクリックします。
      3. ラベルと名前を定義します。
      4. [ 拡張テーブル ] フィールドで、必要なフィールドを提供するsp_instanceテーブルを選択します。
        インスタンス テーブル 説明
        インスタンス [sp_instance] ベースインスタンスフィールドが含まれます。
        テーブル付きインスタンス [sp_instance_table] sp_instanceフィールドと、テーブルやフィルターなどのテーブルデータを表示するフィールドが含まれています。
      5. フォームを保存します。
    2. 拡張テーブルでカスタムフィールドを定義します。
      [列] リストに新しい列を追加することで、オプションスキーマで使用するフィールドタイプを定義 できます
    3. 拡張テーブルをデータソースとして使用するようにウィジェットを更新します。
      1. 移動先 サービスポータル > ウィジェット.
      2. カスタムオプションを作成するウィジェットを開きます。
      3. [ データテーブル ] フィールドで、sp_instance拡張テーブルを選択します。
        カードリスト [データテーブル] フィールドで選択されたインスタンス拡張テーブル。
    4. 目的のフィールドを表示するように拡張テーブルフォームを設定します。
      フォームで構成されたフィールドは、インスタンスオプションとして使用できます。
      1. 拡張テーブルフォーム <yourInstance>/<your_extenstion_table>.do に移動します。
      2. ヘッダーメニューを右クリックし、 構成 > フォームレイアウト.
      3. フォームにフィールドを追加します。
      4. [保存] をクリックします。
    5. 目的のフィールドをインスタンスオプションとして表示するようにウィジェットを設定します。
      1. 移動先 サービスポータル > ウィジェット.
      2. 拡張テーブルがデータソースとして設定されているウィジェットを開きます。
      3. [フィールド] スラッシュバケットを使用して、インスタンスオプションとして表示するフィールドを選択します。
        [自分のカスタムフィールド] が [選択済み] 列に移動しました。
      4. フォームを保存します。

    次のタスク

    サービスポータルデザイナーのページにウィジェットを追加して、オプションスキーマをテストします。ウィジェットインスタンスの編集アイコンをクリックして、インスタンスオプションを表示します。ウィジェットインスタンスオプションを設定した後、sp_instance拡張テーブルのインスタンスレコードに移動して構成を表示します。