GlideDynamicAttributeStore - Global

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 10 min. de leitura
  • . GlideDynamicAttributeStore A API 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 desta 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 de grupo de atributos dinâmicos

    Esta API tem métodos que têm a mesma funcionalidade que os métodos de esquema dinâmico no GlideRecord API. 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, em seguida, copiar esse objeto para vários GlideRecords usando vários SetDynamicAttributeValues() métodos. Usando métodos de esquema dinâmico semelhantes em GlideRecord A API 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 transientes e não transientes presentes no armazenamento.
    • GlideDynamicAttribute objeto. Os atributos dinâmicos são definidos na tabela Atributo dinâmico [dynamic-attribute] com um tipo de dados e um sys-id.
    • GlideTransientDynamicAttribute objeto. Atributos dinâmicos transientes são atributos dinâmicos que foram adicionados a um DynamicAttributeStore Campo sem uma definição na tabela Atributo dinâmico [dynamic_attribute]. Atributos dinâmicos transientes são manipulados como cadeias de caracteres e não têm sys_id.

    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 + "].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].getSysId()     = 8bc411a94fc01210b8ddc0e552ce0b3c
    *** Script: [0].isTransient()  = false
    *** Script: [0].getType()      = integer
    *** Script: 
    *** Script: [1].getPath()      = a->b
    *** Script: [1].getName()      = b
    *** 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 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 de esquema dinâmico referenciado pelo caminho de grupo/atributo aprovado.

    . 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 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 a GlideDynamicAttributeStore - setValue(valor do objeto), exceto que presume 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 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 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 GlideDynamicAttributeStore - setDynamicAttributeValue(cadeia de caracteres groupAttrPath, valor do objeto) Método, exceto no tratamento de valores boolianos e de data/hora. Este método pressupõe que todos os valores de data/hora sejam 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 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 14. Retornos
    Tipo Descrição
    Objeto Objeto GlideDynamicAttributeStore atualizado.

    . groupAttrPatho parâmetro não é válido, o método gera 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 como 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 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 16. Retornos
    Tipo Descrição
    Objeto Objeto GlideDynamicAttributeStore atualizado.

    . groupAttrPatho parâmetro não é válido, o método gera 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 como a representação de cadeia de caracteres do valor aprovado. 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 a GlideDynamicAttributeStore - setDisplayValue(valor do objeto) Exceto que assume 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: "carros": "custo":"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.

    "Grupo": "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"}}