Botón Multiselección en un Grid de CRM 3.0

Seguro que más de uno ha intentado hacer esto de la forma que se indica en la documentación del SDK, y estoy seguro que a muchos no os ha funcionado. Pues a mi tampoco me ha funcionado… hasta ahora 🙂


En el SDK de Microsoft Dynamics CRM 3.0 podemos encontrar la definición de el elemento Button que tendremos que añadir en el fichero ISV.config para conseguir presentar un nuevo botón personalizado en un grid. Uno de los parámetros de configuración es PassParams que permite indicarle al CRM que cuando pulsemos ese botón le pase el GUID de la entidad.


Si utilizamos un botón con el PassParams = 1 en un botón personalizado en el grid de la entidad. Lo que hace es pasar los GUIDs de los elementos que tengamos seleccionados en el Grid como parámetros del diálogo web (window.dialogArguments en JavaScript) en el que se mostrará la url que hemos indicado en la configuración del botón.


En su momento intenté hacer esto, siguiendo este gran ejemplo que también se encuentra en el SDK online, pero no me funcionó. Como no era urgente, lo dejé aparcado, y ahora me he decido a ver como podía solucionarlo.


Resulta que el problema estaba en que el paso de parámetros no se realiza si la web destino no está en el mismo sitio web. Si la web destino está en el mismo sitio web, aunque sea en un directorio virtual distinto no tendremos problema, pero si es otro sitio (aún en el mismo servidor) no funcionará. El motivo no lo tengo claro, pero me puedo imaginar que será algún tipo de protección contra cross site scripting.


En resumen la solución para que el paso de los parámetros funcione en los botones del grid, es que la página destino esté en el mismo sitio web (aunque sea en otro directorio virtual del mismo sitio).


Si aún así, os es obligatorio que el destino esté en otro sitio web (o servidor), podéis aplcar este rodeo que comentan en el blog Dynamic MSCRM. Aunque, hay que decirlo, NO es una personalización soportada 🙂


Un saludo,


Marco

Un comentario sobre “Botón Multiselección en un Grid de CRM 3.0”

  1. Marco,

    Estoy totalmente de acuerdo contigo, en mi caso yo implemente una applicación para crear los emails a un incidente, todo funciona bien solo en el mismo servidor, pero al final el unico rodeo que no me ha funcionado es llamar a la funcion refresh en la pagina que contiene el grid, para actualisar la lista de emails pendientes en el queue.

    Abraham,

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *