GlideElementDynamicAttributeStore : Global
Die GlideElementDynamicAttributeStore -API bietet praktische Skriptmethoden zum Verwalten dynamischer Attribute im aktuellen Glide-Datensatz. Verwenden Sie diese Methoden in Verbindung mit der GlideRecord- API, um definierte dynamische Attributwerte abzurufen und festzulegen.
Um diese API zum Erstellen dynamischer Attribute zu verwenden, benötigen Sie die Rolle „dynamic_schema_writer“. Um dynamische Daten mit dieser API zu lesen, benötigen Sie die Rolle „dynamic_schema_reader“.
Diese API erweitert die GlideElement : Global -API.
Weitere Informationen zu dynamischen Attributen finden Sie unter Dynamic Schema.
GlideElementDynamicAttributeStore - getDynamicAttribute(String attributePath)
Gibt ein GlideElementDynamicAttribute-Objekt zurück, das das dynamische Attribut darstellt, das sich unter dem angegebenen dynamischen Attributpfad befindet.
| Name | Typ | Beschreibung |
|---|---|---|
| attributePath | Zeichenfolge | Attributpfad zum Suchen des zugeordneten dynamischen Schemaattributs. Format: "group_name->attr_name"
Beispiel: |
| Typ | Beschreibung |
|---|---|
| GlideElementDynamicAttribute | Objekt, das die angegebenen dynamischen Attribute enthält. Wenn der Parameter attributePath ungültige Informationen enthält, gibt eine NULL zurück. |
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
//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()
Gibt den Satz der dynamischen Attributdefinitionen zurück, die in einem Feld vorhanden und gespeichert sind.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Array | Array von GlideDynamicAttribute- oder GlideTransientDynamicAttribute- Objekten. |
Das folgende Beispiel zeigt, wie Sie den Inhalt eines gespeicherten dynamischen Attributs abrufen, die gespeicherten Attribute und die Attribute in seinem Schema auflisten.
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");
Ausgabe:
*** 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()
Gibt den Satz der dynamischen Attributdefinitionen zurück, auf die im Schema verwiesen wird.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Array | Array von GlideDynamicAttribute- oder GlideTransientDynamicAttribute- Objekten. |
Das folgende Beispiel zeigt, wie Sie den Inhalt eines gespeicherten dynamischen Attributs abrufen, die gespeicherten Attribute und die Attribute in seinem Schema auflisten.
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");
Ausgabe:
*** 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)
Gibt den Anzeigewert des dynamischen Attributs zurück, das sich an einem angegebenen Attributpfad in einem dynamischen Attributspeicher befindet. Wenn ein Anzeigewert nicht verfügbar ist, wird der interne Wert zurückgegeben.
| Name | Typ | Beschreibung |
|---|---|---|
| attributePath | Zeichenfolge | Attributpfad zum Suchen des zugeordneten dynamischen Schemaattributs. Format: "group_name->attr_name"
Beispiel: |
| Typ | Beschreibung |
|---|---|
| Objekt | Wert für das zugeordnete dynamische Attribut im visuell lesbaren Format. Wenn der Parameter attributePath ungültige Informationen enthält, gibt eine NULL zurück. |
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
//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)
Gibt den internen Wert des dynamischen Attributs zurück, auf das ein übergebener Attributpfad innerhalb eines dynamischen Attributspeichers zeigt.
Weitere Informationen zu dynamischen Attributen finden Sie unter Dynamic Schema.
| Name | Typ | Beschreibung |
|---|---|---|
| attributePath | Zeichenfolge | Attributpfad zum Suchen des zugeordneten dynamischen Schemaattributs. Format: "group_name->attr_name"
Beispiel: |
| Typ | Beschreibung |
|---|---|
| Objekt | Wert des dynamischen Attributs, auf das der übergebene Attributpfad zeigt. Wenn der Parameter attributePath ungültige Informationen enthält, gibt eine NULL zurück. |
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
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)
Legt das Attribut, auf das ein angegebener Attributpfad in einem dynamischen Attributspeicher zeigt, auf einen angegebenen Wert fest.
Weitere Informationen zu dynamischen Attributen finden Sie unter Dynamic Schema.
| Name | Typ | Beschreibung |
|---|---|---|
| attributePath | Zeichenfolge | Attributpfad zum Suchen des zugeordneten dynamischen Schemaattributs. Format: "group_name->attr_name"
Beispiel: |
| Wert | Objekt | Wert, der im angegebenen Attribut festgelegt werden soll. Hinweis: Für dynamische Attribute werden nur die folgenden Datentypen unterstützt:
|
| Typ | Beschreibung |
|---|---|
| GlideElementDynamicAttributeStore | Gibt ein GlideElementDynamicAttributeStore-Objekt zurück, das den angegebenen Wert enthält. Wenn der Parameter groupAttributePath ungültige Informationen enthält, wird das Attribut nicht aktualisiert. |
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
//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-Werte)
Legt die im übergebenen GlideElementDynamicAttrputeStore-Objekt angegebenen Werte im dynamischen Attributspeicher des aktuellen GlideRecord-Elements fest. Der Datentyp des aktuellen Elements muss auf Dynamischer Attributspeicherfestgelegt werden.
Weitere Informationen zu dynamischen Attributen finden Sie unter Dynamic Schema.
| Name | Typ | Beschreibung |
|---|---|---|
| Werte | GlideDynamicAttributeStore | Objekt, das die im dynamischen Schema des aktuellen Elements festzulegenden Werte enthält. Werte, die in diesem Objekt nicht angegeben sind, werden nicht aktualisiert. |
| Typ | Beschreibung |
|---|---|
| GlideElementDynamicAttributeStore | GlideElementDynamicAttributeStore-Objekt aktualisiert. |
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
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();
In diesem Codebeispiel wird Folgendes in die Spalte u_inc_dynamic_schema eingefügt:
{
"cars" : {
"color" : "black",
"make" : "Honda",
"model" : "CRV"
}
}
GlideElementDynamicAttributeStore - setDynamicAttributeDisplayValue(String attributePath)
Legt den Anzeigewert des dynamischen Attributs fest, das sich an einem angegebenen Pfad im dynamischen Attributspeicher des aktuellen GlideRecord-Elements befindet.
| Name | Typ | Beschreibung |
|---|---|---|
| attributePath | Zeichenfolge | Attributpfad zum Suchen des zugeordneten dynamischen Schemaattributs. Format: "group_name->attr_name"
Beispiel: |
| Wert | Objekt | Wert, der im aktuellen dynamischen Attributelement festgelegt werden soll. Der übergebene Wert muss einen der folgenden Datentypen aufweisen:
|
| Typ | Beschreibung |
|---|---|
| GlideElementDynamicAttributeStore | Objekt, das das aktualisierte Glide-Element enthält. |
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
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);
Ausgabe:
*** Script: Inserted: {"car":{"color":"Yellow","make":"Ford"}}
*** Script: Updated: {"car":{"color":"Green","make":"Ford","model":"Bronco"}}
Das folgende Codebeispiel zeigt, wie ein boolescher Anzeigewert als „1“ gespeichert, aber als „wahr“ zurückgegeben wird.
var gr_Inc = new GlideRecord('incident');
gr_Inc.setDynamicAttributeDisplayValue('u_inc_dynamic_schema->u_cars->u_luxury', '1');
gr_Inc.insert()
Zurückgegebener Wert:
{
"u_cars" : {
"u_luxury" : "true"
}
}
GlideElementDynamicAttributeStore - setDynamicAttributeDisplayValues(GlideDynamicAttributeStore-Werte)
Legt die im übergebenen GlideDynamicAttrputeStore-Objekt angegebenen Anzeigewerte in den dynamischen Attributen des aktuellen GlideRecord-Elements fest. Der Datentyp des aktuellen Elements muss in der zugehörigen Tabelle auf „Dynamischer Attributspeicher“ festgelegt werden.
| Name | Typ | Beschreibung |
|---|---|---|
| Werte | GlideDynamicAttributeStore | Objekt, das die Anzeigewerte enthält, die im dynamischen Attributspeicher des aktuellen Elements festgelegt werden sollen. Anzeigewerte, die in diesem Objekt nicht angegeben sind, werden nicht aktualisiert. Dieses Objekt muss sowohl den Attributpfad als auch den Anzeigewert für jedes zu speichernde Attribut enthalten. Zum Beispiel: |
| Typ | Beschreibung |
|---|---|
| GlideElementDynamicAttributeStore | Objekt, das das aktualisierte Glide-Element enthält. |
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
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();
}