Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
As colunas Fórmula, valor calculado, valor acumulado e prompt liberam o usuário de precisar fazer cálculos manualmente e para se concentrar em seu trabalho. Os administradores do sistema podem definir um campo para conter o valor de muitos cálculos comuns sem precisar trabalhar com um desenvolvedor. Os desenvolvedores também podem usar os recursos da plataforma para executar esses cálculos em vez de com código.
Este artigo se concentra em como essas colunas são definidas nas definições de colunas e nas APIs usadas para interagir com as colunas de rollup. Não há suporte para definir as fórmulas com código. Você precisa usar Power Apps para definir as fórmulas para o respectivo tipo de coluna. Saiba como:
- Trabalhar com colunas de fórmula
- Definir colunas calculadas para automatizar cálculos
- Definir colunas de valor acumulado que agregam valores
- Colunas de comando
Elementos e características comuns
As colunas fórmula, valor calculado e valor acumulado compartilham alguns elementos e características comuns, por exemplo:
- Eles são somente para leitura.
- Eles não são específicos para o usuário.
O cálculo é executado por meio de uma conta de usuário do sistema, portanto os valores podem ser baseados em registros que o usuário não tenha privilégios para visualizar, como colunas que têm a segurança em nível de campo habilitada.
Todas as colunas que herdam de AttributeMetadata têm uma propriedade SourceType que pode assumir os valores mostrados na tabela a seguir.
| Valor | Description |
|---|---|
| Null | Não é um tipo de coluna válido para ser uma coluna de fórmula, valor calculado ou valor acumulado. |
| 0 | Coluna simples. A coluna não está definida como uma coluna de fórmula, valor calculado ou valor acumulado. |
| 1 | Coluna calculada |
| 2 | Coluna de valor acumulado |
| 3 | Coluna de fórmula |
| 4 | Coluna de prompt |
As colunas de fórmula, valor calculado, valor acumulado e de prompt são baseadas em tipos de coluna existentes que herdam de AttributeMetadata. As tabelas a seguir mostram os tipos de coluna disponíveis e quais tipos de origem têm suporte:
| Tipo | Tipos de fontes com suporte |
|---|---|
| BooleanAttributeMetadata | Fórmula, Valor Calculado, & Valor Acumulado |
| DateTimeAttributeMetadata | Fórmula, Valor Calculado, & Valor Acumulado |
| DecimalAttributeMetadata | Fórmula, Valor Calculado, & Valor Acumulado |
| StringAttributeMetadata | Fórmula, Valor Calculado, Valor Acumulado & Prompt |
| IntegerAttributeMetadata | Somente Valor Calculado & Valor Acumulado |
| MoneyAttributeMetadata | Somente Valor Calculado & Valor Acumulado |
| PicklistAttributeMetadata | Somente Valor Calculado & Valor Acumulado |
Cada um desses tipos de coluna tem as seguintes propriedades para dar suporte a fórmulas, cálculos e rollups.
| Property | Definição |
|---|---|
FormulaDefinition |
Contém a definição da fórmula usada para executar o cálculo ou o valor acumulado. As colunas de fórmula são definidas usando YAML. As colunas de valor calculado e de valor acumulado são definidas usando XAML. A única maneira com suporte para alterar esse valor é por meio do editor de Power Apps. |
SourceTypeMask |
O valor de máscara de bits dessa propriedade somente leitura descreve os tipos de fontes usadas na fórmula da coluna ou se a fórmula da coluna não for válida. - 0: Undefined. O valor padrão para colunas simples e de rollup.- 1: Simple. A fórmula ou coluna calculada refere-se a uma coluna no mesmo registro.- 2: Related. A fórmula ou coluna calculada refere-se a uma coluna em um registro relacionado.- 4: Logical. A fórmula ou coluna calculada refere-se a uma coluna no mesmo registro que é armazenada em uma tabela de banco de dados diferente. Mais informações: colunas lógicas- 8: Calculated. A fórmula ou coluna calculada refere-se a outra fórmula ou coluna calculada.- 16: Rollup. A coluna de fórmula ou de valor calculado refere-se a uma coluna de valor acumulado.- 32: Invalid. A coluna de fórmula, valor calculado ou valor acumulado é inválida.Normalmente, uma coluna é inválida quando se refere a uma coluna que não existe mais. Observação: uma ou mais dessas condições podem ser verdadeiras para qualquer coluna de valor calculado ou de valor acumulado. Como esse é um valor de máscara de bits, você pode achar útil usar a enumeração SourceTypeMasks ao executar operações bit a bit. |
Fórmula e colunas calculadas
As fórmulas e as colunas calculadas são computadas em tempo real quando são recuperadas. A fórmula e o cálculo podem ser compostos usando tipos de dados diferentes. Por exemplo, uma coluna calculada de Número inteiro pode fazer referência a valores de colunas dos tipos Decimal ou Moeda.
Somente valores de coluna calculados estão disponíveis no pipeline de recuperação de plug-in. A imagem de pós-atualização ou criação do registro de uma tabela contém o valor da coluna calculado no estágio 40. Mais informações: Pipeline de execução de eventos e imagens de entidade
Limitações da coluna de fórmulas
- As colunas de fórmula não têm valores quando um usuário com cliente móvel está offline.
-
MaxValueeMinValueas propriedades de definições de coluna não podem ser definidas em colunas de fórmula. Mais informações: Diretrizes e limitações
Limitações da coluna calculada
Você não pode usar valores em colunas calculadas em um valor lógico na mesma tabela para classificar os dados retornados por uma consulta. Embora sua consulta possa especificar que os resultados devem ser ordenados usando uma coluna calculada, a direção de classificação é ignorada e não gera um erro. Se a coluna calculada fizer referência apenas a valores simples no mesmo registro, a classificação funcionará normalmente. Você pode determinar as fontes usadas em uma coluna calculada usando a SourceTypeMask propriedade nas definições de coluna.
- Somente colunas de uma tabela principal imediata podem ser usadas em uma coluna calculada.
- Consultas, gráficos e visualizações salvas podem ter, no máximo, 50 colunas calculadas únicas.
- As colunas calculadas podem fazer referência a outras colunas calculadas na fórmula, mas não a elas mesmas.
- Colunas calculadas não têm valores quando um usuário com cliente móvel está offline.
-
MaxValueeMinValueas propriedades de definições de coluna não podem ser definidas em colunas calculadas
Colunas cumulativas
Como as colunas de valor acumulado persistem no banco de dados, podem ser usadas para filtragem ou classificação, assim como colunas regulares. Qualquer tipo de processo ou plug-in usa o valor mais recentemente calculado da coluna. Os trabalhos do sistema calculam os valores da coluna de valor acumulado assincronamente. Os administradores definem quando um trabalho é executado ou pausam o trabalho. Por padrão, cada coluna é atualizada por hora.
Quando uma coluna de valor acumulado é criada ou atualizada, um trabalho Campos de Valor Acumulado Calculados em Massa é agendado para ser executado em 12 horas. O atraso de 12 horas destina-se a executar essa operação de uso intensivo de recursos durante um tempo que afeta menos os usuários. Depois que a tarefa for concluída, a próxima execução programada será daqui a 10 anos. Se houver um problema com o cálculo, o problema será relatado na tarefa do sistema. Localize o trabalho do sistema para localizar erros com campos de valor acumulado. Para encontrar a tarefa do sistema, consulte Ver Trabalhos de Valor Acumulado.
Dica
Como um desenvolvedor testando uma solução em um ambiente de desenvolvimento, talvez você não queira esperar 12 horas. Você pode fazer isso acontecer mais rapidamente. Na lista Trabalhos do Sistema , use a exibição Trabalhos do Sistema Recorrentes para filtrar a lista e localizar o trabalho Calcular Campos de Valor Acumulado em Massa . Com o trabalho selecionado, use Mais Ações>Adiadas e defina a hora para algo que ocorra mais cedo.
Se você quiser disparar a criação de um novo trabalho Campos de Valor Acumulado Calculados em Massa programaticamente, recupere AttributeMetadata da coluna de valor acumulado usando RetrieveAttributeRequest e use UpdateAttributeRequest para atualizar a coluna sem fazer nenhuma alteração real.
O trabalho Campos de Valor Acumulado Calculados em Massa ocorrerá imediatamente quando uma solução que contém uma coluna de valor acumulado for importada. Esse é outro motivo para instalar apenas soluções durante períodos que não afetarão negativamente os usuários.
Cada coluna de valor acumulado de uma tabela também incluirá duas colunas de suporte para essa coluna de valor acumulado:
-
<atributo SchemaName>
_Date: DateTime – quando o de valor acumulado foi calculado pela última vez. -
<attribute SchemaName>
_State: Inteiro – o estado do cálculo de valor acumulado. Mais informações: Valores de estado de valor acumulado
Valores de estado de valor acumulado
O estado de um cálculo da coluna de valor acumulado está disponível na coluna do <atributo SchemaName>_State correspondente e em CalculateRollupFieldResponse.Propriedade FieldState. Os valores que indicam o estado são mostrados na tabela a seguir.
| Valor do Estado | Description |
|---|---|
| 0 |
NotCalculated: o valor da coluna ainda não foi calculado. |
| 1 |
Calculated: o valor da coluna foi calculado com base no horário da última atualização no atributo <SchemaName>_Date. |
| 2 |
OverflowError: o cálculo do valor da coluna leva ao erro de estouro. |
| 3 |
OtherError: O cálculo do valor da coluna falhou devido a um erro interno, a próxima execução do trabalho de cálculo provavelmente o corrigirá. |
| 4 |
RetryLimitExceeded: O cálculo do valor da coluna falhou porque o número máximo de tentativas de nova execução para calcular o valor foi ultrapassado, provavelmente devido ao grande número de conflitos de simultaneidade e de bloqueio. |
| 5 |
HierarchicalRecursionLimitReached: o cálculo do valor da coluna falhou porque o limite máximo de profundidade da hierarquia para cálculo foi atingido. |
| 6 |
LoopDetected: o cálculo do valor da coluna falhou porque um loop recursivo foi detectado na hierarquia do registro. |
Recuperar um valor de coluna de valor acumulado calculado imediatamente
As colunas de valor acumulado dão suporte a uma mensagem CalculateRollupField que os desenvolvedores podem usar para calcular um valor de coluna de valor acumulado sob demanda. Para o SDK, use a classe CalculateRollupFieldRequest e, para a API Web, a Função CalculateRollupField
Essa mensagem é uma operação síncrona apenas para a coluna identificada na solicitação. Se o valor desse registro for incluído como parte de outras colunas de valor acumulado, os valores dessas colunas não levarão em consideração a possível alteração de valor causada pela chamada desse método até que os trabalhos assíncronos agendados regularmente que executam esses cálculos ocorram.
Limitações da coluna Valor acumulado
- As colunas de valor acumulado não podem ser usadas como um evento de fluxo de trabalho ou condição de espera. Essas colunas não disparam o evento que aciona os fluxos de trabalho.
- As colunas
ModifiedByeModifiedOnda tabela não são atualizadas quando a coluna de valor acumulada é atualizada. - Um máximo de 100 colunas de valor acumulado pode ser definido em uma organização. Cada tabela não pode ter mais de 10 colunas de valor acumulado.
- Uma fórmula de coluna de valor acumulado não pode referenciar outra coluna de valor acumulado.
- Uma fórmula de coluna de valor acumulado não pode fazer referência a uma coluna de valor calculado complexa ou uma coluna de fórmula. Somente colunas de valor calculado ou de fórmula que fazem referência a colunas simples no mesmo registro podem ser usados com valores acumulados.
- Uma fórmula de coluna de valor acumulado não pode incluir registros em relações N:N (muitos para muitos). Só pode incluir registros em relacionamentos um para muitos (1:N).
- As fórmulas de coluna de valor acumulado não podem usar relações um-para-muitos (1:N) com a tabela
ActivityPointerouActivityParty.
Colunas de prompt
Os valores da coluna de prompt são preenchidos quando os registros são criados e quando os valores na coluna de entrada são atualizados. Quando as colunas de prompt são adicionadas a tabelas com registros, as novas colunas de prompt dos registros existentes não são preenchidas automaticamente. As saídas persistem no banco de dados e podem ser usadas para filtragem e classificação como colunas regulares.
Limitações de coluna de prompt
- No momento, não há suporte para criar e atualizar a coluna de prompt usando a API.
- Não há suporte para importar e exportar soluções com colunas de prompt no momento.
Enumeração SourceTypeMasks
A propriedade SourceTypeMask para essas colunas que dão suporte a colunas de valor calculado e de valor acumulado contém um valor de máscara de bits. Para extrair as informações relevantes do valor, ajuda a ter uma enumeração ao executar operações bit a bit. Use a enumeração SourceTypeMasks a seguir ao comparar o valor da propriedade SourceTypeMask.
public enum SourceTypeMasks
{
/// <summary>
/// Undefined: 0 - The default value for simple and rollup columns.
/// </summary>
Undefined = 0,
/// <summary>
/// Simple: 1 - The calculated or formula column refers to a column in the same record.
/// </summary>
Simple = 1,
/// <summary>
/// Related: 2 - The calculated or formula column refers to a column in a related record.
/// </summary>
Related = 2,
/// <summary>
/// Logical: 4 - The calculated or formula column refers to a logical column.
/// </summary>
Logical = 4,
/// <summary>
/// Calculated: 8 - The calculated or formula column refers to another calculated column.
/// </summary>
Calculated = 8,
/// <summary>
/// Rollup: 16 - The calculated or formula column refers a rollup column.
/// </summary>
Rollup = 16,
/// <summary>
/// Invalid: 32 - The calculated,formula, or rollup column is invalid.
/// Typically this would be where a field refers to a column that no longer exists.
/// </summary>
Invalid = 32
}
Consulte também
Definições de coluna
Trabalhar com colunas de fórmula
Definir colunas calculadas
Definir colunas de rollup
Exemplo: registros cumulativos relacionados a um registro específico
Colunas do prompt