GlideElementDynamicAttributeStore - グローバル
GlideElementDynamicAttributeStore API は、現在の Glide レコードの動的属性を管理するための便利なスクリプトメソッドを提供します。これらのメソッドを GlideRecord API と組み合わせて使用し、定義済みの動的属性値を取得および設定します。
この API を使用して動的属性を作成するには、dynamic_schema_writer ロールが必要です。この API を使用して動的データを読み取るには、dynamic_schema_reader ロールが必要です。
この API は GlideElement - グローバル API を拡張します。
動的属性の詳細については、「 Dynamic Schema」を参照してください。
GlideElementDynamicAttributeStore - getDynamicAttribute(文字列 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 - getDynamicAttributeDisplayValue(文字列 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(文字列 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(文字列 attributePath, オブジェクト値)
動的属性ストア内の指定された属性パスが指す属性を、指定された値に設定します。
動的属性の詳細については、「 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(文字列 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();
}