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();

domingo, 29 de enero de 2017

USD - Cómo cambiar el nombre y el logo

Cómo no, para estos menesteres ya hay que ir tocando algo de código, pero no demasiado ;)

Paso 1: Cambiar nombre
Para cambiar el nombre y/o apariencia de la denominada splash screen al abrir USD tenemos que agregar un fichero XAML a la carpeta donde tengamos instalado el cliente de USD.

Éste es el código:
1:  <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
2:            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
3:            xmlns:resx1="clr-namespace:Microsoft.Crm.UnifiedServiceDesk.Properties">  
4:   <Style x:Key="FormAppNameStyle" TargetType="TextBlock">  
5:    <Setter Property="Foreground" Value="Blue"></Setter>  
6:    <Setter Property="FontFamily" Value="Segoe UI"></Setter>  
7:    <Setter Property="FontSize" Value="40"></Setter>  
8:    <Setter Property="Background" Value="White"></Setter>  
9:    <Setter Property="Text" Value="[Nombre de la Compañía]"></Setter>  
10:   </Style>  
11:   <Style x:Key="SplashAppNameStyle" TargetType="Label">  
12:    <Setter Property="Foreground" Value="Blue"></Setter>  
13:    <Setter Property="FontFamily" Value="/UnifiedServiceDesk;component/Fonts/#Segoe UI"></Setter>  
14:    <Setter Property="FontSize" Value="40"></Setter>  
15:    <Setter Property="Content" Value="[Nombre de la Compañía]"></Setter>  
16:   </Style>  
17:   <Style x:Key="SplashScreenDefaultFontStyle" TargetType="TextBlock">  
18:    <Setter Property="FontSize" Value="14px"/>  
19:    <Setter Property="Foreground" Value="Black"/>  
20:    <Setter Property="TextWrapping" Value="Wrap"/>  
21:    <Setter Property="TextTrimming" Value="WordEllipsis"/>  
22:    <Setter Property="FontFamily" Value="Calibri"/>  
23:   </Style>  
24:   <Style x:Key="SplashGridBgColor" TargetType="Grid">  
25:    <Setter Property="Background" Value="Gray"></Setter>  
26:   </Style>  
27:  </ResourceDictionary>  

Fijaros bien en las líneas 9 y 15, son las que mostrarán el nombre de nuestra compañía, empresa, cliente, etc...

Lo guardamos con el nombre CustomerSplashStyles.xaml en la carpeta donde se instaló el cliente de USD y al abrir USD tendremos esto:



Paso 2: Cambiar el logo que se mostrará cuando USD se abra.

  • Lo primero de todo como imaginarás es tener el logo [de la compañía], yo me he creado una imagen PNG simplemente con el MsPaint de Windows de 160 x 25 pixels

  • Subir esta imagen como un webresource al entorno de Dynamics 365
  • Editar el Hosted Control "Custom Panel": Ir a Configuración, Unified Service Desk, Hosted Controls
  • Cambiar la línea 25
  • 25:  <Image Style="{DynamicResource USDLogo}" Grid.Column="0" ToolTip="Unified Service Desk" AutomationProperties.Name="Unified Service Desk" />  
    
    Por esta otra:
    25:  <Image Source="{Binding Source=new_logo, Converter={StaticResource CRMImageLoader}}" Style="{DynamicResource USDLogo}" Grid.Column="0" ToolTip="[Nombre de la Compañía] Service Desk" AutomationProperties.Name="Unified Service Desk" />  
    
    Importante recalcar que "new_logo" es el nombre que le hemos dado al WebResource que contiene el logo.
  • Comprobamos el cambio abriendo el cliente de USD

USD - Arrancando

Aunque podéis encontrar bastante documentación sobre Unified Service Desk, escribo este post para haceros más fácil entrar en el mundo del Contact Center, Customer Services o como lo queráis llamar.

Paso 1: Descarga del cliente y del instalador en el servidor
https://www.microsoft.com/en-US/download/details.aspx?id=50355

Paso 2: Instalación
La instalación del cliente es muy sencilla, la típica "next, next, finish"
Para la instalación en el servidor, deberíamos disponer previamente de un entorno de Dynamics 365, si aún no lo tienes ve a este link donde podrás conseguir una trial gratuita de 30 días.
Ahora vamos a instalar USD en nuestro entorno de Dynamics:
  • Ejecuta el Dynamics USD Package Deployer
  • Selecciona un directorio en tu equipo para extraer todos los ficheros y cuando llegues a esta ventana:
    Selecciona la primera opción para hacer una instalación en limpio. Básicamente instala dos soluciones UiiForMicrosoftDynamicsCRM201 DynamicsUnifiedServiceDesk con lo mínimo para abrir un USD conectado a ese entorno. El resto de opciones instalan además datos de configuración de ejemplo.
Paso 3: Abrir nuestro nuevo USD
  • Ejecuta el acceso directo al cliente de USD que te creó el instalador.
  • Cambia las credenciales, apuntando a tu entorno de Dynamics 365
y listo!