sábado, 27 de febrero de 2010

Integrando Google Maps con CRM 4.0

Muchas veces las empresas que cuentan con CRM 4.0 necesitan visualizar las locaciones de sus clientes para brindar sus servicios de una manera más rápida y eficiente por lo que necesitan de un mapa de referencia dentro de las fichas.
En esta oportunidad mostraremos como conseguir este objetivo. Adicionalmente a esto, crearemos un botón el cual me permita mostrar y ocultar el mapa ya que este ocupa un tamaño considerable.
Primero deberemos crear un IFrame, al cual llamaremos Mapa, dentro de la entidad Account (también puede ser dentro de la entidad contact).




Ahora que ya tenemos la lógica, deberemos crear el botón en el formulario de la entidad account y ahí colocaremos el extracto de Jscript, para esto deberemos modificar el sitemap de la siguiente manera:

<Entity name="account">
<ToolBar ValidForCreate="0" ValidForUpdate="1">
<Button Icon="/_imgs/ico_16_4414.gif" JavaScript="var displ=crmForm.all.IFRAME_Mapa.style.display; if(displ=='none') crmForm.all.IFRAME_Mapa.style.display=''; else crmForm.all.IFRAME_Mapa.style.display='none';" PassParams="1" WinParams="" WinMode="0">
<Titles>
<Title LCID="1033" Text="Mapa" />
</Titles>
</Button>
<ToolBarSpacer />
</ToolBar>
</Entity>
Luego importamos el ISV modificado y verificamos los resultados.
Debemos quitar el check para no Restringir scripting entre marcos .
En el evento Onload del formulario obtendremos los valores que sean referentes al nombre de la calle, distrito, departamento y país y luego lo concatenaremos de la siguiente manera. Cabe resaltar que para el registro de estos campos no he utilizado los que vienen de caja sino que he creado lookups por temas de ubigeo.
var url= "http://maps.google.com/maps?q=" + 
crmForm.all.jc_paisid.DataValue[0].name+ "," + 
crmForm.all.jc_departamentoid.DataValue[0].name + "," + 
crmForm.all.jc_distritoid.DataValue[0].name + "," + 
crmForm.all.jc_calle.DataValue;
crmForm.all.IFRAME_Mapa.src=url;

Ahora que el mapa es se muestra en el formulario, crearemos un botón el cual nos permita ocultarlo y/o visualizarlo según nuestra necesidad. Para lograr esto primero debemos tener en cuenta el jscript que nos permitirá esta fucnionalidad.
var displ=crmForm.all.IFRAME_Mapa.style.display;
if(displ=='none') crmForm.all.IFRAME_Mapa.style.display='';
else crmForm.all.IFRAME_Mapa.style.display='none';
NOTA:El código mostrado arriba nos permite esta funcionalidad. Lo más recomendable es que el IFRAME se encuentre en una sección diferente para ocultar la sección en lugar de ocultar el IFRAME ya que si hacemos esto último se mostrará un espacio vacío.

Empezando a CRMear!!!!!!!

Hola a todos los visitantes de este Blog. Soy consultor de Dynamics CRM desde la versión 3.0 y ahora me encuentro investigando sobre las funcionalidades de la 5.0 Espero realmenete que este medio sirva para poder brindarles apoyo, notas de interés y compartir conocimiento alrededor de MS Dync CRM. Gracias por su atención y bienvenidos a CRMeando.