Who's Bruno Willian

My photo
I'm Bruno, I've been working as a Dynamics CRM consultant since 2012. This blog is intended to share acknowledgement not only about Dynamics, but also any technology we use to extend the platform.

Saturday, January 13, 2018

Regras de Negocio - Escopo Entidade

Introdução 

As regras de negócio foram introduzidas na versão 2013 do Dyamics CRM, desde então, é possível economizar tempo e complexidade de desenvolvimento fazendo seu uso para substituir alguns comportamentos que, ate então, só eram possíveis com JavaScript.

Até então, só era possível criarmos regras que rodassem apenas no lado do cliente, porém desde a versão 2015 do Dynamics, onde foi introduzido nas regras de negócio mais um tipo de escopo, chamado Entidade, e possível criarmos regras que são executadas tanto no lado do cliente (Client Side) como no lado do servidor (Server Side).

Bem, para muitas pessoas, não está claro o que exatamente isso significa, afinal, a maioria da documentação encontrada cita apenas que as regras também seriam aplicadas na importação de registros.

Procurando ir um pouco mais a fundo e desmistificando esse conceito, procurei um material que me ajudou a compreender melhor os impactos dessa nova funcionalidade.

Explicação

Quando falamos em regras de negócio que serão executadas também no lado do servidor, queremos dizer que, registros importados, criados ou modificados via SDK, também serão afetados, porém alguns comportamentos ainda estão obscuros quando falamos em ações no lado do cliente e no lado do servidor. Para tentar simplificar, iremos listar os resultados de algumas ações em ambos contextos.


  • Exibir mensagem de erro: Vamos supor que foi criada uma regra de negócio que, caso o primeiro nome do contato possua a palavra 'estupido', seja exibida uma mensagem de erro dizendo que o primeiro nome não pode conter devida palavra. 
    • Client Side: Mensagem definida na regra de negócio apresentada com sucesso.
    • Server Side: Quando tentamos incluir um novo registro via SDK, é retornada uma exceção com a mesma mensagem definida na regra de negócio.


  • Obrigatoriedade do campo: Caso algum campo seja definido como obrigatório via regra de negócio e o mesmo não seja preenchido no momento da criação:
    • Client Side: Mensagem configurada na regra de negocio e apresentada e o usuário e impossibilitado de salvar o registro.
    • Server Side: Mensagem configurada na regra de negócio é retornada como exceção no momento na criação do registro.


  • Desabilitar campo: Neste cenário, vamos criar uma regra de negócio que bloqueia o campo Sobrenome do contato na criação do registro.
    • Client Side: Campo desabilitado, impossibilitando o usuário de inserir alguma informação.
    • Server Side: Via SDK conseguimos definir  o campo com o valor desejado e o registro foi criado com sucesso.

Conclusão

Além de entender um pouco melhor como se comportam as regras de negócio configuradas com escopo a nível Entidade, podemos perceber que, em alguns casos, podemos até mesmo substituir workflows e plugins por essa nova funcionalidade.

No comments:

Post a Comment