レコードへの一時的な属性の追加

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:2分
  • 一時的な属性とその値をレコードに格納します。

    始める前に

    必要なロール:なし

    動的属性ストアフィールドに属性を追加するには、ストアフィールドが配置されているテーブルへの書き込みアクセス権が必要です。

    このタスクについて

    テーブルに動的属性ストアフィールドを作成すると、各属性の動的属性レコードを定義しなくても、レコードへの属性の追加をすぐに開始できます。定義のない属性は一時的と見なされ、スクリプトやクエリで使用されると文字列タイプの値を持つものとして扱われます。

    手順

    1. 動的属性ストアフィールドを保持するテーブルに移動します。
    2. 新規 を選択してレコードを作成します。
    3. JSON を使用するか、API を使用して 1 つ以上の属性をフォームに直接追加します。
      オプション説明
      フォームに JSON を入力します
      1. カテゴリ参照フィールドで、使用する動的属性を含む動的カテゴリを選択します。
      2. 1 つ以上の属性とその値を入力します。たとえば、次のようになります。
        "screen_resolution":"2160p","screen_size":"75","screen_type":"OLED"
      setValue() を呼び出す GlideRecord API で setValue() を呼び出し、動的属性ストアフィールドにデータを送信します。例:
      var gr = new GlideRecord(‘products’);
      gr.setValue(‘television_specs->screen_resolution', '2160p');
      gr.setValue('television_specs->screen_size', '75');
      gr.setValue('television_specs->screen_type', 'OLED');
      gr.insert();

    タスクの結果

    1 つ以上の一時属性が store フィールドに追加され、各値が文字列として格納されます。ユーザーは、動的属性ストアフィールドに取り込まれた値を使用して、レコードのクエリまたは検索を行うことができます。たとえば、次のようになります。

    var gr = new GlideRecord(‘products’);
    gr.addQuery(‘television_specs->screen_type', ‘OLED’);
    gr.query();

    次のタスク

    各属性の正式な定義を作成するかどうかを決定します。正式な定義を指定すると、属性が一時的でなくなり、その動作を変更できます。この定義を指定するには、ストアフィールドが構成されている動的名前空間レコードに移動し、変更する属性の名前を使用して動的属性レコードを作成します。「動的属性の作成」を参照してください。

    属性の定義を変更しても、その属性に格納されているデータは変更されないことに注意してください。むしろ、システムがそのデータをどのように操作するかを変更するだけです。たとえば、文字列として定義された属性は、整数として定義された場合とは異なる方法でソートされます。

    経過時間を文字列としてソート:

    11
    19
    2
    25
    3

    経過時間を整数としてソート:

    2
    3
    11
    19
    25

    定義された型に対して無効である可能性がある保存されたデータは、その型に適した nil 値を持つものとして扱われます。たとえば、属性に "dog" の値を格納し、それを整数として正式に定義すると、属性に格納されたデータが "dog" のままであっても、その属性が使用されるすべてのクエリと計算で 0 が効果的に使用されます。