GlideElementDynamicAttributeStore - Global

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 8 min. de leitura
  • . GlideElementDynamicAttributeStore A API fornece métodos de script convenientes para gerenciar atributos dinâmicos no registro do Glide atual. Use esses métodos em conjunto com GlideRecord API 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 o. 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.

    Tabela 1. Parâmetros
    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"
    • group_name Nome do grupo ao qual o atributo está associado.

      Tabela: No campo Nome da tabela Grupo de atributos dinâmicos [dynamic_attribute_group] ou no campo Grupo da tabela Atributo dinâmico [dynamic_attribute].

    • attr_name Nome do atributo dinâmico no grupo dinâmico.

      Tabela: No campo Nome da tabela Atributo dinâmico [dynamic_attribute].

    Por exemplo: "car->cor"

    Tabela 2. Retornos
    Tipo Descrição
    GlideElementDynamicAttribute Objeto que contém os atributos dinâmicos especificados.

    . attributePatho parâmetro contém informações inválidas, retorna um 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.

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 4. Retorna
    Tipo Descrição
    Matriz Matriz de GlideDynamicAttribute ou GlideTransientDynamicAttribute objetos.

    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.

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 6. Retorna
    Tipo Descrição
    Matriz Matriz de GlideDynamicAttribute ou GlideTransientDynamicAttribute objetos.

    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.

    Tabela 7. Parâmetros
    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"
    • group_name Nome do grupo ao qual o atributo está associado.

      Tabela: No campo Nome da tabela Grupo de atributos dinâmicos [dynamic_attribute_group] ou no campo Grupo da tabela Atributo dinâmico [dynamic_attribute].

    • attr_name Nome do atributo dinâmico no grupo dinâmico.

      Tabela: No campo Nome da tabela Atributo dinâmico [dynamic_attribute].

    Por exemplo: "car->cor"

    Tabela 8. Retornos
    Tipo Descrição
    Objeto Valor do atributo dinâmico associado em formato legível.

    . attributePatho parâmetro contém informações inválidas, retorna um 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.

    Tabela 9. Parâmetros
    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"
    • group_name Nome do grupo ao qual o atributo está associado.

      Tabela: No campo Nome da tabela Grupo de atributos dinâmicos [dynamic_attribute_group] ou no campo Grupo da tabela Atributo dinâmico [dynamic_attribute].

    • attr_name Nome do atributo dinâmico no grupo dinâmico.

      Tabela: No campo Nome da tabela Atributo dinâmico [dynamic_attribute].

    Por exemplo: "car->cor"

    Tabela 10. Retornos
    Tipo Descrição
    Objeto Valor do atributo dinâmico apontado pelo caminho do atributo passado.

    . attributePatho parâmetro contém informações inválidas, retorna um 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);
    }
    Saída:
    
    *** Script: 1

    GlideElementDynamicAttributeStore - setDynamicAttributeValue(cadeia de caracteres attributePath, valor do objeto)

    Define o atributo apontado por um caminho de atributo especificado em um armazenamento de atributos dinâmicos como um valor especificado.

    Para obter mais informações sobre atributos dinâmicos, consulte Dynamic Schema.

    Tabela 11. Parâmetros
    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"
    • group_name Nome do grupo ao qual o atributo está associado.

      Tabela: No campo Nome da tabela Grupo de atributos dinâmicos [dynamic_attribute_group] ou no campo Grupo da tabela Atributo dinâmico [dynamic_attribute].

    • attr_name Nome do atributo dinâmico no grupo dinâmico.

      Tabela: No campo Nome da tabela Atributo dinâmico [dynamic_attribute].

    Por exemplo: "car->cor"

    valor Objeto Valor a ser definido no atributo especificado.
    Nota:
    Somente os seguintes tipos de dados são compatíveis com atributos dinâmicos:
    • Booleano (verdadeiro/falso)
    • Decimal
    • Número de ponto flutuante
    • GlideDate
    • GlideDateTime
    • Inteiro
    • Cadeia de caracteres
    Tabela 12. Retornos
    Tipo Descrição
    GlideElementDynamicAttributeStore Retorna um objeto GlideElementDynamicAttributeStore que contém o valor especificado.

    . groupAttributePatho parâmetro contém informações inválidas, o atributo não foi 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(GlideDynamicAttributeStore valores)

    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 atributos dinâmicos .

    Para obter mais informações sobre atributos dinâmicos, consulte Dynamic Schema.

    Tabela 13. Parâmetros
    Nome Tipo Descrição
    valores GlideDynamicAttributeStore Objeto que contém os valores a serem definidos no esquema dinâmico do elemento atual. Os valores não especificados neste objeto não são atualizados.
    Tabela 14. Retornos
    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.

    Tabela 15. Parâmetros
    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"
    • group_name Nome do grupo ao qual o atributo está associado.

      Tabela: No campo Nome da tabela Grupo de atributos dinâmicos [dynamic_attribute_group] ou no campo Grupo da tabela Atributo dinâmico [dynamic_attribute].

    • attr_name Nome do atributo dinâmico no grupo dinâmico.

      Tabela: No campo Nome da tabela Atributo dinâmico [dynamic_attribute].

    Por exemplo: "car->cor"

    valor Objeto Valor a ser definido no elemento de atributo dinâmico atual.
    O valor aprovado deve ser de um dos seguintes tipos de dados:
    • Booleano (verdadeiro/falso)
    • Decimal
    • Número de ponto flutuante
    • GlideDate
    • GlideDateTime
    • Inteiro
    • Cadeia de caracteres
    Tabela 16. Retornos
    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(GlideDynamicAttributeStore valores)

    Define os valores de exibição especificados no objeto GlideDynamicAttrbuteStore aprovado nos atributos dinâmicos do elemento GlideRecord atual. O tipo de dados do elemento atual deve ser definido como Armazenamento de atributos dinâmicos na tabela associada.

    Tabela 17. Parâmetros
    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. 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 para cada atributo a ser armazenado.
    Por exemplo:
    {
      "car":{
        "color":"Blue",
        "make":"Ford",
        "model":"Mustang"
      }
    }
    Tabela 18. Retornos
    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();
    }