Mostrando entradas con la etiqueta Xrm. Mostrar todas las entradas
Mostrando entradas con la etiqueta Xrm. Mostrar todas las entradas

viernes, 20 de octubre de 2017

USD: Cómo refrescar una vista asociada

Es muy sencillo, basta con crear una Llamada a la acción de tipo RunXrmCommand.

Pongamos el siguiente ejemplo: En USD se nos muestra una pestaña con el formulario de un contacto, este formulario tiene una vista asociada a los casos de dicho contacto. Podrás comprobar que si creas un caso no se actualiza esta vista. ¿cómo refrescarla?

Crear una Llamada a la acción con los siguientes datos:

Nombre: Refrescar vista de casos en contacto
Pedido:
Control Hospedado: Contacto
Accion: RunXrmCommand
Datos: Xrm.Page.ui.controls.get("nombredelavistaasociadaId").refresh();

Damos por supuesto que el control "Contacto", es un control hospedado de tipo Página de Microsoft Dynamics 365
Si no sabes como obtener el nombredelavistaasociadaId edita en CRM el formulario de la entidad (en este caso Contacto), haces doble clic sobre el elemento de la vista asociada y en el campo nombre ahí lo tienes.

viernes, 10 de febrero de 2017

Llamar a función desde popup en CRM con Javascript

Pongámonos en situación, en un CRM 2016 online, desde el formulario principal de Contacto queremos abrir un popup y una vez abierto, desde éste llamar a una función que está en el formulario de Contacto.

Tenemos un fichero contacto.js donde cargamos toda la lógica de negocio de javascript en relación a la entidad Contacto. En la configuración del formulario le añadimos al evento OnLoad la función onLoadContacto que estará en el .js

El popup se abrirá desde uno de los botones del ribbon y queremos desde este popup llamar a una función que está en contacto.js ¿cómo?

En el parent, que es contacto.js añadimos el siguiente código a la función onLoadContacto()

function onLoadContacto() {
    Xrm.Page.test = test;
}

Además creamos la función que se llamará desde el popup:

function test() {
   alert('test');
}

Desde el formulario del popup sólo hay que poner la siguiente instrucción:

window.top.opener.Xrm.Page.test();