Funções ColumnNames e Column
Aplica-se a: Aplicativos de tela CLI de aplicativos Power Platform controlados por modelo
Obtém os nomes e valores das colunas de um objeto sem tipo.
Descrição
A função ColumnNames devolve os nomes de todas as colunas de um registo sem tipo, devolvendo uma tabela com todos os nomes desse registo.
A função Column devolve o valor de uma propriedade a partir de um registo sem tipo com o nome de coluna indicado. O valor é devolvido como um objeto sem tipo.
As funções ColumnNames e Column devolvem erros se o objeto sem tipo não representar um registo (isto é, se representa uma tabela ou um valor escalar ou primitivo).
Sintaxe
ColumnNames( UntypedRecord )
- UntypedRecord – Obrigatório. Um objeto sem tipo que representa um registo.
Column(UntypedRecord,ColumnName )
- UntypedRecord – Obrigatório. Um objeto sem tipo que representa um registo.
- ColumnName - Obrigatório. O nome da coluna a ser obtida do registo fornecido.
Exemplos
Aceder a valores de campo
Tendo em atenção a seguinte cadeia JSON numa variável denominada JsonString
{ "name": "Seattle", "population": 737000 }
A fórmula seguinte devolve uma tabela de coluna única com uma coluna
Value
que contém os seguintes valores: "nome", "população":ColumnNames( ParseJSON( JsonString ) )
A fórmula seguinte obtém o número
737000
:Value( Column( ParseJSON( JsonString ), "population" ) )
2.1. Tenha em atenção que este é semelhante ao operador
.
para registos sem tipo, mas o nome da coluna não tem de ser conhecido de antemão.A fórmula seguinte obtém o valor de texto
"name: Seattle, population: 737000"
:With( { untyped: ParseJSON( JsonString ) }, Concat( ColumnNames( untyped ), $"{Value}: {Column( untyped, Value )}", ", "))
Espaços em branco
Tendo em atenção a seguinte cadeia JSON numa variável denominada JsonString
{ "text": "text value" , "number": 567, "empty": null }
- A tentativa de aceder a campos não existentes obtém Blank(). A fórmula que se segue obtém
true
:IsBlank( Column( ParseJSON( JsonString ), "does not exist" ) )
- Os valores JSON
null
são considerados Blank(). A fórmula que se segue obtémtrue
:IsBlank( Column( ParseJSON( JsonString ), "empty" ) )
Não registos
Chamar as funções Column ou ColumnNames com objetos sem tipo que não representam registos devolve um erro. Todas essas expressões abaixo estão erradas:
Fórmula | Razão do erro |
---|---|
ColumnNames( ParseJSON ( "[1, 2, 3]" ) | O objeto sem tipo representa uma matriz |
Coluna( ParseJSON ( "23.45" ), "Valor" ) | O objeto sem tipo representa um número |
ColumnNames( ParseJSON ( """olá""" ) | O objeto sem tipo representa um texto |
Coluna( ParseJSON ( "{""a"":false}" ).a, "a" ) | O objeto sem tipo representa um valor booleano |