Atributos calculados e de acúmulo

 

Publicado: janeiro de 2017

Aplicável a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Os atributos calculados e acúmulo evitam que o usuário tenha que executar manualmente cálculos e se concentrem em seu trabalho. Os administradores do sistema podem agora facilmente definir um campo para conter o valor de vários cálculos comuns sem precisar trabalhar com um desenvolvedor. Os desenvolvedores também podem aproveitar os recursos de plataforma para executar esse cálculos em vez de executar no seu próprio código.

Vídeo: campos cumulativos e calculados Microsoft Dynamics CRM 2015

Neste tópico

Elementos comuns e características

Atributos calculados

Atributos de acúmulo

Enumeração SourceTypeMasks

Elementos comuns e características

Os atributos calculado e acúmulo compartilham alguns elementos e características comuns, por exemplo:

  • São somente leitura.

  • Não são específicos ao usuário. O cálculo é executado usando uma conta de usuário do sistema, portanto, os valores podem se basear em registros que o usuário não possui privilégios de exibição, como os atributos que têm a segurança de nível de campo habilitada.

Todos os atributos que herdam do AttributeMetadata têm uma propriedade SourceType que pode conter os valores mostrados na tabela a seguir.

Valor

Descrição

nulo

Não um tipo de atributo válido deve ser um atributo calculado ou acúmulo.

0

Atributo simples. O atributo não é definido como um atributo calculado ou acúmulo.

1

Atributo calculado

2

Atributos acúmulo

Os atributos acúmulo e calculado são baseados nos tipos de atributos existentes que herdam do AttributeMetadata. Os seguintes tipos de novos atributos têm novas propriedades:

Cada um desses tipos de atributos tem as seguintes propriedades para suportar cálculos e acúmulos.

Propriedade

Definição

FormulaDefinition

Contém a definição XAML da fórmula usada para executar o cálculo ou o acúmulo. A única maneira suportada para alterar esse valor é através do editor de fórmula do aplicativo.

Para obter informações sobre configurar as fórmulas para esses atributos, consulte os seguintes tópicos no guia de personalização: Definir campos cumulativos e Definir campos calculados.

SourceTypeMask

O valor da máscara de bits dessa propriedade somente leitura descreve os tipos de fontes usados na fórmula do atributo calculado ou se a fórmula de um atributo calculado ou de acúmulo é inválida.

  • 0: Indeterminado. O valor padrão para atributos simples e de acúmulo.

  • 1: Simples. O atributo calculado refere-se a um atributo no registro.

  • 2: Relacionado. O atributo calculado refere-se a um atributo em um registro relacionado.

  • 4: Logical. O atributo calculado refere-se a um atributo no mesmo registro que está realmente armazenado em uma tabela do banco de dados diferente.Para obter mais informações:Atributos lógicos

  • 8: Calculated. O atributo calculado refere-se a um outro atributo calculado.

  • 16: Rollup. O atributo calculado refere-se a um atributo de acúmulo.

  • 32: Invalid. O campo calculado ou de acúmulo é inválido.

    Geralmente será onde um campo se refere a um atributo que não existe mais.

Observação

Uma ou mais dessas condições podem ser verdadeiras para qualquer campo calculado ou de acúmulo. Como este é um valor de máscara de bits, pode ser útil usar o Enumeração SourceTypeMasks ao executar operações de bits.

Atributos calculados

Atributos calculados são calculados em tempo real em que são recuperados. Atributos calculados podem compostos usando diferentes tipos de dados. Por exemplo, um atributo calculado inteiro pode referenciar valores de atributos Decimal ou Moeda.Para obter mais informações:TechNet: definir campos calculados.

Os valores de atributos calculados estão disponíveis no canal de plug-in recuperar. Postar imagem do registro da entidade atualizar ou criar contém o valor do atributo calculado no estágio 40.Para obter mais informações:Pipeline de execução do evento

Limitações

