GlideElementDynamicAttributeStore - Global

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 6 min. de leitura
  • 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.

    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. Localizado no campo Nome da tabela Grupo de atributos dinâmicos [dynamic_attribute_group] ou no campo Grupo da tabela Atributos dinâmicos [dynamic_attribute].
    • attr_name: nome do atributo dinâmico no grupo dinâmico. Localizado no campo Nome da tabela Atributo dinâmico [dynamic_attribute].

    Por exemplo: "carro->cor"

    Tabela 2. Retorna
    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 – 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 3. 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. Localizado no campo Nome da tabela Grupo de atributos dinâmicos [dynamic_attribute_group] ou no campo Grupo da tabela Atributos dinâmicos [dynamic_attribute].
    • attr_name: nome do atributo dinâmico no grupo dinâmico. Localizado no campo Nome da tabela Atributo dinâmico [dynamic_attribute].

    Por exemplo: "carro->cor"

    Tabela 4. Retorna
    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.

    Tabela 5. 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. Localizado no campo Nome da tabela Grupo de atributos dinâmicos [dynamic_attribute_group] ou no campo Grupo da tabela Atributos dinâmicos [dynamic_attribute].
    • attr_name: nome do atributo dinâmico no grupo dinâmico. Localizado no campo Nome da tabela Atributo dinâmico [dynamic_attribute].

    Por exemplo: "carro->cor"

    Tabela 6. Retorna
    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);
    }
    Saída:
    
    *** Script: 1

    GlideElementDynamicAttributeStore - 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.

    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. Localizado no campo Nome da tabela Grupo de atributos dinâmicos [dynamic_attribute_group] ou no campo Grupo da tabela Atributos dinâmicos [dynamic_attribute].
    • attr_name: nome do atributo dinâmico no grupo dinâmico. Localizado no campo Nome da tabela Atributo dinâmico [dynamic_attribute].

    Por exemplo: "carro->cor"

    valor Objeto Valor a ser definido no atributo especificado.
    Nota:
    Para atributos dinâmicos, somente os seguintes tipos de dados são compatíveis:
    • Booliano (verdadeiro/falso)
    • Decimal
    • Número de ponto flutuante
    • GlideDate
    • GlideDateTime
    • Inteiro
    • Cadeia de caracteres
    Tabela 8. Retorna
    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.

    Tabela 9. Parâmetros
    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.
    Tabela 10. Retorna
    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 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. Localizado no campo Nome da tabela Grupo de atributos dinâmicos [dynamic_attribute_group] ou no campo Grupo da tabela Atributos dinâmicos [dynamic_attribute].
    • attr_name: nome do atributo dinâmico no grupo dinâmico. Localizado no campo Nome da tabela Atributo dinâmico [dynamic_attribute].

    Por exemplo: "carro->cor"

    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:
    • Booliano (verdadeiro/falso)
    • Decimal
    • Número de ponto flutuante
    • GlideDate
    • GlideDateTime
    • Inteiro
    • Cadeia de caracteres
    Tabela 12. Retorna
    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.

    Tabela 13. 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. 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:
    {
      "car":{
        "color":"Blue",
        "make":"Ford",
        "model":"Mustang"
      }
    }
    Tabela 14. Retorna
    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();
    }