Pàgines

Mostrando entradas con la etiqueta Business Rules. Mostrar todas las entradas
Mostrando entradas con la etiqueta Business Rules. Mostrar todas las entradas

sábado, 17 de octubre de 2020

La clase de Coco: Establecer valor predeterminado vs. Establecer valor de campo

"Hola, soy Coco y hoy vamos a aprender la diferencia entre las acciones Establecer valor predeterminado y Establecer valor de campo en las Reglas de negocio de Dynamics 365".


Así empezaría la clase diaria Coco, nuestro amigo inseparable de Barrio Sésamo que llenaba las tardes de nuestra infancia y con el que tanto aprendimos muchos de nosotros.



Y la verdad es que, amigos míos, existe una diferencia entre estas dos opciones aunque sea sutil para muchos a la hora de crear una Regla de negocio que las contenga.

Yo antes pensaba que tanto daba establecer valores de una forma o otra, al final lo que quieres es que el campo tenga un valor que tu le marcas y punto. Pero claro, si las dos opciones hicieran lo mismo, se llamarían igual y no es el caso.

Vamos a ver cada caso.


Establecer valor predeterminado

Cuando aplicamos esta acción en una regla de negocio lo que estamos realizando es mostrar un valor en un campo de forma predeterminada. La idea es que la Regla de negocio debería cargar el valor de un campo en el formulario en el evento onLoad.

Esta opción es la opción por defecto que se usa en los Optionsets (Conjuntos de datos), pero la acción se puede usar con campos Numéricos, Texto, Fecha/Hora y Búsqueda.

Dependiendo del tipo de campo, el valor establecido puede variar, como por ejemplo, en un campo Fecha/Hora podrá definirse una fecha fija, se podrá elegir que copie el valor de otro campo de fecha, establecer una fórmula que sume o reste días a una fecha o a otro campo de fecha de la entidad o se podrá elegir realizar un borrado del valor del campo.

Pero en definitiva, lo que conseguimos aplicando este componente es asignar un valor al campo que se muestre en el formulario cuando se carga.


Establecer valor de campo

Esta acción la llevaremos a cabo en una Regla de negocio cuando queramos aplicar lógica de negocio e incluso no necesitemos tener el campo cargado en el formulario.

La Regla de negocio no hace falta que se ejecute en el onLoad, puede ser un campo de la entidad que requiere ese valor pero que ni siquiera se muestra. 

Esta acción lo que realiza es poner un valor que definamos en un campo de la entidad que definamos y las opciones que disponemos son iguales al anterior caso.


Mostramos un pequeño ejemplo en el que realizamos una comprobación, si un Caso tiene como Origen el valor Correo electrónico.

Si se cumple la condición lo que hace la acción Establecer valor de campo es establecer el valor del título con la cadena "[Mail]". Este campo Título no haría falta ni que se mostrara en el formulario si no quisiéramos.

Si no se cumple la condición, la acción Establecer valor predeterminado establecerá el campo Origen con la opción "Teléfono". Se cargará el formulario para que el usuario pueda tener este valor por defecto en el campo y lo pueda cambiar si lo desea.



Finalmente, para acordarnos de que opción es cual, si nos vamos al original, quizás la traducción en inglés nos quede más claro:

  • Establecer valor predeterminado = Set default value
  • Establecer valor de campo = Set field value

Pero cuando se traduce, el lenguaje se hace más ambiguo.


---

Enlaces con la información:

Set Default Value vs Set Field Value in Business Rule – Dynamics 365 CE https://dynatecon.com/2020/06/13/set-default-value-vs-set-field-value-in-business-rule-dynamics-365-ce/

Setting Field Values vs. Setting Default Values in Business Rules https://powerobjects.com/2015/02/05/setting-field-values-vs-setting-default-values-business-rules/

martes, 18 de septiembre de 2018

Ejecutar una regla de negocio cuando se crea un registro


Con la aparición de las reglas de negocio se ha conseguido introducir funcionalidades que antes eran complicadas para usuarios no programadores. Ahora, con esta funcionalidad, cualquiera puede crear reglas que permitan ocultar o mostrar campos, indicar la necesidad de un campo o bloquearlo si es necesario según las condiciones que le marcamos.

Son muy útiles para trabajar con formularios y poder establecer como los queremos y en que momento lo queremos.

Un problema que surge es cuando queremos ejecutar una regla de negocio en una entidad, se ejecutará en todos los casos y solo buscamos que se ejecute en un formulario en el momento de su creación, dejando aquellos que ya están creados con las condiciones que tienen.

Este problema surge porque las reglas de negocio se ejecutan en la carga del formulario y en el evento onChange de los campos y se ejecutaría para todas las veces que entrásemos en el formulario.

Un truquito muy interesante para solventar el problema es poder comprobar si el campo Fecha de creación (Created On) está vacío, el cual nos indicará que es un nuevo registro.

Adjunto un artículo donde se puede comprobar el funcionamiento descrito que puede ayudar en este caso y en diferentes casuísticas utilizando las reglas de negocio.

Referencias:

Seguimiento de actividades mediante publicaciones automáticas

Muchas veces encontramos en las escalas de tiempo (o timeline) de los diferentes registros un montón de publicaciones automáticas que o no n...