GlideDynamicAttributeStore - グローバル

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:29分
  • GlideDynamicAttributeStore API は、文字列、日付、日付/時刻などの他のデータ型と同様に、動的属性ストアデータ型へのアクセスを提供します。

    この API は、GlideDynamicAttribute オブジェクト内で動的スキーマ属性を取得および設定できるようにするメソッドを提供します。これらの動的属性により、テーブルの各行に異なるフィールドを含めることができます。このデータタイプが適用されるフィールドは、テーブルの列 データタイプの説明 内にdynamic_attribute_storeとして表示されます。動的属性の詳細については、「 動的スキーマ」を参照してください。

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

    次のスクリーンショットは、この API のコード例で使用される動的属性グループと関連する動的属性を示しています。定義された属性は、動的スキーマ実装がサポートする各データ型の例を示しています。
    動的属性グループのセットアップ

    この API には、 GlideRecord API の動的スキーマメソッドと同じ機能を持つメソッドがあります。複数のレコードに動的属性の同じグループを設定する場合は、この API を使用します。この API を使用すると、目的の属性を持つ GlideDynamicAttributeStore オブジェクトをステージングし、さまざまな setDynamicAttributeValues() メソッドを使用してそのオブジェクトを複数の GlideRecord にコピーできます。GlideRecord API で 類似の動的スキーマメソッド を使用して、指定された GlideRecord でアクションを実行します。

    GlideDynamicAttributeStore - clear()

    GlideDynamicAttributeStore オブジェクトからすべての属性とその値をクリアします。

    表 : 1. パラメーター
    名前 タイプ 説明
    なし
    表 : 2. 返される内容
    タイプ 説明
    なし

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

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg",24.5234);
    das.setDynamicAttributeValue("cars->total_miles",5324);    
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('das: ' + das.getDisplayValue());
    das.clear();
    gs.info('das: ' + das.getDisplayValue());

    出力:

    *** Script: das: {
      "cars" : {
        "avg_mpg" : "24.5234",
        "color" : "blue",
        "cost" : "12000.5",
        "date_purchased" : "2024-04-19 08:29:52",
        "luxury" : "true",
        "make" : "Toyota",
        "model" : "CRV",
        "total_miles" : "5324"
      }
    }
    *** Script: das: null

    GlideDynamicAttributeStore - getDisplayValue()

    現在の GlideDynamicAttributeStore オブジェクトに格納されている値の JSON マップ表現を返します。

    このメソッドは次を返します。
    • 1 と 0 の代わりに「true」と「false」のブール値。
    • UTC ではなくユーザーのロケールでの日付/時刻値。
    表 : 3. パラメーター
    名前 タイプ 説明
    なし
    表 : 4. 返される内容
    タイプ 説明
    文字列 GlideDynamicAttributeStore オブジェクトに格納されている値の、分かりやすい JSON マップ。この文字列の内容は、動的スキーマ定義によって異なります。

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

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeValue("cars->total_miles", 5324);
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('Value returned by getValue(): ' + das.getValue());
    gs.info('Value returned by getDisplayValue(): ' + das.getDisplayValue());

    出力:

    *** Script: Value returned by getValue(): {"cars":{"total_miles":5324,"color":"blue","model":"CRV","cost":12000.5,"luxury":1,"avg_mpg":24.5234,"make":"Toyota","date_purchased":"2024-04-19 15:33:23"}}
    *** Script: Value returned by getDisplayValue(): {
      "cars" : {
        "avg_mpg" : "24.5234",
        "color" : "blue",
        "cost" : "12000.5",
        "date_purchased" : "2024-04-19 08:33:23",
        "luxury" : "true",
        "make" : "Toyota",
        "model" : "CRV",
        "total_miles" : "5324"
      }
    }

    GlideDynamicAttributeStore - getDynamicAttributes()

    ストアに存在する動的属性定義のセットを返します。

    表 : 5. パラメーター
    名前 タイプ 説明
    なし
    表 : 6. 返される内容
    タイプ 説明
    アレイ ストアに存在するすべての一時的および非一時的な動的属性を含む配列。
    • GlideDynamicAttribute オブジェクト。動的属性は、データタイプと sys-id を使用して動的属性 [dynamic-attribute] テーブルで定義されます。
    • GlideTransientDynamicAttribute オブジェクト。一時的な動的属性は、動的属性 [dynamic_attribute] テーブルに定義なしで DynamicAttributeStore フィールドに追加された動的属性です。一時的な動的属性は文字列として処理され、sys_idはありません。
    注:
    動的属性 [dynamic_attribute] テーブルにアクセスするには、 All (すべて) > 動的なスキーマ > 動的属性グループをクリックし、グループを選択して [動的属性 ] タブを選択します。

    次の例は、一時的な動的属性と非一時的な動的属性を取得する方法を示しています。

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue('a->b', 5);    // transient (adding here)
    das.setDynamicAttributeValue('a->c', 10);   // defined in dynamic_attribute table
    
    var attributes = das.getDynamicAttributes();
    gs.info(attributes);
    
    for (var i = 0; i < attributes.length; i++) {
        var attr = attributes[i];
    	
        gs.info("");
        gs.info("[" + i + "].getPath()      = " + attr.getPath());
        gs.info("[" + i + "].getName()      = " + attr.getName());
        gs.info("[" + i + "].getGroupName() = " + attr.getGroupName());
        gs.info("[" + i + "].getSysId()     = " + attr.getSysId());
        gs.info("[" + i + "].isTransient()  = " + attr.isTransient());
        gs.info("[" + i + "].getType()      = " + attr.getType());
    }

    出力:

    *** Script: a->c,a->b
    *** Script: 
    *** Script: [0].getPath()      = a->c
    *** Script: [0].getName()      = c
    *** Script: [0].getGroupName() = a
    *** Script: [0].getSysId()     = 8bc411a94fc01210b8ddc0e552ce0b3c
    *** Script: [0].isTransient()  = false
    *** Script: [0].getType()      = integer
    *** Script: 
    *** Script: [1].getPath()      = a->b
    *** Script: [1].getName()      = b
    *** Script: [1].getGroupName() = a
    *** Script: [1].getSysId()     = undefined
    *** Script: [1].isTransient()  = true
    *** Script: [1].getType()      = string

    GlideDynamicAttributeStore:getDynamicAttributeValue(文字列 groupAttrPath)

    動的属性ストア要素内の指定された属性の値を返します。

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

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

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

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

    例: "car->color"

    表 : 8. 返される内容
    タイプ 説明
    オブジェクト 渡されたグループ/属性パスによって参照される動的スキーマ属性の値。

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

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

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeValue("cars->total_miles", 5324);
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('Value returned by getDynamicAttributeValue(): ' + das.getDynamicAttributeValue("cars->color"));
    gs.info('Value returned by getDynamicAttributeValue(): ' + das.getDynamicAttributeValue("cars->luxury"));
    

    出力:

    *** Script: Value returned by getDynamicAttributeValue(): blue
    *** Script: Value returned by getDynamicAttributeValue(): 1

    GlideDynamicAttributeStore - getValue()

    現在の GlideDynamicAttributeStore オブジェクトのコンテンツのコンパクトな文字列表現を返します。

    このメソッドは次を返します。
    • ブール値を「true」と「false」の代わりに 1 と 0 に設定します。
    • ユーザーのロケールではなく UTC での日付/時刻値。
    表 : 9. パラメーター
    名前 タイプ 説明
    なし
    表 : 10. 返される内容
    タイプ 説明
    文字列 GlideDynamicAttributeStore オブジェクトに格納されている値のコンパクトな文字列表現。この文字列の内容は、動的スキーマ定義によって異なります。

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

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeValue("cars->total_miles", 5324);
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('Value returned by getValue(): ' + das.getValue());
    gs.info('Value returned by getDisplayValue(): ' + das.getDisplayValue());

    出力:

    *** Script: Value returned by getValue(): {"cars":{"total_miles":5324,"color":"blue","model":"CRV","cost":12000.5,"luxury":1,"avg_mpg":24.5234,"make":"Toyota","date_purchased":"2024-04-19 15:33:23"}}
    *** Script: Value returned by getDisplayValue(): {
      "cars" : {
        "avg_mpg" : "24.5234",
        "color" : "blue",
        "cost" : "12000.5",
        "date_purchased" : "2024-04-19 08:33:23",
        "luxury" : "true",
        "make" : "Toyota",
        "model" : "CRV",
        "total_miles" : "5324"
      }
    }

    GlideDynamicAttributeStore - setDisplayValue(オブジェクト値)

    現在の GlideDynamicAttributeStore オブジェクトをクリアし、渡された JSON マップを GlideDynamicAttributeStore オブジェクトに保存します。

    このメソッドは、すべての日付値がユーザーのロケールで提供されることを前提としている点を除いて、機能的には GlideDynamicAttributeStore - setValue(オブジェクト値)と同じです。

    表 : 11. パラメーター
    名前 タイプ 説明
    value オブジェクト 現在の動的属性ストアオブジェクトに設定する値。
    渡される値は、次のいずれかのデータタイプである必要があります。
    • ブーリアン (True/False)
    • 10 進数
    • 浮動小数点数
    • GlideDate
    • GlideDateTime
    • 整数
    • 文字列
    表 : 12. 戻り値
    タイプ 説明
    なし

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

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeValue("cars->total_miles", 5324);    
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('das: ' + das.getDisplayValue());
    das.setDisplayValue('{"cars":{"luxury":false}}');
    gs.info('das: ' + das.getDisplayValue());

    出力:

    *** Script: das: {
      "cars" : {
        "avg_mpg" : "24.5",
        "color" : "blue",
        "cost" : "12000.0",
        "date_purchased" : "2024-04-19 14:16:49",
        "luxury" : "true",
        "make" : "Toyota",
        "model" : "CRV",
        "total_miles" : "5324.0"
      }
    }
    *** Script: das: {
      "cars" : {
        "luxury" : "false"
      }
    }

    GlideDynamicAttributeStore - setDynamicAttributeDisplayValue(String groupAttrPath, Object value)

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

    このメソッドは、ブール値と日付/時刻値の処理において GlideDynamicAttributeStore - setDynamicAttributeValue(String groupAttrPath, Object value) メソッドと同じように機能します。このメソッドは、すべての日付/時刻値がユーザーのロケールで指定されていることを前提としています。

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

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

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

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

    例: "car->color"

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

    groupAttrPath パラメーターが有効でない場合、メソッドは IllegalArgumentException をスローします。

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

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeDisplayValue("cars->color","blue");
    das.setDynamicAttributeDisplayValue("cars->make","Toyota");
    das.setDynamicAttributeDisplayValue("cars->model","CRV");
    das.setDynamicAttributeDisplayValue("cars->luxury","true");
    das.setDynamicAttributeDisplayValue("cars->cost",12000.5);
    das.setDynamicAttributeDisplayValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeDisplayValue("cars->total_miles", 5324);    
    das.setDynamicAttributeDisplayValue("cars->date_purchased",new GlideDateTime());
    gs.info('das: ' + das.getDisplayValue());
    das.setDisplayValue('{"cars":{"luxury":"false"}}');
    gs.info('das: ' + das.getDisplayValue());

    出力:

    *** Script: das: {
      "cars" : {
        "avg_mpg" : "24.5234",
        "color" : "blue",
        "cost" : "12000.5",
        "date_purchased" : "2024-04-19 10:40:45",
        "luxury" : "true",
        "make" : "Toyota",
        "model" : "CRV",
        "total_miles" : "5324"
      }
    }
    *** Script: das: {
      "cars" : {
        "luxury" : "false"
      }
    }

    GlideDynamicAttributeStore - setDynamicAttributeValue(String groupAttrPath, Object value)

    指定されたグループ/属性パスによって参照される動的属性を指定された値に設定します。

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

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

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

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

    例: "car->color"

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

    groupAttrPath パラメーターが有効でない場合、メソッドは IllegalArgumentException をスローします。

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

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeValue("cars->total_miles", 5324);
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('Value returned by getValue(): ' + das.getValue());
    gs.info('Value returned by getDisplayValue(): ' + das.getDisplayValue());

    出力:

    *** Script: Value returned by getValue(): {"cars":{"total_miles":5324,"color":"blue","model":"CRV","cost":12000.5,"luxury":1,"avg_mpg":24.5234,"make":"Toyota","date_purchased":"2024-04-19 15:33:23"}}
    *** Script: Value returned by getDisplayValue(): {
      "cars" : {
        "avg_mpg" : "24.5234",
        "color" : "blue",
        "cost" : "12000.5",
        "date_purchased" : "2024-04-19 08:33:23",
        "luxury" : "true",
        "make" : "Toyota",
        "model" : "CRV",
        "total_miles" : "5324"
      }
    }

    GlideDynamicAttributeStore:setDynamicAttributeValues(オブジェクト値)

    フィールドの内部 JSON ストレージを、渡された値の文字列表現に設定します。渡された値が GlideDynamicAttributeStore オブジェクトの別のインスタンスである場合は、そのオブジェクトから現在のオブジェクトに値がコピーされます。

    表 : 17. パラメーター
    名前 タイプ 説明
    value オブジェクト 関連する GlideRecord に値として格納する JSON オブジェクト。このメソッドは、無効な JSON 値を無視します。
    表 : 18. 戻り値
    タイプ 説明
    オブジェクト GlideDynamicAttributeStore オブジェクトを更新しました。

    次の例は、属性と値のペアを GlideDynamicAttributeStore オブジェクトに格納し、同じ値をあるオブジェクトから別のオブジェクトにコピーする方法を示しています。

    var das = new GlideDynamicAttributeStore();
    var otherValues = new GlideDynamicAttributeStore();
    otherValues.setDynamicAttributeValue("position->x", 5);
    otherValues.setDynamicAttributeValue("position->y", 6);
    
    das.setDynamicAttributeValues(otherValues);
    gs.info(das);

    出力:

    {"_position":{"x":"5.0","y":"6.0"}}

    GlideDynamicAttributeStore - setValue(オブジェクト値)

    現在の GlideDynamicAttributeStore オブジェクトをクリアし、渡された JSON マップをその GlideDynamicAttributeStore オブジェクトに格納します。

    このメソッドは、すべての日付値が UTC であることを前提としている点を除いて、機能的には GlideDynamicAttributeStore - setDisplayValue(オブジェクト値) と同じです。

    表 : 19. パラメーター
    名前 タイプ 説明
    value オブジェクト GlideDynamicAttributeStore オブジェクトに保存する JSON マップオブジェクト。

    例: '{"cars":{"cost":"12500"}}'

    このメソッドは、無効な JSON 値を無視します。
    表 : 20. 戻り値
    タイプ 説明
    なし

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

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeValue("cars->total_miles", 5324);    
    das.setDynamicAttributeValue("cars->date_purchased", new GlideDateTime());
    gs.info('das: ' + das.getValue());
    das.setValue('{"cars":{"luxury":false}}');
    gs.info('das: ' + das.getValue());

    出力:

    *** Script: das: {"cars":{"total_miles":5324,"color":"blue","model":"CRV","cost":12000.5,"luxury":true,"avg_mpg":24.5234,"make":"Toyota","date_purchased":"2024-04-19 17:28:47"}}
    *** Script: das: {"cars":{"luxury":false}}

    GlideDynamicAttributeStore:toString()

    GlideDynamicAttributeStore オブジェクトのコンテンツを文字列として返します。

    表 : 21. パラメーター
    名前 タイプ 説明
    なし
    表 : 22. 返される内容
    タイプ 説明
    文字列 文字列としての GlideDynamicAttribute オブジェクト。

    例:'{"group":{"attr2":"true","attr1":"42.0"}}'

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

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000);
    das.setDynamicAttributeValue("cars->avg_mpg",24.5);
    das.setDynamicAttributeValue("cars->total_miles",5324);    
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('das: ' + das.toString());

    出力:

    *** Script: das: {"cars":{"cost":"12000.0","color":"blue","avg_mpg":"24.5","date_purchased":"2024-04-19 14:05:00","luxury":"true","model":"CRV","make":"Toyota","total_miles":"5324.123"}}