Você não pode usar valores nos atributos calculados que fazem referência a outra entidade relacionada, outro atributo calculado ou valor lógico na mesma entidade para classificar dados retornados por uma consulta. Embora sua consulta possa especificar se os resultados devem ser ordenados usando um atributo calculado, a ordem de classificação será ignorada e acionará um erro. Se o atributo calculado faz referência apenas valores simples no mesmo registro, classificar geralmente funciona. Você pode determinar as fontes usadas em um campo calculado usando a propriedade SourceTypeMask nos metadados do atributo.Para obter mais informações:Atributos lógicos

Somente atributos de uma entidade pai imediata podem ser usados no atributo calculado.

Consultas salvas, gráficos e visualizações podem ter um máximo de 10 atributos calculados exclusivos.

Atributos calculados podem fazer referência a outros atributos calculados na fórmula, mas não podem fazer referência a si próprio.

Os atributos calculados não têm valores quando um usuário com Microsoft Dynamics 365 para Outlook estiver offline.

As propriedades de metadados MaxValue e MinValue não podem ser definidas em atributos calculados

Atributos de acúmulo

Como os atributos de acúmulo persistem no banco de dados, eles podem ser usados para filtrar ou classificar assim como atributos regulares. Qualquer tipo de processo ou plug-in usará o valor do atributo calculado mais recente. Os valores de atributo de acúmulo são calculados de maneira assíncrona por trabalhos do sistema agendados. Os administradores definem quando um trabalho é executado ou pausado no trabalho. Por padrão, cada atributo será atualizado uma vez por hora.Para obter mais informações:TechNet: Definir campos cumulativos.

Quando um atributo de acúmulo é criado ou atualizado, um trabalho Campos de Acúmulo Calculados em Massa serão agendados para executar em 12 horas. O atraso de 12 horas deve executar essa operação de recursos intensiva em um horário que afetará menos os usuários. Depois que o trabalho for concluído, a próxima vez que for agendado para executar será 10 anos no futuro. Se houver um problema com o cálculo, isso será relatado com o trabalho do sistema. Localize o trabalho do sistema em Configurações > Trabalhos do Sistema para localizar todos os erros com campos de acúmulo.

Dica

Como um desenvolvedor que testa uma solução em um ambiente de desenvolvimento, você pode não querer aguardar 12 horas. Você pode querer executar rapidamente. Na lista Trabalhos do Sistema, use a exibição Trabalhos do Sistema Recorrentes para filtrar a lista e localizar o trabalho Campos de Acúmulo de Cálculo em Massa. Com o trabalho selecionado, use Mais Ações > Adiar e define a hora para algo ocorrer em breve.

Para disparar de forma programática a criação de um novo trabalho Campos de Acúmulo de Cálculo em Massa, recupere AttributeMetadata para o atributo usando RetrieveAttributeRequest e use UpdateAttributeRequest para atualizar o atributo sem fazer alterações reais.

O trabalho Campos de Acúmulo Calculados em Massa ocorrerá imediatamente quando uma solução que contenha um atributo de acúmulo for importada. Esse procedimento pressupõe que você está instalando uma solução uma hora em que não afeta adversamente os usuários.

Cada atributo de acúmulo para uma entidade também incluirá dois atributos de suporte para o atributo de acúmulo:

  • <attribute SchemaName>_Date: DateTime – Quando o acúmulo foi calculado pela última vez.

  • <attribute SchemaName>_State: Integer – O estado do cálculo de acúmulo.Para obter mais informações:Valores de estado de acúmulo

Valores de estado de acúmulo

O estado de um cálculo do campo de acúmulo está disponível no atributo correspondente <attribute SchemaName>_State e na propriedade CalculateRollupFieldResponse.FieldState. Os valores que indicam o estado são mostrados na tabela a seguir.

Valor de estado

Descrição

0

NotCalculated: O valor de atributo ainda deve ser calculado.

1

Calculated: O valor de atributo foi calculado como a última hora de atualização no atributo <atributo SchemaName>_Date.

2

OverflowError: O cálculo do valor do atributo leva a um erro de estouro.

3

OtherError: O cálculo do valor do atributo falha devido a um erro interno, depois da execução do trabalho de cálculo que provavelmente corrigirá.

4

RetryLimitExceeded: O cálculo do valor do atributo falhou porque o número máximo de tentativas para calcular o valor foi excedido devido ao número alto de conflitos de simultaneidade e bloqueio.

