martes, 27 de enero de 2015

Cálculo de campos Rollup desde Workflows (Calculate Rollup Field)

Siguiendo un poco el hilo de mi post anterior, le he dado una vuelta mas.

He detectado una posible necesidad de forzar el cálculo de campos de Rollup en momentos determinados, y de forma dinámica. Me he puesto a pensar entonces una solución que pudiese ser reutilizada para cualquier campo de tipo Rollup, sin necesidad de estar compilando plugins todo el tiempo.

Entonces, he creado un nuevo componente que he publicado en Codeplex: http://calculaterollupfield.codeplex.com/

La idea es simple, crear una actividad de workflow, que ejecute un calculo de un campo de rollup de una entidad padre. Se puede descargar desde ahí el código fuente y la propia solución directo para ser ejecutada. Una vez instalada, tendrán disponible la nueva actividad de workflow:

image

Los parámetros que recibe esta actividad de workflow son:

image

Los parámetros que se reciben son:

  • FieldName: Nombre del campo de tipo consolidad (rollup) padre
  • Parent Record URL: Aquí deben añadir de forma dinámica el campo “URL del registro(Dynamics)” del registro padre

Esto de la URL es un “truco” (por llamarlo de alguna manera) para pasar un registro de tipo “EntityReference” a una actividad de Workflow, sin definir un tipo fijo. Esta URL tiene el siguiente formato
https://<orgname>.crm4.dynamics.com:443/main.aspx?etc=9105&id=67a87f79-7f98-e411-80d5-c4346bad10f0&histKey=474087586&newWindow=true&pagetype=entityrecord

Esta URL nos da el ObjectTypeCode (etc) desde el cual puedo recoger el nombre de esquema de la entidad, y el ID del registro.

Las funcionalidades que nos puede dar esta solución, pueden ser diversas y creo que bastante útiles ya que recogemos el control de algo que ocurre por “detrás” para que se comporte como requieran los usuarios.

Espero les guste, por favor añadir comentarios en codeplex o ideas de nuevas funcionalidades, así la voy mejorando por el bien de todos: http://calculaterollupfield.codeplex.com/workitem/list/basic

abrazo!

@demian_rasko

No hay comentarios:

Publicar un comentario