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

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む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. 移動先 サービスポータル > サービスポータル設定 > Service Portal Designer.
      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 拡張テーブルでインスタンス レコードに移動することで構成を表示します。