5

HierarchicalRecursionLimitReached: O cálculo do valor de atributo falhou porque o limite máximo de profundidade da hierarquia para o cálculo foi atingido.

6

LoopDetected: O cálculo do valor do atributo falhou porque um loop recursivo foi detectado na hierarquia do registro.

Recuperar um valor de campo de acúmulo calculado imediatamente

Os atributos de acúmulo oferecem suporte a mensagem CalculateRollupField que os desenvolvedores podem usar para calcular um valor de atributo de acúmulo sob demanda. A solicitação e resposta, juntamente com os membros, são mostradas na tabela a seguir.

Solicitação/Resposta

Membros

CalculateRollupFieldRequest

Target: EntityReference para o registro.

FieldName: Cadeia de caracteres que representa o nome lógico do atributo.

CalculateRollupFieldResponse

Entity: Entity que contém o atributo de acúmulo e os atributos de suporte <atributo SchemaName>_Date e <atributo SchemaName>_State.

Essa mensagem é uma operação síncrona apenas para o atributo identificado na solicitação. Se o valor desse registro for incluído como parte dos campos de acúmulo, os valores desses campos não levarão a alteração do valor possível causada pela chamada do método em consideração até os trabalhos assíncronos regularmente agendados que executam esses cálculos.

Limitações

Os atributos de acúmulo não podem ser usados como um evento do fluxo de trabalho ou condição de espera. Esses atributos não levantam o evento para disparar fluxos de trabalho.

Os atributos ModifiedBy e ModifiedOn para a entidade não são atualizados quando o atributo de acúmulo é atualizado.

Um máximo de 100 atributos de acúmulo podem ser definidos em uma organização. Cada entidade não pode ter mais de 10 atributos de acúmulo.

Uma fórmula de atributo de acúmulo não pode referenciar outro atributo de acúmulo.

Uma fórmula de atributo de acúmulo não pode referenciar atributos calculados complexos. Somente atributos calculados que fazem referência a atributos simples no mesmo registro podem ser usados com acúmulos.

Uma fórmula de atributo de acúmulo não pode incluir registros em relacionamentos muito-para-muito (N:N). Pode incluir somente registros em relacionamentos um-para-muitos (1:N).

As fórmulas de atributo de acúmulo não podem usar relacionamentos um-para-muitos (1:N) com a entidade ActivityPointer ou ActivityParty.

Enumeração SourceTypeMasks

A propriedade SourceTypeMask para os atributos que suportam campos calculados e de acúmulo contêm um valor de bitmask. Para extrair informações relevantes do valor, ajuda a ter uma enumeração ao executar uma operação de bits. Use a seguinte enumeração do SourceTypeMasks ao comparar o valor de propriedade SourceTypeMask.

 public enum SourceTypeMasks
{
    /// <summary>
    /// Undefined: 0 - The default value for simple and rollup attributes.
    /// </summary>
    Undefined = 0,
    /// <summary>
    /// Simple: 1 - The calculated attribute refers to an attribute in the same record.
    /// </summary>
    Simple = 1,
    /// <summary>
    /// Related: 2 - The calculated attribute refers to an attribute in a related record.
    /// </summary>
    Related = 2,
    /// <summary>
    /// Logical: 4 - The calculated attribute refers to a logical attribute.
    /// </summary>
    Logical = 4,
    /// <summary>
    /// Calculated: 8 - The calculated attribute refers to another calculated attribute.
    /// </summary>
    Calculated = 8,
    /// <summary>
    /// Rollup: 16 - The calculated attribute refers a rollup attribute. 
    /// </summary>
    Rollup = 16,
    /// <summary>
    /// Invalid: 32 - The calculated or rollup attribute is invalid.
    /// Typically this would be where a field refers to an attribute that no longer exists. 
    /// </summary>
    Invalid = 32
}

Confira Também

Vídeo: campos cumulativos e calculados Microsoft Dynamics CRM 2015
Introdução aos atributos de entidade no Microsoft Dynamics 365
TechNet: definir campos calculados
TechNet: Definir campos cumulativos

Microsoft Dynamics 365

© 2017 Microsoft. Todos os direitos reservados. Direitos autorais