22 septiembre 2012

Colores Custom en la Grid

- El despliegue de Microsoft Dynamics CRM puede ser personalizado a través de la modificación de los archivos del web site localizados en la carpeta CrmWeb

- Antes de proceder debe tener en cuenta que este tipo de personalizaciones son englobadas en tipo de desarrollo no soportado, por lo que se debe actuar con el máximo conocimiento de la base de despliegue de Dynamics CRM

- En este ejemplo veremos una customización muy demandada, el coloreo de la grid según criterios de valores de campo

- En la entidad Oportunidades, haremos diferenciación de color de los registros según su campo Rating (Clasificación), coloreando en verde los que contengan el valor “Cold”, y de rojo los que contengan el valor “Hot”

- En primer lugar veamos el contenido de la carpeta CrmWeb



- En la carpeta ISV, crearemos desde el principio el archivo colorizeGrid.htc, con el siguiente contenido

<public:component lightweight="true">
<public:attach event="ondocumentready" onevent="Init()"/>
<script type="text/javascript">

    var valueKey1 = null;
    var valueKey2 = null;
    var indexKey = null;
    
    function Init() {
    
        if (this.oname == "3") { // Opportunities

            indexKey = 7;
            valueKey1 = "Hot";
            valueKey2 = "Cold";

            colorize(indexKey, valueKey1, valueKey2);                                 
        }        
    }

    function colorize(indexKey, valueKey1, valueKey2) {

        for (var i = 0; i < this.rows.length; i++) {
            if (this.rows[i].cells[indexKey].innerText == valueKey1) {
                for (var j = 0; j < this.rows[i].cells.length; j++) {
                    var cell = this.rows[i].cells[j];
                    cell.style.backgroundColor = "FFB4B4";
                }
            }
            else if (this.rows[i].cells[indexKey].innerText == valueKey2) {
                for (var j = 0; j < this.rows[i].cells.length; j++) {
                    var cell = this.rows[i].cells[j];
                    cell.style.backgroundColor = "99FF99";
                }
            }
        }
    }    
 
</script>
</public:component>



- A continuación añadiremos la referencia a este archivo en el atributo de comportamiento de la CSS del fichero AppGrid.css.aspx, localizado en la carpeta _grid, del siguiente modo

.ms-crm-List-Data
{
    table-layout: fixed;
    width: 100%;
    behavior: 
    url(<%=CrmUri.Create("/_static/_grid/appgrid_defaultdata.htc", 
        Microsoft.Crm.Application.Security.UserInformation.Current).ToString()%>) 
    url(<%=CrmUri.Create("/ISV/colorizeGrid.htc", 
        Microsoft.Crm.Application.Security.UserInformation.Current).ToString()%>);
}


- El resultado es el siguiente



- Para que el despliegue sea completo, debe tener en cuenta los siguientes puntos una vez tenga realizado el cambio de color de registros de la grid:
>> Mantener el color de la columna de ordenación
>> Cambiar el color de registro seleccionado
>> Cambiar el color de múltiples selecciones






Desde Innovar Tecnologías esperamos que este documento les sea de ayuda en su desarrollo

Web de la empresa

16 septiembre 2012

Mapas de Datos

En Dynamics CRM 2011 podemos importar datos a más de una entidad simultáneamente desde un solo fichero fuente

Para indicar a la herramienta de importación de datos que vamos a crear dos tipos de registro utilizando un solo fichero csv, debemos especificar un Mapa de Datos

Un Mapa de Datos es un fichero que contiene información sobre cómo se corresponden los datos desde la fuente con los datos en CRM

En primer lugar veamos el contenido de un Mapa de Datos. Para esto vamos a exportar un mapa de datos de sistema




Este mapa de datos, como podemos comprobar, es utilizado para importaciones de Contactos y Cuentas

Haremos las modificaciones necesarias para utilizarlo en la importación de Coches y Fabricantes

Para asegurarnos de no importar datos duplicados, vamos a cambiar la regla del atributo Dedupe, de “Ignore” a “Eliminate”



Guardamos el fichero y lo importamos a nuestra colección de Mapas de Datos



Ahora importaremos los datos contenidos en un solo archivo csv a dos entidades diferentes mediante nuestro Mapa de Datos custom

El fichero Excel es el siguiente



Lo exportamos como fichero de valores separados por coma y lo importamos a CRM

El proceso de importación y mapeo de campos es el siguiente







Procedemos a confirmar la importación



Comprobamos los resultados en Importaciones



Y navegamos hasta las entidades para visualizar los datos





Desde Innovar Tecnologías esperamos que este documento les sea de ayuda en su desarrollo

Web de la empresa