Campos Calculados (Calculated Fields)

by Administrator 1. February 2016 22:55

Boas Pessoal,

Uma das operações mais efetuadas pelos programadores era o calcular valores recorrendo a Javascript ou C#(Plugins ou Workflows), para colocar noutro campo do formulário, por exemplo para aplicar um desconto se o valor de uma proposta for superior a um determinado valor, se esta regra mudar, por exemplo se o valor passar a ser outro, provavelmente teríamos que ir alterar o código, o que nem sempre é fácil e ágil.

Como podemos comprovar a plataforma Dynamics CRM tem vindo a tornar-se cada vez mais funcional, ou seja, que pode ser definida por um utilizador sem necessidade de recorrer a uma pessoa mais técnica. Como a vinda do Microsoft Dynamics CRM 2015 trouxe dois novos campos: os campos calculados e rollup. que vêm resolver esse problema, pois vamos passar a poder efetuar através de condições e ações, por exemplo o cálculo referido acima e sem necessidade de escrever uma única linha de código.

Para começar a utilizar temos um novo Tipo de Campo, que é o calculado, na segunda imagem aparece outra opção o Rollup que vou falar no próximo post, neste caso a diferença é que na primeira imagem o campo é do tipo string e na segunda imagem do tipo inteiro:

image

 

image

Os tipos disponíveis para criarmos os campos calculados são os seguintes:

  • Linha de texto
  • Conjunto de Opções
  • Duas Opções
  • Número Inteiro
  • Número Decimal
  • Moeda
  • Data e Hora

Quando escolhermos este tipo de campo, aparece-nos um botão para editar:

image

Quando editamos e caso não tenhamos gravado, ele vai gravar o campo e depois não poderemos modificar para um campo simples, como não podemos passar de um simples para um calculado. Depois de editarmos vai-nos aparecer o seguinte formulário muito parecido com as Business Rules:

image

Como podemos observar podemos colocar uma condição (não é obrigatório) ou criarmos logo uma ação. Podem ser complexas com várias condições ou ramos E e OU.

Neste caso vamos comparar o Preço Total se é maior que 500€ se for então aplicamos um desconto de 30%.

image

image

Como podem observar não temos apenas a entidade sobre a qual estamos a criar o atributo, temos acesso a todas as entidades relacionadas, por exemplo podíamos verificar qual o estado do cliente. Para comparar podemos comparar com outro campo da mesma entidade ou de outra entidade relacionada, como podemos observar esta configuração é bastante flexível. Podemos referenciar outro campo calculado.

Nas ações temos uma interface com intellisense e intuitiva para que “qualquer” pessoa.

image

As operações disponíveis são as seguintes, as operações terão que estar em letras maiúsculas como referenciado em baixo:

  • ADDHOURS, ADDDAYS, ADDWEEKS, ADDMONTHS, ADDYEARS, SUBTRACTHOURS, SUBTRACTDAYS,SUBTRACTWEEKS, SUBTRACTMONTHS, SUBTRACTYEARS, DIFFINDAYS, DIFFINHOURS, DIFFINMINUTES, DIFFINMONTHS, DIFFINWEEKS, DIFFINYEARS, NOW e DIFFINYEARS
  • CONCAT, TRIMLEFT e TRIMRIGHT.
  • Utilização dos campos das entidades
  • Utilização dos campos das entidades pai através do campo lookup para a entidade pai. Fazendo <NomeCampoLookup>.<NomeCampo>

image

  • Para além destes operadores poderemos usar os operadores aritméticos.

Se por exemplo usarmos um campo protegido nos cálculos, ele vai sugerir que protejamos também este campo calculado como podemos ver na imagem a seguir:

image

Estes campos podem ser usados nos formulários, vistas, gráficos e relatórios. Mas existem algumas limitações:

  • Em vistas de utilizador, gráficos e visualizações podem ter no máximo 10 campos;
  • Os valores dos campos calculados não são mostrados no CRM Outlook no modo offline;
  • O número máximo de campos calculados encadeados são 5;
  • A ordenação é desabilitada em campos calculados que referem uma entidade pai, que contenham um campo lógico (por exemplo o morada) ou que contenham outro campo calculado;

image

  • Um campo calculado pode apenas referenciar até duas entidades, a entidade onde o campo calculado está a ser criado e outra entidade pai.
  • Estes campos não lançam plugins nem fluxos de trabalho;
  • As regras de deteção de duplicados não pode ser ativada para estes campos.

Depois de tudo configurado a configuração é vista da seguinte forma:

image

Depois do campo criado, no CRM tem o seguinte aspeto:

image

Como podem verificar este campo é apenas de leitura. Os campos calculados são campos virtuais e não físicos o que isto significa é que estes campos não são gravados na BD, mesmo assim este campo está disponível nos vários objetos que referi e se realizarmos um select sobre a tabela este valor será retornado, pois ele grava a nossa configuração numa função no SQL Server.

Até a próxima

Tags: , ,

About

Muito bem casado, Pai babado e um gosto muito grande pela tecnologia.

Tenho um lema "Sharing is Learning"

Mais aqui -> http://www.psazevedo.com

Month List