GlideElementDynamicAttributeStore - グローバル

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:18分
  • GlideElementDynamicAttributeStore API は、現在の Glide レコードの動的属性を管理するための便利なスクリプトメソッドを提供します。これらのメソッドを GlideRecord API と組み合わせて使用し、定義済みの動的属性値を取得および設定します。

    この API を使用して動的属性を作成するには、dynamic_schema_writer ロールが必要です。この API を使用して動的データを読み取るには、dynamic_schema_reader ロールが必要です。

    この API は GlideElement - グローバル API を拡張したものです。

    動的属性の詳細については、「 Dynamic Schema」を参照してください。

    GlideElementDynamicAttributeStore:getDynamicAttribute(String attributePath)

    指定された動的属性パスにある動的属性を表す GlideElementDynamicAttribute オブジェクトを返します。

    表 : 1. パラメーター
    名前 タイプ 説明
    attributePath 文字列 関連する動的スキーマ属性を特定するために使用する属性パス。
    形式: 「group_name->attr_name」
    • group_name:属性が関連付けられているグループの名前。

      テーブル:動的属性グループ [dynamic_attribute_group] テーブルの [名前] フィールド、または動的属性 [dynamic_attribute] テーブルの [グループ] フィールド。

    • attr_name:動的グループ内の動的属性の名前。

      テーブル:動的属性 [dynamic_attribute] テーブルの [名前] フィールド。

    例: "car->color"

    表 : 2. 返される内容
    タイプ 説明
    GlideElementDynamicAttribute 指定された動的属性を含むオブジェクト。

    attributePathパラメーターに無効な情報が含まれている場合は、null を返します。

    次のコード例は、このメソッドを呼び出す方法を示しています。

    //Gets all the values of the make attribute from the u_inc_dynamic_schema dynamic attribute store column on the incident table
    var gr_Inc = new GlideRecord('incident');
    gr_Inc.query();
    while(gr_Inc.next()) {
        var attr = gr.getDynamicAttribute('inc_dynamic_schema->cars->make');
        gs.info(attr.getValue());
    }
    
    //You can also use if(gr_Inc.next()) if you don't want all the values
    var gr_Inc = new GlideRecord('incident');
    gr_Inc.query();
    if(gr_Inc.next()) {
        var attr = gr_Inc.getDynamicAttribute('inc_dynamic_schema->cars->make');
        gs.info(attr.getValue());
    }

    GlideElementDynamicAttributeStore - getDynamicAttributesInStore()

    存在し、フィールドに格納されている動的属性定義のセットを返します。

    表 : 3. パラメーター
    名前 タイプ 説明
    なし
    表 : 4. 返される内容
    タイプ 説明
    アレイ GlideDynamicAttribute または GlideTransientDynamicAttribute オブジェクトのアレイ。

    次の例は、格納された動的属性の内容を取得し、格納された属性とそのスキーマ内の属性を一覧表示する方法を示しています。

    var record = new GlideRecord('cool_thing');
    record.get('number', 'COOL0000005');
    
    gs.info("Store Contents:\n" + JSON.stringify(JSON.parse(record.store1), null, 2) + "\n");
    gs.info("Attributes in Store:\n" + record.store1.getDynamicAttributesInStore() + "\n");
    gs.info("Attributes in Schema:\n" + record.store1.getDynamicAttributesInSchema() + "\n");

    出力:

    *** Script: Store Contents:
    {
      "_a": {
        "b": "hello world"
      },
      "_group1": {
        "integer1": "5"
      },
      "_group2": {
        "integer1": "10",
        "string1": "hello"
      }
    }
    
    *** Script: Attributes in Store:
    a->b,group1->integer1,group2->integer1,group2->string1
    
    *** Script: Attributes in Schema:
    group1->integer1,group1->string1,group2->integer1

    GlideElementDynamicAttributeStore:getDynamicAttributesInSchema()

    スキーマで指し示されている動的属性定義のセットを返します。

    表 : 5. パラメーター
    名前 タイプ 説明
    なし
    表 : 6. 返される内容
    タイプ 説明
    アレイ GlideDynamicAttribute または GlideTransientDynamicAttribute オブジェクトのアレイ。

    次の例は、格納された動的属性の内容を取得し、格納された属性とそのスキーマ内の属性を一覧表示する方法を示しています。

    var record = new GlideRecord('cool_thing');
    record.get('number', 'COOL0000005');
    
    gs.info("Store Contents:\n" + JSON.stringify(JSON.parse(record.store1), null, 2) + "\n");
    gs.info("Attributes in Store:\n" + record.store1.getDynamicAttributesInStore() + "\n");
    gs.info("Attributes in Schema:\n" + record.store1.getDynamicAttributesInSchema() + "\n");

    出力:

    *** Script: Store Contents:
    {
      "_a": {
        "b": "hello world"
      },
      "_group1": {
        "integer1": "5"
      },
      "_group2": {
        "integer1": "10",
        "string1": "hello"
      }
    }
    
    *** Script: Attributes in Store:
    a->b,group1->integer1,group2->integer1,group2->string1
    
    *** Script: Attributes in Schema:
    group1->integer1,group1->string1,group2->integer1

    GlideElementDynamicAttributeStore:getDynamicAttributeDisplayValue(String attributePath)

    動的属性ストア内の指定された属性パスにある動的属性の表示値を返します。表示値が利用できない場合は、内部値が返されます。

    表 : 7. パラメーター
    名前 タイプ 説明
    attributePath 文字列 関連する動的スキーマ属性を特定するために使用する属性パス。
    形式: 「group_name->attr_name」
    • group_name:属性が関連付けられているグループの名前。

      テーブル:動的属性グループ [dynamic_attribute_group] テーブルの [名前] フィールド、または動的属性 [dynamic_attribute] テーブルの [グループ] フィールド。

    • attr_name:動的グループ内の動的属性の名前。

      テーブル:動的属性 [dynamic_attribute] テーブルの [名前] フィールド。

    例: "car->color"

    表 : 8. 返される内容
    タイプ 説明
    オブジェクト 関連付けられた動的属性の値 (人間が判読可能な形式)。

    attributePathパラメーターに無効な情報が含まれている場合は、null を返します。

    次のコード例は、このメソッドを呼び出す方法を示しています。

    //Gets all the display values of the luxury attribute from the inc_dynamic_schema dynamic attribute store column on the incident table
    var gr_Inc = new GlideRecord('incident');
    gr_Inc.query();
    while(gr_Inc.next()) {
        var attr = gr_Inc.getDynamicAttributeDisplayValue('inc_dynamic_schema->cars->luxury');
        gs.info(attr);
    }
    
    //You can also use if(gr.next()) if you don't want all the values
    var gr_Inc = new GlideRecord('incident');
    gr_Inc.query();
    
    if(gr_Inc.next()) {
        var attr = gr_Inc.getDynamicAttributeDisplayValue('inc_dynamic_schema->cars->luxury');
        gs.info(attr);
    }

    GlideElementDynamicAttributeStore:getDynamicAttributeValue(String attributePath)

    動的属性ストア内で渡された属性パスが指す動的属性の内部値を返します。

    動的属性の詳細については、「 Dynamic Schema」を参照してください。

    表 : 9. パラメーター
    名前 タイプ 説明
    attributePath 文字列 関連する動的スキーマ属性を特定するために使用する属性パス。
    形式: 「group_name->attr_name」
    • group_name:属性が関連付けられているグループの名前。

      テーブル:動的属性グループ [dynamic_attribute_group] テーブルの [名前] フィールド、または動的属性 [dynamic_attribute] テーブルの [グループ] フィールド。

    • attr_name:動的グループ内の動的属性の名前。

      テーブル:動的属性 [dynamic_attribute] テーブルの [名前] フィールド。

    例: "car->color"

    表 : 10. 返される内容
    タイプ 説明
    オブジェクト 渡された属性パスが指す動的属性の値。

    attributePathパラメーターに無効な情報が含まれている場合は、null を返します。

    次のコード例は、このメソッドを呼び出す方法を示しています。

    var gr_Inc = new GlideRecord('incident');
    gr_Inc.query();
    
    while(gr_Inc.next()) {
        var attr = gr_Inc.getDynamicAttributeValue('inc_dynamic_schema->cars->luxury');
        gs.info(attr);
    }
    出力:
    
    *** Script: 1

    GlideElementDynamicAttributeStore - setDynamicAttributeValue(String attributePath, Object value)

    動的属性ストア内の指定された属性パスが指す属性を、指定された値に設定します。

    動的属性の詳細については、「 Dynamic Schema」を参照してください。

    表 : 11. パラメーター
    名前 タイプ 説明
    attributePath 文字列 関連する動的スキーマ属性を特定するために使用する属性パス。
    形式: 「group_name->attr_name」
    • group_name:属性が関連付けられているグループの名前。

      テーブル:動的属性グループ [dynamic_attribute_group] テーブルの [名前] フィールド、または動的属性 [dynamic_attribute] テーブルの [グループ] フィールド。

    • attr_name:動的グループ内の動的属性の名前。

      テーブル:動的属性 [dynamic_attribute] テーブルの [名前] フィールド。

    例: "car->color"

    オブジェクト 指定された属性に設定する値。
    注:
    動的属性では、次のデータタイプのみがサポートされています。
    • ブーリアン (True/False)
    • 10 進数
    • 浮動小数点数
    • GlideDate
    • GlideDateTime
    • 整数
    • 文字列
    表 : 12. 返される内容
    タイプ 説明
    GlideElementDynamicAttributeStore 指定された値を含む GlideElementDynamicAttributeStore オブジェクトを返します。

    groupAttributePathパラメーターに無効な情報が含まれている場合、属性は更新されません。

    次のコード例は、このメソッドを呼び出す方法を示しています。

    //This simple example inserts a make attribute on the inc_dynamic_schema column where the value of the make attribute is Ford.
    var gr_Inc = new GlideRecord('incident');
    gr_Inc.setDynamicAttributeValue('inc_dynamic_schema->cars->make', 'Ford');
    gr_Inc.insert();

    GlideElementDynamicAttributeStore:setDynamicAttributeValues(GlideDynamicAttributeStore の値)

    渡された GlideElementDynamicAttrbuteStore オブジェクトで指定された値を、現在の GlideRecord 要素の動的属性ストアに設定します。現在の要素のデータ型は 、動的属性ストアに設定する必要があります。

    動的属性の詳細については、「 Dynamic Schema」を参照してください。

    表 : 13. パラメーター
    名前 タイプ 説明
    GlideDynamicAttributeStore 現在の要素の動的スキーマで設定する値を含むオブジェクト。このオブジェクトで指定されていない値は更新されません。
    表 : 14. 戻り値
    タイプ 説明
    GlideElementDynamicAttributeStore GlideElementDynamicAttributeStore オブジェクトを更新しました。

    次のコード例は、このメソッドを呼び出す方法を示しています。

    var gr_Inc = new GlideRecord('incident');
    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color", "black");
    das.setDynamicAttributeValue("cars->make","Honda");
    das.setDynamicAttributeValue("cars->model","CRV");
    gr_Inc.setDynamicAttributeValues('inc_dynamic_schema', das);
    gr_Inc.insert();

    このコード例では、u_inc_dynamic_schema 列に以下を挿入します。

    {
      "cars" : {
        "color" : "black",
        "make" : "Honda",
        "model" : "CRV"
      }
    }

    GlideElementDynamicAttributeStore:setDynamicAttributeDisplayValue(String attributePath)

    現在の GlideRecord 要素の動的属性ストア内の指定されたパスにある動的属性の表示値を設定します。

    表 : 15. パラメーター
    名前 タイプ 説明
    attributePath 文字列 関連する動的スキーマ属性を特定するために使用する属性パス。
    形式: 「group_name->attr_name」
    • group_name:属性が関連付けられているグループの名前。

      テーブル:動的属性グループ [dynamic_attribute_group] テーブルの [名前] フィールド、または動的属性 [dynamic_attribute] テーブルの [グループ] フィールド。

    • attr_name:動的グループ内の動的属性の名前。

      テーブル:動的属性 [dynamic_attribute] テーブルの [名前] フィールド。

    例: "car->color"

    オブジェクト 現在の動的属性要素に設定する値。
    渡される値は、次のいずれかのデータタイプである必要があります。
    • ブーリアン (True/False)
    • 10 進数
    • 浮動小数点数
    • GlideDate
    • GlideDateTime
    • 整数
    • 文字列
    表 : 16. 戻り値
    タイプ 説明
    GlideElementDynamicAttributeStore 更新された Glide 要素を含むオブジェクト。

    次のコード例は、このメソッドを呼び出す方法を示しています。

    var grFleet = new GlideRecord('u_car_fleet');
    grFleet.setDynamicAttributeValue('u_dyn_attr_store', 'car->color', 'Yellow');
    grFleet.setDynamicAttributeValue('u_dyn_attr_store', 'car->make', 'Ford');
    var sysId = grFleet.insert();
    gs.info("Inserted: " + grFleet.u_dyn_attr_store);
    
    var daStore = new GlideDynamicAttributeStore();
    daStore.setDynamicAttributeValue('car->color', 'Green');
    daStore.setDynamicAttributeValue('car->model', 'Bronco');
    
    var geDynAttrStore = grFleet.getElement('u_dyn_attr_store');
    geDynAttrStore.setDynamicAttributeDisplayValues(daStore);
    grFleet.update();
    gs.info("Updated:  " + grFleet.u_dyn_attr_store);

    出力:

    *** Script: Inserted: {"car":{"color":"Yellow","make":"Ford"}}
    *** Script: Updated:  {"car":{"color":"Green","make":"Ford","model":"Bronco"}}

    次のコード例は、ブール表示値が "1" として格納され、"true" として返される方法を示しています。

     var gr_Inc = new GlideRecord('incident');
    gr_Inc.setDynamicAttributeDisplayValue('u_inc_dynamic_schema->u_cars->u_luxury', '1');
    gr_Inc.insert()

    戻り値:

    {
      "u_cars" : {
        "u_luxury" : "true"
      }
    }

    GlideElementDynamicAttributeStore:setDynamicAttributeDisplayValues(GlideDynamicAttributeStore の値)

    渡された GlideDynamicAttrbuteStore オブジェクトで指定された表示値を、現在の GlideRecord 要素の動的属性に設定します。現在の要素のデータ型は、関連付けられたテーブルで 動的属性ストア に設定する必要があります。

    表 : 17. パラメーター
    名前 タイプ 説明
    GlideDynamicAttributeStore 現在の要素の動的属性ストアに設定する表示値を含むオブジェクト。このオブジェクトで指定されていない表示値は更新されません。このオブジェクトには、格納する各属性の属性パスと表示値の両方が含まれている必要があります。
    たとえば、次のようになります。
    {
      "car":{
        "color":"Blue",
        "make":"Ford",
        "model":"Mustang"
      }
    }
    表 : 18. 返される内容
    タイプ 説明
    GlideElementDynamicAttributeStore 更新された Glide 要素を含むオブジェクト。

    次のコード例は、このメソッドを呼び出す方法を示しています。

    var daStore = new GlideDynamicAttributeStore();
    daStore.setDynamicAttributeValue('car->make', 'Ford');
    daStore.setDynamicAttributeValue('car->model', 'Mustang');
    daStore.setDynamicAttributeValue('car->color', 'Blue');
    gs.info("daStore: " + daStore);
    
    var gr_Car = new GlideRecord('u_car_fleet');
    gr_Car.query();
    while(gr_Car.next()) {
      var glideElement = gr_Car.getElement('u_dyn_attr_store');
      glideElement.setDynamicAttributeValues(daStore);
      gr_Car.update();
    }