GlideElementDynamicAttributeStore - Global
A API GlideElementDynamicAttributeStore fornece métodos de script convenientes para gerenciar atributos dinâmicos no registro do Glide atual. Use esses métodos em conjunto com a API GlideRecord para obter e definir valores de atributo dinâmico definidos.
Para usar esta API para criar atributos dinâmicos, você deve ter a função dynamic_schema_writer. Para ler dados dinâmicos usando esta API, você deve ter a função dynamic_schema_reader.
Esta API estende a GlideElement - Global API.
Para obter mais informações sobre atributos dinâmicos, consulte Dynamic Schema.
GlideElementDynamicAttributeStore – getDynamicAttribute(cadeia de caracteres attributePath)
Retorna um objeto GlideElementDynamicAttribute que representa o atributo dinâmico localizado no caminho de atributo dinâmico especificado.
| Nome | Tipo | Descrição |
|---|---|---|
| attributePath | Cadeia de caracteres | Caminho do atributo a ser usado para localizar o atributo de esquema dinâmico associado. Formato: "group_name->attr_name"
Por exemplo: |
| Tipo | Descrição |
|---|---|
| GlideElementDynamicAttribute | Objeto que contém os atributos dinâmicos especificados. Se o parâmetro attributePath contiver informações inválidas, retornará um valor nulo. |
O exemplo de código a seguir mostra como chamar este método.
//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()
Retorna o conjunto de definições de atributo dinâmico que estão presentes e armazenados em um campo.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Matriz | Matriz de objetos GlideDynamicAttribute ou GlideTransientDynamicAttribute. |
O exemplo a seguir mostra como recuperar o conteúdo de um atributo dinâmico armazenado, listar os atributos armazenados e os atributos em seu esquema.
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");
Saída:
*** 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()
Retorna o conjunto de definições de atributo dinâmico que são apontadas no esquema.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Matriz | Matriz de objetos GlideDynamicAttribute ou GlideTransientDynamicAttribute. |
O exemplo a seguir mostra como recuperar o conteúdo de um atributo dinâmico armazenado, listar os atributos armazenados e os atributos em seu esquema.
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");
Saída:
*** 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(cadeia de caracteres attributePath)
Retorna o valor de exibição do atributo dinâmico localizado em um caminho de atributo especificado em um armazenamento de atributo dinâmico. Se um valor de exibição não estiver disponível, ele retornará o valor interno.
| Nome | Tipo | Descrição |
|---|---|---|
| attributePath | Cadeia de caracteres | Caminho do atributo a ser usado para localizar o atributo de esquema dinâmico associado. Formato: "group_name->attr_name"
Por exemplo: |
| Tipo | Descrição |
|---|---|
| Objeto | Valor do atributo dinâmico associado em formato legível. Se o parâmetro attributePath contiver informações inválidas, retornará um valor nulo. |
O exemplo de código a seguir mostra como chamar este método.
//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(cadeia de caracteres attributePath)
Retorna o valor interno do atributo dinâmico apontado por um caminho de atributo passado em um armazenamento de atributo dinâmico.
Para obter mais informações sobre atributos dinâmicos, consulte Dynamic Schema.
| Nome | Tipo | Descrição |
|---|---|---|
| attributePath | Cadeia de caracteres | Caminho do atributo a ser usado para localizar o atributo de esquema dinâmico associado. Formato: "group_name->attr_name"
Por exemplo: |
| Tipo | Descrição |
|---|---|
| Objeto | Valor do atributo dinâmico apontado pelo caminho do atributo passado. Se o parâmetro attributePath contiver informações inválidas, retornará um valor nulo. |
O exemplo de código a seguir mostra como chamar este método.
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(cadeia de caracteres attributePath, valor de objeto)
Define o atributo apontado por um caminho de atributo especificado em um armazenamento de atributo dinâmico para um valor especificado.
Para obter mais informações sobre atributos dinâmicos, consulte Dynamic Schema.
| Nome | Tipo | Descrição |
|---|---|---|
| attributePath | Cadeia de caracteres | Caminho do atributo a ser usado para localizar o atributo de esquema dinâmico associado. Formato: "group_name->attr_name"
Por exemplo: |
| valor | Objeto | Valor a ser definido no atributo especificado. Nota: Para atributos dinâmicos, somente os seguintes tipos de dados são compatíveis:
|
| Tipo | Descrição |
|---|---|
| GlideElementDynamicAttributeStore | Retorna um objeto GlideElementDynamicAttributeStore que contém o valor especificado. Se o parâmetro groupAttributePath contiver informações inválidas, o atributo não será atualizado. |
O exemplo de código a seguir mostra como chamar este método.
//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(valores GlideDynamicAttributeStore)
Define os valores especificados no objeto GlideElementDynamicAttrbuteStore passado no armazenamento de atributos dinâmicos do elemento GlideRecord atual. O tipo de dados do elemento atual deve ser definido como Armazenamento de atributo dinâmico.
Para obter mais informações sobre atributos dinâmicos, consulte Dynamic Schema.
| Nome | Tipo | Descrição |
|---|---|---|
| valores | GlideDynamicAttributeStore | Objeto que contém os valores a serem definidos no esquema dinâmico do elemento atual. Valores não especificados neste objeto não são atualizados. |
| Tipo | Descrição |
|---|---|
| GlideElementDynamicAttributeStore | Objeto GlideElementDynamicAttributeStore atualizado. |
O exemplo de código a seguir mostra como chamar este método.
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();
Este exemplo de código insere o seguinte na coluna u_inc_dynamic_schema:
{
"cars" : {
"color" : "black",
"make" : "Honda",
"model" : "CRV"
}
}
GlideElementDynamicAttributeStore – setDynamicAttributeDisplayValue(cadeia de caracteres attributePath)
Define o valor de exibição do atributo dinâmico localizado em um caminho especificado no armazenamento de atributos dinâmicos do elemento GlideRecord atual.
| Nome | Tipo | Descrição |
|---|---|---|
| attributePath | Cadeia de caracteres | Caminho do atributo a ser usado para localizar o atributo de esquema dinâmico associado. Formato: "group_name->attr_name"
Por exemplo: |
| valor | Objeto | Valor a ser definido no elemento de atributo dinâmico atual. O valor passado deve ser de um dos seguintes tipos de dados:
|
| Tipo | Descrição |
|---|---|
| GlideElementDynamicAttributeStore | Objeto que contém o elemento glide atualizado. |
O exemplo de código a seguir mostra como chamar este método.
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);
Saída:
*** Script: Inserted: {"car":{"color":"Yellow","make":"Ford"}}
*** Script: Updated: {"car":{"color":"Green","make":"Ford","model":"Bronco"}}
O exemplo de código a seguir mostra como um valor de exibição booliano é armazenado como "1", mas é passado de volta como "verdadeiro".
var gr_Inc = new GlideRecord('incident');
gr_Inc.setDynamicAttributeDisplayValue('u_inc_dynamic_schema->u_cars->u_luxury', '1');
gr_Inc.insert()
Valor retornado:
{
"u_cars" : {
"u_luxury" : "true"
}
}
GlideElementDynamicAttributeStore - setDynamicAttributeDisplayValues(valores GlideDynamicAttributeStore)
Define os valores de exibição especificados no objeto GlideDynamicAttrbuteStore passado nos atributos dinâmicos do elemento GlideRecord atual. O tipo de dados do elemento atual deve ser definido como Armazenamento de atributo dinâmico na tabela associada.
| Nome | Tipo | Descrição |
|---|---|---|
| valores | GlideDynamicAttributeStore | Objeto que contém os valores de exibição a serem definidos no armazenamento de atributos dinâmicos do elemento atual. Os valores de exibição não especificados neste objeto não são atualizados. Este objeto deve conter o caminho do atributo e o valor de exibição de cada atributo a ser armazenado. Por exemplo: |
| Tipo | Descrição |
|---|---|
| GlideElementDynamicAttributeStore | Objeto que contém o elemento glide atualizado. |
O exemplo de código a seguir mostra como chamar este método.
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();
}