7/6/10

Cómo crear un campo incremental con Workflow

Se trata de lo siguiente: crear un campo en una entidad (Cuenta) que lleve un contador de subcuentas que dependen de ella. O sea, un contador que lleve la cuenta de subcuentas de cuentas (!). En realidad, otra excusa para mostrar el poder de los a menudo poco considerados Workflows de Microsoft Dynamics CRM. Por cierto: gracias a Albertinson por hacer esta pregunta en el foro que ha sido mi inspiración.


Y aquí va la receta de la abuela:


Uno: crear un campo numérico xyz_numerosubcuentas para contener el valor. Se puede poner "read-only" si queréis




Dos: crear un workflow que se dispare "al crear" una nueva cuenta.


Tres: dentro del workflow, comprobar si el campo parentaccountid o sea Cuenta primaria tiene algún valor



Cuatro: aumentar el valor en uno. Sí, se puede hacer, aunque reconozco que lo he usado pocas veces.



Y es que a pesar de ser desarrollador (developer, developer, developer) intento evitar tener que escribir código siempre que puedo. Este mismo problema se puede resolver de otras maneras que sí implican código y que son más completas.


Al final, el workflow queda así:



Y ahora, los inevitables disclaimers


- Esta solución sólo funciona con las nuevas cuentas, no con las creadas previamente
- Como cualquier wf, es asíncrona, así que no esperéis ver el resultado inmediatamente en el formulario
- No considera las bajas, de modo que sólo puede aumentar el número de subcuentas



¡Salud!

No hay comentarios: