¡La función NavigateTo al rescate!
No os ha pasado más de una vez que cuando alguien “externo” a nuestro mundillo no hace más que decir… pues es que Dynamics no hace más que abrirme pestañas y ventanas y más y más…. Seguro que sí.
Microsoft ya es consciente de esto y ya se ha puesto en marcha. De hecho esta función sorprendentemente está cada vez en más apps nativas como Field Services, Ventas…etc
Bien pues sin más dilación… te presento la función NavigateTO. NavigateTO ya existía para mostrar listados de entidades pero no fue hasta este año cuando Microsoft desplegó esta funcionalidad y que ya está disponible para todos. Y.. ¿de qué estoy hablando? Pues mirad la siguiente imagen:
Si observáis lo que tengo es creado una entidad que he llamado Contacto_2 y, en este caso, he realizado una llamada en el evento OnLoad del formulario para mostrar un nuevo registro de la entidad Cuenta (account). Pero si os fijáis bien Dynamics me está ofreciendo una ventana contextualizada donde, en realidad no he salido de la entidad de Contacto, sino que estoy trabajando sobre el registro de cuenta y cuando finalice, cierro esta ventana y vuelvo a mi registro de contacto. Estupendo.. no???
Microsoft lo está implementando (por ejemplo) de este modo en Órdenes de trabajo. Cuando agrego una tarea, en vez de redireccionarme a ese nuevo registro, me aparece esta ventana contextual, termino de trabajar en ello y vuelvo automáticamente a mi orden de trabajo
Incluso para la navegación entre las distintas apps de la Wave 2 de este maravilloso año 2020 está en un menú contextual:
Ya, ya sé que te mueres de ganas de saber cómo se hace. Aquí te dejo la documentación de la API donde te explica más en detalle pero a grandes rasgos el código que debes introducir es en javascript y es así:
function onLoad(context){
let pageInput = new Object();
pageInput.pageType = "entityrecord";
pageInput.entityName = "account";
let navigationOptions = new Object();
navigationOptions.target = 2;
navigationOptions.position = 1;
navigationOptions.width = 90;
Xrm.Navigation.navigateTo(pageInput, navigationOptions);
}
PageInput: para definir qué quieres mostrar en el control. Tenemos la opción de mostrar un listado de entidades, un registro o incluso un webresource personalizado.
navigationOptions: Definimos el comportamiento del control: si donde queremos que se posicione y su tamaño
Espero que puedas aprovechar toda esta funcionalidad que Microsoft está poniendo a nuestra disposición. Ahh por cierto! Este tipo de navegación sólo es compatible con la nueva interfaz unificada por lo que, deberás estar actualizado para poder aprovecharlo.
Desde muy joven he sido un apasionado por la tecnología pero no fue hasta hace algo más de 8 años que me presentaron a Dynamics 365 (para entonces Dynamics CRM) y ahora, junto con toda la power platform, nos hemos hecho muy amigos. Me encanta desarrollar hasta llegar a la forma más óptima y sencilla de realizar las cosas porque (como se dice) en la sencillez reside la elegancia siempre y cuando respete el estándar del producto.