Como no, sigo con mi “zaga” de mejoras en mi componente de workflows.
Si sigo así, cada día menos deberemos desarrollar en Dynamics CRM, y podremos usar cada vez mas soluciones de workflows
Hoy he añadido una actividad nueva, que posibilita la clonación de registros. Esta funcionalidad es muy buena por ejemplo para duplicar registros de prueba, o para guardar versiones históricas de registros, copiando un registro completo, y luego pudiendo actualizar un numero de versión o desactivarlo, por ejemplo.
Como siempre, toda la documentación y los códigos fuentes de lo que he desarrollado está aquí: https://msdyncrmworkflowtools.codeplex.com/
Para utilizar esta nueva funcionalidad es simple, primero seleccionamos la actividad de clonación de registros:
y luego pasamos el único parámetro que hay y que es obligatorio, con la URL del registro que queremos clonar. Esta URL se coge del workflow como enseño a continuación:
Simple como siempre, pero el código no lo es tanto. El código que he desarrollado, clona todo tipo de registros (lo he testeado con leads, cuentas y contactos y de forma síncrona y asíncrona y parece funcionar bien). Como no se ni que tipo de entidad debo clonar, ni que datos estan rellenos ni que campos estan personalizados, debo coger todo esto dinámicamente, pero claro, no todos los campos de un registro son susceptibles de tener un valor en la creación, por lo que he tenido que recoger los metadatos de la entidad que se quiere clonar, recorrerme los atributos y utilizando la propiedad “IsValidForCreate”, recoger solo los campos que me permite meter un valor en la creación.
Espero les guste, les sirva, y seguiré los próximos días explorando nuevas funcionalidad que añadir
abrazo!
@demian_rasko