GlideElementDynamicAttributeStore - グローバル
GlideElementDynamicAttributeStore API は、現在の Glide レコードの動的属性を管理するための便利なスクリプトメソッドを提供します。これらのメソッドを GlideRecord API と組み合わせて使用し、定義済みの動的属性値を取得および設定します。
この API を使用して動的属性を作成するには、dynamic_schema_writer ロールが必要です。この API を使用して動的データを読み取るには、dynamic_schema_reader ロールが必要です。
この API は GlideElement - グローバル API を拡張したものです。
動的属性の詳細については、「 Dynamic Schema」を参照してください。
GlideElementDynamicAttributeStore:getDynamicAttribute(String attributePath)
指定された動的属性パスにある動的属性を表す GlideElementDynamicAttribute オブジェクトを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| attributePath | 文字列 | 関連する動的スキーマ属性を特定するために使用する属性パス。 形式: 「group_name->attr_name」
例: |
| タイプ | 説明 |
|---|---|
| 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()
存在し、フィールドに格納されている動的属性定義のセットを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| アレイ | 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()
スキーマで指し示されている動的属性定義のセットを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| アレイ | 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)
動的属性ストア内の指定された属性パスにある動的属性の表示値を返します。表示値が利用できない場合は、内部値が返されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| attributePath | 文字列 | 関連する動的スキーマ属性を特定するために使用する属性パス。 形式: 「group_name->attr_name」
例: |
| タイプ | 説明 |
|---|---|
| オブジェクト | 関連付けられた動的属性の値 (人間が判読可能な形式)。 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」を参照してください。
| 名前 | タイプ | 説明 |
|---|---|---|
| attributePath | 文字列 | 関連する動的スキーマ属性を特定するために使用する属性パス。 形式: 「group_name->attr_name」
例: |
| タイプ | 説明 |
|---|---|
| オブジェクト | 渡された属性パスが指す動的属性の値。 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: 1GlideElementDynamicAttributeStore - setDynamicAttributeValue(String attributePath, Object value)
動的属性ストア内の指定された属性パスが指す属性を、指定された値に設定します。
動的属性の詳細については、「 Dynamic Schema」を参照してください。
| 名前 | タイプ | 説明 |
|---|---|---|
| attributePath | 文字列 | 関連する動的スキーマ属性を特定するために使用する属性パス。 形式: 「group_name->attr_name」
例: |
| 値 | オブジェクト | 指定された属性に設定する値。 注: 動的属性では、次のデータタイプのみがサポートされています。
|
| タイプ | 説明 |
|---|---|
| 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」を参照してください。
| 名前 | タイプ | 説明 |
|---|---|---|
| 値 | GlideDynamicAttributeStore | 現在の要素の動的スキーマで設定する値を含むオブジェクト。このオブジェクトで指定されていない値は更新されません。 |
| タイプ | 説明 |
|---|---|
| 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 要素の動的属性ストア内の指定されたパスにある動的属性の表示値を設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| attributePath | 文字列 | 関連する動的スキーマ属性を特定するために使用する属性パス。 形式: 「group_name->attr_name」
例: |
| 値 | オブジェクト | 現在の動的属性要素に設定する値。 渡される値は、次のいずれかのデータタイプである必要があります。
|
| タイプ | 説明 |
|---|---|
| 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 要素の動的属性に設定します。現在の要素のデータ型は、関連付けられたテーブルで 動的属性ストア に設定する必要があります。
| 名前 | タイプ | 説明 |
|---|---|---|
| 値 | GlideDynamicAttributeStore | 現在の要素の動的属性ストアに設定する表示値を含むオブジェクト。このオブジェクトで指定されていない表示値は更新されません。このオブジェクトには、格納する各属性の属性パスと表示値の両方が含まれている必要があります。 たとえば、次のようになります。 |
| タイプ | 説明 |
|---|---|
| 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();
}