GlideDynamicAttributeStore - Global

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 9 min. de leitura
  • A API GlideDynamicAttributeStore fornece acesso a um novo tipo de dados de armazenamento de atributo dinâmico integrado, 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 descrição do tipo de dados da coluna 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 – getDynamicAttributeValue(cadeia de caracteres groupAttrPath)

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

    Tabela 5. 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. 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 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 7. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 8. 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 9. 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:
    • Booliano (verdadeiro/falso)
    • Decimal
    • Número de ponto flutuante
    • GlideDate
    • GlideDateTime
    • Inteiro
    • Cadeia de caracteres
    Tabela 10. Retorna
    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 11. 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. 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 12. Retorna
    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 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. 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 14. Retorna
    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 15. 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 16. Retorna
    Tipo Descrição
    Objeto Objeto GlideDynamicAttributeStore atualizado.

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

    var das = new GlideDynamicAttributeStore();
    var otherValues = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValues(otherValues); 

    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 17. 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 18. Retorna
    Tipo Descrição
    vazio

    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 19. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 20. 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"}}