GlideDynamicAttributeStore - Global

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 10 min. de leitura
  • A API GlideDynamicAttributeStore fornece acesso a um tipo de dados de armazenamento de atributo dinâmico, semelhante a outros tipos de dados, como cadeia de caracteres, data ou data/hora.

    Esta API fornece métodos que permitem obter e definir atributos de esquema dinâmico em um objeto GlideDynamicAttribute. Esses atributos dinâmicos permitem que cada linha em uma tabela contenha campos diferentes. Os campos nos quais este tipo de dados é aplicado são mostrados como dynamic_attribute_store na coluna descrição do tipo de dados da tabela. Para obter mais detalhes sobre atributos dinâmicos, consulte Esquema dinâmico.

    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.

    A captura de tela a seguir mostra o grupo de atributos dinâmicos e os atributos dinâmicos associados que são usados nos exemplos de código para esta API. Os atributos definidos fornecem um exemplo de cada um dos tipos de dados compatíveis com a implementação do esquema dinâmico.
    Configuração do grupo de atributos dinâmicos

    Há métodos nesta API que têm a mesma funcionalidade que os métodos de esquema dinâmico na API GlideRecord. Use esta API se quiser definir o mesmo grupo de atributos dinâmicos em vários registros. Usando esta API, você pode preparar um objeto GlideDynamicAttributeStore com os atributos desejados e copiar esse objeto para vários GlideRecords usando os vários métodos setDynamicAttributeValues(). O uso de métodos de esquema dinâmico semelhantes na API GlideRecord executa as ações em um GlideRecord especificado.

    GlideDynamicAttributeStore – limpar ()

    Limpa todos os atributos e seus valores do objeto GlideDynamicAttributeStore.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 2. Retorna
    Tipo Descrição
    Nenhum(a)

    O exemplo de código a seguir mostra como chamar este método.

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg",24.5234);
    das.setDynamicAttributeValue("cars->total_miles",5324);    
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('das: ' + das.getDisplayValue());
    das.clear();
    gs.info('das: ' + das.getDisplayValue());

    Saída:

    *** Script: das: {
      "cars" : {
        "avg_mpg" : "24.5234",
        "color" : "blue",
        "cost" : "12000.5",
        "date_purchased" : "2024-04-19 08:29:52",
        "luxury" : "true",
        "make" : "Toyota",
        "model" : "CRV",
        "total_miles" : "5324"
      }
    }
    *** Script: das: null

    GlideDynamicAttributeStore – getDisplayValue()

    Retorna a representação do mapa JSON dos valores armazenados no objeto GlideDynamicAttributeStore atual.

    Este método retorna:
    • Valores boolianos como "verdadeiro" e "falso" em vez de 1 e 0.
    • Valores de data/hora na localidade do usuário em vez de UTC.
    Tabela 3. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 4. Retorna
    Tipo Descrição
    Cadeia de caracteres Mapa JSON legível dos valores armazenados no objeto GlideDynamicAttributeStore. O conteúdo desta cadeia de caracteres depende da definição do esquema dinâmico.

    O exemplo de código a seguir mostra como chamar este método.

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeValue("cars->total_miles", 5324);
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('Value returned by getValue(): ' + das.getValue());
    gs.info('Value returned by getDisplayValue(): ' + das.getDisplayValue());

    Saída:

    *** Script: Value returned by getValue(): {"cars":{"total_miles":5324,"color":"blue","model":"CRV","cost":12000.5,"luxury":1,"avg_mpg":24.5234,"make":"Toyota","date_purchased":"2024-04-19 15:33:23"}}
    *** Script: Value returned by getDisplayValue(): {
      "cars" : {
        "avg_mpg" : "24.5234",
        "color" : "blue",
        "cost" : "12000.5",
        "date_purchased" : "2024-04-19 08:33:23",
        "luxury" : "true",
        "make" : "Toyota",
        "model" : "CRV",
        "total_miles" : "5324"
      }
    }

    GlideDynamicAttributeStore – getDynamicAttributes()

    Retorna o conjunto de definições de atributo dinâmico presentes no armazenamento.

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 6. Retorna
    Tipo Descrição
    Matriz Matriz que contém todos os atributos dinâmicos transitórios e não transitórios presentes no armazenamento.
    • ObjetoGlideDynamicAttribute. Os atributos dinâmicos são definidos na tabela Atributo dinâmico [dynamic-attribute] com um tipo de dados e um sys-id.
    • ObjetoGlideTransientDynamicAttribute. Atributos dinâmicos transitórios são atributos dinâmicos que foram adicionados a um campo DynamicAttributeStore sem uma definição na tabela Atributo dinâmico [dynamic_attribute]. Atributos dinâmicos transitórios são tratados como cadeias de caracteres e não têm sys_id.
    Nota:
    A tabela Atributo dinâmico [dynamic_attribute] pode ser acessada navegando até Tudo > Esquema dinâmico > Grupos de atributos dinâmicos, selecionando um grupo e selecionando a guia Atributos dinâmicos.

    O exemplo a seguir mostra como recuperar atributos dinâmicos transitórios e não transitórios.

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue('a->b', 5);    // transient (adding here)
    das.setDynamicAttributeValue('a->c', 10);   // defined in dynamic_attribute table
    
    var attributes = das.getDynamicAttributes();
    gs.info(attributes);
    
    for (var i = 0; i < attributes.length; i++) {
        var attr = attributes[i];
    	
        gs.info("");
        gs.info("[" + i + "].getPath()      = " + attr.getPath());
        gs.info("[" + i + "].getName()      = " + attr.getName());
        gs.info("[" + i + "].getGroupName() = " + attr.getGroupName());
        gs.info("[" + i + "].getSysId()     = " + attr.getSysId());
        gs.info("[" + i + "].isTransient()  = " + attr.isTransient());
        gs.info("[" + i + "].getType()      = " + attr.getType());
    }

    Saída:

    *** Script: a->c,a->b
    *** Script: 
    *** Script: [0].getPath()      = a->c
    *** Script: [0].getName()      = c
    *** Script: [0].getGroupName() = a
    *** Script: [0].getSysId()     = 8bc411a94fc01210b8ddc0e552ce0b3c
    *** Script: [0].isTransient()  = false
    *** Script: [0].getType()      = integer
    *** Script: 
    *** Script: [1].getPath()      = a->b
    *** Script: [1].getName()      = b
    *** Script: [1].getGroupName() = a
    *** Script: [1].getSysId()     = undefined
    *** Script: [1].isTransient()  = true
    *** Script: [1].getType()      = string

    GlideDynamicAttributeStore – getDynamicAttributeValue(cadeia de caracteres groupAttrPath)

    Retorna o valor do atributo especificado no elemento de armazenamento de atributo dinâmico.

    Tabela 7. Parâmetros
    Nome Tipo Descrição
    groupAttrPath 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 Atributos dinâmicos [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: "carro->cor"

    Tabela 8. Retornos
    Tipo Descrição
    Objeto Valor do atributo de esquema dinâmico referenciado pelo caminho de grupo/atributo aprovado.

    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 das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeValue("cars->total_miles", 5324);
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('Value returned by getDynamicAttributeValue(): ' + das.getDynamicAttributeValue("cars->color"));
    gs.info('Value returned by getDynamicAttributeValue(): ' + das.getDynamicAttributeValue("cars->luxury"));
    

    Saída:

    *** Script: Value returned by getDynamicAttributeValue(): blue
    *** Script: Value returned by getDynamicAttributeValue(): 1

    GlideDynamicAttributeStore – getValue()

    Retorna a representação de cadeia de caracteres compacta do conteúdo do objeto GlideDynamicAttributeStore atual.

    Este método retorna:
    • Valores boolianos como 1 e 0 em vez de "verdadeiro" e "falso".
    • Valores de data/hora em UTC em vez da localidade do usuário.
    Tabela 9. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 10. Retorna
    Tipo Descrição
    Cadeia de caracteres Representação de cadeia de caracteres compacta dos valores armazenados no objeto GlideDynamicAttributeStore. O conteúdo desta cadeia de caracteres depende da definição do esquema dinâmico.

    O exemplo de código a seguir mostra como chamar este método.

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeValue("cars->total_miles", 5324);
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('Value returned by getValue(): ' + das.getValue());
    gs.info('Value returned by getDisplayValue(): ' + das.getDisplayValue());

    Saída:

    *** Script: Value returned by getValue(): {"cars":{"total_miles":5324,"color":"blue","model":"CRV","cost":12000.5,"luxury":1,"avg_mpg":24.5234,"make":"Toyota","date_purchased":"2024-04-19 15:33:23"}}
    *** Script: Value returned by getDisplayValue(): {
      "cars" : {
        "avg_mpg" : "24.5234",
        "color" : "blue",
        "cost" : "12000.5",
        "date_purchased" : "2024-04-19 08:33:23",
        "luxury" : "true",
        "make" : "Toyota",
        "model" : "CRV",
        "total_miles" : "5324"
      }
    }

    GlideDynamicAttributeStore – setDisplayValue(valor do objeto)

    Limpa o objeto GlideDynamicAttributeStore atual e armazena o mapa JSON passado no objeto GlideDynamicAttributeStore.

    Este método é funcionalmente igual ao GlideDynamicAttributeStore – setValue(valor do objeto), exceto pelo fato de que ele pressupõe que todos os valores de data são fornecidos na localidade do usuário.

    Tabela 11. Parâmetros
    Nome Tipo Descrição
    valor Objeto Valor a ser definido no objeto de armazenamento de atributo dinâmico atual.
    O valor passado deve ser de um dos seguintes tipos de dados:
    • Booleano (verdadeiro/falso)
    • Decimal
    • Número de ponto flutuante
    • GlideDate
    • GlideDateTime
    • Números inteiros
    • Cadeia de caracteres
    Tabela 12. Retornos
    Tipo Descrição
    Nenhum(a)

    O exemplo a seguir mostra como chamar este método.

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeValue("cars->total_miles", 5324);    
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('das: ' + das.getDisplayValue());
    das.setDisplayValue('{"cars":{"luxury":false}}');
    gs.info('das: ' + das.getDisplayValue());

    Saída:

    *** Script: das: {
      "cars" : {
        "avg_mpg" : "24.5",
        "color" : "blue",
        "cost" : "12000.0",
        "date_purchased" : "2024-04-19 14:16:49",
        "luxury" : "true",
        "make" : "Toyota",
        "model" : "CRV",
        "total_miles" : "5324.0"
      }
    }
    *** Script: das: {
      "cars" : {
        "luxury" : "false"
      }
    }

    GlideDynamicAttributeStore – setDynamicAttributeDisplayValue(cadeia de caracteres groupAttrPath, valor do objeto)

    Define o valor do atributo dinâmico localizado em um caminho especificado em um elemento de armazenamento de atributo dinâmico.

    Este método funciona da mesma forma que o método GlideDynamicAttributeStore - setDynamicAttributeValue(cadeia de caracteres groupAttrPath, valor do objeto), exceto na manipulação de valores boolianos e de data/hora. Este método pressupõe que todos os valores de data/hora são fornecidos na localidade do usuário.

    Tabela 13. Parâmetros
    Nome Tipo Descrição
    groupAttrPath 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 Atributos dinâmicos [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: "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:
    • Booleano (verdadeiro/falso)
    • Decimal
    • Número de ponto flutuante
    • GlideDate
    • GlideDateTime
    • Números inteiros
    • Cadeia de caracteres
    Tabela 14. Retornos
    Tipo Descrição
    Objeto Objeto GlideDynamicAttributeStore atualizado.

    Se o parâmetro groupAttrPath não for válido, o método emitirá um IllegalArgumentException.

    O exemplo de código a seguir mostra como chamar este método.

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeDisplayValue("cars->color","blue");
    das.setDynamicAttributeDisplayValue("cars->make","Toyota");
    das.setDynamicAttributeDisplayValue("cars->model","CRV");
    das.setDynamicAttributeDisplayValue("cars->luxury","true");
    das.setDynamicAttributeDisplayValue("cars->cost",12000.5);
    das.setDynamicAttributeDisplayValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeDisplayValue("cars->total_miles", 5324);    
    das.setDynamicAttributeDisplayValue("cars->date_purchased",new GlideDateTime());
    gs.info('das: ' + das.getDisplayValue());
    das.setDisplayValue('{"cars":{"luxury":"false"}}');
    gs.info('das: ' + das.getDisplayValue());

    Saída:

    *** Script: das: {
      "cars" : {
        "avg_mpg" : "24.5234",
        "color" : "blue",
        "cost" : "12000.5",
        "date_purchased" : "2024-04-19 10:40:45",
        "luxury" : "true",
        "make" : "Toyota",
        "model" : "CRV",
        "total_miles" : "5324"
      }
    }
    *** Script: das: {
      "cars" : {
        "luxury" : "false"
      }
    }

    GlideDynamicAttributeStore - setDynamicAttributeValue(cadeia de caracteres groupAttrPath, valor do objeto)

    Define o atributo dinâmico referenciado por um caminho de grupo/atributo especificado para um valor especificado.

    Tabela 15. Parâmetros
    Nome Tipo Descrição
    groupAttrPath 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 Atributos dinâmicos [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: "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:
    • Booleano (verdadeiro/falso)
    • Decimal
    • Número de ponto flutuante
    • GlideDate
    • GlideDateTime
    • Números inteiros
    • Cadeia de caracteres
    Tabela 16. Retornos
    Tipo Descrição
    Objeto Objeto GlideDynamicAttributeStore atualizado.

    Se o parâmetro groupAttrPath não for válido, o método emitirá um IllegalArgumentException.

    O exemplo de código a seguir mostra como chamar este método.

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeValue("cars->total_miles", 5324);
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('Value returned by getValue(): ' + das.getValue());
    gs.info('Value returned by getDisplayValue(): ' + das.getDisplayValue());

    Saída:

    *** Script: Value returned by getValue(): {"cars":{"total_miles":5324,"color":"blue","model":"CRV","cost":12000.5,"luxury":1,"avg_mpg":24.5234,"make":"Toyota","date_purchased":"2024-04-19 15:33:23"}}
    *** Script: Value returned by getDisplayValue(): {
      "cars" : {
        "avg_mpg" : "24.5234",
        "color" : "blue",
        "cost" : "12000.5",
        "date_purchased" : "2024-04-19 08:33:23",
        "luxury" : "true",
        "make" : "Toyota",
        "model" : "CRV",
        "total_miles" : "5324"
      }
    }

    GlideDynamicAttributeStore – setDynamicAttributeValues(valor do objeto)

    Define o armazenamento JSON interno do campo para a representação de cadeia de caracteres do valor passado. Se o valor passado for outra instância de um objeto GlideDynamicAttributeStore, ele copiará os valores desse objeto para o objeto atual.

    Tabela 17. Parâmetros
    Nome Tipo Descrição
    valor Objeto Objeto JSON a ser armazenado como o valor no GlideRecord associado. O método ignora todos os valores JSON inválidos.
    Tabela 18. Retornos
    Tipo Descrição
    Objeto Objeto GlideDynamicAttributeStore atualizado.

    O exemplo a seguir mostra como armazenar pares de atributo/valor em um objeto GlideDynamicAttributeStore e copiar esses mesmos valores de um objeto para outro.

    var das = new GlideDynamicAttributeStore();
    var otherValues = new GlideDynamicAttributeStore();
    otherValues.setDynamicAttributeValue("position->x", 5);
    otherValues.setDynamicAttributeValue("position->y", 6);
    
    das.setDynamicAttributeValues(otherValues);
    gs.info(das);

    Saída:

    {"_position":{"x":"5.0","y":"6.0"}}

    GlideDynamicAttributeStore – setValue(valor do objeto)

    Limpa o objeto GlideDynamicAttributeStore atual e armazena o mapa JSON passado nesse objeto GlideDynamicAttributeStore.

    Este método é funcionalmente igual ao GlideDynamicAttributeStore – setDisplayValue(valor do objeto), exceto que ele pressupõe que todos os valores de data estão em UTC.

    Tabela 19. Parâmetros
    Nome Tipo Descrição
    valor Objeto Objeto de mapa JSON a ser armazenado no objeto GlideDynamicAttributeStore.

    Por exemplo: '{"cars":{"cost":"12500"}}'

    Este método ignora todos os valores JSON inválidos.
    Tabela 20. Retornos
    Tipo Descrição
    Nenhum(a)

    O exemplo a seguir mostra como chamar este método.

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeValue("cars->total_miles", 5324);    
    das.setDynamicAttributeValue("cars->date_purchased", new GlideDateTime());
    gs.info('das: ' + das.getValue());
    das.setValue('{"cars":{"luxury":false}}');
    gs.info('das: ' + das.getValue());

    Saída:

    *** Script: das: {"cars":{"total_miles":5324,"color":"blue","model":"CRV","cost":12000.5,"luxury":true,"avg_mpg":24.5234,"make":"Toyota","date_purchased":"2024-04-19 17:28:47"}}
    *** Script: das: {"cars":{"luxury":false}}

    GlideDynamicAttributeStore – toString()

    Retorna o conteúdo do objeto GlideDynamicAttributeStore como uma cadeia de caracteres.

    Tabela 21. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 22. Retorna
    Tipo Descrição
    Cadeia de caracteres Objeto GlideDynamicAttribute como uma cadeia de caracteres.

    Por exemplo: '{"group":{"attr2":"true","attr1":"42.0"}}'

    O exemplo de código a seguir mostra como chamar este método.

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000);
    das.setDynamicAttributeValue("cars->avg_mpg",24.5);
    das.setDynamicAttributeValue("cars->total_miles",5324);    
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('das: ' + das.toString());

    Saída:

    *** Script: das: {"cars":{"cost":"12000.0","color":"blue","avg_mpg":"24.5","date_purchased":"2024-04-19 14:05:00","luxury":"true","model":"CRV","make":"Toyota","total_miles":"5324.123"}}