<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-21619730</id><updated>2012-01-12T08:57:51.805+01:00</updated><category term='IFD'/><category term='outlook errores'/><category term='CRM 2011'/><category term='Migración'/><category term='Reports'/><category term='Informes'/><category term='Instaladores'/><category term='personalización'/><category term='workflow'/><category term='asp.net desarrollo'/><category term='UpdateRollup'/><category term='Marketing'/><category term='Instalación Exchange'/><category term='Correo electrónico'/><category term='Importación'/><category term='Servicio'/><category term='Novedades'/><category term='errores'/><category term='Funcionalidades'/><category term='herramientas'/><category term='Silverlight'/><category term='Desarrollo'/><title type='text'>CRM a diario</title><subtitle type='html'>     Todo acerca de Microsoft Dynamics CRM (y alrededores)</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>97</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-21619730.post-966091335757328437</id><published>2012-01-12T08:57:00.000+01:00</published><updated>2012-01-12T08:57:51.813+01:00</updated><title type='text'>Funciones Javascript para CRM 2011: una chuleta</title><content type='html'>Sacado del blog de &lt;a href="http://andreaswijayablog.blogspot.com"&gt;Andreas Wijaya&lt;/a&gt;: una lista de scripts para incluir en formularios de CRM 2011, que puede ser de ayuda en un momento de mala memoria.&lt;br /&gt;&lt;a href="http://andreaswijayablog.blogspot.com/2011/07/crm-2011-javascript-functions.html?spref=bl"&gt;Andreas Wijaya&amp;#39;s Blog: CRM 2011 Javascript Functions&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-966091335757328437?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/966091335757328437/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=966091335757328437' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/966091335757328437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/966091335757328437'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2012/01/funciones-javascript-para-crm-2011-una.html' title='Funciones Javascript para CRM 2011: una chuleta'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-7670372764019434026</id><published>2011-09-19T09:09:00.001+02:00</published><updated>2011-09-19T09:09:52.085+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CRM 2011'/><category scheme='http://www.blogger.com/atom/ns#' term='Reports'/><category scheme='http://www.blogger.com/atom/ns#' term='herramientas'/><title type='text'>CRM Reports Uploader and LOcalizer</title><content type='html'>&lt;p&gt;Hace unos meses (antes del verano, parecen años…) &lt;a href="http://crmadiario.blogspot.com/2011/08/reports-en-crm-2011-lecciones.html" target="_blank"&gt;comenté en este blog&lt;/a&gt; si alguien se animaba a hacer una mini-herramienta para permitir localización de informes en Microsoft Dynamics CRM. Estaba trabajando en un proyecto en el que tenía (en ese momento) &lt;strong&gt;dos &lt;/strong&gt;informes (en realidad un informe y un sub-informe) que había que publicar en &lt;strong&gt;tres &lt;/strong&gt;idiomas. Cada vez que había que hacer un cambio, por lo tanto tenía que, en el peor de los casos:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Modificar los informes en el idioma base &lt;/li&gt;    &lt;li&gt;Modificar las cuatro traducciones &lt;/li&gt;    &lt;li&gt;Subir los seis informes a CRM &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Total, que cada pequeño cambio era un drama. Pues nada, al final me he animado a hacer la herramienta yo mismo. En un alarde de creatividad lo he llamado &lt;strong&gt;CRM R&lt;/strong&gt;eports &lt;strong&gt;U&lt;/strong&gt;ploader and &lt;strong&gt;LO&lt;/strong&gt;calizer (CrmRULO) y lo he colgado en &lt;a href="http://crmrulo.codeplex.com" target="_blank"&gt;codeplex&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://crmrulo.codeplex.com"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="crmrulo" border="0" alt="crmrulo" src="http://lh3.ggpht.com/-g0-G2KPPPTo/Tnbqv14heBI/AAAAAAAAFI8/Fv20KwXX_wA/crmrulo%25255B58%25255D.jpg?imgmax=800" width="534" height="305" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Si hay alguien ahí fuera, por favor, que deje comentarios, críticas, alabanzas… en el sitio de codeplex.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-7670372764019434026?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/7670372764019434026/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=7670372764019434026' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/7670372764019434026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/7670372764019434026'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2011/09/crm-reports-uploader-and-localizer.html' title='CRM Reports Uploader and LOcalizer'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/-g0-G2KPPPTo/Tnbqv14heBI/AAAAAAAAFI8/Fv20KwXX_wA/s72-c/crmrulo%25255B58%25255D.jpg?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-1279624614672346463</id><published>2011-09-05T10:39:00.001+02:00</published><updated>2011-09-05T10:39:13.574+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CRM 2011'/><category scheme='http://www.blogger.com/atom/ns#' term='Importación'/><title type='text'>Importar ficheros adjuntos en CRM 2011</title><content type='html'>&lt;p&gt;Un tema poco documentado y que puede ser fuente de bastantes frustraciones: aunque &lt;a href="http://crmadiario.blogspot.com/2011/07/dos-cosas-buenas-del-importador-de.html" target="_blank"&gt;el nuevo sistema de importación de CRM está muy bien&lt;/a&gt;, ¿qué pasa cuando tenemos un montón de datos en forma de &lt;strong&gt;ficheros adjuntos&lt;/strong&gt;? Los ficheros adjuntos se representan internamente con la entidad &lt;strong&gt;attachment&lt;/strong&gt; aunque en la interfaz de usuario aparecen como &lt;strong&gt;Notas&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;El proceso es así:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Exportar los registros &lt;strong&gt;Nota&lt;/strong&gt; que nos interesen mediante una búsqueda avanzada. No olvidar incluir la columna &lt;strong&gt;Regarding&lt;/strong&gt; apuntando al registro &lt;em&gt;padre&lt;/em&gt; de la nota. Los registros &lt;em&gt;padre &lt;/em&gt;deben haber sido importados previamente.&lt;/li&gt;    &lt;li&gt;Guardar el excel obtenido con formato &lt;strong&gt;XML Spreadsheet 2003&lt;/strong&gt; Por ejemplo &lt;strong&gt;notes.xml&lt;a href="http://lh6.ggpht.com/-XCwpJdcY_a8/TmSKoYh0OfI/AAAAAAAAFHU/uxK7RXQprUI/s1600-h/attachments_-1%25255B5%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="attachments_-1" border="0" alt="attachments_-1" src="http://lh5.ggpht.com/-2Wt9LYFhuLc/TmSKo2QRq6I/AAAAAAAAFHY/QMXeNPZvb88/attachments_-1_thumb%25255B1%25255D.jpg?imgmax=800" width="244" height="51" /&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Añadir el campo &lt;strong&gt;PhysicalFileName&lt;/strong&gt; con el mismo contenido que la columna &lt;strong&gt;File name&lt;/strong&gt;.&lt;a href="http://lh5.ggpht.com/-HjDDL3o5bVU/TmSKpSu7rnI/AAAAAAAAFHc/J3xgOOmfU74/s1600-h/attachments_00%25255B2%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="attachments_00" border="0" alt="attachments_00" src="http://lh3.ggpht.com/-x89We_vUFeE/TmSKp2kXjwI/AAAAAAAAFHg/jtfdMc6-A-U/attachments_00_thumb.jpg?imgmax=800" width="244" height="151" /&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Crear una carpeta &lt;strong&gt;Attachments&lt;/strong&gt; y copiar en ella los ficheros adjuntos que queramos importar.&lt;/li&gt;    &lt;li&gt;Crear un fichero &lt;strong&gt;zip &lt;/strong&gt;con el fichero &lt;strong&gt;notes.xml&lt;/strong&gt; y la carpeta &lt;strong&gt;Attachments&lt;/strong&gt;.       &lt;br /&gt;&lt;strong&gt;Nota&lt;/strong&gt;: si el tamaño total del fichero resultante es mayor de 8 MB ver la sección &lt;em&gt;Ficheros grandes.       &lt;br /&gt;&lt;/em&gt;&lt;em&gt;&lt;a href="http://lh3.ggpht.com/-Z1p-kNnkaTE/TmSKqZmhi9I/AAAAAAAAFHk/pms2Elv-ycY/s1600-h/attachments_01%25255B2%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="attachments_01" border="0" alt="attachments_01" src="http://lh5.ggpht.com/-MdlqAMYFmLE/TmSKrFTkJoI/AAAAAAAAFHo/rimgcBptE8s/attachments_01_thumb.jpg?imgmax=800" width="230" height="118" /&gt;&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;    &lt;li&gt;Desde el importador, mapear el campo &lt;strong&gt;PhysicalFileName&lt;/strong&gt; a &lt;strong&gt;Document&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Mapear también el campo &lt;strong&gt;Regarding &lt;/strong&gt;al nombre (o campo principal) de la entidad &lt;em&gt;padre.&lt;a href="http://lh6.ggpht.com/-VdJzUw4A6PM/TmSKrmyf3fI/AAAAAAAAFHs/nwBKNsQPRbA/s1600-h/attachments_02%25255B6%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="attachments_02" border="0" alt="attachments_02" src="http://lh5.ggpht.com/-A4bIepWkMGk/TmSKsL2oE2I/AAAAAAAAFHw/01Wsdo_XmNs/attachments_02_thumb%25255B1%25255D.jpg?imgmax=800" width="197" height="244" /&gt;&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;    &lt;li&gt;Por último podemos guardar el mapa creado por si necesitamos reutilizarlo más adelante.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;   &lt;br /&gt;&lt;/p&gt;  &lt;h3&gt;Ficheros grandes&lt;/h3&gt;  &lt;p&gt;Lo que significa aquí &lt;em&gt;grande &lt;/em&gt;depende de vuestra implementación de CRM. En la mía resultó ser de 8MB el límite de tamaño de los ficheros adjuntos.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Repartir los ficheros en varias carpetas para que cada zip resultante sea de aproximadamente 5 MB.&lt;/li&gt;    &lt;li&gt;Copiar el fichero &lt;strong&gt;notes.xml &lt;/strong&gt;en cada una de las carpetas.&lt;/li&gt;    &lt;li&gt;Crear n ficheros &lt;strong&gt;attachments1.zip&lt;/strong&gt;, &lt;strong&gt;attachments2.zip&lt;/strong&gt; etc&lt;/li&gt;    &lt;li&gt;Repetir el proceso de arriba para cada fichero &lt;strong&gt;zip&lt;/strong&gt;.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Hay que tener en cuenta que en cada importación fallarán los registros para los que no existe el fichero correspondiente en la carpeta del zip. De todas formas, al final del proceso se habrán importado todos.&lt;/p&gt;  &lt;p&gt;Gracias a &lt;a href="http://www.linkedin.com/groups/How-Import-attachments-in-CRM-21231.S.54058105" target="_blank"&gt;David E.&lt;/a&gt; que comentó el punto clave del atributo &lt;strong&gt;PhysicalFileName&lt;/strong&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-1279624614672346463?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/1279624614672346463/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=1279624614672346463' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/1279624614672346463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/1279624614672346463'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2011/09/importar-ficheros-adjuntos-en-crm-2011.html' title='Importar ficheros adjuntos en CRM 2011'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-2Wt9LYFhuLc/TmSKo2QRq6I/AAAAAAAAFHY/QMXeNPZvb88/s72-c/attachments_-1_thumb%25255B1%25255D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-6352910190752715108</id><published>2011-08-05T12:00:00.001+02:00</published><updated>2011-08-05T12:00:22.534+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Informes'/><title type='text'>Reports en CRM 2011: lecciones aprendidas</title><content type='html'>&lt;p&gt;Llevo unos días trabajando en un proyecto de migración del CRM de mi empresa a Microsoft &lt;strong&gt;Dynamics CRM 2011 Online&lt;/strong&gt;. Incluye algunos temas de reporting, y el más básico de ellos es la impresión de facturas automatizada. No debería ser un problema, ¿no? En realidad, no, pero aún así hay algunas cosas que he descubierto por el camino y que … aquí van:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Si nuestra instalación de CRM es &lt;strong&gt;Online&lt;/strong&gt;, los reports &lt;strong&gt;no se pueden basar en consultas SQL&lt;/strong&gt;, sino en FetchXML. Para que el &lt;strong&gt;BIDS&lt;/strong&gt; (Business Inteligence Development Studio) funcione con estos reports hay que instalar un complemento que viene incluido en el instalador de CRM.&lt;/li&gt;    &lt;li&gt;No existe soporte a localización de los informes, como ocurre con otros proyectos .NET. Esto no es específico de CRM, sino de Reporting Services, así que toca olvidarse de ficheros de recursos &lt;strong&gt;resx&lt;/strong&gt;. Hay algunas alternativas, como por ejemplo incluir código .NET en el informe, pero esto &lt;strong&gt;no &lt;/strong&gt;es posible en la versión Online, ya que requiere instalar las DLLs en la GAC.&lt;/li&gt;    &lt;li&gt;Si se requiere un sub-informe (por ejemplo Factura y Líneas de factura) se debe subir primero el informe padre y luego el informe hijo. En el informe hijo habrá que rellenar el atributo &lt;strong&gt;parentreportid&lt;/strong&gt;.&lt;/li&gt;    &lt;li&gt;Las vistas por defecto de informes muestran los que están en el idioma del usuario y los marcados como &lt;em&gt;Todos los idiomas (-1)&lt;/em&gt; En un momento un poco ridículo pensé que quería decir “Todos los idiomas menos uno”, he, he. Pues no, quiere decir que si ponemos el atributo &lt;strong&gt;languagecode&lt;/strong&gt; a &lt;strong&gt;–1&lt;/strong&gt; los usuarios verán el informe independientemente del idioma que hayan seleccionado.&lt;/li&gt;    &lt;li&gt;Cuando se hacen cambios, subir cada vez el report al servidor es un proceso tedioso. Más aún si tenemos subreports y versiones localizadas.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Conclusión: estaría bien fabricar una &lt;strong&gt;herramienta&lt;/strong&gt; que permita:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Localizar un report a varios otros idiomas.&lt;/li&gt;    &lt;li&gt;Publicar un conjunto de reports al servidor en una sola acción.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;¿Alguien se anima a hacerla? &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="http://lh4.ggpht.com/-EGr_1DZJW2I/Tju_NT_vrEI/AAAAAAAAFAE/bokVvYdHSOQ/wlEmoticon-smile%25255B2%25255D.png?imgmax=800" /&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-6352910190752715108?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/6352910190752715108/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=6352910190752715108' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/6352910190752715108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/6352910190752715108'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2011/08/reports-en-crm-2011-lecciones.html' title='Reports en CRM 2011: lecciones aprendidas'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/-EGr_1DZJW2I/Tju_NT_vrEI/AAAAAAAAFAE/bokVvYdHSOQ/s72-c/wlEmoticon-smile%25255B2%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-6887277050914997865</id><published>2011-07-22T13:27:00.001+02:00</published><updated>2011-07-22T13:27:41.403+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IFD'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><category scheme='http://www.blogger.com/atom/ns#' term='errores'/><title type='text'>Tribulaciones con Silverlight en IFD</title><content type='html'>&lt;p&gt;Hace poco (poquísimo, o sea, hoy) he tenido que investigar un problema que surge cuando instalamos el &lt;strong&gt;Internet Facing Deployment &lt;/strong&gt;en una instalación de Dynamics CRM 4.0&lt;/p&gt;  &lt;p&gt;Una vez superados los temas propios de IFD (cabeceras, DNS etc) me esperaba un problema añadido: las páginas que había añadido a esta organización en &lt;strong&gt;Silverlight&lt;/strong&gt;. El problema es que mis páginas Silverlight se comunican con un servicio WCF que he colgado en la carpeta ISV del servidor. &lt;/p&gt;  &lt;p&gt;Al acceder a este servicio salta el error:&lt;/p&gt;  &lt;h3&gt;This collection already contains an address with scheme http&lt;/h3&gt;  &lt;p&gt;Pues bien, para que ese servicio funcione con la nueva URL, tenemos que hacer este cambio en su &lt;strong&gt;web.config:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;&amp;lt;serviceHostingEnvironment aspNetCompatibilityEnabled=&amp;quot;false&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160; &amp;lt;baseAddressPrefixFilters&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;add prefix=&amp;quot;&lt;/font&gt;&lt;a href="http://deploy.crmdomain.local&amp;quot;/"&gt;&lt;font face="Courier New"&gt;http://deploy.crmdomain.local&amp;quot;/&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier New"&gt;&amp;gt;     &lt;br /&gt;&amp;#160; &amp;lt;/baseAddressPrefixFilters&amp;gt;      &lt;br /&gt;&amp;lt;/serviceHostingEnvironment&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Este truco lo encontré en este &lt;a href="http://social.msdn.microsoft.com/Forums/en/adodotnetdataservices/thread/e028cea6-5b40-4a43-b395-d966bc93ffd5" target="_blank"&gt;post&lt;/a&gt; de los foros de Microsoft por &lt;a href="http://social.msdn.microsoft.com/profile/dan%20crowell/" target="_blank"&gt;Dan Crowell&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Por otro lado, tuve que recompilar el servicio para añadirle un atributo ya que de otra manera, el módulo Silverlight pedía credenciales después de haber hecho login a CRM con éxito.&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;[ServiceBehavior(AddressFilterMode=AddressFilterMode.Any)]&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Esta solución viene del post &lt;a href="http://forums.silverlight.net/p/205815/482872.aspx" target="_blank"&gt;&lt;strong&gt;Calling silverlight WCF service over IFD deployment of CRM&lt;/strong&gt;&lt;/a&gt; de los foros de CRM, y hay que agradercérselo a &lt;a href="http://forums.silverlight.net/members/rajeshreddy.keesara.aspx" target="_blank"&gt;Rajeshreddy Keesara&lt;/a&gt; de los foros de Silverlight.&lt;/p&gt;  &lt;p&gt;¡Gracias!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-6887277050914997865?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/6887277050914997865/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=6887277050914997865' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/6887277050914997865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/6887277050914997865'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2011/07/tribulaciones-con-silverlight-en-ifd.html' title='Tribulaciones con Silverlight en IFD'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-8457504262556629631</id><published>2011-07-20T11:20:00.001+02:00</published><updated>2011-07-20T11:20:42.552+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CRM 2011'/><category scheme='http://www.blogger.com/atom/ns#' term='Importación'/><category scheme='http://www.blogger.com/atom/ns#' term='Funcionalidades'/><title type='text'>Dos cosas buenas del importador de datos en CRM 2011</title><content type='html'>&lt;p&gt;Y digo dos porque seguro que hay más, que aún no he acabado de explorarlo. En el pasado, para importar datos de otras plataformas teníamos la &lt;em&gt;herramienta&lt;/em&gt; &lt;strong&gt;DMF&lt;/strong&gt; o &lt;strong&gt;Data Migration Framework&lt;/strong&gt;, que da miedo de sólo escribirlo. Era una de esas herramientas que no sabías muy bien dónde ubicar: los datos los debía conocer un usuario de negocio, pero requería conocimientos de nivel de administrador de base de datos SQL. El resultado no solía ser muy satisfactorio. Pues bien, la última versión de Dynamics CRM incluye una interfaz integrada en la herramienta para hacer importaciones … digamos que bastante complejas.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-_PGReTUm5nk/Tiad5TjUSQI/AAAAAAAAE_c/rhV1xBOB9bk/s1600-h/importador%25255B6%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="importador" border="0" alt="importador" src="http://lh6.ggpht.com/-eypoLYlC69o/Tiad6GjPZBI/AAAAAAAAE_g/uH7ENvNa3v8/importador_thumb%25255B4%25255D.jpg?imgmax=800" width="447" height="332" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;En esta foto podéis apreciar las dos funcionalidades que comento:&lt;/p&gt;  &lt;p&gt;1) &lt;strong&gt;Se pueden importar ficheros zip con más de una entidad a la vez&lt;/strong&gt;. Esto es imprescindible cuando tenemos referencias circulares. (El contacto pertenece a una cuenta que tiene como contacto principal al contacto, toma trabalenguas)&lt;/p&gt;  &lt;p&gt;2) &lt;strong&gt;Se puede hacer &lt;em&gt;rollback &lt;/em&gt;de la importación&lt;/strong&gt;. Si algo va mal (me da la risa) se crea un proceso asíncrono de borrado de todos los elementos que se han importado.&lt;/p&gt;  &lt;p&gt;Además, como los procesos de importación siempre tardan un poquillo, pues … te da tiempo a escribir un post rápido en tu blog :-)&lt;/p&gt;  &lt;p&gt;En fin, que seguimos mejorando.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-8457504262556629631?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/8457504262556629631/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=8457504262556629631' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/8457504262556629631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/8457504262556629631'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2011/07/dos-cosas-buenas-del-importador-de.html' title='Dos cosas buenas del importador de datos en CRM 2011'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-eypoLYlC69o/Tiad6GjPZBI/AAAAAAAAE_g/uH7ENvNa3v8/s72-c/importador_thumb%25255B4%25255D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-8236776570590876777</id><published>2011-06-23T09:56:00.001+02:00</published><updated>2011-06-23T09:56:19.653+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CRM 2011'/><category scheme='http://www.blogger.com/atom/ns#' term='herramientas'/><title type='text'>Nuevo kit de demostración para CRM Online</title><content type='html'>&lt;p&gt;Acaba de publicarse un recurso que será de mucha utilidad para comerciales, ingenieros pre-venta y aficionados a CRM en general. Se trata del &lt;a href="http://blogs.msdn.com/b/crm/archive/2011/06/14/microsoft-dynamics-crm-online-demonstration-kit.aspx" target="_blank"&gt;Microsoft Dynamics CRM Online Demonstration Kit&lt;/a&gt; y es un conjunto de personalizaciones, datos de prueba y un guión de demo para mostrar algunas de las funcionalidades destacadas de Dynamics CRM 2011.&lt;/p&gt; &lt;p&gt;Incluye un montón de recursos:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;13 Dashboards&lt;/li&gt; &lt;li&gt;17 Workflows&lt;/li&gt; &lt;li&gt;2 Diálogos&lt;/li&gt; &lt;li&gt;1 Web Resource (jscript para formateo de números de teléfono)&lt;/li&gt; &lt;li&gt;1 Option Set&lt;/li&gt; &lt;li&gt;2 Plantillas de correo electrónico&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Por cierto, que los &lt;em&gt;dashboards &lt;/em&gt;dan pistas sobre cómo aprovechar la nueva entidad &lt;strong&gt;Objetivo &lt;/strong&gt;(Goal)&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;en su versión reporting. &lt;/p&gt; &lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; border-top: 0px; border-right: 0px; padding-top: 0px" border="0" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-55-55-metablogapi/5810.image_5F00_20.png" width="560" height="423"&gt;&lt;/p&gt; &lt;p&gt;Gracias al equipo de Dynamics CRM, de nuevo.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-8236776570590876777?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/8236776570590876777/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=8236776570590876777' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/8236776570590876777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/8236776570590876777'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2011/06/nuevo-kit-de-demostracion-para-crm.html' title='Nuevo kit de demostración para CRM Online'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-4845833991094644155</id><published>2011-06-08T16:15:00.001+02:00</published><updated>2011-06-08T16:15:52.713+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CRM 2011'/><title type='text'>Acceso directo a la FAQ de Dynamics CRM</title><content type='html'>&lt;p&gt;Pues sí, parece que funciona. Los editores de contenido de Dynamics CRM (sistema de ayuda, documentación de la SDK) están disponibles para responder preguntas directamente desde una cajita que sale abajo a la derecha de cualquier artículo: &lt;strong&gt;Send feedback&lt;/strong&gt;. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-fWjmlirFqZQ/Te-EEyk8d9I/AAAAAAAAEt8/cIKOA2Px8KE/s1600-h/image%25255B10%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-87ZuvLwTUQU/Te-EF2PW0iI/AAAAAAAAEuA/hNeCu-xyHrE/image_thumb%25255B6%25255D.png?imgmax=800" width="565" height="229" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Se han dedicado a recoger preguntas reales de usuarios y clientes de CRM y responderlas en una FAQ que se puede acceder aquí: &lt;a href="http://rc.crm.dynamics.com/rc/2011/en-us/online/5.0/faq.aspx"&gt;http://rc.crm.dynamics.com/rc/2011/en-us/online/5.0/faq.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Muy útil como primera medida, antes incluso de ponerse a buscar en los foros.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-4845833991094644155?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/4845833991094644155/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=4845833991094644155' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/4845833991094644155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/4845833991094644155'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2011/06/acceso-directo-la-faq-de-dynamics-crm.html' title='Acceso directo a la FAQ de Dynamics CRM'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-87ZuvLwTUQU/Te-EF2PW0iI/AAAAAAAAEuA/hNeCu-xyHrE/s72-c/image_thumb%25255B6%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-5207080964733331019</id><published>2011-05-04T08:50:00.001+02:00</published><updated>2011-05-04T08:50:45.822+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Novedades'/><title type='text'>Nuevo blog de Dynamics CRM en español</title><content type='html'>&lt;p&gt;Esto no ocurre todos los días: aprovechando, supongo, el tirón del lanzamiento de Dynamics CRM 2011, este trío de desarrolladores acaban de lanzar &lt;a href="http://www.elblogdedynamicscrm.com" target="_blank"&gt;el blog de Dynamics CRM&lt;/a&gt;. Son &lt;strong&gt;Pablo Peralta&lt;/strong&gt;, &lt;strong&gt;Jimmy Larrauri &lt;/strong&gt;y &lt;strong&gt;Atilio Rosas&lt;/strong&gt;, viejos conocidos de los grupos de news de CRM en español. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_-OkamweXVGk/TcD3Qprf2qI/AAAAAAAAEtU/QMJ1rwEermY/s1600-h/elblog%5B5%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="elblog" border="0" alt="elblog" align="left" src="http://lh5.ggpht.com/_-OkamweXVGk/TcD3RIysyyI/AAAAAAAAEtY/OvlbD8r-Klg/elblog_thumb%5B3%5D.png?imgmax=800" width="244" height="135" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Vienen a llenar un hueco que se acusaba desde hace tiempo: hay pocos blogs que publiquen información útil sobre Dynamics CRM en castellano: las comunidades de España y Latinoamérica están de suerte.&lt;/p&gt;  &lt;p&gt;Han empezado por una serie muy útil sobre instalación paso a paso de la versión 2011 y prometen crear artículos de valor con trucos y recetas similares para desarrolladores. Por cierto, aceptan contribuciones, así que ya sabéis.&lt;/p&gt;  &lt;p&gt;¡Bienvenidos!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-5207080964733331019?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/5207080964733331019/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=5207080964733331019' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/5207080964733331019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/5207080964733331019'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2011/05/nuevo-blog-de-dynamics-crm-en-espanol.html' title='Nuevo blog de Dynamics CRM en español'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_-OkamweXVGk/TcD3RIysyyI/AAAAAAAAEtY/OvlbD8r-Klg/s72-c/elblog_thumb%5B3%5D.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-1538017687299812679</id><published>2011-03-29T12:57:00.001+02:00</published><updated>2011-03-29T12:57:23.757+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo'/><category scheme='http://www.blogger.com/atom/ns#' term='errores'/><title type='text'>Error al ejecutar código de CRM 4.0 en un CRM 2011</title><content type='html'>&lt;p&gt;La situación es la siguiente: estoy en el proceso de cambio de entorno de desarrollo entre la versión 4.0 y la 2011. En los proyectos nuevos uso esta última, pero aún hay código para otros clientes que usa la versión 4.0. Bueno, pues al ejecutar cualquier código (cliente, test, web etc.) sorbe la máquina de desarrollo en la que tengo instalado CRM 2011 me encuentro con un error del estilo &lt;em&gt;Ensamblado no encontrado&lt;/em&gt; o &lt;em&gt;No coincide la versión de ensamblado&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;System.IO.FileLoadException: Could not load file or assembly 'Microsoft.Crm.Sdk, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)     &lt;br /&gt;File name: 'Microsoft.Crm.Sdk, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' ---&amp;gt; System.IO.FileLoadException: Could not load file or assembly 'Microsoft.Crm.Sdk, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)      &lt;br /&gt;File name: 'Microsoft.Crm.Sdk, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'&lt;/font&gt;    &lt;br /&gt;    &lt;br /&gt;La solución la da el gran &lt;strong&gt;David Jennaway&lt;/strong&gt; en su &lt;a href="http://mscrmuk.blogspot.com/2011/02/using-crm-40-assemblies-on-crm-2011.html" target="_blank"&gt;blog&lt;/a&gt;. Hay que crear una sección del .config para invalidar una redirección de ensamblado en una política (incorrecta) introducida en CRM 2011.&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;&amp;lt;configuration&amp;gt;     &lt;br /&gt; &amp;lt;runtime&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;assemblyBinding xmlns=&amp;quot;urn:schemas-microsoft-com:asm.v1&amp;quot;&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;dependentAssembly&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;assemblyIdentity name=&amp;quot;Microsoft.Crm.Sdk&amp;quot;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; publicKeyToken=&amp;quot;31bf3856ad364e35&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;publisherPolicy apply=&amp;quot;no&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;/dependentAssembly&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;/assemblyBinding&amp;gt;      &lt;br /&gt; &amp;lt;/runtime&amp;gt;      &lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;¡Gracias, David!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-1538017687299812679?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/1538017687299812679/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=1538017687299812679' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/1538017687299812679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/1538017687299812679'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2011/03/error-al-ejecutar-codigo-de-crm-40-en.html' title='Error al ejecutar código de CRM 4.0 en un CRM 2011'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-4898709452250401141</id><published>2011-03-22T12:53:00.001+01:00</published><updated>2011-03-22T12:58:18.738+01:00</updated><title type='text'>File - New - Project - Hola CRM 2011</title><content type='html'>&lt;p&gt;Si habéis entendido el título estáis en el sitio adecuado. Esto es, un ejemplo de código minimalista para conectarse a CRM 2011 a través de la SDK, tanto &lt;i&gt;On-Premise&lt;/i&gt; como &lt;i&gt;On-line&lt;/i&gt;.&lt;/p&gt; &lt;p&gt;Abrimos Visual Studio 2010 y creamos un proyecto de tipo &lt;i&gt;Consola&lt;/i&gt; sobre .NET framework 4.0 (¡Primera vez que los desarrolladores de CRM no vamos un paso por detrás del Framework!).&lt;/p&gt; &lt;p&gt;Añadimos las referencias:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;System.ServiceModel&lt;/strong&gt; porque usamos WCF &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;System.Runtime.Serialization&lt;/strong&gt; serialización estándar de .NET &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;microsoft.xrm.sdk&lt;/strong&gt; para las clases específicas de CRM (en la carpeta &lt;b&gt;bin&lt;/b&gt; de la SDK) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Añadimos los namespaces:&lt;/p&gt; &lt;pre class="csharp:nogutter" name="code"&gt;using System;&lt;br /&gt;using System.ServiceModel.Description;&lt;br /&gt;using Microsoft.Xrm.Sdk;&lt;br /&gt;using Microsoft.Xrm.Sdk.Client;&lt;br /&gt;&lt;br /&gt;namespace HolaCRM2011&lt;br /&gt;{&lt;br /&gt;    class Program&lt;br /&gt;    {&lt;br /&gt;        static void Main(string[] args)&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;La forma de crear un proxy para llamar a los servicios WCF de CRM &lt;i&gt;On Premise&lt;/i&gt; es bien sencilla. La clase &lt;b&gt;ServiceConfigurationFactory&lt;/b&gt; nos proporciona un método &lt;b&gt;CreateConfiguration&lt;/b&gt; que devuelve un objecto de configuración que representa la mitad de la información que necesitamos para conectarnos a CRM: el &lt;i&gt;endpoint&lt;/i&gt; de WCF. Esta dirección la podemos recordar navegando a la sección &lt;i&gt;Configuration - Settings - Customizatins - Developer resources&lt;/i&gt; &lt;/p&gt;&lt;br /&gt;&lt;pre class="csharp:nogutter" name="code"&gt;var config = &lt;br /&gt;  ServiceConfigurationFactory.CreateConfiguration&amp;lt;IOrganizationService&amp;gt;(&lt;br /&gt;    new Uri(&amp;quot;http://localhost:5555/MiOrganizacion&amp;quot;));&lt;br /&gt;var servicio = new OrganizationServiceProxy(config, new ClientCredentials());&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Y por último, invocar un método CRUD sobre el servicio. En este caso, el clásico &amp;quot;Crear contacto&amp;quot;. La novedad aquí es que ya no tenemos que usar las clases &lt;i&gt;wrapper&lt;/i&gt; de CRM sino que podemos tirar directamente con los tipos básicos de .NET. Así, por ejemplo, en lugar de usar un CrmNumber usamos directamente un int.&lt;/p&gt;&lt;br /&gt;&lt;pre class="csharp:nogutter" name="code"&gt;var contacto = new Entity(&amp;quot;contact&amp;quot;);&lt;br /&gt;contacto[&amp;quot;firstname&amp;quot;] = &amp;quot;Nombre&amp;quot;;&lt;br /&gt;contacto[&amp;quot;lastname&amp;quot;] = &amp;quot;Apellidos&amp;quot;;&lt;br /&gt;contacto[&amp;quot;numberofchildren&amp;quot;] = 2;&lt;br /&gt;var id = servicio.Create(contacto);&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Si queremos trabajar con CRM Online, la cosa se complica un poco. Afortunadamente para programadores como yo (con facilidad para &amp;quot;abstraernos&amp;quot;) toda esa complicación está resuelta en la clase de ayuda &lt;b&gt;CrmConnection&lt;/b&gt; que encontramos en la dll &lt;strong&gt;microsoft.xrm.client&lt;/strong&gt; &lt;/p&gt;&lt;br /&gt;&lt;pre class="csharp:nogutter" name="code"&gt;var connectionString =&lt;br /&gt;    @&amp;quot;Url=https://miorg.crm4.dynamics.com;&lt;br /&gt;    Username=miliveid@hotmail.com;&lt;br /&gt;    DeviceID=MIDEVICEID-aa9f617b2e6d;&lt;br /&gt;    DevicePassword=MiDevicePass@word;&lt;br /&gt;    Password=MiPass@word&amp;quot;;&lt;br /&gt;var connection = CrmConnection.Parse(connectionString);&lt;br /&gt;var servicio = new OrganizationService(connection);&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Como se ve, la cadena de conexión tiene la misma pinta que las de ADO.NET de toda la vida e incluye también las credenciales. Lo que daba más guerra en versiones anteriores de la SDK (vamos por la 5.0.2) era &lt;b&gt;registrar el dispositivo&lt;/b&gt;(Aquí resuelto con DeviceID y DevicePassword). Este parte de la conexión controla la &lt;b&gt;autenticación basada en claims&lt;/b&gt;, que es un tema demasiado vasto y desconocido para mi como para hincarle el diente. La parte buena es que ... funciona. La primera vez que se llama al servicio, si no conoce el dispositivo, lo registra contra Live con el password especificado y obtiene un token. En las siguientes llamadas no necesitará este paso y llama directamente a CRM, aunque como programadores &amp;quot;abstraídos&amp;quot; ni nos enteraremos...&lt;/p&gt;&lt;br /&gt;&lt;p&gt;El programa completo quedaría así:&lt;/p&gt;&lt;br /&gt;&lt;pre class="csharp:nogutter" name="code"&gt;using Microsoft.Xrm.Client;&lt;br /&gt;using Microsoft.Xrm.Client.Services;&lt;br /&gt;using Microsoft.Xrm.Sdk;&lt;br /&gt;&lt;br /&gt;namespace HolaCRM2011&lt;br /&gt;{&lt;br /&gt;    class Program&lt;br /&gt;    {&lt;br /&gt;        static void Main(string[] args)&lt;br /&gt;        {&lt;br /&gt;            var connectionString =&lt;br /&gt;                @&amp;quot;Url=https://miorg.crm4.dynamics.com;&lt;br /&gt;                Username=miliveid@hotmail.com;&lt;br /&gt;                DeviceID=MIDEVICEID-aa9f617b2e6d;&lt;br /&gt;                DevicePassword=MiDevicePass@word;&lt;br /&gt;                Password=MiPass@word&amp;quot;;&lt;br /&gt;            var connection = CrmConnection.Parse(connectionString);&lt;br /&gt;            var servicio = new OrganizationService(connection);&lt;br /&gt;&lt;br /&gt;            var contacto = new Entity(&amp;quot;contact&amp;quot;);&lt;br /&gt;            contacto[&amp;quot;firstname&amp;quot;] = &amp;quot;Nombre&amp;quot;;&lt;br /&gt;            contacto[&amp;quot;lastname&amp;quot;] = &amp;quot;Apellidos&amp;quot;;&lt;br /&gt;            contacto[&amp;quot;numberofchildren&amp;quot;] = 2;&lt;br /&gt;            var id = servicio.Create(contacto);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Sólo hay que cambiar los datos particulares (todos los que empiezan por &amp;quot;Mi&amp;quot;) por los de la organización de CRM 2011 online. También se puede escoger un identificador de dispositivo y password de dispositivo propios. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-4898709452250401141?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/4898709452250401141/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=4898709452250401141' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/4898709452250401141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/4898709452250401141'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2011/03/file-new-project-hola-crm-2011.html' title='File - New - Project - Hola CRM 2011'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-7764698993701507921</id><published>2011-03-14T10:00:00.001+01:00</published><updated>2011-03-14T10:04:05.869+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CRM 2011'/><category scheme='http://www.blogger.com/atom/ns#' term='Funcionalidades'/><title type='text'>Nuevo explorador de metadatos en CRM 2011</title><content type='html'>&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_-OkamweXVGk/TX3ZPWcNIKI/AAAAAAAAEsI/rC3dw0PLaoA/s1600-h/cap1%5B6%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px 7px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="cap1" border="0" alt="cap1" align="left" src="http://lh6.ggpht.com/_-OkamweXVGk/TX3ZP49lJNI/AAAAAAAAEsM/idebg3jAxkw/cap1_thumb%5B4%5D.png?imgmax=800" width="189" height="192" /&gt;&lt;/a&gt;Es agradable ver que las herramientas que tienes que usar cada día van mejorando con cada versión. Hoy le toca al &lt;strong&gt;Metadata browser&lt;/strong&gt; de CRM. En la versión 2011 el equipo de la SDK ha hecho un gran trabajo y ha escuchado las &lt;strike&gt;quejas&lt;/strike&gt; sugerencias de los desarrolladores que tuvimos que vérnoslas con el &lt;strong&gt;/sdk/list.aspx&lt;/strong&gt; de las versiones anteriores. Ahora está empaquetado como una solución que se puede importar al entorno de desarrollo y que se entrega como un &lt;em&gt;web resource&lt;/em&gt; en HTML y JavaScript, muy rápido y sencillo de manejar.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Para usarlo, hay que descargar la SDK (desde &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=420f0f05-c226-4194-b7e1-f23ceaa83b69" target="_blank"&gt;aquí&lt;/a&gt;), navaegar a la carpeta &lt;strong&gt;sdk/tools/metadatabrowser &lt;/strong&gt;e instalar en CRM la solución &lt;em&gt;gestionada &lt;/em&gt;&lt;strong&gt;metadatabrowser_1_0_0_1_managed.zip&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;El resultado es una herramienta muy útil para el desarrollador, que permite ver todas las entidades, atributos y recursos desplegados en una solución de CRM.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_-OkamweXVGk/TX3aAZPP72I/AAAAAAAAEsY/gW5GmEUO0Xs/s1600-h/cap2%5B8%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="cap2" border="0" alt="cap2" src="http://lh3.ggpht.com/_-OkamweXVGk/TX3ZR7rKR8I/AAAAAAAAEsc/yzxvsmJv8tA/cap2_thumb%5B7%5D.png?imgmax=800" width="572" height="364" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-7764698993701507921?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/7764698993701507921/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=7764698993701507921' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/7764698993701507921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/7764698993701507921'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2011/03/nuevo-explorador-de-metadatos-en-crm.html' title='Nuevo explorador de metadatos en CRM 2011'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_-OkamweXVGk/TX3ZP49lJNI/AAAAAAAAEsM/idebg3jAxkw/s72-c/cap1_thumb%5B4%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-5168851588826858253</id><published>2011-02-15T11:44:00.001+01:00</published><updated>2011-02-15T11:44:39.036+01:00</updated><title type='text'>Dynamics CRM 2011 Developer Training Kit</title><content type='html'>&lt;p&gt;Microsoft acaba de publicar un &lt;em&gt;paquete&lt;/em&gt; de ayuda para el desarrollador .NET que ha decidido subirse a la plataforma de Microsoft Dynamics CRM 2011 para crear aplicaciones tanto &lt;em&gt;on-premise&lt;/em&gt; como &lt;em&gt;on line&lt;/em&gt;. Se compone de &lt;strong&gt;presentaciones&lt;/strong&gt;, &lt;strong&gt;vídeos&lt;/strong&gt; y &lt;strong&gt;labs &lt;/strong&gt;y supone una oportunidad de primera para los que no podáis (podamos) acudir a un curso presencial.&lt;/p&gt;  &lt;p&gt;   &lt;table border="0" cellspacing="5" cellpadding="2" width="600"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top"&gt;&lt;a href="http://lh3.ggpht.com/_-OkamweXVGk/TVpZEakvc_I/AAAAAAAAEro/sDbp93_DHVw/s1600-h/5280.image_4%5B2%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="5280.image_4" border="0" alt="5280.image_4" src="http://lh6.ggpht.com/_-OkamweXVGk/TVpZFouBuyI/AAAAAAAAErs/A4wuWZ9n2hg/5280.image_4_thumb.png?imgmax=800" width="244" height="233" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td valign="top"&gt;           &lt;h2&gt;Contenidos&lt;/h2&gt;            &lt;ul&gt;             &lt;li&gt;Soluciones &lt;/li&gt;              &lt;li&gt;Extensibilidad de Experiencia de Usuario &lt;/li&gt;              &lt;li&gt;Visualizaciones y Dashboards &lt;/li&gt;              &lt;li&gt;WCF Web Services &lt;/li&gt;              &lt;li&gt;LINQ y oData &lt;/li&gt;              &lt;li&gt;Plugins &lt;/li&gt;              &lt;li&gt;Procesos &lt;/li&gt;              &lt;li&gt;Programación en cliente &lt;/li&gt;              &lt;li&gt;Silverlight &lt;/li&gt;              &lt;li&gt;SharePoint y CRM &lt;/li&gt;              &lt;li&gt;Windows Azure y CRM &lt;/li&gt;              &lt;li&gt;Actualización de CRM 4.0 a CRM 2011 &lt;/li&gt;              &lt;li&gt;Dynamics Marketplace &lt;/li&gt;           &lt;/ul&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;Se puede acceder &lt;a href="http://blogs.msdn.com/b/crm/archive/2011/02/14/announcement-microsoft-dynamics-crm-2011-developer-training-kit.aspx" target="_blank"&gt;aquí&lt;/a&gt; al artículo original y &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=78498c29-28ac-440b-9c20-ec5da6ee6e98&amp;amp;displaylang=en" target="_blank"&gt;aquí&lt;/a&gt; a la descarga del paquete (¡127 MB de diversión!).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-5168851588826858253?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/5168851588826858253/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=5168851588826858253' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/5168851588826858253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/5168851588826858253'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2011/02/dynamics-crm-2011-developer-training.html' title='Dynamics CRM 2011 Developer Training Kit'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_-OkamweXVGk/TVpZFouBuyI/AAAAAAAAErs/A4wuWZ9n2hg/s72-c/5280.image_4_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-8074958847803969297</id><published>2010-12-22T10:16:00.001+01:00</published><updated>2010-12-22T10:16:27.749+01:00</updated><title type='text'>Disponible Microsoft Dynamics CRM 2011 RC</title><content type='html'>&lt;p&gt;Nada que no se haya dicho ya: como se anunció en el &lt;a href="http://blogs.msdn.com/b/crm/archive/2010/12/14/microsoft-dynamics-crm-2011-release-candidate-rc-announcement.aspx"&gt;blog del equipo de Dynamics&lt;/a&gt;, está disponible el instalador de la versión RC de &lt;strong&gt;Microsoft Dynamics CRM 2011&lt;/strong&gt; y la correspondiente SDK. Mi gran aportación: corregir los enlaces rotos que he visto en muchos posts por ahí (te redirigen a una página de OWA, ???). &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Extra&lt;/strong&gt;: En Softpedia dicen que ... &lt;i&gt;Además de la documentación, este paquete descargable incluye las &lt;strong&gt;asambleas&lt;/strong&gt; y las herramientas necesarias para el desarrollo....&lt;/i&gt; &lt;/p&gt;  &lt;p&gt;¡Por fin un CRM democrático, viene con asambleas!&lt;/p&gt;  &lt;p&gt;Ahí van los enlaces:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c3f82c6f-c123-4e80-b9b2-ee422a16b91d" target="_blank"&gt;Microsoft Dynamics CRM 2011 Server Release Candidate&lt;/a&gt; Disponible sólo en inglés. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=22dc423a-7194-491e-a169-6ace16bfdd36" target="_blank"&gt;Microsoft Dynamics CRM 2011 for Microsoft Office Outlook&lt;/a&gt; Disponible en 25 idiomas &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=db44c564-2338-407e-980a-c9c83ad37729" target="_blank"&gt;Microsoft Dynamics CRM 2011 Language Pack&lt;/a&gt; Disponible en 41 idiomas &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=a995f6ad-0099-42fd-9b22-cf7b3d40a2bf" target="_blank"&gt;Microsoft Dynamics CRM 2011 E-mail Router&lt;/a&gt; Disponible en 25 idiomas &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=64a09b75-8376-4b9d-aea3-8a83a1837c4d" target="_blank"&gt;Microsoft Dynamics CRM 2011 Report Authoring Extension&lt;/a&gt; Disponible en 25 idiomas &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=23c0f351-8694-4d92-9ddf-34a949aec6a7" target="_blank"&gt;Microsoft Dynamics CRM 2011 List Component for Microsoft SharePoint Server 2010&lt;/a&gt; Disponible en 41 idiomas &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=420f0f05-c226-4194-b7e1-f23ceaa83b69" target="_blank"&gt;Microsoft Dynamics CRM 2011 Software Development Kit (SDK)&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Por cierto, que habrá novedades en la creación de reports, la herramienta “Report Authoring Extension” permitirá crear informes “basados en FetchXML”. A ver si tengo tiempo de contar aquí qué tal funciona esta operación (también en mi cabeza hay que hacer “upgrade”).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_-OkamweXVGk/TRHB5jhV8EI/AAAAAAAAEqI/Ov1ystT2Hr0/s1600-h/updgrade%5B6%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="updgrade" border="0" alt="updgrade" src="http://lh3.ggpht.com/_-OkamweXVGk/TRHB6tZbufI/AAAAAAAAEqM/oNEJ0G1WoLE/updgrade_thumb%5B4%5D.png?imgmax=800" width="557" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-8074958847803969297?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/8074958847803969297/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=8074958847803969297' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/8074958847803969297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/8074958847803969297'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2010/12/disponible-microsoft-dynamics-crm-2011.html' title='Disponible Microsoft Dynamics CRM 2011 RC'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_-OkamweXVGk/TRHB6tZbufI/AAAAAAAAEqM/oNEJ0G1WoLE/s72-c/updgrade_thumb%5B4%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-4278418212972418677</id><published>2010-10-28T13:21:00.002+02:00</published><updated>2010-11-02T15:47:15.896+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CRM 2011'/><category scheme='http://www.blogger.com/atom/ns#' term='Novedades'/><category scheme='http://www.blogger.com/atom/ns#' term='Correo electrónico'/><title type='text'>Imágenes y enlaces en plantillas de correo electrónico</title><content type='html'>&lt;p&gt;Esta es una de esas funcionalidades que se explican mal. Quiero decir, que la complejidad que suponen desde el punto de vista técnico no siempre es comprendida por el cliente final. Hace veinte años (!) el contenido de un correo electrónico era simple texto. Hoy en día cualquer editor de correo electrónico permite incluir imágenes, pero casi siempre recurriendo a un truco: crear el mensaje en HTML, embeber los ficheros como adjuntos y modificar el comportamiento del lector para que el atributo &lt;strong&gt;src&lt;/strong&gt; de las imágenes se refiera a los ficheros adjuntos. Otra opción es colgar las imágenes en un servidor de HTTP público al que pueda acceder el lector del correo electrónico. Si ya decía yo que se explicaba mal… Bueno, pues en la beta de Microsoft Dynamics CRM 2011 me encuentro con lo siguiente:&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_-OkamweXVGk/TMlcnZC0OOI/AAAAAAAAEls/YHlBRHS-tPY/s1600-h/plantillas%5B7%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="plantillas" border="0" alt="plantillas" src="http://lh4.ggpht.com/_-OkamweXVGk/TMlcocWxG8I/AAAAAAAAElw/psbba4dmxuk/plantillas_thumb%5B5%5D.png?imgmax=800" width="554" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Y al hacer click … (suspense):&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_-OkamweXVGk/TMlco3WBtaI/AAAAAAAAEl0/peqRcmVKNog/s1600-h/notimp%5B2%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="notimp" border="0" alt="notimp" src="http://lh5.ggpht.com/_-OkamweXVGk/TMlcpm4ZSkI/AAAAAAAAEl4/oe6p0BbcnGI/notimp_thumb.png?imgmax=800" width="181" height="146" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Oooooh. ¡Por qué poco! ¿Estará esta funcionalidad en la versión final? ´¿Cómo lo implementarán? Ya veremos.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-4278418212972418677?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/4278418212972418677/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=4278418212972418677' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/4278418212972418677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/4278418212972418677'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2010/10/imagenes-y-enlaces-en-plantillas-de.html' title='Imágenes y enlaces en plantillas de correo electrónico'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_-OkamweXVGk/TMlcocWxG8I/AAAAAAAAElw/psbba4dmxuk/s72-c/plantillas_thumb%5B5%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-4179166283158710097</id><published>2010-10-11T09:23:00.001+02:00</published><updated>2010-10-11T09:23:16.173+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo'/><title type='text'>Curso de desarrollo sobre CRM 4.0</title><content type='html'>&lt;p&gt;Y aquí un ejercicio de nostalgia: un enlace a mi &lt;a href="https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032424589&amp;amp;EventCategory=3&amp;amp;culture=es-ES&amp;amp;CountryCode=ES" target="_blank"&gt;Curso de desarrollo sobre Microsoft Dynamics CRM 4.0&lt;/a&gt;. Y por un buen motivo: que se va a quedar obsoleto de aquí a unos meses, cuando se lance Microsoft Dynamics CRM 2011. Y el enlace no es de los que se recuerdan fácilmente:&lt;/p&gt;  &lt;code&gt; https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032424589&amp;EventCategory=3&amp;culture=es-ES&amp;CountryCode=ES &lt;/code&gt;  &lt;p&gt;También se puede encontrar con este enlace más corto:&lt;/p&gt;  &lt;a href="http://tinyurl.com/2ua7mao"&gt;http://tinyurl.com/2ua7mao&lt;/a&gt;   &lt;p&gt; ¡Gracias a Jimmy Larrauri por recordarme de su existencia! &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-4179166283158710097?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/4179166283158710097/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=4179166283158710097' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/4179166283158710097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/4179166283158710097'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2010/10/curso-de-desarrollo-sobre-crm-40.html' title='Curso de desarrollo sobre CRM 4.0'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-2148478549986323656</id><published>2010-09-29T13:09:00.001+02:00</published><updated>2010-09-29T13:12:45.648+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo'/><category scheme='http://www.blogger.com/atom/ns#' term='UpdateRollup'/><category scheme='http://www.blogger.com/atom/ns#' term='errores'/><title type='text'>Problema con distribución de actividades de e-mail</title><content type='html'>&lt;p&gt;Esta es una de esas de “no me olvides”. Cuando vamos a distribuir una actividad de campaña de tipo Correo electrónico, el mensaje &lt;strong&gt;RetrieveMembersBulkOperationRequest&lt;/strong&gt; falla sin más explicación que &lt;em&gt;An unexpected error occurred&lt;/em&gt;. Pues bien, había olvidado que en la máquina que estaba probando este código &lt;strong&gt;no había pasado el último Update Rollup&lt;/strong&gt;. El tema de la distribución automática de e-mails es algo que ha dado problemas desde la versión 3.0, de hecho lo incluyeron en un Update Rollup a petición de la gente. Este problema en concreto está resuelto desde el UR8, y creo que es lo mismo de lo que habla &lt;a href="http://social.microsoft.com/Forums/en-US/crmdevelopment/thread/a3e4fc9f-4e10-46c9-a035-e8a2b026588f"&gt;este post&lt;/a&gt; de los foros de CRM.&lt;/p&gt;  &lt;p&gt;El código que me ha tenido entretenido unas horas:&lt;/p&gt;   &lt;pre class="csharp:nogutter" name="code"&gt;&lt;br /&gt;var resp = (DistributeCampaignActivityResponse)CrmProxy.CrmService.Execute(distribuir);&lt;br /&gt;var idOperacion = resp.BulkOperationId;&lt;br /&gt;var ejecutar = new RetrieveMembersBulkOperationRequest&lt;br /&gt;	{ &lt;br /&gt; 	BulkOperationId = idOperacion,&lt;br /&gt;	BulkOperationSource = BulkOperationSource.CampaignActivity,&lt;br /&gt;	EntitySource = EntitySource.Contact,&lt;br /&gt;	ReturnDynamicEntities = false&lt;br /&gt;	};&lt;br /&gt;CrmProxy.CrmService.Execute(ejecutar);&lt;br /&gt;&lt;/pre&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-2148478549986323656?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/2148478549986323656/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=2148478549986323656' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/2148478549986323656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/2148478549986323656'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2010/09/problema-con-distribucion-de.html' title='Problema con distribución de actividades de e-mail'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-4704193993300068512</id><published>2010-09-01T10:27:00.002+02:00</published><updated>2010-09-01T11:20:10.287+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Novedades'/><category scheme='http://www.blogger.com/atom/ns#' term='Funcionalidades'/><title type='text'>Actividades personalizadas en CRM 2011</title><content type='html'>Y aquí empieza el &lt;em&gt;lento goteo &lt;/em&gt;de nuevas funcionalidades de CRM 2011. Ya sabéis, todas esas cosas que incluye la nueva versión y que sirven para ejercitar las dotes de diplomacia cuando llega el momento de decirle al cliente:&lt;br /&gt;&lt;blockquote&gt;&lt;em&gt;¿Sabes esa funcionalidad que tardamos XXX meses en desarrollar? Pues en la nueva versión viene incorporada.&lt;/em&gt;&lt;/blockquote&gt;Y la que toca hoy son las &lt;strong&gt;Actividades personalizadas&lt;/strong&gt;. Como sabéis, en Microsoft Dynamics CRM y desde la versión 3, podemos añadir &lt;em&gt;Entidades &lt;/em&gt;personalizadas a nuestra solución, pero no &lt;em&gt;Actividades&lt;/em&gt;. Es decir, estábamos casados con un conjunto fijo formado por:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Llamada de teléfono &lt;/li&gt;&lt;li&gt;Mensaje de correo electrónico &lt;/li&gt;&lt;li&gt;Carta &lt;/li&gt;&lt;li&gt;Fax &lt;/li&gt;&lt;li&gt;Cita &lt;/li&gt;&lt;li&gt;Actividad de servicio &lt;/li&gt;&lt;li&gt;Respuesta de campaña &lt;/li&gt;&lt;li&gt;Tarea &lt;/li&gt;&lt;/ul&gt;Cuando teníamos que implementar, digamos … mensajes SMS no quedaba más remedio que abusar de la actividad-para-todo &lt;em&gt;Tarea&lt;/em&gt; o directamente vampirizar otra que no vaya a ser usada en la solución. Las víctimas frecuentes son &lt;em&gt;Fax&lt;/em&gt; y &lt;em&gt;Carta&lt;/em&gt;.&lt;br /&gt;Pues esto va a cambiar… si interpreto bien este fragmento del &lt;a href="http://www.dynamicscrmtrickbag.com/2010/07/25/taking-the-covers-off-crm-2011/"&gt;vídeo de presentación de Microsoft Dynamics CRM 2011&lt;/a&gt; de Bryan Nielson en el que muestra la actividad personalizada FanBoard message:&lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_-OkamweXVGk/TH4Oa12uELI/AAAAAAAAElI/qTDoIhT9hW4/s1600-h/customactivity%5B3%5D.jpg"&gt;&lt;img alt="customactivity" border="0" src="http://lh5.ggpht.com/_-OkamweXVGk/TH4ObnMYooI/AAAAAAAAElM/EiPa6l9rMKQ/customactivity_thumb%5B1%5D.jpg?imgmax=600" style="border-bottom-color: initial; border-bottom-style: initial; border-bottom-width: 0px; border-left-color: initial; border-left-style: initial; border-left-width: 0px; border-right-color: initial; border-right-style: initial; border-right-width: 0px; border-top-color: initial; border-top-style: initial; border-top-width: 0px; display: inline;" title="customactivity" /&gt;&lt;/a&gt; &lt;br /&gt;Además, parece que se pueden añadir a colas, promover a respuestas, convertir en otras entidades, añadir &lt;em&gt;Conexiones&lt;/em&gt; (las antiguas &lt;em&gt;Relaciones&lt;/em&gt;) etc.¡Muy prometedor!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-4704193993300068512?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/4704193993300068512/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=4704193993300068512' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/4704193993300068512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/4704193993300068512'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2010/09/actividades-personalizadas-en-crm-2011.html' title='Actividades personalizadas en CRM 2011'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_-OkamweXVGk/TH4ObnMYooI/AAAAAAAAElM/EiPa6l9rMKQ/s72-c/customactivity_thumb%5B1%5D.jpg?imgmax=600' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-5938847117958933537</id><published>2010-07-13T11:16:00.001+02:00</published><updated>2010-07-13T11:17:28.743+02:00</updated><title type='text'>Adiós “CRM 5”. Hola CRM 2011</title><content type='html'>&lt;p&gt;Se ha anunciado hoy mismo en la Worldwide Partner Conference: el nombre en clave de la siguiente versión de CRM pasa al olvido: a partir de ahora hablaremos de &lt;strong&gt;Microsoft Dynamics CRM 2011&lt;/strong&gt;. Las novedades que resaltan son:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;Dashboards&lt;/strong&gt; integrados en el producto estándar, como podéis ver en la foto&lt;/li&gt;    &lt;li&gt;Disponibilidad de &lt;strong&gt;CRM Online&lt;/strong&gt; en 41 culturas diferentes&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Dynamics Marketplace&lt;/strong&gt;: una especie de AppStore para partners y clientes donde comercializar y comprar fácilmente extensiones&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_-OkamweXVGk/TDwu_mHDm2I/AAAAAAAAEbY/rMPYtCnCjYs/s1600-h/crm2011%5B4%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="crm2011" border="0" alt="crm2011" src="http://lh4.ggpht.com/_-OkamweXVGk/TDwvBCtDBCI/AAAAAAAAEbc/IE2vfKS11VI/crm2011_thumb%5B2%5D.png?imgmax=800" width="484" height="305" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Habrá una Beta pública en Septiembre. Si queréis que os notifiquen la fecha exacta, os podéis dar de alta aquí: &lt;a href="http://crm.dynamics.com/crm2011beta"&gt;http://crm.dynamics.com/crm2011beta&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-5938847117958933537?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/5938847117958933537/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=5938847117958933537' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/5938847117958933537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/5938847117958933537'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2010/07/adios-crm-5-hola-crm-2011.html' title='Adiós “CRM 5”. Hola CRM 2011'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_-OkamweXVGk/TDwvBCtDBCI/AAAAAAAAEbc/IE2vfKS11VI/s72-c/crm2011_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-356601162840802850</id><published>2010-07-12T10:31:00.001+02:00</published><updated>2010-07-12T10:32:08.700+02:00</updated><title type='text'>Obtener textos y valores de un picklist via SQL</title><content type='html'>&lt;p&gt;Este post está inspirado por &lt;a href="http://blogs.msdn.com/b/crmlandia/archive/2010/03/17/sql-script-para-listar-los-valores-y-etiquetas-asociadas-de-un-atributo-de-tipo-picklist.aspx"&gt;este otro&lt;/a&gt; de &lt;strong&gt;CrmLandia&lt;/strong&gt; por sobre cómo obtener los valores de los picklist a través de búsquedas en las tablas de metadatos de CRM. Allá van las dos consultas:una para obtener todos los valores de un atributo @aName de una entidad @eName en el idioma @uiLanguageId.&lt;/p&gt;  &lt;h3&gt;getAllPicklistValues&lt;/h3&gt;  &lt;pre class="sql:nogutter" name="code"&gt;&lt;br /&gt;SELECT apv.Value, ll.Label&lt;br /&gt;FROM MetadataSchema.AttributePicklistValue AS apv&lt;br /&gt;INNER JOIN MetadataSchema.Attribute AS a &lt;br /&gt;ON apv.AttributeId = a.AttributeId&lt;br /&gt;INNER JOIN MetadataSchema.Entity AS e &lt;br /&gt;ON a.EntityId = e.EntityId&lt;br /&gt;INNER JOIN MetadataSchema.LocalizedLabel AS ll &lt;br /&gt;ON apv.AttributePicklistValueId = ll.ObjectId&lt;br /&gt;WHERE (ll.LanguageId = @uiLanguageId) &lt;br /&gt;AND (e.Name = @eName) AND (a.Name = @aName)&lt;br /&gt;ORDER BY ll.LanguageId, apv.Value&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Y otra consulta (la que hace que este post no sea un plagio total) para obtener un sólo valor en todos los idiomas posibles. ¿Por qué la añado? Pues porque me hizo falta en un proyecto.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;getPicklistValue&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="sql:nogutter" name="code"&gt;SELECT apv.Value&lt;br /&gt;FROM MetadataSchema.AttributePicklistValue AS apv&lt;br /&gt;INNER JOIN MetadataSchema.Attribute AS a &lt;br /&gt;ON apv.AttributeId = a.AttributeId&lt;br /&gt;INNER JOIN MetadataSchema.Entity AS e &lt;br /&gt;ON a.EntityId = e.EntityId&lt;br /&gt;INNER JOIN MetadataSchema.LocalizedLabel AS ll &lt;br /&gt;ON apv.AttributePicklistValueId = ll.ObjectId&lt;br /&gt;WHERE (ll.LanguageId = @uiLanguageId) &lt;br /&gt;AND (e.Name = @eName) &lt;br /&gt;AND (a.Name = @aName) &lt;br /&gt;AND (ll.Label = @label)&lt;br /&gt;ORDER BY ll.LanguageId, apv.Value&lt;/pre&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-356601162840802850?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/356601162840802850/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=356601162840802850' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/356601162840802850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/356601162840802850'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2010/07/obtener-textos-y-valores-de-un-picklist.html' title='Obtener textos y valores de un picklist via SQL'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-4566705527378806171</id><published>2010-07-02T09:31:00.002+02:00</published><updated>2010-07-02T09:40:29.575+02:00</updated><title type='text'>Soy oficialmente ex-MVP</title><content type='html'>Pues sí, se veía venir. En los últimos doce meses he estado tan ocupado instalando, personalizando y programando para Microsoft Dynamics CRM que no he tenido tiempo para contribuir a la comunidad, así que el post de hoy es sobre &lt;strong&gt;Cómo quitar una imagen &lt;/strong&gt;de un blog de blogger:&lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_-OkamweXVGk/TC2V4lC2KmI/AAAAAAAAEWA/5qnAR_1ICOs/s1600-h/image%5B4%5D.png"&gt;&lt;img alt="image" border="0" height="271" src="http://lh4.ggpht.com/_-OkamweXVGk/TC2V5QlpIYI/AAAAAAAAEWE/RCHvAQymVe8/image_thumb%5B2%5D.png?imgmax=800" style="border-bottom-color: initial; border-bottom-style: initial; border-bottom-width: 0px; border-left-color: initial; border-left-style: initial; border-left-width: 0px; border-right-color: initial; border-right-style: initial; border-right-width: 0px; border-top-color: initial; border-top-style: initial; border-top-width: 0px; display: inline;" title="image" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;Lo siento sobre todo por mis compañeros, que se habían acostumbrado a llamarme “Eminencia”, pensando que ser MVP implica saber mucho de un tema. Nada más lejos de la verdad: el MVP se lo dan a la gente que trabaja desinteresadamente por la comunidad, aportando herramientas, respuestas en foros, participación en eventos de grupos de usuarios, etc. Hay que currárselo.&lt;br /&gt;La verdad es que había mucho nivel. Por ejemplo, &lt;a href="http://mscrmtools.blogspot.com/"&gt;Tanguy&lt;/a&gt; ha publicado un montón de utilidades, o &lt;a href="http://crmentropy.blogspot.com/"&gt;Dave Berry&lt;/a&gt; con su &lt;strong&gt;CRM Entropy&lt;/strong&gt;. Tengo tres meses para volver a intentarlo, así que quién sabe.&lt;br /&gt;Enhorabuena a los premiados.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-4566705527378806171?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/4566705527378806171/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=4566705527378806171' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/4566705527378806171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/4566705527378806171'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2010/07/soy-oficialmente-ex-mvp.html' title='Soy oficialmente ex-MVP'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_-OkamweXVGk/TC2V5QlpIYI/AAAAAAAAEWE/RCHvAQymVe8/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-5097478002769444834</id><published>2010-06-23T18:01:00.002+02:00</published><updated>2010-06-25T11:52:01.676+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='workflow'/><title type='text'>Actividades repetitivas</title><content type='html'>En este mini-tutorial voy a contar una forma sencilla de cubrir un requerimiento habitual y que mucha gente se extraña de no encontrar en Dynamics CRM: las actividades repetitivas.&lt;br /&gt;Es una aproximación muy básica, que no contempla ni mucho menos todas las funcionalidades que tiene, pongamos por caso, las citas recurrentes de Outlook. Vamos allá, ¿no?&lt;br /&gt;&lt;strong&gt;1.&lt;/strong&gt; Creamos un campo &lt;em&gt;picklist&lt;/em&gt; con el tipo de repetición que queremos. Aquí he escogido &lt;em&gt;Diaria&lt;/em&gt;, &lt;em&gt;Semanal&lt;/em&gt; y &lt;em&gt;Mensual&lt;/em&gt;. &lt;br /&gt;&lt;strong&gt;2.&lt;/strong&gt; Lo añadimos al formulario de la actividad que queramos hacer repetitiva. Yo he escogido &lt;strong&gt;Tarea&lt;/strong&gt;:&lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_-OkamweXVGk/TCIw6nA14_I/AAAAAAAAEUo/d8F7LMg_Iws/s1600-h/image%5B3%5D.png"&gt;&lt;img alt="image" border="0" height="330" src="http://lh5.ggpht.com/_-OkamweXVGk/TCIvxLkirCI/AAAAAAAAEUs/YKGLMuAL2Bw/image_thumb%5B2%5D.png?imgmax=800" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="504" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;strong&gt;3.&lt;/strong&gt; Creamos un Workflow que se lance al cerrar la actividad y que compruebe si el estado es &lt;strong&gt;Completado&lt;/strong&gt; o &lt;strong&gt;Cancelado&lt;/strong&gt;.&lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_-OkamweXVGk/TCIvydbaFtI/AAAAAAAAEU0/EVK8o9KjfO0/s1600-h/image11%5B1%5D.png"&gt;&lt;img alt="image" border="0" height="177" src="http://lh5.ggpht.com/_-OkamweXVGk/TCIvzXmt5PI/AAAAAAAAEU4/SbxLeceZwRw/image11_thumb.png?imgmax=800" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="504" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;strong&gt;4.&lt;/strong&gt; Dentro del Workflow, creamos una nueva tarea copiando todos los campos y desplazando un día en el futuro la fecha de vencimiento:&lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_-OkamweXVGk/TCIvz7Y7TZI/AAAAAAAAEU8/Lf_2ERreJ_c/s1600-h/image7%5B1%5D.png"&gt;&lt;img alt="image" border="0" height="315" src="http://lh5.ggpht.com/_-OkamweXVGk/TCIv1Ttp3_I/AAAAAAAAEVA/CBT07x0L3_4/image7_thumb.png?imgmax=800" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="504" /&gt;&lt;/a&gt; &lt;br /&gt;¡Imperfecto, pero puede salvar la papeleta en algún caso!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-5097478002769444834?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/5097478002769444834/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=5097478002769444834' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/5097478002769444834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/5097478002769444834'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2010/06/actividades-repetitivas.html' title='Actividades repetitivas'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_-OkamweXVGk/TCIvxLkirCI/AAAAAAAAEUs/YKGLMuAL2Bw/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-2820012364932455430</id><published>2010-06-18T18:55:00.000+02:00</published><updated>2010-06-18T18:55:10.697+02:00</updated><title type='text'>Nuevo diseño</title><content type='html'>Que diréis, pues vaya post, ¿no? Pues es verdad, este post es sólo para dar las gracias a ese-equipo-de-profesionales-que-hace-posible-este-esporádico-blog:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;El programa de edición de imágenes que Windows debería haber tenido siempre: &lt;b&gt;&lt;a href="http://www.getpaint.net/"&gt;Paint.NET&lt;/a&gt;&amp;nbsp;&lt;/b&gt;Fantástico, me voy a hacer fan ahora mismo.&lt;/li&gt;&lt;li&gt;&lt;a href="http://cvlab.epfl.ch/~brown/autostitch/autostitch.html"&gt;Autostitch &lt;/a&gt;para fabricar la foto panorámica. De Barcelona, desde el monte del Guinardó, por cierto. Tres fotos bastante malas hechas con mi móvil, pegadas y retocadas a lo loco (sin metodología) con Paint.NET.&lt;/li&gt;&lt;li&gt;Picasa para recortar y hacer algún que otro cambio&lt;/li&gt;&lt;li&gt;Blogger con el nuevo diseñador de plantillas, bastante chulo.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-2820012364932455430?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/2820012364932455430/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=2820012364932455430' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/2820012364932455430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/2820012364932455430'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2010/06/nuevo-diseno.html' title='Nuevo diseño'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-2176672238627176592</id><published>2010-06-07T10:29:00.007+02:00</published><updated>2010-06-07T10:35:40.279+02:00</updated><title type='text'>Cómo crear un campo incremental con Workflow</title><content type='html'>&lt;p&gt;Se trata de lo siguiente: crear un campo en una entidad (Cuenta) que lleve un contador de subcuentas que dependen de ella. O sea, un contador que lleve la cuenta de subcuentas de cuentas (!). En realidad, otra excusa para mostrar el poder de los a menudo poco considerados &lt;strong&gt;Workflows de Microsoft Dynamics CRM&lt;/strong&gt;. Por cierto: gracias a &lt;strong&gt;Albertinson &lt;/strong&gt;por hacer esta &lt;a href="http://social.microsoft.com/Forums/en-US/crmspanish/thread/e1e9c557-01a5-4335-81c6-b38d667161c3"&gt;pregunta en el foro&lt;/a&gt; que ha sido mi inspiración.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Y aquí va la receta de la abuela:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Uno:&lt;/strong&gt; crear un campo numérico &lt;strong&gt;xyz_numerosubcuentas&lt;/strong&gt; para contener el valor. Se puede poner "read-only" si queréis&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://3.bp.blogspot.com/_-OkamweXVGk/TAyuBZdr-PI/AAAAAAAAERw/Yu4FXP6FsgE/s1600/post01.png"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 398px; DISPLAY: block; HEIGHT: 226px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5479946185641556210" border="0" alt="" src="http://3.bp.blogspot.com/_-OkamweXVGk/TAyuBZdr-PI/AAAAAAAAERw/Yu4FXP6FsgE/s400/post01.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Dos:&lt;/strong&gt; crear un workflow que se dispare "al crear" una nueva cuenta.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Tres:&lt;/strong&gt; dentro del workflow, comprobar si el campo &lt;strong&gt;parentaccountid&lt;/strong&gt; o sea &lt;em&gt;Cuenta primaria&lt;/em&gt; tiene algún valor&lt;/p&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_-OkamweXVGk/TAyuiYl_aOI/AAAAAAAAESA/jxAKFr8M0PQ/s1600/post02.png"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 44px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5479946752343632098" border="0" alt="" src="http://3.bp.blogspot.com/_-OkamweXVGk/TAyuiYl_aOI/AAAAAAAAESA/jxAKFr8M0PQ/s400/post02.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Cuatro:&lt;/strong&gt; aumentar el valor en &lt;strong&gt;uno&lt;/strong&gt;. Sí, se puede hacer, aunque reconozco que lo he usado pocas veces.&lt;/p&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_-OkamweXVGk/TAyuyaeUpEI/AAAAAAAAESI/n0aUaKEZnCo/s1600/post03.png"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 214px; DISPLAY: block; HEIGHT: 43px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5479947027726246978" border="0" alt="" src="http://4.bp.blogspot.com/_-OkamweXVGk/TAyuyaeUpEI/AAAAAAAAESI/n0aUaKEZnCo/s400/post03.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;Y es que a pesar de ser desarrollador (developer, developer, developer) intento evitar tener que escribir código siempre que puedo. Este mismo problema se puede resolver de otras maneras que sí implican código y que son más completas.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Al final, el workflow queda así:&lt;/p&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_-OkamweXVGk/TAyu6ajuQgI/AAAAAAAAESQ/q0oiCxnxQ2I/s1600/post04.png"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 101px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5479947165187850754" border="0" alt="" src="http://2.bp.blogspot.com/_-OkamweXVGk/TAyu6ajuQgI/AAAAAAAAESQ/q0oiCxnxQ2I/s400/post04.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;Y ahora, los inevitables &lt;span style="font-family:Microsoft Sans Serif;font-size:140;"&gt;disclaimers&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;- Esta solución sólo funciona con las &lt;strong&gt;nuevas&lt;/strong&gt; cuentas, no con las creadas previamente&lt;br /&gt;- Como cualquier wf, es &lt;strong&gt;asíncrona, &lt;/strong&gt;así que no esperéis ver el resultado inmediatamente en el formulario&lt;br /&gt;- No considera las bajas, de modo que sólo puede aumentar el número de subcuentas&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;¡Salud!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-2176672238627176592?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/2176672238627176592/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=2176672238627176592' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/2176672238627176592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/2176672238627176592'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2010/06/como-crear-un-campo-incremental-con.html' title='Cómo crear un campo incremental con Workflow'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_-OkamweXVGk/TAyuBZdr-PI/AAAAAAAAERw/Yu4FXP6FsgE/s72-c/post01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-5329941733255135761</id><published>2010-05-10T09:06:00.006+02:00</published><updated>2010-05-10T09:30:55.874+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Funcionalidades'/><title type='text'>Promover e-mails a Respuesta de campaña</title><content type='html'>&lt;p&gt;Tengo curiosidad por saber si esta opción es realmente poco conocida, como me parece a mi, o si al contrario soy yo el que no se había dado cuenta hasta hace relativamente poco de que existe. Se trata de un atajo para registrar información de una campaña de marketing de Dynamics CRM.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Cuando recibimos un correo electrónico con un &lt;i&gt;Referente a&lt;/i&gt; que apunta a una &lt;i&gt;Actividad de campaña&lt;/i&gt;, podemos promoverlo directamente a &lt;i&gt;Respuesta de campaña&lt;/i&gt; desde el mismo formulario de correo electrónico.&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-OkamweXVGk/S-e19fEuUaI/AAAAAAAAEPc/hyWOjCAHpXo/s1600/promoverarespuesta.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 274px;" src="http://1.bp.blogspot.com/_-OkamweXVGk/S-e19fEuUaI/AAAAAAAAEPc/hyWOjCAHpXo/s400/promoverarespuesta.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5469540340382716322" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt; Creo que no está documentado en la ayuda del producto, aunque se puede leer (junto con más sugerencias interesantes) en este artículo del blog del equipo de CRM:&lt;/p&gt;&lt;div&gt;&lt;a href="http://blogs.msdn.com/crm/archive/2007/05/15/improve-campaign-roi-create-campaign-responses-more-effectively.aspx"&gt;Improve Campaign ROI - Create Campaign Responses More Effectively&lt;/a&gt;.&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-5329941733255135761?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/5329941733255135761/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=5329941733255135761' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/5329941733255135761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/5329941733255135761'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2010/05/una-opcion-poco-conocida-o-no.html' title='Promover e-mails a Respuesta de campaña'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_-OkamweXVGk/S-e19fEuUaI/AAAAAAAAEPc/hyWOjCAHpXo/s72-c/promoverarespuesta.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-8870835518455101467</id><published>2010-03-22T08:48:00.005+01:00</published><updated>2010-03-22T09:39:37.489+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo'/><category scheme='http://www.blogger.com/atom/ns#' term='herramientas'/><title type='text'>CRM Configuration Manager</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_-OkamweXVGk/S6cra58yLzI/AAAAAAAADAA/yuUKt2uymyY/s1600-h/oso.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 119px; height: 112px;" src="http://3.bp.blogspot.com/_-OkamweXVGk/S6cra58yLzI/AAAAAAAADAA/yuUKt2uymyY/s200/oso.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5451373615187636018" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href='http://blog.halan.se/'&gt;Daniel Halan&lt;/a&gt; es un arquitecto de soluciones CRM que ha desarrollado una herramienta que seguro mucha gente estaba esperando. Se llama &lt;a href='http://blog.halan.se/post/CRM-Configuration-Manager.aspx'&gt;Microsoft CRM Configuration Manager&lt;/a&gt; y es una aplicación que facilita la exportación e importación de ficheros de configuración para CRM 4.0 incluyendo (y esto es lo que más útil encuentro) todo el código Javascript asociado a eventos de formularios. Fabrica una serie de ficheros con extensión js en una carpeta local, que luego podemos editar con la herramienta de nuestra elección (o sea, Visual Studio).&lt;br/&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_-OkamweXVGk/S6csfjtx_-I/AAAAAAAADAI/yFZhObnUXc4/s1600-h/crmcm.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 31px;" src="http://1.bp.blogspot.com/_-OkamweXVGk/S6csfjtx_-I/AAAAAAAADAI/yFZhObnUXc4/s200/crmcm.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5451374794630103010" /&gt;&lt;/a&gt;&lt;br /&gt;De esta manera podemos olvidarnos de desarrollar en la minúscula cajita que proporciona la interfaz estándar de CRM.&lt;br&gt;&lt;br /&gt;¡Gracias por compartirlo!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-8870835518455101467?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/8870835518455101467/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=8870835518455101467' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/8870835518455101467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/8870835518455101467'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2010/03/crm-configuration-manager.html' title='CRM Configuration Manager'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_-OkamweXVGk/S6cra58yLzI/AAAAAAAADAA/yuUKt2uymyY/s72-c/oso.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-6578718448266370955</id><published>2010-02-08T11:12:00.007+01:00</published><updated>2010-09-28T12:57:28.526+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UpdateRollup'/><category scheme='http://www.blogger.com/atom/ns#' term='Instaladores'/><title type='text'>¿Qué versión de UR tengo?</title><content type='html'>Aquí he copiado una lista de &lt;a href="http://vidmar.net/weblog/archive/2009/08/11/ms-crm4-build-numbers.aspx"&gt;bite my bytes&lt;/a&gt; con las versiones de &lt;b&gt;Update Rollups de CRM&lt;/b&gt; asociadas a los números de versión de las DLLs. Es algo que tengo que hacer a menudo cuando me encuentro con una instalación de CRM que no he instalado (o he instalado y olvidado luego…) ¿qué versión del Update Rollup tengo instalada?   &lt;br /&gt;  &lt;br /&gt;  &lt;table style="width: 400px" border="0" cellspacing="0" cellpadding="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;&lt;b&gt;Versión&lt;/b&gt; &lt;/td&gt;        &lt;td&gt;&lt;b&gt;Build Number&lt;/b&gt; &lt;/td&gt;        &lt;td&gt;&lt;b&gt;Fecha&lt;/b&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;RTM&lt;/td&gt;        &lt;td&gt;4.0.7333.3&lt;/td&gt;        &lt;td&gt;19/12/2007&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Rollup 1&lt;/td&gt;        &lt;td&gt;4.0.7333.1113&lt;/td&gt;        &lt;td&gt;24/11/2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Rollup 2&lt;/td&gt;        &lt;td&gt;4.0.7333.1312          &lt;br /&gt;4.0.7333.1316&lt;/td&gt;        &lt;td&gt;15/01/2009          &lt;br /&gt;08/02/2009&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Rollup 3&lt;/td&gt;        &lt;td&gt;4.0.7333.1408&lt;/td&gt;        &lt;td&gt;12/03/2009&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Rollup 4&lt;/td&gt;        &lt;td&gt;4.0.7333.1551&lt;/td&gt;        &lt;td&gt;07/05/2009&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Rollup 5&lt;/td&gt;        &lt;td&gt;4.0.7333.1644          &lt;br /&gt;4.0.7333.1645&lt;/td&gt;        &lt;td&gt;02/07/2009&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Rollup 6&lt;/td&gt;        &lt;td&gt;4.0.7333.1750&lt;/td&gt;        &lt;td&gt;27/09/2009&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Rollup 7&lt;/td&gt;        &lt;td&gt;4.0.7333.2138&lt;/td&gt;        &lt;td&gt;22/10/2009&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Rollup 8&lt;/td&gt;        &lt;td&gt;4.0.7333.2542&lt;/td&gt;        &lt;td&gt;17/12/2009&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;a href="http://support.microsoft.com/default.aspx?kbid=977650"&gt;Rollup 9&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;4.0.7333.2644&lt;/td&gt;        &lt;td&gt;11/02/2010&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=5da4d352-1d3f-4426-9c17-b256c30afdb9"&gt;Rollup 10&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;4.0.7333.2741&lt;/td&gt;        &lt;td&gt;04/08/2010&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=f84f2bfb-393d-4b90-bf1b-300a82ec6083&amp;amp;displaylang=es"&gt;Rollup 11&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;4.0.7333.2861&lt;/td&gt;        &lt;td&gt;03/06/2010&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;a href="http://support.microsoft.com/kb/2028381"&gt;Rollup 12&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;4.0.7333.2935&lt;/td&gt;        &lt;td&gt;02/08/2010&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;a href="http://support.microsoft.com/default.aspx?kbid=2267499"&gt;Rollup 13&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;4.0.7333.3018&lt;/td&gt;        &lt;td&gt;23/09/2010&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Se trata de mirar cualquier dll de la carpeta C:\Program Files\Microsoft Dynamics CRM\Server\bin y mirar su número de &lt;em&gt;build&lt;/em&gt;. Para esto lo más sencillo es hacer botón derecho - Propiedades. También se puede añadir la columna &lt;em&gt;File Version&lt;/em&gt; al explorador de ficheros.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-6578718448266370955?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/6578718448266370955/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=6578718448266370955' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/6578718448266370955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/6578718448266370955'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2010/02/que-version-de-ur-tengo.html' title='¿Qué versión de UR tengo?'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-4509078555587115527</id><published>2010-02-01T15:18:00.007+01:00</published><updated>2010-02-01T15:38:19.027+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo'/><category scheme='http://www.blogger.com/atom/ns#' term='personalización'/><category scheme='http://www.blogger.com/atom/ns#' term='workflow'/><title type='text'>MSMQ Custom Workflow Activity</title><content type='html'>&lt;p&gt;En cualquier proyecto de CRM que se precie tiene que haber algo de integración, ¿no? Pues lo que me cuelgo aquí es un &lt;em&gt;ladrillo &lt;/em&gt;para la integración. También es un ladrillo de post, por cierto. La idea es permitir que, desde el Workflow estándar, un &lt;em&gt;usuario poderoso&lt;/em&gt; (power user) sea capaz de enviar una entidad de CRM a una cola de MSMQ en respuesta a algún evento de CRM. Puede que sea una idea disparatada, no lo sé, pero permite flexibilidad, es básica y se explica en un párrafo.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharp:nogutter" name="code"&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Messaging;&lt;br /&gt;using System.Web.Services.Protocols;&lt;br /&gt;using System.Workflow.ComponentModel;&lt;br /&gt;using System.Workflow.Activities;&lt;br /&gt;// Microsoft Dynamics CRM namespaces&lt;br /&gt;using Microsoft.Crm.Sdk;&lt;br /&gt;using Microsoft.Crm.Sdk.Query;&lt;br /&gt;using Microsoft.Crm.SdkTypeProxy;&lt;br /&gt;using Microsoft.Crm.Workflow;&lt;br /&gt;using Microsoft.Crm.Workflow.Activities;&lt;br /&gt;&lt;br /&gt;namespace CrmADiario.Crm.Workflow&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;  public class SendToQueueBase : SequenceActivity&lt;br /&gt;  {&lt;br /&gt;&lt;br /&gt;    public static void SendEntityToQueue(&lt;br /&gt;      ActivityExecutionContext ctx,&lt;br /&gt;      string queueAddress,&lt;br /&gt;      Type activityType,&lt;br /&gt;      string entityName,&lt;br /&gt;      Guid entityId)&lt;br /&gt;    {&lt;br /&gt;      try&lt;br /&gt;      {&lt;br /&gt;        var crmContext = &lt;br /&gt;          (IContextService)ctx.GetService(typeof(IContextService));&lt;br /&gt;        var crmService = &lt;br /&gt;          crmContext.Context.CreateCrmService();&lt;br /&gt;&lt;br /&gt;        var resp = (RetrieveResponse)crmService.Execute(&lt;br /&gt;          new RetrieveRequest &lt;br /&gt;          { &lt;br /&gt;            Target = new TargetRetrieveDynamic &lt;br /&gt;            { &lt;br /&gt;              EntityId = entityId,&lt;br /&gt;              EntityName = entityName&lt;br /&gt;            },&lt;br /&gt;            ReturnDynamicEntities = true, &lt;br /&gt;            ColumnSet = new AllColumns()&lt;br /&gt;          });&lt;br /&gt;&lt;br /&gt;        var message = new Message(resp.BusinessEntity);&lt;br /&gt;        var q = new MessageQueue(queueAddress);&lt;br /&gt;        q.Send(message, activityType.ToString());&lt;br /&gt;      }&lt;br /&gt;      catch (SoapException soapEx)&lt;br /&gt;      {&lt;br /&gt;        var errorMessage = String.Format(&lt;br /&gt;          "A CRM error occurred executing {0} in queue {1}\r\n{2}",&lt;br /&gt;          activityType, &lt;br /&gt;          queueAddress, &lt;br /&gt;          soapEx.Detail.OuterXml);&lt;br /&gt;        throw new StopWorkflowException(WorkflowCompletionStatus.Failed, 1024, errorMessage);&lt;br /&gt;      }&lt;br /&gt;      catch (Exception ex)&lt;br /&gt;      {&lt;br /&gt;        var errorMessage = String.Format(&lt;br /&gt;          "An error occurred executing {0} in queue {1}\r\n{2}",&lt;br /&gt;          activityType,&lt;br /&gt;          queueAddress, &lt;br /&gt;          ex.Message);&lt;br /&gt;        throw new StopWorkflowException(WorkflowCompletionStatus.Failed, 1024, errorMessage);&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      &lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;La clase base &lt;b&gt;SendToQueueBase&lt;/b&gt; contiene la funcionalidad de ejecución de la actividad en el método &lt;b&gt;SendToQueue&lt;/b&gt; que es usado desde los métodos &lt;b&gt;Execute&lt;/b&gt; de las subclases. Por cierto, no he sido capaz de fabricar &lt;em&gt;una&lt;/em&gt; sola clase que haga el trabajo así que he tenido que fabricar (copiar y pegar, vamos) tantas clases de actividad como entidades de CRM se quieran enviar a MSMQ.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharp:nogutter" name="code"&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Workflow.ComponentModel;&lt;br /&gt;using Microsoft.Crm.Sdk;&lt;br /&gt;using Microsoft.Crm.Workflow;&lt;br /&gt;&lt;br /&gt;namespace CrmADiario.Crm.Workflow&lt;br /&gt;{&lt;br /&gt;  [CrmWorkflowActivity("Send contact to queue", "MSMQ Utilities")]&lt;br /&gt;  public class SendContactToQueue : SendToQueueBase&lt;br /&gt;  {&lt;br /&gt;&lt;br /&gt;    public static readonly DependencyProperty ContactProperty =&lt;br /&gt;      DependencyProperty.Register("Contact", typeof(Lookup), typeof(SendContactToQueue));&lt;br /&gt;&lt;br /&gt;    public static DependencyProperty QueueAddressProperty =&lt;br /&gt;      DependencyProperty.Register("QueueAddress", typeof(String), typeof(SendContactToQueue));&lt;br /&gt;&lt;br /&gt;    [CrmInput("Queue address")]&lt;br /&gt;    public String QueueAddress&lt;br /&gt;    {&lt;br /&gt;      get { return (String)GetValue(QueueAddressProperty); }&lt;br /&gt;      set { SetValue(QueueAddressProperty, value); }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    [CrmReferenceTarget("contact")]&lt;br /&gt;    [CrmInput("Contact")]&lt;br /&gt;    public Lookup Contact&lt;br /&gt;    {&lt;br /&gt;      get { return (Lookup)GetValue(ContactProperty); }&lt;br /&gt;      set { SetValue(ContactProperty, value); }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)&lt;br /&gt;    {&lt;br /&gt;      SendEntityToQueue(executionContext, QueueAddress, GetType(), "contact", Contact.Value);&lt;br /&gt;      return base.Execute(executionContext);&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Esta clase derivada envía un contacto serializado como una &lt;em&gt;DynamicEntity&lt;/em&gt; a la cola de MSMQ que se indique. Y para el resto de entidades, copiar, pegar y cambiar donde dice "contact" por el nombre de la entidad que sea. No es muy elegante, pero es hasta donde he llegado. Si a alguien se le ocurre cómo generalizar esto un poco, ¡adelante!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-4509078555587115527?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/4509078555587115527/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=4509078555587115527' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/4509078555587115527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/4509078555587115527'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2010/02/msmq-custom-workflow-activity.html' title='MSMQ Custom Workflow Activity'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-5909989741005541704</id><published>2009-11-26T12:07:00.004+01:00</published><updated>2009-11-26T12:11:57.079+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo'/><category scheme='http://www.blogger.com/atom/ns#' term='Instaladores'/><title type='text'>A vueltas con el Event Viewer</title><content type='html'>&lt;p&gt;Recientemente me he tenido que pelear con la generación de instaladores MSI con &lt;a href="http://wix.sourceforge.net/"&gt;WIX&lt;/a&gt;, o sea, que como diría Clint &amp;quot;He descubierto un mundo de dolor&amp;quot;. Una de las cosas que hay que hacer es dar mensajes al usuario durante la instalación para que sepa cómo está funcionando todo. La información tiene que ir tanto en la ventana interactiva del instalador como en el Visor de Sucesos de Windows. &lt;/p&gt;  &lt;p&gt;Pues bien, después de mucha pelea acabé con una CustomAction que incluye el siguiente código que hace las dos cosas a la vez: &lt;/p&gt;  &lt;pre class="csharp:nogutter" name="code"&gt;&lt;br /&gt;private static void Log(Session session, string message)&lt;br /&gt;{&lt;br /&gt;  EventLog.WriteEntry(&lt;br /&gt;    &amp;quot;MsiInstaller&amp;quot;, &lt;br /&gt;    message,&lt;br /&gt;    EventLogEntryType.Information,&lt;br /&gt;    1000);&lt;br /&gt;&lt;br /&gt;    var recordInfo = new Record(3);&lt;br /&gt;    recordInfo[2] = message;&lt;br /&gt;    session.Message(&lt;br /&gt;      InstallMessage.ActionStart,&lt;br /&gt;      recordInfo);&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Utilizo la &lt;i&gt;Event Source&lt;/i&gt; MsiInstaller porque creo que siempre va a estar creada, con lo que se evita el problema de que el usuario no tenga permisos para crear la fuente de eventos.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Gracias a &lt;a href="http://www.eventlogblog.com/blog/2008/04/event-log-message-files-the-de.html"&gt;NETIKUS&lt;/a&gt; por explicar qué demonios es el Event Id y por qué tengo que poner un &amp;quot;1000&amp;quot;. De hecho, si no ponemos el Identificador de evento, nos encontraremos con un extraño error que dice algo como:&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;The description for Event ID ([Event Id]) in Source ([Nombre_Fuente]) could not be found. &lt;br /&gt;It contains the following insertion string(s): .... &lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Esto ocurre porque los eventos del visor responden a una tabla con mensajes predefinidos con un formato específico, por ejemplo &amp;quot;No se pudo instalar el servicio %1&amp;quot; donde cada símbolo es sustituible por un parámetro. El formato del 1000 es simplemente &amp;quot;%1&amp;quot; así que podemos poner lo que queramos.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-5909989741005541704?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/5909989741005541704/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=5909989741005541704' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/5909989741005541704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/5909989741005541704'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2009/11/vueltas-con-el-event-viewer.html' title='A vueltas con el Event Viewer'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-7359716519520343406</id><published>2009-11-23T09:24:00.005+01:00</published><updated>2009-11-26T11:55:49.829+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Novedades'/><title type='text'>Novedades de CRM "5.0"</title><content type='html'>&lt;p&gt;Como &lt;a href="http://marcoamoedo.com/"&gt;Marco&lt;/a&gt; ya lo ha explicado mejor que yo, me limito a copiar (y traducir) su post sobre novedades de CRM 5.0 en la conferencia PDC que se celebró la semana pasada.&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Empaquetado de soluciones&lt;/strong&gt; Se acabó lo de tener que manejar Plugins y personalizaciones por separado. Se incorpora un gestor de soluciones y versiones, muy útil para ISVs.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Soporte a Framework 4.0&lt;/strong&gt; Por primera vez, alineación de versiones entre CRM y .NET&lt;br /&gt;Mejora de Web Services: basados en WCF, dan soporte a REST y AJAX, para que sea más fácil interoperar con otros entornos.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Tipos de datos del sistema&lt;/strong&gt; Esta me encanta... los datos ahora se expresan con clases nativas de .NET. Adiós a CrmNumber, por ejemplo. No sé si lo echaremos de menos...&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Linq to CRM&lt;/strong&gt; Sin tener que recurrir a terceros, librería de consultas integrada en el lenguaje.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Picklists compartidos&lt;/strong&gt; Si hay un picklist que aparece en más de una entidad es incómodo tener que sincronizarlos a mano. Pues nada, solucionado en esta versión.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Code Sandbox&lt;/strong&gt; Plug-Ins y actividades personalizadas de Workflow no sólo en en CRM On-premise, también en Hosted y CRM Online.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;He aquí unos enlaces a los PPTs de las sesiones originales&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Managing the Solution Lifecycle for xRM Applications&lt;/strong&gt;&lt;br/&gt;&lt;br /&gt;Gestión de soluciones, empaquetado y despliegue con xRM.&lt;br /&gt;&lt;a href="http://microsoftpdc.com/Sessions/PR31"&gt;http://microsoftpdc.com/Sessions/PR31&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Developing xRM Solutions using Windows Azure&lt;/strong&gt;&lt;br/&gt;&lt;br /&gt;&lt;a href="http://microsoftpdc.com/Sessions/P09-07"&gt;http://microsoftpdc.com/Sessions/P09-07&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;Nuevas opciones de desarrollo sobre xRM y conexión con el mundo "de la nube" con Azure y el Service Bus.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Build a .NET Business Application in 60 Minutes with xRM and SharePoint&lt;/strong&gt;&lt;br/&gt;&lt;br /&gt;Desarrollo de una aplicación de línea de negocio en 60 minutos con xRM y SharePoint&lt;br /&gt;&lt;a href="http://microsoftpdc.com/Sessions/PR33"&gt;http://microsoftpdc.com/Sessions/PR33&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Ah, y aquí tenéis el post original de Marco Amoedo: &lt;a href="http://tinyurl.com/yecrjpa"&gt;Summary of xRM and CRM 5 at PDC09&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-7359716519520343406?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/7359716519520343406/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=7359716519520343406' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/7359716519520343406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/7359716519520343406'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2009/11/novedades-de-crm-50.html' title='Novedades de CRM &quot;5.0&quot;'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-1296907746673452250</id><published>2009-10-19T12:02:00.002+02:00</published><updated>2009-11-26T11:55:30.750+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo'/><title type='text'>Resumen de artículos xRM en MSDN</title><content type='html'>&lt;p&gt;Este es un post recordatorio, o incluso auto-recordatorio. En &lt;a href="http://msdn.microsoft.com/en-us/library/dd393293.aspx"&gt;esta dirección&lt;/a&gt; de MSDN se puede acceder a una serie de artículos de desarrollo sobre Dynamics CRM muy interesantes. Por un lado tenemos la &lt;em&gt;Developer Ramp up Kit&lt;/em&gt;, que está muy bien para los primeros pasos en este entorno. Para temas más específicos, tenemos artículos avanzados sobre asuntos como despliegue de plug-ins, importación de datos, herramientas de depuración etc.&lt;/p&gt;  &lt;p&gt;Muy recomendable.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-1296907746673452250?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/1296907746673452250/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=1296907746673452250' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/1296907746673452250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/1296907746673452250'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2009/10/resumen-de-articulos-xrm-en-msdn.html' title='Resumen de artículos xRM en MSDN'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-654941814558841573</id><published>2009-09-02T11:03:00.003+02:00</published><updated>2009-09-03T09:22:59.825+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo'/><category scheme='http://www.blogger.com/atom/ns#' term='Novedades'/><title type='text'>Curso online de desarrollo sobre CRM</title><content type='html'>&lt;p&gt;&lt;a href="http://3.bp.blogspot.com/_-OkamweXVGk/Sp9umxYq6UI/AAAAAAAACjM/bQrTY_ROIDM/s1600-h/msdn_1inch_pms_3.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 111px;" src="http://3.bp.blogspot.com/_-OkamweXVGk/Sp9umxYq6UI/AAAAAAAACjM/bQrTY_ROIDM/s200/msdn_1inch_pms_3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5377138092474558786" /&gt;&lt;/a&gt;&lt;br /&gt;De nuevo hablando sobre mi mismo... pero si no, ¿para qué se inventaron los blogs? He fabricado mi primer &lt;a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032424589&amp;amp;EventCategory=3&amp;amp;culture=es-ES&amp;amp;CountryCode=ES"&gt;Curso online de desarrollo sobre Dynamics CRM&lt;/a&gt;  para MSDN.&lt;/p&gt;  &lt;p&gt;Ojo, es un curso para desarrolladores, no se tratan temas funcionales de CRM. Es básico, pero también se hace algún “exceso”, como en el capítulo de Silverlight. Se puede descargar gratuitamente y está formado por&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Fragmentos de código en C# (mucho) &lt;/li&gt;   &lt;li&gt;Videos con voz monótona (unos pocos) &lt;/li&gt;   &lt;li&gt;Capturas de pantalla (bastantes) &lt;/li&gt;   &lt;li&gt;Texto (lo justito) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Si alguien está decidido a empezar a crear aplicaciones sobre CRM (o XRM) y ya tiene conocimientos creo que puede ser un buen punto de arranque.&lt;/p&gt;  &lt;p&gt;Desde aquí os animo (¡venga!) a que lo descarguéis, lo probéis y lo critiquéis aquí mismo. Se hará lo que  se pueda para corregir los problemas que haya o incorporar nuevos temas.&lt;/p&gt;  &lt;p&gt;¡Salud!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-654941814558841573?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/654941814558841573/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=654941814558841573' title='7 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/654941814558841573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/654941814558841573'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2009/09/curso-online-de-desarrollo-sobre-crm.html' title='Curso online de desarrollo sobre CRM'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_-OkamweXVGk/Sp9umxYq6UI/AAAAAAAACjM/bQrTY_ROIDM/s72-c/msdn_1inch_pms_3.jpg' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-8235241804245794445</id><published>2009-08-07T10:33:00.001+02:00</published><updated>2009-08-07T10:33:05.228+02:00</updated><title type='text'>La importancia de los SPNs</title><content type='html'>&lt;p&gt;Leo en &lt;a href="http://blogs.msdn.com/crm/archive/2009/08/06/configuring-service-principal-names.aspx"&gt;esta entrada  del blog del equipo de CRM&lt;/a&gt; un artículo que resume de manera muy efectiva (no diré entretenida, tampoco  hay que pasarse) un tema que más de una vez nos ha dado dolores de cabeza a la gente que trabajamos con Dynamics CRM:  los &lt;strong&gt;Service Principal Names&lt;/strong&gt; o SPNs. Atención porque me meto en el tenebroso mundo de los  Administradores de Sistemas y puede haber heridos (empezando por mi orgullo).&lt;/p&gt;  &lt;p&gt;&lt;br/&gt;Los SPNs son nombres que identifican unívocamente las instancias de un servicio. Son atributos del Directorio Activo, pero  no están expuestos a través de la interfaz habitual. Permiten un proceso conocido como &lt;strong&gt;Delegación Kerberos&lt;/strong&gt;, mediante el cual  se pueden “pasar” credenciales de usuario entre distintos servidores. Entran en juego en un entorno CRM cuando tenemos  distribuida nuestra instalación entre distintos servidores. Por ejemplo, si tenemos nuestro servidor de informes (SRS) y nuestro CRM en máquinas distintas. Cuando un usuario pide un informe a CRM, retransmite sus credenciales a SRS para que este lo sirva en su nombre. Si los SPNs no están configurados correctamente, obtendremos el temido mensaje&lt;/p&gt;  &lt;p align="center"&gt; &lt;br/&gt; &lt;font color="#ff0000" size="5"&gt;HTTP Error 401 - Unauthorized&lt;/font&gt; &lt;br/&gt; &lt;/p&gt;  &lt;p&gt; &lt;br/&gt;Hay muchos casos en los que se crean automáticamente SPNs para los servicios. Por ejemplo, al instalar SQL Server se crea uno para la cuenta de usuario que ejecuta su servicio. Si luego se cambia este usuario, se pueden acabar duplicando las entradas. O también, cuando un pool de IIS se ejecuta con una identidad distinta a Network Service o sobre un número de puerto no estándar (no es ni el 80 ni el 443). También cuando se crean alias o cabeceras para el servicio. Por ejemplo, si queremos acceder a nuesto CRM con una dirección del estilo &lt;em&gt;crm.miempresa.com&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Vamos, que como veis hay un montón de casos en los que tendremos que pegarnos con las SPNs en un entorno mínimamente complejo de CRM. Las herramientas que podemos usar (con mucho respeto) son &lt;strong&gt;ADSI Edit&lt;/strong&gt; y &lt;strong&gt;SetSPN &lt;/strong&gt;están incluidas en las &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=96a35011-fd83-419d-939b-9a772ea2df90"&gt;Support Tools&lt;/a&gt;, que tendremos que descargar por separado si trabajamos con Windows 2003. En Windows 2008 están preinstaladas en los controladores de dominio. En el artículo se comentan los siguientes escenarios específicos para CRM: &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Uso de host header &lt;/li&gt;    &lt;li&gt;Cambiar la identidad del pool de CRM &lt;/li&gt;    &lt;li&gt;Cambiar la identidad del pool de CRM cuando hay otras aplicaciones en el servidor (i.e. Intranet) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Es un tema &lt;em&gt;complejo y delicado&lt;/em&gt;&lt;strong&gt;&lt;/strong&gt; sobre el que no puedo contar mucho más. Tan sólo redirigir (para empezar, a mi mismo) a recursos más o menos digeribles para legos como yo. Por ejemplo, esta &lt;a href="http://blogs.technet.com/askds/archive/2008/03/06/kerberos-for-the-busy-admin.aspx"&gt;Guía de Kerberos para el Administrador con Prisas&lt;/a&gt; (la traducción es mía). Suerte. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-8235241804245794445?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/8235241804245794445/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=8235241804245794445' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/8235241804245794445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/8235241804245794445'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2009/08/la-importancia-de-los-spns.html' title='La importancia de los SPNs'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-8981465907554993324</id><published>2009-07-14T10:33:00.001+02:00</published><updated>2009-09-03T09:18:56.020+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Novedades'/><category scheme='http://www.blogger.com/atom/ns#' term='Funcionalidades'/><title type='text'>Nuevos aceleradores de Dynamics CRM</title><content type='html'>&lt;p&gt;&lt;a href="http://www.digitalwpc.com"&gt;&lt;img style="margin: 0px; display: inline" title="image" border="0" alt="image" align="left" src="http://blogs.msdn.com/blogfiles/luispanzano/WindowsLiveWriter/DynamicsCRMsesocializa_1AE3/image_3.png" width="240" height="67" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;En la sesión inaugural de la conferencia &lt;a href="http://www.digitalwpc.com/" target="_blank"&gt;Conferencia Mundial de Partners&lt;/a&gt; se ha mostrado una forma de integrar el-cada-vez-más-popular &lt;strong&gt;twitter &lt;/strong&gt;como un canal más de comunicación con clientes. Hasta la gente más insignificante y con menos cosas que decir puede encontrarse en twitter. Por cierto, ¿os he contado que &lt;a href="http://twitter.com/dsabater" target="_blank"&gt;yo también estoy en twitter&lt;/a&gt;? &lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/dsabater"&gt;&lt;img style="margin: 10px 0px" alt="Twitter.com" src="http://assets0.twitter.com/images/twitter_logo_header.png" width="155" height="36" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Por otro lado, se fortalece la visión &lt;strong&gt;xRM&lt;/strong&gt; con otros dos aceleradores para gestionar relaciones con partners y otro para publicación de entidades CRM en portales web. En breve aparecerán publicados en el sitio habitual de codeplex.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;En resumen, los aceleradores son:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Social Networking Accelerator &lt;/li&gt;    &lt;li&gt;Partner Relationship Management Accelerator &lt;/li&gt;    &lt;li&gt;Portal Integration Accelerator &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Más información de la noticia en &lt;a href="http://www.microsoft.com/Presspass/press/2009/jul09/07-08MSDynamicsCRMAcceleratorsPR.mspx" target="_blank"&gt;este enlace a MS Press&lt;/a&gt;. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-8981465907554993324?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/8981465907554993324/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=8981465907554993324' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/8981465907554993324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/8981465907554993324'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2009/07/nuevos-aceleradores-de-dynamics-crm.html' title='Nuevos aceleradores de Dynamics CRM'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-3027874715760427631</id><published>2009-07-06T10:40:00.008+02:00</published><updated>2009-09-03T09:18:56.020+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Novedades'/><title type='text'>Un poco de autobombo</title><content type='html'>&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_-OkamweXVGk/SlXTwXJjTlI/AAAAAAAACMQ/5UU3_HBbU60/s1600-h/MVP_FullColor_ForScreen%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 20px 0px 0px; display: left; border-top: 0px; border-right: 0px" title="MVP_FullColor_ForScreen" border="0" alt="MVP_FullColor_ForScreen" align="left" src="http://lh5.ggpht.com/_-OkamweXVGk/SlXTyQl6PyI/AAAAAAAACMU/zRAF-j9acdE/MVP_FullColor_ForScreen_thumb%5B1%5D.png?imgmax=800" width="157" height="244" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;&lt;br /&gt;¡¡Me han nombrado &lt;a href="https://mvp.support.microsoft.com/communities/mvp.aspx?product=1&amp;amp;competency=Dynamics+CRM" target="_blank"&gt;MVP de Microsoft Dynamics CRM&lt;/a&gt;!! Ya sé que se ven poco las exclamaciones en este blog, pero la ocasión lo merece. Hace un tiempo que estaba rondando este gallardón - que me llena de orgullo y satisfacción. Tampoco se ven muchas rimas, por cierto. La verdad es que aparecer en la misma lista que &lt;a href="https://mvp.support.microsoft.com/profile=4EAF9688-5557-4B60-93ED-BD11DF387624" target="_blank"&gt;Michael Höhne&lt;/a&gt; o &lt;a href="https://mvp.support.microsoft.com/profile=FE02D2A4-CEEB-4C17-9226-979BEFEC600B" target="_blank"&gt;Mitch Milam&lt;/a&gt; da un poco de vértigo por las expectativas creadas.&lt;/p&gt;  &lt;p&gt;Y a continuación una lista no enumerada (ul) de gracias:&lt;/p&gt;  &lt;ul style="border-left-width: 5px"&gt;   &lt;li&gt;Gracias al equipo de Microsoft Ibérica (Luis Panzano, César de la Torre) que han apoyado mi candidatura una y otra vez. &lt;/li&gt;    &lt;li&gt;Gracias a la gente de Spenta Consulting (Jordi, Gerard, David) por darme margen y libertad suficientes para dedicarle tiempo a la tarea. ¡Y por crear un buen entorno de trabajo donde estas cosas son posibles! Pronto veremos surgir más MVPs en Spenta como champiñones en otoño. &lt;/li&gt; &lt;/ul&gt;  &lt;br /&gt;  &lt;p&gt;&lt;a href="http://crmadiario.blogspot.com/2009/06/nuevo-foro-de-dynamics-crm-en-espanol.html"&gt;Parece que fue ayer &lt;/a&gt;que comenté que en el foro de CRM sólo había un MVP de habla española. Bueno, ¡pues ya hay dos! Creo que el premio me lo han dado precisamente por colaborar en los foros respondiendo preguntas y eso es lo que pienso seguir haciendo. Lo dedico a la Virgen de la Cabeza, a Alcobendas y a Pedro Almodóvar.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-3027874715760427631?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/3027874715760427631/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=3027874715760427631' title='6 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/3027874715760427631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/3027874715760427631'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2009/07/un-poco-de-autobombo.html' title='Un poco de autobombo'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_-OkamweXVGk/SlXTyQl6PyI/AAAAAAAACMU/zRAF-j9acdE/s72-c/MVP_FullColor_ForScreen_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-4290269161097587586</id><published>2009-06-30T09:47:00.001+02:00</published><updated>2009-09-03T09:18:56.020+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Novedades'/><title type='text'>Nuevo foro de Dynamics CRM en español</title><content type='html'>&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_-OkamweXVGk/SknDFX8xXpI/AAAAAAAACMA/i8epwbpcKJk/s1600-h/image%5B7%5D.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 5px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="left" src="http://lh5.ggpht.com/_-OkamweXVGk/SknDGEezTrI/AAAAAAAACME/Q_r9kgqgaPc/image_thumb%5B3%5D.png?imgmax=800" width="244" height="236" /&gt;&lt;/a&gt; Un nuevo espacio para la &lt;em&gt;comunidad&lt;/em&gt; de CRM en español. Revisado, monitorizado y respondido (cuando no son preguntas sobre Hotmail) por el equipo de MVPs de CRM de habla española. O sea, &lt;a href="http://marcoamoedo.com/" target="_blank"&gt;Marco Amoedo&lt;/a&gt;. Y allá va el enlace:&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://social.microsoft.com/Forums/en-US/crmspanish/threads"&gt;http://social.microsoft.com/Forums/en-US/crmspanish/threads&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-4290269161097587586?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/4290269161097587586/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=4290269161097587586' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/4290269161097587586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/4290269161097587586'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2009/06/nuevo-foro-de-dynamics-crm-en-espanol.html' title='Nuevo foro de Dynamics CRM en español'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_-OkamweXVGk/SknDGEezTrI/AAAAAAAACME/Q_r9kgqgaPc/s72-c/image_thumb%5B3%5D.png?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-1434943153769040413</id><published>2009-04-28T11:06:00.004+02:00</published><updated>2009-09-03T08:48:24.728+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo'/><title type='text'>Modificar el filtrado de los campos lookup</title><content type='html'>&lt;p&gt;Esta es una de esas pequeñas modificaciones (no soportadas) que pueden hacer que nuestros usuarios ganen mucho tiempo. Los campos de tipo &lt;em&gt;lookup&lt;/em&gt; tienen su propia vista asociada, que se puede modificar para que en lugar de mostrarnos todos los registros de un determinado tipo, realice algún tipo de filtrado sobre ellos. El ejemplo más típico: cuando establecemos el contacto principal de una cuenta, no queremos ver &lt;em&gt;todos&lt;/em&gt; los contactos, sino sólo aquellos que pertenecen a esa cuenta. Pues bien, gracias a un &lt;a href="http://groups.google.es/group/microsoft.public.es.crm/msg/ae728f36f2e239a5?hl=es" target="_blank"&gt;post de Atilio en las news&lt;/a&gt; que me llevó a &lt;a href="http://jianwang.blogspot.com/2008/05/mysterious-crm-lookup-ii.html" target="_blank"&gt;este otro&lt;/a&gt; de Jim Wang que explica cómo hacerlo. Resulta que los campos lookup admiten un parámetro &lt;strong&gt;additionalparams&lt;/strong&gt; donde podemos añadir un texto cualquiera para que aparezca en la caja de búsqueda. Si añadimos como campo de búsqueda a la vista de contactos el nombre de la empresa, ya tenemos resuelto el tema.&lt;/p&gt;  &lt;p&gt;Modificamos el OnLoad del formulario de Cuenta para que añada el parámetro:&lt;/p&gt;&lt;br /&gt;&lt;pre name="code" class="javascript:nogutter"&gt;&lt;br /&gt;if (crmForm.FormType == 2 &amp;amp;&amp;amp; crmForm.ObjectId != null) {&lt;br /&gt; var name = crmForm.all.name.DataValue;&lt;br /&gt;crmForm.all.primarycontactid.additionalparams = 'search=' + name;&lt;br /&gt; }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Ahora modificamos la vista de búsqueda de contactos para que incluya el nombre de la cuenta:&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;a href="http://lh3.ggpht.com/_-OkamweXVGk/SfbHFMBI4DI/AAAAAAAACKM/1R5O-55KMu4/s1600-h/SNAG-0001%5B5%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SNAG-0001" border="0" alt="SNAG-0001" src="http://lh3.ggpht.com/_-OkamweXVGk/SfbHF7xFMKI/AAAAAAAACKQ/LwIkE9uCzRE/SNAG-0001_thumb%5B3%5D.png?imgmax=800" width="350" /&gt;&lt;/a&gt;   &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Añadimos el campo Cliente principal:&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;a href="http://lh6.ggpht.com/_-OkamweXVGk/SfbHG0AcXYI/AAAAAAAACKU/O2XcKalcWsI/s1600-h/SNAG-0000%5B3%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SNAG-0000" border="0" alt="SNAG-0000" src="http://lh5.ggpht.com/_-OkamweXVGk/SfbHHfrpAqI/AAAAAAAACKY/BZUvnkmOY98/SNAG-0000_thumb%5B1%5D.png?imgmax=800" width="350" /&gt;&lt;/a&gt;   &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Y ya está. Ahora, cuando abramos el lookup de Contacto principal, tendremos rellenado el nombre de la empresa. Si pulsamos &lt;i&gt;buscar&lt;/i&gt; aparecerán sólo los contactos de esa cuenta.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-1434943153769040413?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/1434943153769040413/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=1434943153769040413' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/1434943153769040413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/1434943153769040413'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2009/04/modificar-el-filtrado-de-los-campos.html' title='Modificar el filtrado de los campos lookup'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_-OkamweXVGk/SfbHF7xFMKI/AAAAAAAACKQ/LwIkE9uCzRE/s72-c/SNAG-0001_thumb%5B3%5D.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-8373492540043640127</id><published>2009-04-23T13:17:00.002+02:00</published><updated>2009-09-03T08:49:53.664+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Novedades'/><title type='text'>Buscar relaciones N:N en CRM</title><content type='html'>&lt;p&gt;Una de las funcionalidades añadidas en la versión 4.0 fue la de permitir crear relaciones múltiples entre entidades. Aunque internamente se está creando una tabla intermedia o &lt;em&gt;Intersect Table&lt;/em&gt; los Web Services de la SDK no la publican como una entidad más que podamos crear o editar. Para asociar dos entidades de esta relación tendremos que usar el mensaje específico &lt;strong&gt;AssociateEntitiesRequest&lt;/strong&gt;. ¿Y para buscar? Hay que recurrir a dos LinkEntities, igual que en SQL necesitaríamos dos JOIN. Lo cuelgo aquí para cuando se me olvide. Por cierto, creo que en la SDK hay un pequeño error.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="csharp:nogutter"&gt;&lt;br /&gt;        // Buscar todos los "B" relacionados con "A"&lt;br /&gt;        QueryExpression qe = new QueryExpression();&lt;br /&gt;        qe.EntityName = "pre_entidad_b";&lt;br /&gt;        qe.ColumnSet = new AllColumns();&lt;br /&gt;&lt;br /&gt;        // Crear el enlace entre la tabla buscada(B) y la intermedia&lt;br /&gt;        LinkEntity le1 = new LinkEntity();&lt;br /&gt;        le1.LinkFromEntityName = "pre_entidad_b";&lt;br /&gt;        le1.LinkFromAttributeName = "pre_entidad_bid";&lt;br /&gt;        le1.LinkToEntityName = "pre_entidad_b_entidad_a";&lt;br /&gt;        le1.LinkToAttributeName = "pre_entidad_bid";&lt;br /&gt;&lt;br /&gt;        // Enlace entre la tabla intermedia y la conocida(A)&lt;br /&gt;        LinkEntity le2 = new LinkEntity();&lt;br /&gt;        le2.LinkFromEntityName = "pre_entidad_b_entidad_a";&lt;br /&gt;        le2.LinkFromAttributeName = "entidad_aid";&lt;br /&gt;        le2.LinkToEntityName = "entidad_a";&lt;br /&gt;        le2.LinkToAttributeName = "entidad_aid";&lt;br /&gt;&lt;br /&gt;        // Crear la condición para filtrar por la entidad conocida&lt;br /&gt;        ConditionExpression ce = new ConditionExpression();&lt;br /&gt;        ce.AttributeName = "entidad_aid";&lt;br /&gt;        ce.Operator = ConditionOperator.Equal;&lt;br /&gt;        ce.Values = new object[] { entidad_aId };&lt;br /&gt;&lt;br /&gt;        // Añadir la condición al segundo enlace&lt;br /&gt;        le2.LinkCriteria = new FilterExpression();&lt;br /&gt;        le2.LinkCriteria.Conditions = new ConditionExpression[] { ce };&lt;br /&gt;&lt;br /&gt;        // Añadir el segundo enlace al primero&lt;br /&gt;        le1.LinkEntities = new LinkEntity[] { le2 };&lt;br /&gt;        qe.LinkEntities = new LinkEntity[] { le1 };&lt;br /&gt;&lt;br /&gt;        // Crear la petición&lt;br /&gt;        RetrieveMultipleRequest req = new RetrieveMultipleRequest();&lt;br /&gt;        req.Query = qe;&lt;br /&gt;        RetrieveMultipleResponse resp = (RetrieveMultipleResponse)crm.Execute(req);&lt;br /&gt;        resp.BusinessEntityCollection;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-8373492540043640127?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/8373492540043640127/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=8373492540043640127' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/8373492540043640127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/8373492540043640127'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2009/04/buscar-relaciones-nn-en-crm.html' title='Buscar relaciones N:N en CRM'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-6837588040800245414</id><published>2009-04-16T10:17:00.003+02:00</published><updated>2009-09-03T08:48:47.451+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Funcionalidades'/><title type='text'>Lanzamiento del Microsoft Dynamics CRM Dev Toolkit</title><content type='html'>&lt;p&gt;Leo en el blog del equipo de CRM que se ha lanzado un nuevo toolkit integrado en Visual Studio para facilitar el desarrollo sobre CRM.&lt;/p&gt;&lt;p&gt;&lt;img style="MARGIN: 10px 0px" src="http://blogs.msdn.com/blogfiles/crm/WindowsLiveWriter/AnnouncingtheMicrosoftDynamicsCRMDevTool_71F2/b1_2.jpg" /&gt; &lt;/p&gt;&lt;p&gt;Aquí tenemos el enlace al post del &lt;strong&gt;Microsoft Dynamics CRM Team Blog&lt;/strong&gt;:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/crm/archive/2009/04/13/announcing-the-microsoft-dynamics-crm-dev-toolkit.aspx"&gt;Announcing the Microsoft Dynamics CRM Dev Toolkit&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;br/&gt;Y aquí el enlace al instalador:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href="http://code.msdn.microsoft.com/E2DevTkt" target="_blank"&gt;The Microsoft Dynamics CRM Developer Toolkit&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt;Hasta ahora, la SDK sólo proporcionaba poco más que un fichero de documentación y un par de dlls. El desarrollo sobre Visual Studio se realizaba de la manera &lt;em&gt;estándar&lt;/em&gt;, sin muchas ayudas específicas para CRM. Con este lanzamiento se facilita el famoso &lt;em&gt;XRM&lt;/em&gt; o &lt;em&gt;CRM como plataforma de desarrollo&lt;/em&gt;. Pero no es sólo una ayuda para el desarrollo puro. Además, con este Toolkit podemos hacer directamente desde Visual Studio algunas tareas que suelen hacerse pesadas desde la interfaz de CRM:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Ver un listado de entidades &lt;/li&gt;&lt;li&gt;Crear entidades y atributos &lt;/li&gt;&lt;li&gt;Crear clases &lt;em&gt;wrapper &lt;/em&gt;para entidades &lt;/li&gt;&lt;li&gt;Desarrollar &lt;em&gt;Plug-Ins&lt;/em&gt; &lt;/li&gt;&lt;li&gt;Desplegar una solución completa en uno o varios servidores &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Desde luego, una buena noticia para los que nos peleamos con CRM (a diario).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-6837588040800245414?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/6837588040800245414/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=6837588040800245414' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/6837588040800245414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/6837588040800245414'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2009/04/lanzamiento-del-microsoft-dynamics-crm.html' title='Lanzamiento del Microsoft Dynamics CRM Dev Toolkit'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-240225904541611744</id><published>2009-04-07T09:47:00.002+02:00</published><updated>2009-09-03T09:19:43.613+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo'/><title type='text'>Formularios de actividades direccionables</title><content type='html'>&lt;p&gt;Una de las funcionalidades más útiles de CRM para los desarrolladores es la posibilidad de lanzar formularios y vistas desde aplicaciones externas. Lo que en la SDK se describe como &lt;strong&gt;URL-Addressable Forms and Views&lt;/strong&gt; (que por cierto, no sé muy bien como traducir, porque &lt;em&gt;Formularios y vistas direccionables por URL&lt;/em&gt; suena raro) es lo que nos permite lanzar un Internet Explorer con la dirección:&lt;/p&gt;  &lt;br /&gt;&lt;code&gt;http://crm:5555/Org/CS/cases/edit.aspx?id={guid}&lt;/code&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;p&gt;Por ejemplo, para editar un caso para el que conocemos su id. Si lo que queremos es crear un nuevo caso, simplemente no ponemos el parámetro &lt;em&gt;id&lt;/em&gt; y ya está:&lt;/p&gt;  &lt;br /&gt;&lt;code&gt;http://crm:5555/Org/CS/cases/edit.aspx&lt;/code&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;p&gt;Aún mejor, si queremos rellenar para el usuario algún campo en el formulario, la URL lo admite con la forma habitual &lt;em&gt;campo=valor&lt;/em&gt; así que podemos escribir, por ejemplo:&lt;/p&gt;  &lt;br /&gt;&lt;code&gt;http://crm:5555/Org/sfa/accts/edit.aspx?name=Spenta&amp;amp;telephone1=1234556&lt;/code&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;p&gt;Para rellenar el nombre y el teléfono de una nueva cuenta. Hasta aquí todo perfecto.Bueno, pues en la SDK está documentado una serie de entidades (cuenta, contacto, caso etc.) pero no dice nada acerca de las &lt;strong&gt;actividades&lt;/strong&gt;. En un proyecto en el que estoy trabajando que incluye integración con Silverlight, necesitaba lanzar una ventana para crear actividades y me di cuenta de su formato de URL no estaba en la lista. No hace falta ser un &lt;em&gt;hacker&lt;/em&gt; para darse cuenta de que cuando lanzas una ventana de actividad, la URL tiene una forma ligeramente distinta. Además, para rellenar los campos de tipo &lt;strong&gt;partylist&lt;/strong&gt; hay que hacer un pequeño truco adicional.&lt;/p&gt;  &lt;br /&gt;&lt;code&gt;http://crm:5555/Org/activities/phone/edit.aspx   &lt;br /&gt;?pId={guid}&amp;amp;pType=2&amp;amp;pName=Nombre&amp;amp;partyid={guid}&amp;amp;partytype=2&amp;amp;partyname=Nombre&lt;/code&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;p&gt;No es para tanto, es sólo que el parámetro &lt;strong&gt;pId&lt;/strong&gt; para el destinatario no está documentado. Y que con los campos &lt;strong&gt;partyid &lt;/strong&gt;y &lt;strong&gt;partyname &lt;/strong&gt;se añaden destinatarios a los campos de tipo &lt;strong&gt;partylist&lt;/strong&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-240225904541611744?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/240225904541611744/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=240225904541611744' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/240225904541611744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/240225904541611744'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2009/04/formularios-de-actividades.html' title='Formularios de actividades direccionables'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-4611047425093713648</id><published>2009-03-18T11:37:00.003+01:00</published><updated>2009-09-03T09:19:43.613+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo'/><title type='text'>Extendiendo el eService Accelerator</title><content type='html'>&lt;p&gt;&lt;a href="http://crmaccelerators.codeplex.com/"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=crmaccelerators&amp;amp;DownloadId=54482&amp;amp;Build=14730" align="right" border="0" /&gt;&lt;/a&gt;Estos últimos días me he estado &lt;strike&gt;peleando&lt;/strike&gt; ocupando de instalar y extender el acelerador de CRM que más coincide con la funcionalidad del proyecto CSP. El &lt;a href="http://www.codeplex.com/crmaccelerators/Release/ProjectReleases.aspx?ReleaseId=19956" target="_blank"&gt;eService Accelerator&lt;/a&gt; es una extensión de CRM que permite "abrir" nuestro CRM publicando una selección de funcionalidades en una web al estilo portal público o extranet. Aquí nuestros clientes (o ciudadanos) pueden acceder a información o aportarla en tareas como:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Registrarse como usuarios del portal - &lt;em&gt;Contacto &lt;/em&gt;&lt;/li&gt;&lt;li&gt;Realizar preguntas o reclamaciones - &lt;em&gt;Caso &lt;/em&gt;&lt;/li&gt;&lt;li&gt;Programar visitas o servicios - &lt;em&gt;Actividad de Servicio&lt;/em&gt; &lt;/li&gt;&lt;li&gt;Consultar la base de conocimiento - Artículos de la &lt;em&gt;Knowledge Base&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Además, esta plataforma inicial es fácilmente ampliable, de manera que si una empresa quisiera, por ejemplo, dar acceso al autoservicio de presupuestos para clientes, lo podría hacer publicando la entidad &lt;em&gt;Oferta&lt;/em&gt;. Un conjunto de controles UserControl de ASP.NET permiten a un equipo de desarrollo añadir esta funcionalidad con poco esfuerzo.&lt;/p&gt;&lt;p&gt;El proceso de instalación del eService es bastante sencillo, aunque hay una serie de problemas menores que mejor no tener que encontrarse una segunda vez. Los comparto aquí por si sirven de algo. La parte de personalización y ampliación se queda un poco corta en explicaciones, así que también pondré mi granito de arena.&lt;/p&gt;&lt;h4&gt;Instalación&lt;/h4&gt;Hay un pequeño bug en la manera como la consola de eService almacena la configuración. El instalador de eService genera una entidad personalizada &lt;em&gt;eServiceConfiguration&lt;/em&gt; que contiene un solor registro con los parámetros de configuración de nuestra instalación. Pues bien, el código de eService busca por nombre este registro, y este nombre tiene que ser exactamente &lt;strong&gt;eServiceConfig_V1&lt;/strong&gt;. Para encontrar este registro haremos una búsqueda avanzada, ya que la entidad no se incluye por defecto en el SiteMap. &lt;ul&gt;&lt;li&gt;Click en Herramientas - Búsqueda avanzada &lt;/li&gt;&lt;li&gt;En el desplegable de entidad, escoger eService Configuration &lt;/li&gt;&lt;li&gt;Pulsar el botón de búsqueda &lt;/li&gt;&lt;li&gt;Doble click en el único elemento que debe haber (si hay más de uno es que hemos hecho algo mal en la importación) &lt;/li&gt;&lt;li&gt;Se abre el registro, rellenar todos los campos necesarios &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Os recomiendo crear un acceso directo por si tenemos que volver aquí.&lt;/p&gt;&lt;p&gt;Además de cambiar el nombre, tendremos que rellenar todos los campos de esta entidad: SmtpServer, SmtpPassword, Default Subject. Aquí encontramos también el usuario que va a identificar al portal de eService para CRM. Este usuario debe tener los permisos exactos (ni más ni menos) para realizar las tareas de eService:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Read/Write/AppendTo en contact &lt;/li&gt;&lt;li&gt;Read/Write/AppendTo en account &lt;/li&gt;&lt;li&gt;Read/Write/AppendTo en activity &lt;/li&gt;&lt;li&gt;Read/Write/AppendTo/Assign To en case &lt;/li&gt;&lt;li&gt;AppendTo en Subject &lt;/li&gt;&lt;li&gt;Read en eServiceConfiguration &lt;/li&gt;&lt;li&gt;Read en Metadata &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Os recomiendo que creéis un &lt;strong&gt;rol específico&lt;/strong&gt; para este usuario. El usuario, además, debe tener cumplimentado el atributo internalemailaddress.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;La base de datos de Membership (eServiceMembership) tiene que tener &lt;strong&gt;permisos de lectura&lt;/strong&gt; para el usuario de identidad del pool donde se esté ejecutando el portal. En micaso este usuario es &lt;em&gt;NT Autority\Network Service&lt;/em&gt;. &lt;/p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;p&gt;Editar el &lt;strong&gt;Workflow&lt;/strong&gt; de Sign-up, que es el responsable de enviar un correo al usuario que acabamos de registrar en el portal. El email contiene un enlace a la página createuser.aspx que debe tener la base correcta, algo así como &lt;code&gt;http://emp.com/eservice/createuser.aspx?id=x &lt;/code&gt;&lt;/p&gt;&lt;h4&gt;Ampliación&lt;/h4&gt;&lt;p&gt;La forma de añadir nuevas entidades a eService es (por decirlo suavemente) un poco incómoda, ya que la lista se encuentra &lt;em&gt;hardcoded&lt;/em&gt; en el código de la página EntityList. Por otro lado, en la parte de código fuente, el proyecto que nos proporcionan no es de tipo Web Application Project, sino Web Site. Sin embargo, el modo de desplegar la consola de eService implica copiar su dll en la carpeta bin de CRMWeb. Como consecuencia, tendremos que fabricar un nuevo proyecto de tipo &lt;em&gt;Web Application Project&lt;/em&gt;, copiar las páginas y usar la opción &lt;em&gt;Convertir a Aplicación Web&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;Para crear una nueva página que dé soporte a una nueva entidad, el proceso sería el siguiente:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Añadir el nombre de la entidad a la lista de EntityList.aspx.cs &lt;/li&gt;&lt;li&gt;Crear una nueva página aspx &lt;/li&gt;&lt;li&gt;Añadir EntityEditor.ascx y configurar su EntityName &lt;/li&gt;&lt;li&gt;Si queremos que edite, rellenar EntityId &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-4611047425093713648?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/4611047425093713648/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=4611047425093713648' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/4611047425093713648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/4611047425093713648'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2009/03/extendiendo-el-eservice-accelerator.html' title='Extendiendo el eService Accelerator'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-8702960088760441401</id><published>2009-02-13T14:49:00.002+01:00</published><updated>2009-03-03T09:42:10.604+01:00</updated><title type='text'>Lanzamiento de ISV Utilities for Comparing Customizations and Transferring Configuration Data</title><content type='html'>&lt;p&gt;En este artículo de MSDN se presentan dos herramientas muy útiles para cualquiera que esté desarrollando una aplicación de negocio sobre CRM. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd442453.aspx"&gt;ISV Utilities for Comparing Customizations and Transferring Configuration Data&lt;/a&gt;&lt;/p&gt;  &lt;br /&gt;&lt;p&gt;La primera de ellas nos permite comparar dos ficheros de personalizaciones &lt;strong&gt;customizations.zip&lt;/strong&gt; extraidos de dos implementaciones CRM o de dos momentos del tiempo diferentes. Con una interfaz visual sencilla, muestra la estructura de dos ficheros y resalta las diferencias entre ellos.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd442453.aspx"&gt;&lt;img title="Comparar personalizaciones" style="border-right: 0px; border-top: 0px; display: block; float: none; margin: 15px auto 5px; border-left: 0px; border-bottom: 0px" height="237" alt="Comparar personalizaciones" src="http://i.msdn.microsoft.com/Dd442453.a7338331-120b-4f29-ab17-1c94b85e014b(en-us,MSDN.10).gif" width="407" border="0" /&gt;&lt;/a&gt;La segunda de las herramientas es útil para un escenario también muy típico. Hemos generado un paquete de instalación para nuestra solución que crea las entidades, atributos, relaciones necesarias para nuestra personalización. Algunas de estas entidades suelen contener información de configuración de nuestras extensiones, de modo que después de hacer el despliegue nos toca crear esos registros y rellenar sus valores iniciales. Una forma es importar un fichero &lt;strong&gt;csv&lt;/strong&gt; a través de la interfaz de importación de registros. Esta herramienta nos ofrece una interfaz más sencilla y nos evita tener que trabajar con Excel o pesados ficheros de texto. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd442453.aspx"&gt;&lt;img style="display: block; float: none; margin: 15px auto 0px" alt="Dd442453.0b8f0a81-1a17-4d77-9419-1cdc12427223(en-us,MSDN.10).gif" src="http://i.msdn.microsoft.com/Dd442453.0b8f0a81-1a17-4d77-9419-1cdc12427223(en-us,MSDN.10).gif" /&gt;&lt;/a&gt;Además, todo el código de estas dos herramientas está disponible, lo que nos permitirá adaptarlo a nuestras necesidades de despliegue y generación de datos iniciales.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-8702960088760441401?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/8702960088760441401/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=8702960088760441401' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/8702960088760441401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/8702960088760441401'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2009/02/lanzamiento-de-isv-utilities-for.html' title='Lanzamiento de ISV Utilities for Comparing Customizations and Transferring Configuration Data'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-4546738099678988621</id><published>2009-02-11T09:42:00.002+01:00</published><updated>2009-09-03T09:19:43.613+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo'/><title type='text'>Depurando con entidades dinámicas</title><content type='html'>&lt;p&gt;Esta vez tomo prestado el trabajo de &lt;a href="http://blogs.msdn.com/ukcrm/"&gt;Simon Hutson&lt;/a&gt;, el responsable del blog de CRM de Microsoft UK. Si habéis desarrollado utilizando la clase &lt;strong&gt;DynamicEntity&lt;/strong&gt;, en algún momento habréis tenido que poner un punto de ruptura en vuestro código e inspeccionar el contenido de una entidad. En ese momento empiezan los problemas, o mejor dicho la incomodidad, ya que una &lt;strong&gt;DynamicEntity&lt;/strong&gt; puede tener docenas de propiedades almacenadas en un array que tenemos que ir abriendo una por una hasta que encontramos la que nos interesa. Un rollo. La herramienta que proporciona Simon habilita un nuevo visualizador para el depurador de Visual Studio. Así, además de las opciones estándar (Html, Texto, XML) tendremos una adicional: &lt;strong&gt;DynamicEntity&lt;/strong&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img height="301" src="http://blogs.msdn.com/blogfiles/ukcrm/WindowsLiveWriter/CreatingADebuggerVisualizerForDynamicEnt_1459C/Using The DynamicEntity Visualizer_2.jpg" width="420" /&gt;&lt;/p&gt;  &lt;br /&gt;&lt;br /&gt;&lt;p&gt;De esta manera, vemos rápidamente todas las propiedades de la entidad, con su nombre y su valor asociado. En el artículo completo hay una descripción detallada de cómo desarrollar estos visualizadores:&lt;/p&gt; &lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://blogs.msdn.com/ukcrm/archive/2008/07/08/creating-a-debugger-visualizer-for-dynamic-entities.aspx"&gt;Microsoft Dynamics CRM UK Blog : Creating A Debugger Visualizer For Dynamic Entities&lt;/a&gt;&lt;/p&gt;  &lt;br /&gt;&lt;p&gt;Podéis descargar el proyecto de Visual Studio &lt;a href="http://blogs.msdn.com/ukcrm/attachment/8709606.ashx"&gt;aquí&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-4546738099678988621?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/4546738099678988621/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=4546738099678988621' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/4546738099678988621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/4546738099678988621'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2009/02/depurando-con-entidades-dinamicas.html' title='Depurando con entidades dinámicas'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-5490040878906301270</id><published>2009-01-23T11:43:00.001+01:00</published><updated>2009-01-23T11:44:32.745+01:00</updated><title type='text'>Utilidad MetadataDiagram de la SDK</title><content type='html'>Leyendo el blog del equipo de CRM he descubierto una herramienta que estaba ahí desde el principio y que habría sido de mucha utilidad en más de una ocasión. Más vale tarde que nunca:  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd393302.aspx"&gt;Using Metadata for Generating Entity Diagrams in Microsoft Dynamics CRM 4.0&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Esta herramienta genera diagramas de &lt;strong&gt;Visio&lt;/strong&gt; con las entidades y atributos de una instalación de CRM. No hace falta decir el tiempo que podemos ganar cuando estamos generando documentación. El aspecto que tienen nos resultará familiar: con esta herramienta ha generado el equipo de CRM todos los esquemas que hay en la documentación de la SDK.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_-OkamweXVGk/SXmfYB04G2I/AAAAAAAABOQ/cMV_0QaMc08/s1600-h/metadatadiagram%5B9%5D.gif"&gt;&lt;img title="metadatadiagram" style="border-right: 0px; border-top: 0px; display: block; float: none; margin: 10px auto 0px; border-left: 0px; border-bottom: 0px" height="393" alt="metadatadiagram" src="http://lh4.ggpht.com/_-OkamweXVGk/SXmfZx836vI/AAAAAAAABOU/DXln1aC8u00/metadatadiagram_thumb%5B7%5D.gif?imgmax=800" width="354" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-5490040878906301270?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/5490040878906301270/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=5490040878906301270' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/5490040878906301270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/5490040878906301270'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2009/01/utilidad-metadatadiagram-de-la-sdk.html' title='Utilidad MetadataDiagram de la SDK'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_-OkamweXVGk/SXmfZx836vI/AAAAAAAABOU/DXln1aC8u00/s72-c/metadatadiagram_thumb%5B7%5D.gif?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-5065418225099791376</id><published>2009-01-08T16:41:00.001+01:00</published><updated>2009-09-03T09:19:43.613+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo'/><title type='text'>Crear una interfaz WPF para CRM</title><content type='html'>Este post s&amp;#243;lo es un enlace a otro post del blog del equipo de CRM que me ha parecido interesante. Se trata de fabricar un &amp;quot;cuadro de mando&amp;quot; de CRM sobre una aplicaci&amp;#243;n WPF. Integra varias vistas de CRM para hacer m&amp;#225;s &amp;#225;gil el trabajo de un determinado rol de usuario, agrupando sus tareas m&amp;#225;s habituales. El post original, &lt;a href="http://blogs.msdn.com/crm/archive/2009/01/07/building-rich-client-dashboards-for-microsoft-dynamics-crm-with-windows-presentation-foundation.aspx"&gt;aqu&amp;#237;&lt;/a&gt;.   &lt;br /&gt;  &lt;br /&gt;&lt;img height="261" src="http://blogs.msdn.com/blogfiles/crm/WindowsLiveWriter/Micros.0andWindowsPresentationFoundation_89ED/Hoff01_2.jpg" width="368" /&gt;   &lt;br /&gt;  &lt;br /&gt;Me ha interesado ver que se puede integrar sobre un WPF un fragmento de p&amp;#225;gina web, de modo que no hace falta reinventar la rueda para todo el cuadro, sino s&amp;#243;lo para aquellas zonas en las que podemos sacar partido a WPF. Para el resto podemos usar las p&amp;#225;ginas tradicionales de CRM. En la imagen, la parte de abajo a la derecha corresponde al editor de tareas est&amp;#225;ndar de CRM, mientras que las otras zonas son controles WPF reales.   &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-5065418225099791376?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/5065418225099791376/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=5065418225099791376' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/5065418225099791376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/5065418225099791376'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2009/01/crear-una-interfaz-wpf-para-crm.html' title='Crear una interfaz WPF para CRM'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-6125761874698128710</id><published>2008-12-17T12:00:00.002+01:00</published><updated>2008-12-17T12:02:17.305+01:00</updated><title type='text'>Utilidades para e-mail en Workflows</title><content type='html'>Un requisito muy habitual - y que falta en CRM 4.0 - es la &lt;u&gt;posibilidad de a&amp;#241;adir enlaces en mensajes de correo creados por Workflows&lt;/u&gt;. El problema es que el identificador GUID del registro no est&amp;#225; disponible en el editor de campos din&amp;#225;micos del Workflow. Lo que han hecho en el blog del equipo de desarrollo de CRM es desarrollar una actividad personalizada de Workflow que fabrica un campo de texto ya formateado como hiperenlace a partir del identificador de un registro. O sea:&lt;br/&gt;&lt;br/&gt;&lt;code&gt;&amp;lt;a href=&amp;quot;{0}&amp;quot;&amp;gt;{0}&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;br/&gt;&lt;br /&gt;El art&amp;#237;culo completo aqu&amp;#237;:&lt;br/&gt;&lt;br /&gt;&lt;a title="http://blogs.msdn.com/crm/archive/2008/12/15/workflow-e-mail-utilities.aspx" href="http://blogs.msdn.com/crm/archive/2008/12/15/workflow-e-mail-utilities.aspx"&gt;http://blogs.msdn.com/crm/archive/2008/12/15/workflow-e-mail-utilities.aspx&lt;/a&gt;  &lt;p&gt;&lt;/p&gt; Adem&amp;#225;s trata otro problema que - la verdad - no me hab&amp;#237;a encontrado: cuando se copia un campo de tipo ntext (memo) en un correo, los saltos de l&amp;#237;nea desaparecen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-6125761874698128710?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/6125761874698128710/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=6125761874698128710' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/6125761874698128710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/6125761874698128710'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2008/12/utilidades-para-e-mail-en-workflows.html' title='Utilidades para e-mail en Workflows'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-6007029666195743540</id><published>2008-12-12T13:53:00.004+01:00</published><updated>2009-09-03T09:21:28.829+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Informes'/><category scheme='http://www.blogger.com/atom/ns#' term='errores'/><title type='text'>Fallan las credenciales al acceder a Reporting Services</title><content type='html'>Este post es uno de esos &lt;em&gt;para no olvidar c&amp;#243;mo c*** arregl&amp;#233; aquel error&lt;/em&gt;. Se trata de lo siguiente: est&amp;#225;s instalando CRM en una m&amp;#225;quina y tienes la base de datos en otra. Desde la m&amp;#225;quina local de SQL Server el Report Server y el Report Manager se ven sin problema ninguno. Ahora, cuando intentas acceder desde la m&amp;#225;quina de CRM, empieza a pedirte credenciales (que no deber&amp;#237;a, est&amp;#225; configurado para autenticaci&amp;#243;n integrada con AD) y finalmente te lanza un &lt;strong&gt;error 401&lt;/strong&gt;. Bueno, pues la soluci&amp;#243;n la proporcion&amp;#243; &lt;a href="http://www.eggheadcafe.com/software/aspnet/29872995/http-4011-error-on-remot.aspx" target="_blank"&gt;este mensaje&lt;/a&gt; de un tal Janos. Se abre una consola y desde C:\Inetpub\AdminScripts se escribe:&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;code&gt;cscript adsutil.vbs get w3svc/NTAuthenticationProviders&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;Si devuelve el mensaje &lt;strong&gt;The parameter &amp;quot;NTAuthenticationProviders&amp;quot; is not set at this node&lt;/strong&gt; es que vamos bien. Escribimos lo siguiente:&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;code&gt;cscript adsutil.vbs set w3svc/NTAuthenticationProviders &amp;quot;NTLM&amp;quot;&lt;/code&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;Y asunto arreglado. Me da verg&amp;#252;enza reconocerlo pero ... no sé muy bien cuál era el problema. Aparentemente, algo está mal en la metabase del IIS.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-6007029666195743540?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/6007029666195743540/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=6007029666195743540' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/6007029666195743540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/6007029666195743540'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2008/12/fallan-las-credenciales-al-acceder.html' title='Fallan las credenciales al acceder a Reporting Services'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-5002398832305925455</id><published>2008-12-02T10:03:00.005+01:00</published><updated>2009-09-03T09:20:32.964+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo'/><category scheme='http://www.blogger.com/atom/ns#' term='Funcionalidades'/><title type='text'>Aceleradores de CRM: eService</title><content type='html'>&lt;img height="100" style="padding: 4px;" alt="Aceleradores de CRM" src="http://lh6.ggpht.com/_-OkamweXVGk/STT5-Es59lI/AAAAAAAABMo/_-qBDbszzBk/crm-dynamics-logo_small%5B12%5D.png?imgmax=800" width="153" align="left" border="0" /&gt; Desde el viernes tenemos un nuevo vecino en el &lt;a href="http://www.codeplex.com/crmaccelerators" target="_blank"&gt;programa de aceleradores de CRM&lt;/a&gt;, el &lt;strong&gt;eService accelerator&lt;/strong&gt;. Se trata de un punto de partida - no una solución completa - para crear un portal de autoservicio para clientes. Desde el portal podrán manejar su perfil, crear nuevos casos, programar servicios o consultar la base de conocimiento, todo con una interfaz web sencilla y sin necesidad de ser usuario de CRM. Esto último tiene implicaciones de licencia, ya que nos lleva al &lt;em&gt;tenebroso&lt;/em&gt; terreno del licenciamiento &lt;em&gt;CRM External Connector&lt;/em&gt;. Por cierto, ¿existe este licenciamiento para la versión 4.0?&lt;br/&gt;&lt;br/&gt;Se puede descargar &lt;a href="http://www.codeplex.com/crmaccelerators/Release/ProjectReleases.aspx?ReleaseId=19956" target="_blank"&gt;aquí&lt;/a&gt; junto con un video explicativo para la instalación.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-5002398832305925455?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/5002398832305925455/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=5002398832305925455' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/5002398832305925455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/5002398832305925455'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2008/12/aceleradores-de-crm-eservice.html' title='Aceleradores de CRM: eService'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_-OkamweXVGk/STT5-Es59lI/AAAAAAAABMo/_-qBDbszzBk/s72-c/crm-dynamics-logo_small%5B12%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-3924774283978637693</id><published>2008-11-27T09:47:00.002+01:00</published><updated>2009-09-03T09:20:32.964+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo'/><category scheme='http://www.blogger.com/atom/ns#' term='Funcionalidades'/><title type='text'>Form Reporter: Generador de documentación para CRM</title><content type='html'>&lt;p&gt;Esta nueva herramienta presentada por &lt;strong&gt;Jim Daly&lt;/strong&gt; en este &lt;a href="http://blogs.msdn.com/crm/archive/2008/11/25/microsoft-dynamics-crm-4-0-form-reporter.aspx" target="_blank"&gt;post&lt;/a&gt; del blog del equipo de desarrollo de CRM puede ser de mucha utilidad para los fans de la documentaci&amp;#243;n de proyectos. El &lt;a href="http://code.msdn.microsoft.com/mscrm4formreporter" target="_blank"&gt;Microsoft CRM 4.0 Form Reporter&lt;/a&gt; es una aplicaci&amp;#243;n que permite crear un documento Word 2007 con informaci&amp;#243;n de entidades, atributos, elementos de interfaz de usuario etc. Todo (o casi todo) lo que contiene un fichero &lt;em&gt;customizations.xml&lt;/em&gt; exportado desde CRM. &lt;img style="border-right: 0px; border-top: 0px; margin: 15px 0px 10px 15px; border-left: 0px; border-bottom: 0px" height="166" alt="formreporter" src="http://lh6.ggpht.com/_-OkamweXVGk/SS5eqlb17rI/AAAAAAAABMk/1vFiG91OXn8/formreporter%5B7%5D.png?imgmax=800" width="240" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;Seguro que ahorrar&amp;#225; mucho tiempo para documentar nuestros desarrollos o para - quiz&amp;#225;s m&amp;#225;s importante - entender los de terceros. Se ha desarrollado usando transformaciones XSL y la &lt;a href="http://msdn.microsoft.com/en-us/library/bb448854(office.14).aspx" target="_blank"&gt;SDK para desarrollo de Open XML&lt;/a&gt; , as&amp;#237; que requiere .NET Framework 3.5 y Word 2007.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-3924774283978637693?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/3924774283978637693/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=3924774283978637693' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/3924774283978637693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/3924774283978637693'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2008/11/form-reporter-generador-de-documentacin.html' title='Form Reporter: Generador de documentación para CRM'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_-OkamweXVGk/SS5eqlb17rI/AAAAAAAABMk/1vFiG91OXn8/s72-c/formreporter%5B7%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-1739936431470232689</id><published>2008-09-08T12:01:00.002+02:00</published><updated>2009-09-03T09:19:43.614+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo'/><title type='text'>Integración con MOSS aprovechando DynamicEntity</title><content type='html'>Y aprovechando también que he tenido que pensar un poco acerca de las entidades dinámicas en CRM para el &lt;a href="http://www.microsoft.com/industry/publicsector/Government/csp/default.aspx" target="_blank"&gt;proyecto CSP de Microsoft&lt;/a&gt;, voy a poner mis ideas en orden. Dentro del proyecto se encuentra una integración con MOSS que incluye Forms Server y por tanto &lt;strong&gt;InfoPath&lt;/strong&gt;. Se trata de un gobierno local o ayuntamiento que quiere gestionar on-line una serie de trámites del ciudadano. En nuestra solución, cada trámite se traduce en una entidad personalizada de CRM que tiene una relación 1:1 con un Caso del módulo de servicio. Por el lado de MOSS, tenemos una serie de formularios InfoPath con los datos específicos de cada trámite. Necesitamos una manera de convertir una cosa en otra: un formulario de InfoPath en un registro de una entidad de CRM. Y aquí es donde entran la &lt;strong&gt;DynamicEntity&lt;/strong&gt; de CRM. La SDK nos da mucho juego al fabricar entidades fuertemente tipadas, pero en este caso nos ataría mucho al tipo concreto de entidad. Además, las DynamicEntities permiten ser &lt;strong&gt;serializadas&lt;/strong&gt; en XML. InfoPath también es XML, así que lo único que necesitamos es una transformación XSL para pasar de un lado al otro:&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/daniel.sabater/SMT4AQRoeCI/AAAAAAAABKU/EKANk1FrYFU/s1600-h/dynamicentities%5B6%5D.png"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="359" alt="dynamicentities" src="http://lh4.ggpht.com/daniel.sabater/SMT4BVUOZNI/AAAAAAAABKY/PcBXxxn3ks8/dynamicentities_thumb%5B4%5D.png?imgmax=800" width="442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;En el último paso, un Plug-In se encarga de rellenar los campos que falten y que InfoPath no puede conocer. En este caso, se trata del Guid del ciudadano, que no está explícitamente en el formulario de InfoPath. Una de las ventajas que permite esta aproximación es su &lt;em&gt;genericidad&lt;/em&gt;: si se añade un nuevo trámite, en principio, no habría que cambiar una sola linea de código. Sería tan sólo añadir la nueva transformación XSL. Este esquema es bastante flexible y se podría aprovechar para generar cualquier tipo de entidad.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-1739936431470232689?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/1739936431470232689/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=1739936431470232689' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/1739936431470232689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/1739936431470232689'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2008/09/integracin-con-moss-aprovechando.html' title='Integración con MOSS aprovechando DynamicEntity'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/daniel.sabater/SMT4BVUOZNI/AAAAAAAABKY/PcBXxxn3ks8/s72-c/dynamicentities_thumb%5B4%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-5245505453273561945</id><published>2008-09-01T13:52:00.002+02:00</published><updated>2009-09-03T09:19:43.614+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo'/><title type='text'>Intellisense para JavaScript de CRM</title><content type='html'>En este &lt;a href="http://www.thecrmbook.com/Video/Customization/EnableCRMJavascriptIntellisense/viewvideo.aspx"&gt;video &lt;/a&gt;del muy interesante libro &lt;a href="http://www.thecrmbook.com/Default.aspx"&gt;&lt;strong&gt;CRM as a Rapid Development Plaform&lt;/strong&gt; &lt;/a&gt;te cuentan (entre otras muchas cosas) cómo hacer el desarrollo de lado cliente para CRM un poco más amistoso. A través de la SDK de metadatos se descarga todo el conjunto de nombres de entidades y atributos y se genera un fichero JavaScript con sus definiciones.&lt;br /&gt;&lt;br /&gt;Muy ingenioso y puede ahorrar bastantes quebraderos de cabeza por un literal mal escrito.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-5245505453273561945?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/5245505453273561945/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=5245505453273561945' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/5245505453273561945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/5245505453273561945'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2008/09/intellisense-para-javascript-de-crm.html' title='Intellisense para JavaScript de CRM'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-5174279628469832539</id><published>2008-07-15T16:06:00.003+02:00</published><updated>2008-07-22T11:15:24.131+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo'/><title type='text'>CRM como plataforma de desarrollo</title><content type='html'>&lt;p&gt;Ultimamente se está oyendo hablar mucho de este tema: considerar CRM no sólo como un producto terminado, sino también como unos cimientos sobre los que construir aplicaciones de negocio de cualquier orientación. Siempre que haya clientes implicados y considerando que la capa de plataforma de CRM incluye:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Creación de entidades&lt;/li&gt;&lt;li&gt;Gestión de relaciones 1-n y n-n entre entidades&lt;/li&gt;&lt;li&gt;&lt;p&gt;Generador de Interfaz de Usuario&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Generador de consultas&lt;/p&gt;&lt;/li&gt;&lt;li&gt;Seguridad basada en roles&lt;/li&gt;&lt;li&gt;Motor de Workflow&lt;/li&gt;&lt;li&gt;&lt;p&gt;Trabajo offline&lt;/p&gt;&lt;/li&gt;&lt;li&gt;Enlace automático con correo electrónico&lt;/li&gt;&lt;li&gt;Gestión de eventos en cliente&lt;/li&gt;&lt;li&gt;Asistente para reporting&lt;/li&gt;&lt;li&gt;Importación/Exportación de datos con Excel &lt;p&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;Pues tenemos gran parte de la "fontanería" de la aplicación creada para nosotros. Hace poco participé en un evento de Microsoft en el marco de los Innovation Days sobre &lt;a href="http://blogs.msdn.com/alternativas/"&gt;Herramientas de desarrollo rápido o RAD&lt;/a&gt; de aplicaciones donde presenté este tema. &lt;p&gt;&lt;/p&gt;&lt;p&gt;Podéis descargar las PPTs de mi parte del evento &lt;a href="http://download.microsoft.com/download/3/a/1/3a156815-279a-42c3-8211-3a41f74b469c/Dynamics_CRM_4.0.zip"&gt;aquí&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Actualización &lt;/strong&gt;Otro enlace interesante: el &lt;a href="http://msdn.microsoft.com/en-us/library/cc720132.aspx"&gt;Developer Ramp up kit for Microsoft Dynamics CRM 4.0&lt;/a&gt; Contiene Powerpoints, videos y documentos con laboratorios paso a paso para aprender a desarrollar sobre CRM.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-5174279628469832539?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/5174279628469832539/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=5174279628469832539' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/5174279628469832539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/5174279628469832539'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2008/07/crm-como-plataforma-de-desarrollo.html' title='CRM como plataforma de desarrollo'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-420408584617723494</id><published>2008-05-23T09:56:00.005+02:00</published><updated>2008-05-23T10:06:42.491+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='outlook errores'/><title type='text'>Barra de botones de Outlook desaparecida</title><content type='html'>Este problema es un viejo conocido: un buen día arrancas el Outlook y la barra de botones de CRM ha desaparecido. He encontrado varios apaños, como lo que cuenta en este &lt;a href="http://www.john.bryntze.net/jbkb/index.php?title=CRM-kb2_repair_inactive_CRM_toolbar_in_Outlook"&gt;blog&lt;/a&gt; un tal &lt;strong&gt;John Bryntze&lt;/strong&gt;. Dice, en resumen, que hay que:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Rehabilitar elementos del Outlook (En &lt;strong&gt;Outlook 2003&lt;/strong&gt; ir a &lt;em&gt;Ayuda - Acerca ... - Elementos deshabilitados&lt;/em&gt;, en &lt;strong&gt;Outlook 2007&lt;/strong&gt; ir a &lt;em&gt;Ayuda - Elementos deshabilitados&lt;/em&gt;)&lt;/li&gt;&lt;li&gt;Habilitar el add-in de CRM&lt;/li&gt;&lt;li&gt;Salir de Outlook&lt;/li&gt;&lt;li&gt;Abrir regedit&lt;/li&gt;&lt;li&gt;Ir a la clave &lt;strong&gt;HKEY_CURRENT_USER\Software\Microsoft\MSCRMClient&lt;/strong&gt; &lt;/li&gt;&lt;li&gt;Borrar el contenido de la clave &lt;strong&gt;UIXmlHash&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;El contenido de &lt;strong&gt;UIXmlHash&lt;/strong&gt; se volverá a rellenar una vez se haya reiniciado Outlook&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-420408584617723494?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/420408584617723494/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=420408584617723494' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/420408584617723494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/420408584617723494'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2008/05/barra-de-botones-de-outlook.html' title='Barra de botones de Outlook desaparecida'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-1078781998564888398</id><published>2008-04-23T18:25:00.006+02:00</published><updated>2008-07-18T09:15:04.911+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net desarrollo'/><title type='text'>Probando LinqtoCRM (y Jing)</title><content type='html'>&lt;p&gt;Esto es una prueba doble: por un lado utilizo una librería para CRM que permite hacer consultas con Linq: &lt;a href="http://www.codeplex.com/LinqtoCRM"&gt;LinqtoCRM&lt;/a&gt;. Está en Codeplex y su autor está aquí: &lt;a href="http://www.itu.dk/~friism/blog/"&gt;http://www.itu.dk/~friism/blog/&lt;/a&gt; Todavía es muy, muy preliminar pero aún así es interesante. Para mi es la excusa para meterme en la jungla de Linq. Por el otro lado, estreno Jing + ScreenCast para subir vídeos de programación, a ver qué tal está la calidad del video. Como es grande para embeberlo en el blog, dejo sólo el enlace:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.screencast.com/users/DaniSabater/folders/Jing/media/c8c2bb24-1cb9-4c02-89ac-457011753674"&gt;Enlace al video&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-1078781998564888398?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/1078781998564888398/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=1078781998564888398' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/1078781998564888398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/1078781998564888398'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2008/04/probando-jing.html' title='Probando LinqtoCRM (y Jing)'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-1203514750984782099</id><published>2008-04-23T10:12:00.013+02:00</published><updated>2009-09-03T09:21:02.459+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo'/><title type='text'>Añadir vistas en el SiteMap</title><content type='html'>Un escenario que me he encontrado a menudo es el del cliente que quiere utilizar una entidad para más de un propósito. Por ejemplo: las cuentas sirven para representar tanto a clientes, proveedores o socios. Las vistas de CRM pueden servir para tener un filtrado rápido según el criterio de tipo de relación, pero aún así hay gente que preferiría que la navegación fuera más explícita, con un enlace en la navegación principal. La nueva característica de &lt;strong&gt;Copiar acceso directo &lt;/strong&gt;de CRM 4.0 nos permite este pequeño truco. Lo que haremos será utilizar un enlace a una vista como una página al mismo nivel que el resto de entidades. Digamos que fabricamos una vista &lt;strong&gt;Proveedores &lt;/strong&gt;y la publicamos.&lt;br /&gt;&lt;br /&gt;&lt;p align="left"&gt;&lt;img id="BLOGGER_PHOTO_ID_5192360503026365538" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_-OkamweXVGk/SA74XgCntGI/AAAAAAAAAsA/_TA0a3eE-N0/s320/blog01.png" border="0" /&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Ahora navegamos hasta la vista que acabamos de crear y usamos la acción &lt;strong&gt;Copiar accceso directo&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_-OkamweXVGk/SA75SwCntII/AAAAAAAAAsQ/ry3A5e071i0/s1600-h/blog02.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_-OkamweXVGk/SA75SwCntII/AAAAAAAAAsQ/ry3A5e071i0/s320/blog02.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5192361520933614722" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Exportamos el fichero de &lt;strong&gt;SiteMap &lt;/strong&gt;para incluir el nuevo enlace. Por cierto, ojo con el carácter de &lt;em&gt;ampersand&lt;/em&gt; incluido en la Url de la vista porque puede despistar al cargador de personalizaciones. En resumen: sustituid &lt;strong&gt;&amp;amp;&lt;/strong&gt; por &lt;strong&gt;&amp;amp;amp&lt;/strong&gt; o la personalización no cargará.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:courier new;"&gt;.._root/homepage.aspx?etc=1&lt;strong&gt;&amp;amp;amp;&lt;/strong&gt;viewid=%7b60..&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Aquí tenéis la muestra del &lt;em&gt;SiteMap&lt;/em&gt; con el nuevo enlace. Lo he colocado justo debajo del enlace a &lt;strong&gt;Cuentas&lt;/strong&gt;. &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;pre style="BORDER-RIGHT: #999999 1px dashed; PADDING-RIGHT: 5px; BORDER-TOP: #999999 1px dashed; PADDING-LEFT: 5px; FONT-SIZE: 12px; PADDING-BOTTOM: 5px; OVERFLOW: auto; BORDER-LEFT: #999999 1px dashed; WIDTH: 100%; COLOR: #000000; LINE-HEIGHT: 14px; PADDING-TOP: 5px; BORDER-BOTTOM: #999999 1px dashed; FONT-FAMILY: Andale Mono, Lucida Console, Monaco, fixed, monospace; BACKGROUND-COLOR: #eee"&gt;&lt;code&gt;&amp;lt;SubArea Id="nav_accts" Entity="account" DescriptionResourceId="Account_SubArea_Description" /&amp;gt;&lt;br /&gt;&amp;lt;SubArea Id="nav_proveedores"&lt;br /&gt; Url="http://10.1.4.129:5555/CRMDemo/_root/homepage.aspx?etc=1&amp;amp;amp;viewid=%7b60ACDB4C-210D-DD11-A3F2-0003FF8B31FE%7d"&amp;gt;&lt;br /&gt; &amp;lt;Titles&amp;gt;&lt;br /&gt;    &amp;lt;Title LCID="3082" Title="Proveedores" /&amp;gt;&lt;br /&gt; &amp;lt;/Titles&amp;gt;&lt;br /&gt;&amp;lt;/SubArea&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Sólo queda importar el nuevo fichero SiteMap a CRM y ya está: si hacéis Ctrl+F5 tendréis un enlace a una nueva &lt;em&gt;entidad &lt;/em&gt;en vuestro CRM.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_-OkamweXVGk/SA750QCntJI/AAAAAAAAAsY/23fl2hGZvRg/s1600-h/blog04.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:right;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_-OkamweXVGk/SA750QCntJI/AAAAAAAAAsY/23fl2hGZvRg/s320/blog04.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5192362096459232402" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-1203514750984782099?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/1203514750984782099/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=1203514750984782099' title='7 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/1203514750984782099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/1203514750984782099'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2008/04/aadir-vistas-en-el-sitemap.html' title='Añadir vistas en el SiteMap'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_-OkamweXVGk/SA74XgCntGI/AAAAAAAAAsA/_TA0a3eE-N0/s72-c/blog01.png' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-2558019566521217310</id><published>2008-02-20T09:50:00.003+01:00</published><updated>2008-02-20T10:21:24.743+01:00</updated><title type='text'>Cerrar automáticamente actividades de una campaña</title><content type='html'>Este problema ha surgido varias veces y hasta ahora no se me había ocurrido una solución satisfactoria. Cuando creamos una campaña (&lt;em&gt;express &lt;/em&gt;o no) de marketing, si usamos un canal como cartas o tareas, tenemos que tener a una persona (o varias) que vayan cerrando las actividades cerradas. Esto está bien para un telemarketing o una distribución de trabajos entre varias personas.&lt;br /&gt;&lt;br /&gt;¿Pero qué pasa si lo que estamos haciendo es un envío masivo de cartas que envía una sola persona y de una sola vez? ¿Le obligamos a irlas cerrando una por una? No existe el &lt;em&gt;Cerrar masivo&lt;/em&gt;como existe la edición masiva. Tampoco podemos lanzar un workflow sobre un conjunto de actividades. Tampoco parece buena opción ni siquiera registrar la acción, al fin y al cabo para eso tenemos la herramienta en un entorno de marketing.&lt;br /&gt;&lt;br /&gt;¿Qué se me ha ocurrido? Suena un poco chapuza: crear una regla de Workflow sobre las cartas que, cuando detecta que están asociadas a una campaña, las cierra automáticamente al cabo de un cierto tiempo. ¿Y cómo las detecta? Sólo se me ocurre poner alguna marca en la categoría, por ejemplo &lt;strong&gt;&lt;em&gt;MAILING&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_-OkamweXVGk/R7vwnIc6RQI/AAAAAAAAAfA/SYvFJsc63wI/s1600-h/blog.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_-OkamweXVGk/R7vwnIc6RQI/AAAAAAAAAfA/SYvFJsc63wI/s320/blog.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5168989552412083458" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Así quedaría una regla de este tipo. Habría que hacer lo mismo para los otros tipos de actividades que lo requieran. Y &lt;em&gt;aleccionar &lt;/em&gt;a los usuarios para que se use bien, claro.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-2558019566521217310?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/2558019566521217310/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=2558019566521217310' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/2558019566521217310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/2558019566521217310'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2008/02/cerrar-automticamente-actividades-de.html' title='Cerrar automáticamente actividades de una campaña'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_-OkamweXVGk/R7vwnIc6RQI/AAAAAAAAAfA/SYvFJsc63wI/s72-c/blog.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-3438639648266649983</id><published>2008-02-01T12:01:00.001+01:00</published><updated>2008-11-04T17:24:21.166+01:00</updated><title type='text'>Uso de ObjectDataSource contra CRM</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_-OkamweXVGk/R6dJoh47HzI/AAAAAAAAAeI/N8wFJRm_KOw/s1600-h/imagen1.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5163176458444283698" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_-OkamweXVGk/R6dJoh47HzI/AAAAAAAAAeI/N8wFJRm_KOw/s320/imagen1.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Imaginemos que queremos llegar a esto: una página ASPX que permita leer y modificar datos de CRM, por ejemplo de una cuenta de cliente. Hay mil maneras de hacerlo, sólo que esta a mi me parece especialmente elegante por el poco código que hay que añadir. Es una solución al estilo ASP.NET 2.0, así que vamos a trabajar con Visual Studio 2005 (o 2008).&lt;br /&gt;Lo primero es crear el código del componente de datos, que actuará de intermediario entre el control &lt;strong&gt;ObjectDataSource&lt;/strong&gt; y el web service de CRM. La clase se llama &lt;strong&gt;Cuenta&lt;/strong&gt; y representa la capa de lógica de negocio especializada en operaciones sobre cuentas de cliente. Por &lt;a href="http://fazibear.googlepages.com/blogger.html"&gt;cierto, ¿alguien sabe cómo colorear sintaxis (facilmente) en Blogger?&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;pre name="code" class="csharp:nogutter"&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.ComponentModel;&lt;br /&gt;using CrmNetLib.CrmSdk;&lt;br /&gt;&lt;br /&gt;namespace CrmNetLib&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt; [DataObject]&lt;br /&gt; public class Cuenta&lt;br /&gt; {&lt;br /&gt;  private CrmService crm;&lt;br /&gt;&lt;br /&gt;  public Cuenta()&lt;br /&gt;  {&lt;br /&gt;   crm = new CrmService();&lt;br /&gt;   crm.Credentials = System.Net.CredentialCache.DefaultCredentials;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  [DataObjectMethod(DataObjectMethodType.Select, true)]&lt;br /&gt;  public account Buscar(Guid id)&lt;br /&gt;  {&lt;br /&gt;   return (account)crm.Retrieve(EntityName.account.ToString(),&lt;br /&gt;   id, new AllColumns());&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  [DataObjectMethod(DataObjectMethodType.Update, true)]&lt;br /&gt;  public void Actualizar(account cuenta)&lt;br /&gt;  {&lt;br /&gt;   crm.Update(cuenta);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Fijaos en los atributos &lt;strong&gt;DataObject&lt;/strong&gt; y &lt;strong&gt;DataObjectMethod&lt;/strong&gt;. Sirven para que el asistente del ObjectDataSource que pondremos en la página reconozca el objeto como candidato a fuente de datos. Y ahora vamos a la página aspx: lo primero que hacemos es añadir un objeto ObjectDataSource configurando su fuente al &lt;em&gt;objeto comercial&lt;/em&gt; (=de lógica de negocio) &lt;strong&gt;Cuenta&lt;/strong&gt;. En mi caso lo he definido en un proyecto aparte de nombre CrmNetLib, pero podría estar en el mismo proyecto, por ejemplo dentro de la carpeta App_Code. &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_-OkamweXVGk/R6dJ1x47H0I/AAAAAAAAAeQ/ul0VF0_qvj0/s1600-h/imagen3.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5163176686077550402" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_-OkamweXVGk/R6dJ1x47H0I/AAAAAAAAAeQ/ul0VF0_qvj0/s320/imagen3.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;p&gt;En la siguiente pantalla del asistente, configuramos los métodos de búsqueda y actualización para que apunten a los métodos &lt;strong&gt;Buscar&lt;/strong&gt; y &lt;strong&gt;Actualizar &lt;/strong&gt;de nuestra clase. En un caso más completo, sólo nos faltaría mapear también los métodos de borrado e inserción.&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_-OkamweXVGk/R6dKHR47H1I/AAAAAAAAAeY/TxZcpTWE9kM/s1600-h/imagen4.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5163176986725261138" style="MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_-OkamweXVGk/R6dKHR47H1I/AAAAAAAAAeY/TxZcpTWE9kM/s320/imagen4.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_-OkamweXVGk/R6dNIx47H5I/AAAAAAAAAe4/LiXL55zSxd4/s1600-h/imagen5.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_-OkamweXVGk/R6dNIx47H5I/AAAAAAAAAe4/LiXL55zSxd4/s320/imagen5.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5163180311029948306" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;p&gt;Como el método de búsqueda tiene un parámetro (el id de la cuenta), tenemos que relacionarlo con algún valor de entrada. Escogemos el QueryString de la página, con lo que la URL de acceso tendrá el siguiente aspecto:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family:courier new;"&gt;http://www.servidor.com/aplicacion/editarcuenta.aspx?id=//GUID de la cuenta//&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_-OkamweXVGk/R6dKyB47H3I/AAAAAAAAAeo/YOxMWGQTRnQ/s1600-h/imagen6.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5163177721164668786" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_-OkamweXVGk/R6dKyB47H3I/AAAAAAAAAeo/YOxMWGQTRnQ/s320/imagen6.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Por otro lado, el método de actualización recibe un parámetro de tipo &lt;strong&gt;account &lt;/strong&gt;sacado directamente de la SDK de CRM que representa una cuenta con todos sus atributos. También podríamos usar un método que tuviera como parámetros los atributos del objeto, en este caso id, nombre, teléfono y fax.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Ahora sólo queda añadir el control &lt;strong&gt;DetailsView &lt;/strong&gt;para ver los datos de la cuenta. Una vez en la zona del diseñador, escogemos el ObjectDataSource como fuente de datos. Aparecerán todos los campos de la clase account(o sea, muchos campos(.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_-OkamweXVGk/R6dKcR47H2I/AAAAAAAAAeg/QhpQvofvf2A/s1600-h/imagen7.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5163177347502514018" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_-OkamweXVGk/R6dKcR47H2I/AAAAAAAAAeg/QhpQvofvf2A/s320/imagen7.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Para reducirlos a un número manejable, sólo tenemos que escoger la opción &lt;strong&gt;&lt;em&gt;Editar campos... &lt;/em&gt;&lt;/strong&gt;Decido quedarme con nombre, teléfono y fax. Si además habilitamos la edición del control, ya habremos terminado en un tiempo record una página de edición de cuentas.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Este es el aspecto final de la página en el diseñador de Visual Studio:&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_-OkamweXVGk/R6dLYB47H4I/AAAAAAAAAew/ZoZywUmm6F0/s1600-h/imagen8.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5163178373999697794" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_-OkamweXVGk/R6dLYB47H4I/AAAAAAAAAew/ZoZywUmm6F0/s320/imagen8.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-3438639648266649983?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/3438639648266649983/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=3438639648266649983' title='5 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/3438639648266649983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/3438639648266649983'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2008/02/uso-de-objectdatasource-contra-crm.html' title='Uso de ObjectDataSource contra CRM'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_-OkamweXVGk/R6dJoh47HzI/AAAAAAAAAeI/N8wFJRm_KOw/s72-c/imagen1.JPG' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-3961759836456969211</id><published>2007-12-24T11:09:00.000+01:00</published><updated>2007-12-24T11:25:25.007+01:00</updated><title type='text'>CRM vs. SharePoint</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_-OkamweXVGk/R2-IKRIbUBI/AAAAAAAAAWI/qbYIH8sZrg8/s1600-h/sharepointcrm.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5147482609086582802" style="FLOAT: left; MARGIN: 0px 10px 5px 0px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_-OkamweXVGk/R2-IKRIbUBI/AAAAAAAAAWI/qbYIH8sZrg8/s200/sharepointcrm.gif" border="0" /&gt;&lt;/a&gt;Aparte de parecer el título de una película estilo "Alien vs. Predator", o más que un artículo es una declaración de intenciones de las que se hacen típicamente en estas fechas. Se trata de enumerar las maneras que existen (que se me ocurren) de conectar SharePoint y CRM, de forma más genérica primero y luego con ejemplos concretos en artículos individuales (y aquí es donde empiezan las buenas intenciones).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Integración visual en CRM&lt;/strong&gt; Podemos añadir un IFRAME a un formulario de CRM que muestre una página de SharePoint. La página en cuestión podría (debería) estar libre de decoraciones estilo SharePoint para que el encaje sea más limpio. Esto se puede hacer fácilmente con SharePoint designer. Por ejemplo: para una cuenta de CRM, mostrar en su formulario una biblioteca de documentos de SharePoint con los documentos asociados al cliente. La URL de SharePoint se puede crear dinámicamente en el evento OnLoad del formulario, y debería incluir información para filtrar la biblioteca, por ejemplo el número de cliente.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;CRM List Web Part&lt;/strong&gt; Muestra una lista de entidades de CRM dentro de SharePoint (WSS o MOSS). También permite (como muchos otros web parts) filtrar detalles de otro web part. Por ejemplo: un Web Part con una lista de cuentas de CRM y otro conectado con los contactos asociados. Se puede descargar &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=bc9b3526-decf-4057-a530-91840c0d5401&amp;amp;DisplayLang=en"&gt;aquí&lt;/a&gt; y ya lo ha contado (mejor) Marco Amoedo en este &lt;a href="http://geeks.ms/blogs/marco/archive/2007/05/10/nuevo-list-web-part-de-crm-para-sharepoint-2007.aspx"&gt;post&lt;/a&gt;. Sencillo de configurar, pero con pocas funcionalidades y - en principio - no extensible, puesto que el código no está disponible.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Business Data Catalog&lt;/strong&gt; Dentro de MOSS 2007 tenemos el gran invento del BDC: una herramienta que nos permite ver datos externos a SharePoint integrados como Web Parts. A diferencia del sistema anterior, es un sistema genérico que permite conectar a cualquier base de datos, (digamos Oracle, MySQL etc.) y necesita ser configurado abundantemente a nivel SQL. Para empezar, necesitaremos una Application Definition File específica para la fuente de datos. Hay gente que ha desarrollado la apropiada para CRM, en concreto &lt;a href="http://rehmangul.wordpress.com/2007/05/08/ms-crm-and-sharepoint-2007-integration"&gt;Rehman Gul&lt;/a&gt; en este &lt;a href="http://rehmangul.files.wordpress.com/2007/05/bds-crmdb.txt"&gt;ejemplo&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Worflows/CallOuts/Plugins de CRM&lt;/strong&gt; En cualquiera de sus versiones (la más clásica de CRM 3.0 o la nueva de CRM 4.0 integrada con Windows Workflow Foundation) podemos detectar eventos de CRM que actualicen o creen información en SharePoint. En el caso de los wf de CRM 3.0, estos eventos están limitados a la creación, cambio de estado y cambio de propietario. Con los CallOuts/Plugins no tenemos esta limitación. Por ejemplo: cada vez que se crea una cuenta de cliente en CRM, podríamos lanzar un proceso que cree una biblioteca de documentos en SharePoint. Habría que desarrollar la funcionalidad utilizando la SDK de SharePoint en una dll que integrar como una acción del workflow de CRM (versión 3.0). Para la versión 4.0 habría que desarrollar una CustomActivity.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Workflows de SharePoint&lt;/strong&gt; Buenas noticias, también basados en WF. Tanto en WSS como en MOSS podemos asociar workflows a listas o bibliotecas de documentos. Las acciones elementales del workflow son actividades que pueden incluir cualquier código personalizado, incluyendo llamadas a la SDK de CRM. Por ejemplo: podríamos tener un sitio de SharePoint expuesto en Internet que permita al usuario dar de alta una solicitud de servicio en una lista especializada. El wf asociado a la lista podría crear un incidente en nuestro CRM a través de la SDK. Ventaja: la interfaz de usuario final es la propia de SharePoint. Si estamos en un sitio de "publishing" podemos darle el aspecto que queramos con sólo cambiar el diseño de la página con SharePoint designer.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Web Parts&lt;/strong&gt; La SDK de WSS permite desarrollar nuestros propios Web Parts, que ahora además están totalmente integrados en ASP.NET 2.0, así que podemos probarlos en cualquier página aspx, no sólamente en un site de SharePoint. La idea es la misma que en el punto anterior, pero más cercano a la interfaz de usuario: el Web Part llama a la SDK de CRM directamente, sin que haya un almacenamiento en SharePoint. El ejemplo: el mismo del punto anterior, pero sin lista en SharePoint. La pega: tenemos que diseñar la interfaz de usuario directamente en código (C# o VB) sin un editor visual a través de un CustomControl de ASP.NET 2.0&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Servicio Windows&lt;/strong&gt; Esta es la versión asíncrona de algunas de las opciones que hemos visto. La idea es tener relacionados una entidad de CRM (digamos Artículos de la KB) con una lista/biblioteca de SharePoint. Un servicio periódico utlizaría ambas SDKs para sincronizar los elementos concordantes. Habría que añadir una columna a la lista con el GUID de CRM y un campo en la entidad de CRM con el identificador de SharePoint para hacerlo posible.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-3961759836456969211?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/3961759836456969211/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=3961759836456969211' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/3961759836456969211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/3961759836456969211'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2007/12/crm-vs-sharepoint.html' title='CRM vs. SharePoint'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_-OkamweXVGk/R2-IKRIbUBI/AAAAAAAAAWI/qbYIH8sZrg8/s72-c/sharepointcrm.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-8554529981252544975</id><published>2007-12-15T13:21:00.000+01:00</published><updated>2007-12-15T16:39:54.130+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Migración'/><title type='text'>Mi primer Redeployment/Reimplementación de CRM 3.0</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_-OkamweXVGk/R2PIkRIbT8I/AAAAAAAAAUw/vegjXJK3Swo/s1600-h/redeployment.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5144175724786831298" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_-OkamweXVGk/R2PIkRIbT8I/AAAAAAAAAUw/vegjXJK3Swo/s200/redeployment.bmp" border="0" /&gt;&lt;/a&gt; Suena como un anuncio de colonia, ya lo sé. El caso es que me he encontrado con algunos problemillas (qué sorpresa) y aquí van, para que no se olvide. En líneas generales, el proceso que se explica en la carpeta RedeploymentTool es correcto. Sólo añadir que:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;El backup de la base de datos original no debería incluir los usuarios (SQLAccessGroup y demás) que crea la instalación de CRM. Estarán basados en el directorio activo antiguo. Aunque se vaya a instalar sobre el mismo directorio activo, no conviene que estén, pues la instalación intentará volver a crearlos y dará un error, poco explicativo, por cierto de tipo &lt;strong&gt;GrantDatabaseAccessAction&lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;Puede que dé un error &lt;strong&gt;AddLicenseAction&lt;/strong&gt;. Se puede omitir, como recomienda Matt Parks &lt;a href="http://www.microsoft.com/communities/newsgroups/list/en-us/default.aspx?dg=microsoft.public.crm.deployment&amp;amp;tid=23587330-145b-421a-b354-f6ee6efc4804&amp;amp;p=1"&gt;aquí&lt;/a&gt;, pero también se puede entrar a la base de datos, tabla Licenses, y cambiar (por ejemplo) una letra de la clave de activación. El programa de instalación machacará esta tabla, en cualquier caso.&lt;/li&gt;&lt;/ul&gt;Por lo demás, todo fue bien, aunque me sorprendió no encontrar demasiada información en la web sobre Redeployment. Es una herramienta fundamental para fabricar entornos de prueba.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-8554529981252544975?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/8554529981252544975/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=8554529981252544975' title='6 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/8554529981252544975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/8554529981252544975'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2007/12/mi-primer-redeploymentreimplementacin.html' title='Mi primer Redeployment/Reimplementación de CRM 3.0'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_-OkamweXVGk/R2PIkRIbT8I/AAAAAAAAAUw/vegjXJK3Swo/s72-c/redeployment.bmp' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-6038073865896539984</id><published>2007-12-14T08:46:00.000+01:00</published><updated>2007-12-15T16:42:02.422+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Correo electrónico'/><category scheme='http://www.blogger.com/atom/ns#' term='Funcionalidades'/><title type='text'>Plantillas de correo y "slugs"</title><content type='html'>Aviso que esta entrada es de las de "no te olvides de...". Se trata de las plantillas de correo electrónico, una herramienta muy potente de CRM que, sin embargo, tiene sus limitaciones. En principio podemos copiar cualquier HTML a nuestra plantilla con un copiar y pegar. Todo va bien hasta que intentas copiar estilos que hayan sido definidos en la cabecera. Por ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&amp;lt;style type="text/css"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;H1 {border-width:1;border:solid;text-align:center}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&amp;lt;/style&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;La primera en la frente: el "copiar y pegar" tan sólo copia la parte de BODY, no la de HEAD. Así que tendremos que utilizar el estilo directamente en cada etiqueta:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&amp;lt;h1 style="border-width:1;border:solid;text-align:center"&amp;gt;Titulo&amp;lt;/h1&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Vamos con otra: los &lt;strong&gt;slugs&lt;/strong&gt;. Los slugs son cadenas que permiten introducir campos de la entidad en el texto de la plantilla. Por ejemplo, para insertar el nombre de un contacto, podemos poner&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Estimado {!contact:firstname;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Un cliente pensó (con razón) que sería interesante poner un enlace en HTML a una aplicación web en la plantilla. Algo como&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&amp;lt;a href='http://www.emp.com/registro.aspx?id={!account:accountid;}&amp;gt;Registro online&amp;lt;/a&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Como véis, hemos metido un slug dentro de una etiqueta de código HTML. Además, hemos escogido el campo accountid que es un GUID que en la interficie de usuario está oculto. ¿Funciona esto? Pues sí y no. Para empezar, &lt;strong&gt;no creo que esté soportado&lt;/strong&gt;. De hecho, el editor de HTML de la plantilla da errores a veces imprevisibles. Lo que he aprendido (a base de golpes) es que, por ejemplo, si en lugar de poner &lt;strong&gt;comillas simples&lt;/strong&gt; (como en el ejemplo anterior) ponemos &lt;strong&gt;comillas dobles&lt;/strong&gt; el editor falla y no podemos guardar la plantilla. Es sólo un ejemplo de los problemas que puede dar. Pese a todo, merece la pena echarle un vistazo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-6038073865896539984?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/6038073865896539984/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=6038073865896539984' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/6038073865896539984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/6038073865896539984'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2007/12/plantillas-de-correo-y-slugs.html' title='Plantillas de correo y &quot;slugs&quot;'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-3676962442665259167</id><published>2007-10-29T14:56:00.000+01:00</published><updated>2007-10-29T15:09:02.990+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Informes'/><title type='text'>Prefiltrado en infomes</title><content type='html'>Aquí va una pequeña advertencia y recordatorio - sobre todo para mi mismo - acerca del prefiltrado de informes en CRM. Esta característica es muy, muy útil, ya que te permite reutilizar un mismo informe de muchas maneras, tan sólo cambiando el filtrado. Este prefiltrado se gestiona desde CRM - no desde el diseño del informe - a través de la interfaz habitual de búsqueda avanzada. De esta forma, un informe de &lt;em&gt;Incidentes cerrados la última semana&lt;/em&gt; se puede convertir en &lt;em&gt;Incidentes cerrados para clientes con más de 500 empleados el último año&lt;/em&gt; o cualquier otra cosa que nos permita hacer la búsqueda avanzada.&lt;br /&gt;&lt;br /&gt;En principio lo unico que hay que hacer (cito el MOC de personalización) es ponerle a las entidades que queramos prefiltrar un alias que comience por &lt;strong&gt;CRMAF_ &lt;/strong&gt;. En el siguiente ejemplo, he escogido como alias &lt;strong&gt;CRMAF_FI &lt;/strong&gt;para representar los casos, o sea la vista &lt;strong&gt;FilteredIncident&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;SELECT CRMAF_FI.ticketnumber, CRMAF_FI.customeridname&lt;br /&gt;FROM FilteredIncident AS CRMAF_FI&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Este informe permitirá prefiltrar por atributos del caso. Lo podemos complicar un poco más añadiendo la tabla de cuentas:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;SELECT CRMAF_FI.ticketnumber, CRMAF_FA.name&lt;br /&gt;FROM FilteredIncident AS CRMAF_FI&lt;br /&gt;INNER JOIN FilteredAccountt AS CRMAF_FA&lt;br /&gt;ON FilteredIncident.customerid = FilteredAccount.accountid&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Esto nos permitirá prefiltrar por caso y/o cuenta. Bueno, pues aquí viene la advertencia: el editor de informes integrado en Visual Studio añade delante de cada vista o tabla un &lt;strong&gt;dbo.&lt;/strong&gt; que hace que deje de funcionar el prefiltrado. Por ahora, se lo tengo que quitar a mano con un Reemplazar, porque no he encontrado la opción para evitar este comportamiento.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-3676962442665259167?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/3676962442665259167/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=3676962442665259167' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/3676962442665259167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/3676962442665259167'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2007/10/prefiltrado-en-infomes.html' title='Prefiltrado en infomes'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-7927375952608266835</id><published>2007-10-25T11:12:00.000+02:00</published><updated>2007-10-25T11:21:44.935+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo'/><title type='text'>Crear un contrato por código</title><content type='html'>Admitámoslo, crear un contrato en CRM es una pesadez. Al menos eso es lo que dicen algunos de los usuarios del módulo de servicio que conozco. Hay que seleccionar el cliente, crear el contrato, establecer la plantilla de contrato, fechas de inicio y finalización (cuatro en total), las direcciones (dos), añadir la línea de contrato, volver a poner las fechas de inicio y finalización, establecer el precio...&lt;br /&gt;&lt;br /&gt;Bueno, pues todo esto es lo que hace este tocho código que véis aquí debajo. No es perfecto, pero puede ahorrar algo de tecleo.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;public static Guid CrearContrato(&lt;br /&gt; Guid idCuenta,&lt;br /&gt; Guid idPlantillaContrato,&lt;br /&gt; int numeroMinutos,&lt;br /&gt; int importe)&lt;br /&gt;{&lt;br /&gt; &lt;strong&gt; // Buscar los datos del cliente&lt;/strong&gt;&lt;br /&gt;  ColumnSet cs = new ColumnSet();&lt;br /&gt;  cs.Attributes = new string[] { "name", "address1_addressid" };&lt;br /&gt;  account cuenta = &lt;br /&gt;   crm.Retrieve(EntityName.account.ToString(), idCuenta, cs) as account;&lt;br /&gt;  &lt;br /&gt;&lt;strong&gt;  // Buscar los datos de la plantilla&lt;/strong&gt;&lt;br /&gt;  contracttemplate plantilla =&lt;br /&gt;   crm.Retrieve(EntityName.contracttemplate.ToString(), idPlantilla,&lt;br /&gt;   new AllColumns());&lt;br /&gt;  &lt;br /&gt;&lt;strong&gt;  // Crear un título para el contrato&lt;/strong&gt;&lt;br /&gt;  string tituloContrato = String.Format(&lt;br /&gt;   "{0} - {1} {2} min ({3:MM/yy})",&lt;br /&gt;   cuenta.name, plantilla.name, numeroMinutos, DateTime.Now);&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;  // Establecer fechas (contrato de 10 años de duración)&lt;/strong&gt;&lt;br /&gt;  string fechaInicio = &lt;br /&gt;   DateTime.Now.ToString("yyyy/M/ddT00:00:00");&lt;br /&gt;  string fechaFin = &lt;br /&gt;   DateTime.Now.AddYears(10).ToString("yyyy/M/ddT00:00:00");&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;  // Crear el contrato&lt;/strong&gt;&lt;br /&gt;  contract contrato = new contract();&lt;br /&gt;  contrato.contracttemplateid = new Lookup();&lt;br /&gt;  contrato.contracttemplateid.Value = idPlantillaContrato;&lt;br /&gt;  contrato.customerid = new Customer();&lt;br /&gt;  contrato.customerid.Value = idCuenta;&lt;br /&gt;  contrato.customerid.type = EntityName.account.ToString();&lt;br /&gt;  contrato.billingcustomerid = contrato.customerid;&lt;br /&gt;  contrato.activeon = new CrmDateTime();&lt;br /&gt;  contrato.activeon.Value = fechaInicio;&lt;br /&gt;  contrato.expireson = new CrmDateTime();&lt;br /&gt;  contrato.expireson.Value = fechaFin;&lt;br /&gt;  contrato.billingstarton = new CrmDateTime();&lt;br /&gt;  contrato.billingstarton.Value = fechaInicio;&lt;br /&gt;  contrato.billingendon = new CrmDateTime();&lt;br /&gt;  contrato.billingendon.Value = fechaFin;&lt;br /&gt;  contrato.serviceaddress = new Lookup();&lt;br /&gt;  contrato.serviceaddress.Value = cuenta.address1_addressid.Value;&lt;br /&gt;  contrato.billtoaddress = new Lookup();&lt;br /&gt;  contrato.billtoaddress.Value = cuenta.address1_addressid.Value;&lt;br /&gt;  contrato.title = tituloContrato;&lt;br /&gt;  Guid idContrato = crm.Create(contrato);&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;  // Crear la línea de detalle del contrato&lt;/strong&gt;&lt;br /&gt;  contractdetail linea = new contractdetail();&lt;br /&gt;  linea.title = "Linea " + tituloContrato;&lt;br /&gt;  linea.contractid = new Lookup();&lt;br /&gt;  linea.contractid.Value = idContrato;&lt;br /&gt;  linea.activeon = new CrmDateTime();&lt;br /&gt;  linea.activeon.Value = fechaInicio;&lt;br /&gt;  linea.expireson = new CrmDateTime();&lt;br /&gt;  linea.expireson.Value = fechaFin;&lt;br /&gt;  linea.customerid = new Customer();&lt;br /&gt;  linea.customerid.type = EntityName.account.ToString();&lt;br /&gt;  linea.customerid.Value = idCuenta;&lt;br /&gt;  linea.totalallotments = new CrmNumber();&lt;br /&gt;  linea.totalallotments.Value = numeroMinutos;&lt;br /&gt;  linea.price = new CrmMoney();&lt;br /&gt;  linea.price.Value = importe;&lt;br /&gt;  Guid idLinea = crm.Create(linea);&lt;br /&gt;&lt;br /&gt;  return idContrato;  &lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-7927375952608266835?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/7927375952608266835/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=7927375952608266835' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/7927375952608266835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/7927375952608266835'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2007/10/crear-un-contrato-por-cdigo.html' title='Crear un contrato por código'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-8832075753195362216</id><published>2007-10-04T09:15:00.000+02:00</published><updated>2007-12-15T16:37:12.399+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net desarrollo'/><title type='text'>Accediendo a CRM con ASP.NET 2.0</title><content type='html'>&lt;p&gt;Se puede (?) ver aquí debajo mi primera prueba de video blogger sobre programación.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="640" height="512" class="BLOG_video_class" id="BLOG_video-7eb157f27cde52d6" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v4.nonxt3.googlevideo.com/videoplayback?id%3D7eb157f27cde52d6%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330380492%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D51DD7B1C4D50FDE5DABB2517E1A0BFBBB6730242.5168798F9057D5C483AAAABD09E0536E7FA13CC8%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D7eb157f27cde52d6%26offsetms%3D5000%26itag%3Dw160%26sigh%3DvD2WXPk9o32zZOsVlwdjUQO-iUg&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="640" height="512" bgcolor="#FFFFFF"flashvars="flvurl=http://v4.nonxt3.googlevideo.com/videoplayback?id%3D7eb157f27cde52d6%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330380492%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D51DD7B1C4D50FDE5DABB2517E1A0BFBBB6730242.5168798F9057D5C483AAAABD09E0536E7FA13CC8%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D7eb157f27cde52d6%26offsetms%3D5000%26itag%3Dw160%26sigh%3DvD2WXPk9o32zZOsVlwdjUQO-iUg&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;Se trata de llamar a los web services de CRM a través de un &lt;strong&gt;ObjectDataSource&lt;/strong&gt;, que permite encapsular los comandos &lt;strong&gt;SELECT&lt;/strong&gt;, &lt;strong&gt;UPDATE&lt;/strong&gt;, &lt;strong&gt;INSERT &lt;/strong&gt;y &lt;strong&gt;DELETE &lt;/strong&gt;típicos en un objeto de lógica de negocio. Para el caso, se han mapeado a los métodos &lt;em&gt;Retrieve, Update, Create&lt;/em&gt; y &lt;em&gt;Delete &lt;/em&gt;del &lt;strong&gt;CrmService&lt;/strong&gt;. Luego se muestran los resultados con DataBinding a un control DetailsView, que permite ver todos los campos de un registro.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-8832075753195362216?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=7eb157f27cde52d6&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/8832075753195362216/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=8832075753195362216' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/8832075753195362216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/8832075753195362216'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2007/10/accediendo-crm-con-aspnet-20.html' title='Accediendo a CRM con ASP.NET 2.0'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-4730120880926726328</id><published>2007-07-23T17:41:00.000+02:00</published><updated>2007-07-23T17:45:29.101+02:00</updated><title type='text'>Llamar a web services de CRM desde JavaScript</title><content type='html'>En &lt;a href="http://groups.google.com/group/microsoft.public.es.crm/browse_thread/thread/41dae61f9da7ce2a"&gt;este thread &lt;/a&gt;de las news de CRM en español firmado por Nuria he encontrado un enlace a un blog donde se cuenta una alternativa cómoda para llamar a los web services de CRM desde JavaScript en cliente. En concreto, se trata de cómo ocultar/mostrar campos de un formulario en función de los roles a los que pertenece el usuario.&lt;br /&gt;&lt;br /&gt;La entrada de blog es de Ronald Lemmen y se encuentra &lt;a href="http://ronaldlemmen.blogspot.com/2006_05_01_ronaldlemmen_archive.html"&gt;aquí&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Muy chulo (¡pero ojo, no soportado!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-4730120880926726328?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/4730120880926726328/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=4730120880926726328' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/4730120880926726328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/4730120880926726328'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2007/07/llamar-web-services-de-crm-desde.html' title='Llamar a web services de CRM desde JavaScript'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-1897413562307307561</id><published>2007-05-25T12:21:00.000+02:00</published><updated>2007-05-25T14:03:34.111+02:00</updated><title type='text'>Autonumeración "a la carta" en CRM</title><content type='html'>&lt;p&gt;Todos hemos visto cómo Microsoft CRM genera códigos automáticos para unos pocos tipos de registros: Contratos, Ofertas, Pedidos, Facturas y artículos de la Knowledge Base. ¿Qué podemos hacer si necesitamos que, además de estas entidades, alguna otra se &lt;em&gt;autonumere&lt;/em&gt; también? Pues recurrir a la personalización del formulario correspondiente haciendo que llame a un pequeño servicio que programaremos en el servidor.&lt;/o&gt;&lt;br /&gt;&lt;p&gt;Empezaremos por programar el servicio de autonumeración. Abrimos Visual Studio y generamos un proyecto web sobre la misma carpeta en la que tenemos el servidor de CRM. En este caso, la he llamado &lt;strong&gt;autonum&lt;/strong&gt;.&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_-OkamweXVGk/Rla6-yym8QI/AAAAAAAAAI0/vP19FglNL0c/s1600-h/foto1.gif"&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5068444018600767746" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_-OkamweXVGk/Rla6-yym8QI/AAAAAAAAAI0/vP19FglNL0c/s400/foto1.gif" align="baseline" border="0" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;Para que nuestro proyecto web conecte con el servidor de CRM, sólo tenemos que añadir una referencia Web a su Web service, que como sabéis está en &lt;em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://maquina:puerto/MSCRMServices/2006/crmservice.asmx"&gt;http://maquina:puerto/MSCRMServices/2006/crmservice.asmx&lt;/a&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Le damos un nombre apropiado a la referencia, por ejemplo &lt;strong&gt;CrmSdk&lt;/strong&gt;.&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_-OkamweXVGk/RlbAFiym8TI/AAAAAAAAAJM/oLLxhZ32a1I/s1600-h/foto2.gif"&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5068449632123023666" style="CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_-OkamweXVGk/RlbAFiym8TI/AAAAAAAAAJM/oLLxhZ32a1I/s400/foto2.gif" align="baseline" border="0" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;Ahora, creamos un nuevo &lt;em&gt;WebForm&lt;/em&gt; y le damos el nombre &lt;strong&gt;default.aspx &lt;/strong&gt;Esta será la página que nos proporcionará los números correlativos para nuestra entidad. Aquí tenéis el código:&lt;/p&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;void Page_Load(object sender, System.EventArgs e){&lt;br /&gt; string entidad = Request["e"];&lt;br /&gt; string campo = Request["c"];&lt;br /&gt; string prefijo = Request["p"];&lt;br /&gt; string numCars = Request["n"];&lt;br /&gt; string formato = "{0}{1:D" + numCars + "}"; &lt;br /&gt; string anterior = UltimoCodigo(entidad, campo);&lt;br /&gt; string parteNumerica = anterior.Substring(prefijo.Length);&lt;br /&gt; int num = 1 + Int32.Parse(parteNumerica);&lt;br /&gt; Response.Write(String.Format(formato, prefijo, num));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;string UltimoCodigo(string entidad, string campo) {&lt;br /&gt; string fetch = @"&amp;lt;fetch count='1' mapping='logical'&amp;gt;&lt;br /&gt; &amp;lt;entity name='{0}'&amp;gt;&lt;br /&gt; &amp;lt;order attribute='createdon' descending='true'/&amp;gt;&lt;br /&gt; &amp;lt;attribute name='{1}'/&amp;gt;&lt;br /&gt; &amp;lt;/entity&amp;gt;&lt;br /&gt; &amp;lt;/fetch&amp;gt;";&lt;br /&gt; fetch = String.Format(fetch, entidad, campo);&lt;br /&gt; CrmService crm = new CrmService();&lt;br /&gt; crm.Credentials = System.Net.CredentialCache.DefaultCredentials;&lt;br /&gt; string res = crm.Fetch(fetch);&lt;br /&gt; XmlDocument dom = new XmlDocument();&lt;br /&gt; dom.LoadXml(res);&lt;br /&gt; XmlNode nodoCuenta = dom.SelectSingleNode("//" + campo);&lt;br /&gt; if (nodoCuenta != null)&lt;br /&gt;  return nodoCuenta.FirstChild.Value;&lt;br /&gt; else&lt;br /&gt;  return "?";&lt;br /&gt;}&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;Como véis, lo único que hace es lanzar una consulta &lt;em&gt;FetchXml&lt;/em&gt; que busca la última entidad creada (ordenando por el campo createdon) y extrae su código, que puede ser cualquier atributo que escojamos. En el ejemplo, la entidad es &lt;strong&gt;account&lt;/strong&gt; y el campo &lt;strong&gt;accountnumber&lt;/strong&gt;. &lt;p&gt;Ahora tenemos que personalizar el evento &lt;em&gt;OnLoad&lt;/em&gt; de la entidad para que, al cargarse un nuevo formulario, se conecte a nuestra página en el servidor y rellene su valor en el campo que hayamos escogido. Vamos a Configuración - Personalización y escogemos la entidad &lt;strong&gt;Cuenta&lt;/strong&gt;. Luego, escogemos su formulario y abrimos sus propiedades:&lt;/p&gt;&lt;a href="http://4.bp.blogspot.com/_-OkamweXVGk/Rla9zSym8SI/AAAAAAAAAJE/3b4J6fuiGME/s1600-h/foto3.gif"&gt;&lt;p&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5068447119567155490" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_-OkamweXVGk/Rla9zSym8SI/AAAAAAAAAJE/3b4J6fuiGME/s400/foto3.gif" align="baseline" border="0" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;El código Javascript utiliza una conexión &lt;em&gt;al estilo AJAX&lt;/em&gt; con el objeto &lt;strong&gt;XmlHttp&lt;/strong&gt;. Como la llamada es asíncrona, no bloqueará el formulario para la introducción de otros datos. Aquí tenéis el código:&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;if (crmForm.FormType != 1)&lt;br /&gt;return;&lt;br /&gt;var entidad = "account";&lt;br /&gt;var campo = "accountnumber";&lt;br /&gt;var prefijo = "A-";&lt;br /&gt;var numCars = 4;&lt;br /&gt;var xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");&lt;br /&gt;var params = "?e=" + entidad +"&amp;c=" + campo + "&amp;amp;p=" + prefijo + "&amp;n=" + numCars;&lt;br /&gt;&lt;br /&gt;xmlHttp.open("GET", "/autonum" + params, true);&lt;br /&gt;xmlHttp.setRequestHeader('Content-Type', 'text/xml');&lt;br /&gt;xmlHttp.send('');&lt;br /&gt;&lt;br /&gt;xmlHttp.onreadystatechange=function() {&lt;br /&gt;if(xmlHttp.readyState == 4 &amp;&amp;amp; xmlHttp.status == 200)&lt;br /&gt;{&lt;br /&gt;var objDoc = xmlHttp.responseText;&lt;br /&gt;if( xmlHttp.responseText.length &gt; 0 )&lt;br /&gt;crmForm.accountnumber.DataValue = xmlHttp.responseText;&lt;br /&gt;}&lt;br /&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;A continuación, publicamos las personalizaciones y nos vamos a la lista de cuentas.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_-OkamweXVGk/RlbC3Cym8UI/AAAAAAAAAJU/pMmldrBPeHw/s1600-h/foto4.gif"&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5068452681549803842" alt="" src="http://3.bp.blogspot.com/_-OkamweXVGk/RlbC3Cym8UI/AAAAAAAAAJU/pMmldrBPeHw/s400/foto4.gif" align="baseline" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La última cuenta cread tiene el código &lt;strong&gt;A-0126&lt;/strong&gt;. Hemos configurado los parámetros de la llamada para que considere el prefijo &lt;strong&gt;A-&lt;/strong&gt; y utilice 4 dígitos en el código. Cuando le damos al botón &lt;i&gt;Nuevo&lt;/i&gt; ...&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_-OkamweXVGk/RlbDpyym8VI/AAAAAAAAAJc/1ny8rAD0Yes/s1600-h/foto5.gif"&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5068453553428164946" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_-OkamweXVGk/RlbDpyym8VI/AAAAAAAAAJc/1ny8rAD0Yes/s400/foto5.gif" align="baseline" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Aparece la ventana de creación de nuevas cuentas, pero esta vez con el siguiente número de cuenta rellenado automáticamente. ¡Conseguido!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-1897413562307307561?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/1897413562307307561/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=1897413562307307561' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/1897413562307307561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/1897413562307307561'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2007/05/autonumeracin-la-carta-en-crm.html' title='Autonumeración &quot;a la carta&quot; en CRM'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_-OkamweXVGk/Rla6-yym8QI/AAAAAAAAAI0/vP19FglNL0c/s72-c/foto1.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-4199787698105511786</id><published>2007-05-18T11:06:00.000+02:00</published><updated>2007-05-18T11:11:35.992+02:00</updated><title type='text'>Cambiar la vista asociada por defecto</title><content type='html'>Os redirijo al blog de un colega que ha traducido y adaptado un artículo de &lt;a href="http://www.stunnware.com"&gt;&lt;strong&gt;stunnware&lt;/strong&gt; &lt;/a&gt;donde se explica cómo cambiar la vista asociada por defecto de cualquier entidad de CRM. Por ejemplo, que muestre &lt;em&gt;todas &lt;/em&gt;las actividades del historial de un cliente en lugar de sólo las de los últimos 30 días.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Inglés (Stunnware):&lt;/strong&gt; &lt;a href="http://www.stunnware.com/crm2/topic.aspx?id=JS11"&gt;http://www.stunnware.com/crm2/topic.aspx?id=JS11&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Castellano (Jordi Bilbao):&lt;/strong&gt; &lt;a href="http://bloqjb.blogspot.com/2007/04/cambiar-la-vista-por-defecto-crm-30.html"&gt;http://bloqjb.blogspot.com/2007/04/cambiar-la-vista-por-defecto-crm-30.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Es una personalización no soportada, ojo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-4199787698105511786?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/4199787698105511786/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=4199787698105511786' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/4199787698105511786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/4199787698105511786'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2007/05/cambiar-la-vista-asociada-por-defecto.html' title='Cambiar la vista asociada por defecto'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-6021824275080607154</id><published>2007-04-23T09:26:00.000+02:00</published><updated>2007-04-23T09:28:24.600+02:00</updated><title type='text'>Buscador fuentes CRM y gadget</title><content type='html'>He encontrado esta aplicación que te permite lanzar búsquedas sobre CRM desde el Internet Explorer 7, como una fuente más de información. También incluye un gadget de Vista para lanzar la búsqueda desde el escritorio. Muy chulo.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/joris_kalz/pages/Vista-Microsoft-CRM-Search-Gadget.aspx"&gt;http://blogs.msdn.com/joris_kalz/pages/Vista-Microsoft-CRM-Search-Gadget.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-6021824275080607154?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/6021824275080607154/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=6021824275080607154' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/6021824275080607154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/6021824275080607154'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2007/04/buscador-fuentes-crm-y-gadget.html' title='Buscador fuentes CRM y gadget'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-2453535233945148041</id><published>2007-04-11T11:14:00.000+02:00</published><updated>2007-12-15T16:42:02.422+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Correo electrónico'/><category scheme='http://www.blogger.com/atom/ns#' term='Instalación Exchange'/><title type='text'>Cambiar la configuración de correo</title><content type='html'>Tanto entrante como saliente, si después de instalar CRM necesitamos por el motivo que sea cambiar el servidor de Exchange.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/906471/"&gt;http://support.microsoft.com/kb/906471/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Encontrado en la KB de Microsoft.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-2453535233945148041?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/2453535233945148041/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=2453535233945148041' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/2453535233945148041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/2453535233945148041'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2007/04/cambiar-la-configuracin-de-correo.html' title='Cambiar la configuración de correo'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-8499990142543000321</id><published>2007-04-10T17:36:00.000+02:00</published><updated>2007-04-10T17:52:08.385+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Marketing'/><title type='text'>Campañas de marketing de correo electrónico</title><content type='html'>Aquí van un par de trucos del &lt;em&gt;lado oscuro&lt;/em&gt; de CRM: el módulo de marketing. Cuando tratamos de distribuir una actividad de campaña de marketing basada en el canal e-mail, podríamos esperar que CRM enviara los correos inmediatamente, ¿no? Pues no. En su lugar, lo que hace es crear actividades de correo electrónico que quedan abiertas y pendientes de enviar. Como no existe el botón &lt;strong&gt;Enviar&lt;/strong&gt; en plan &lt;em&gt;masivo&lt;/em&gt;, no queda más remedio que ir abriendo y enviando los correos uno por uno, lo que no parece ser de recibo.&lt;br /&gt;&lt;br /&gt;Visto el problema, y a partir del Rollup 1 de CRM, se puede cambiar una clave en el registro que modifica este comportamiento. Si creamos una clave de tipo &lt;span style="font-family:courier new;"&gt;DWORD&lt;/span&gt; en la dirección&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;HKLM\Microsoft\MSCRM\CampaignSendEmail&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;y le ponemos el valor &lt;strong&gt;1&lt;/strong&gt;, el resultado de distribuir la actividad será el &lt;strong&gt;envío &lt;/strong&gt;directo de los correos. En principio, y para unos pocos destinatarios, funciona. ¿Por qué esta precaución? He visto en este artículo de las &lt;a href="http://groups.google.es/group/microsoft.public.crm/browse_thread/thread/67eac0369451df7e/f582d55775f372b3?lnk=st&amp;q=campaignsendemail&amp;amp;rnum=3&amp;hl=es#f582d55775f372b3"&gt;news&lt;/a&gt; que hay gente a la que le ha fallado de forma aleatoria, presuntamente por incluir un enlace mailto: en el cuerpo del mensaje.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-8499990142543000321?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/8499990142543000321/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=8499990142543000321' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/8499990142543000321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/8499990142543000321'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2007/04/campaas-de-marketing-de-correo.html' title='Campañas de marketing de correo electrónico'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-7341997727554408558</id><published>2007-04-04T09:31:00.000+02:00</published><updated>2007-04-10T17:53:16.324+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Servicio'/><title type='text'>Luchando contra las Actividades de Servicio</title><content type='html'>Luchando contra una pequeña extensión de CRM que incluye funcionalidades con la parte de programación de actividades de servicio me he encontrado con los siguientes dos problemas, que muestro aquí para no olvidar.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Problema al copiar una entidad que incluya el objeto &lt;span style="font-family:courier new;"&gt;activityparty&lt;/span&gt;&lt;br /&gt;Los objetos &lt;span style="font-family:courier new;"&gt;activityparty&lt;/span&gt; representan los participantes en una cita o en una actividad de servicio. En el caso de la actividad de servicio, pueden estar tanto entre los clientes (atributo &lt;span style="font-family:courier new;"&gt;customers&lt;/span&gt;) o en los recursos (atributo &lt;span style="font-family:courier new;"&gt;resources&lt;/span&gt;). Bueno, pues si los copiamos de unos previamente existentes, obtendremos un error SOAP &lt;em&gt;SQL integrity violation&lt;/em&gt; que no ayuda mucho. Bien, pues el único problema es que hay que crear &lt;em&gt;Guids&lt;/em&gt; nuevos para cada &lt;span style="font-family:courier new;"&gt;activityparty&lt;/span&gt;. Se soluciona con un simple&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;foreach (activityparty ap in actividad.resources)&lt;br /&gt;  ap.activitypartyid = Guid.NewGuid();&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Gracias a &lt;strong&gt;David Jennaway&lt;/strong&gt; en las &lt;a href="http://groups.google.es/group/microsoft.public.crm.developer/browse_thread/thread/c2a71ced87e106b5/5b173cb9f9ac37ad?lnk=gst&amp;q=How+to+set+ServiceAppointment.Resources+programmatically%3F%3F%3F+&amp;amp;rnum=1&amp;hl=es#5b173cb9f9ac37ad"&gt;news&lt;/a&gt; de crm.developer&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Problema con el formato de las fechas en &lt;span style="font-family:courier new;"&gt;CrmDateTime&lt;/span&gt;&lt;br /&gt;Independientemente de lo que diga la SDK, sólo funciona bien con el formato &lt;span style="font-family:courier new;"&gt;yyyy/M/ddTHH:mm:00&lt;/span&gt; sobre el campo Value. Hay que olvidarse (al menos yo me olvido) de los atributos &lt;span style="font-family:courier new;"&gt;date&lt;/span&gt; y &lt;span style="font-family:courier new;"&gt;time&lt;/span&gt; y especificar de golpe ambas, o sea:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;actividad.scheduledstart.Value  =&lt;br /&gt;  fechaInicio.ToString("yyyy/M/ddTHH:mm:00");&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-7341997727554408558?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/7341997727554408558/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=7341997727554408558' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/7341997727554408558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/7341997727554408558'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2007/04/luchando-contra-las-actividades-de.html' title='Luchando contra las Actividades de Servicio'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-2206015868583895333</id><published>2007-03-24T11:18:00.000+01:00</published><updated>2007-12-15T16:42:02.423+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Correo electrónico'/><category scheme='http://www.blogger.com/atom/ns#' term='Servicio'/><category scheme='http://www.blogger.com/atom/ns#' term='Funcionalidades'/><title type='text'>Problema con las colas de correo</title><content type='html'>Si después de haber creado la cola de actividades y casos tal como explica &lt;strong&gt;Marco Amoedo&lt;/strong&gt; en su &lt;a href="http://geeks.ms/blogs/marco/archive/2007/03/05/configuraci-n-de-una-cola-para-recibir-correo-en-microsoft-crm-3-0.aspx"&gt;blog&lt;/a&gt; os seguís dando de cabezazos (como yo hice) porque los correos siguen sin entrar. Si os dáis cuenta de que el correo de los usuarios entra sin ningún problema en sus buzones. Si os habéis encontrado con este problema, la solución, en una línea de letra grande y roja es:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;color:#cc0000;"&gt;El propietario de la cola sí importa&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Cuando alguien asigna una actividad o caso a una cola, el propietario sigue siendo el original, el creador del elemento. Ningún problema. Sin embargo, cuando llega un nuevo correo, el router tiene que crear una actividad &lt;em&gt;de la nada&lt;/em&gt;, sin propietario (y casi todo en CRM tiene propietario) así que, ¿a quién se la asigna? Pues al propietario de la cola. ¿Y qué pasa si el propietario de la cola no tiene permisos para crear actividades (ejemplo típico: el administrador con acceso restringido) Pues que no funciona.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Moraleja&lt;/strong&gt; rellenad el propietario de la cola con un usuario con licencia en CRM y permiso para crear e-mails en la unidad de negocio a la que pertenece.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-2206015868583895333?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/2206015868583895333/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=2206015868583895333' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/2206015868583895333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/2206015868583895333'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2007/03/problema-con-las-colas-de-correo.html' title='Problema con las colas de correo'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-3820025510518948965</id><published>2007-03-21T09:45:00.000+01:00</published><updated>2007-03-24T09:48:41.238+01:00</updated><title type='text'>Mostrar el nombre de la organización en Outlook</title><content type='html'>Esta es sin duda una de las peticiones más solicitadas por los clientes que instalan la versión Outlook de CRM. Aproximadamente cuatro segundos después de la instalación, cuando descubren que sus contactos no se pueden &lt;em&gt;organizar por organización&lt;/em&gt;. Es decir, utilizar el campo &lt;strong&gt;Organización&lt;/strong&gt; de Outlook para agrupar sus contactos por empresa. Pues no, no se puede, pero tenemos esta alternativa que nos proponen aquí.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.workopia.com/howto/DisplayParentAccountOutlookContactForm.htm"&gt;http://www.workopia.com/howto/DisplayParentAccountOutlookContactForm.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Sacado del blog del equipo de CRM &lt;a href="http://blogs.msdn.com/crm/"&gt;http://blogs.msdn.com/crm/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-3820025510518948965?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/3820025510518948965/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=3820025510518948965' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/3820025510518948965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/3820025510518948965'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2007/03/mostrar-el-nombre-de-la-organizacin-en.html' title='Mostrar el nombre de la organización en Outlook'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-8908988121321299314</id><published>2006-12-01T11:36:00.000+01:00</published><updated>2006-12-01T11:37:47.578+01:00</updated><title type='text'>Update Rollup de CRM 3.0</title><content type='html'>Ya está disponible el &lt;strong&gt;Update Rollup de CRM 3.0 &lt;/strong&gt;en la esta &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=08BADB01-4984-458E-96E6-4F08622CFE63&amp;amp;displaylang=en"&gt;dirección&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-8908988121321299314?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/8908988121321299314/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=8908988121321299314' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/8908988121321299314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/8908988121321299314'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2006/12/update-rollup-de-crm-30.html' title='Update Rollup de CRM 3.0'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-116299160765999898</id><published>2006-11-08T14:11:00.000+01:00</published><updated>2006-11-08T14:13:27.673+01:00</updated><title type='text'>Programa de "beta-testers" del Update Rollup 1</title><content type='html'>Está disponible en el blog de desarrollo de CRM en MS un programa para aquellos partners que quieran participar en las pruebas de la beta del próximo Update Rollup de CRM, que está previsto que salga a "finales de año".&lt;br /&gt;&lt;br /&gt;Más información: &lt;a href="http://blogs.msdn.com/crm/archive/2006/08/09/693420.aspx"&gt;http://blogs.msdn.com/crm/archive/2006/08/09/693420.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-116299160765999898?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/116299160765999898/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=116299160765999898' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/116299160765999898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/116299160765999898'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2006/11/programa-de-beta-testers-del-update.html' title='Programa de &quot;beta-testers&quot; del Update Rollup 1'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-115805284567301397</id><published>2006-09-12T11:14:00.000+02:00</published><updated>2006-09-12T11:23:09.263+02:00</updated><title type='text'>Seguridad en el nivel de campo</title><content type='html'>&lt;a href="http://www.c360.com/images/Products/FLS/FLS-Admin.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 200px; CURSOR: hand" alt="" src="http://www.c360.com/images/Products/FLS/FLS-Admin.jpg" border="0" /&gt;&lt;/a&gt;Mucha gente cree que sobre el modelo de seguridad de CRM hay mucho que añadir. La prueba está en que partners han empezado a desarrollar extensiones al modelo que permiten, por ejemplo, aplicar una política de seguridad en el nivel del campo (atributo) además de en el nivel de registro (objeto).&lt;br /&gt;&lt;br /&gt;Como muestra, fijaos en lo que hacen en c360:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.c360.com/FieldLevelSecurity.aspx"&gt;http://www.c360.com/FieldLevelSecurity.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Esta imagen que incluyo es la interfaz de administador, donde se decide qué roles o equipos pueden acceder a un campo de un formulario, y con qué tipo de permisos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-115805284567301397?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/115805284567301397/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=115805284567301397' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/115805284567301397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/115805284567301397'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2006/09/seguridad-en-el-nivel-de-campo.html' title='Seguridad en el nivel de campo'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-115700928249643472</id><published>2006-08-31T09:15:00.000+02:00</published><updated>2007-04-10T17:53:16.327+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Migración'/><category scheme='http://www.blogger.com/atom/ns#' term='Servicio'/><title type='text'>Error al migrar actividades</title><content type='html'>En la última migración que he tenido que soport... realizar, me he encontado con el siguiente problema, que dejo aquí para no olvidarlo y que, de paso, puede ayudar a alguien, quién sabe.&lt;br /&gt;&lt;br /&gt;Cuando se trata de migrar actividades de cualquier tipo (Tareas, Llamada de teléfono etc) tendremos lógicamente que rellenar el campo &lt;strong&gt;StateCode&lt;/strong&gt; para indicar si la tarea está abierta o cerrada. Vale, hasta ahí ningún problema. Sin embargo, si rellenas el campo &lt;strong&gt;StatusCode&lt;/strong&gt;, que permite explicar la Razón del estado de la actividad, la migración falla, con un sencillo mensaje de error : &lt;em&gt;Failed to migrate object: Server was unable to process request&lt;/em&gt;. Además,  termina el proceso y no migra el resto de actividades.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solución&lt;/strong&gt;: si dejamos el campo &lt;strong&gt;StatusCode&lt;/strong&gt; vacío en la CDF, tomará el valor por defecto y la migración funcionará. Si tenemos que cambiar el valor por defecto... entonces tenemos otro problema, para el que no tengo solución.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-115700928249643472?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/115700928249643472/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=115700928249643472' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/115700928249643472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/115700928249643472'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2006/08/error-al-migrar-actividades.html' title='Error al migrar actividades'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-114735318271289029</id><published>2006-05-11T15:10:00.000+02:00</published><updated>2006-05-11T15:13:02.726+02:00</updated><title type='text'>Hablando de blogs</title><content type='html'>El equipo de MS-CRM ha lanzado un blog común para todos sus integrantes. Seguro que será una fuente de información fundamental a partir de ahora:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/crm/"&gt;http://blogs.msdn.com/crm/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Por cierto, me he enterado de esto en el blog de Marcos Amoedo:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://geeks.ms/blogs/marco/"&gt;http://geeks.ms/blogs/marco/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-114735318271289029?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/114735318271289029/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=114735318271289029' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/114735318271289029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/114735318271289029'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2006/05/hablando-de-blogs.html' title='Hablando de blogs'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-114414117444747366</id><published>2006-04-04T10:52:00.000+02:00</published><updated>2006-04-05T13:57:35.323+02:00</updated><title type='text'>CRM 3.0 Mobile Edition</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/3983/2188/1600/crm_mobile.0.0.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/3983/2188/320/crm_mobile.0.0.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;He encontrado esta noticia en otro blog de CRM. Lo traduzco y lo comparto con quien lo lea...&lt;br /&gt;&lt;a href="http://icu-mscrm.blogspot.com/"&gt;http://icu-mscrm.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Parece que&lt;em&gt; la semana que viene estará&lt;/em&gt; disponible la versión móvil de CRM 3.0, en inglés, claro.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Actualizo&lt;/strong&gt;: Ya &lt;strong&gt;está&lt;/strong&gt; disponible &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=EA5A3566-7EC8-4AFE-BBFA-91E7210C55C4&amp;amp;displaylang=en"&gt;aquí&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Por lo que dicen en este blog, tendrá sincronización inalámbrica&lt;br /&gt;y estará basada en la última tecnología: Windows Mobile 5.0, .NET Compact Framework 2.0 y base de datos SQL CE 3.0&lt;br /&gt;&lt;br /&gt;Permitirá distintas orientaciones (apaisado o vertical) y "nuevas funcionalidades de CRM 3.0". Sé que no es mucho decir, pero algo es algo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-114414117444747366?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/114414117444747366/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=114414117444747366' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/114414117444747366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/114414117444747366'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2006/04/crm-30-mobile-edition.html' title='CRM 3.0 Mobile Edition'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-114355112030078152</id><published>2006-03-28T14:55:00.000+02:00</published><updated>2006-03-28T15:05:20.313+02:00</updated><title type='text'>Seminario de CRM</title><content type='html'>Dentro de nuestra campaña de promoción de CRM estamos realizando seminarios en Barcelona y Madrid para mostrar a nuestros clientes lo que puede (y no puede)  hacer el producto. El de Barcelona ha sido un éxito de afluencia: más del 80% de la gente que se inscribió nos ha visitado finalmente. Mañana estaremos en Madrid y esperamos también que se anime bastante gente (alrededor de 45 empresas entre las dos ciudades).&lt;br /&gt;&lt;br /&gt;En el seminario mostramos un par de casos reales de clientes y también algunas ideas (en funcionamiento) de &lt;strong&gt;extensión&lt;/strong&gt; e &lt;strong&gt;integración&lt;/strong&gt; de CRM a través de la SDK. Por cierto, las colgaré aquí en breve. No son grandes ni completas, claro, pero dan una idea de lo que se puede llegar a hacer si se tiene la intención (y el tiempo) necesario tomando CRM como plataforma de desarrollo de aplicaciones. Respecto a lo que "no puede" hacer CRM: es interesante ver cómo las expectativas que crea el producto son a veces desmesuradas. Por ejemplo: CRM no puede hacer por sí solo una integración en vivo con una aplicación a medida. Es verdad, pero también es verdad que nadie puede. Más detalles sobre los seminarios en&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.addlink-crm.es/seminarios/"&gt;http://www.addlink-crm.es/seminarios/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-114355112030078152?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/114355112030078152/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=114355112030078152' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/114355112030078152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/114355112030078152'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2006/03/seminario-de-crm.html' title='Seminario de CRM'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-114294413717145060</id><published>2006-03-21T13:14:00.000+01:00</published><updated>2006-03-24T09:27:24.710+01:00</updated><title type='text'>Búsqueda avanzada</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/3983/2188/1600/BusquedaAvanzada.0.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/3983/2188/320/BusquedaAvanzada.0.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Parece que a partir de la versión 3.0 las búsquedas avanzadas empiezan a ser avanzadas de verdad... En la versión anterior eran nuestra única herramienta para hacer algo parecido a campañas de marketing, pero todavía tenían muchas carencias. Por poner un ejemplo: las columnas que aparecían sólo se podían configurar desde el módulo de personalización, y eran iguales para todos los usuarios. En la nueva versión todo es más &lt;em&gt;personal&lt;/em&gt;: cada usuario puede hacer su búsqueda avanzada, escoger las columnas que quiere y después, (si cree que volverá a hacerla en el futuro) &lt;strong&gt;guardarla &lt;/strong&gt;como una vista almacenada. Esto sí que empieza a ser útil. Además, se puede hacer todo tipo de combinaciones de condiciones y/o, como podéis ver en la imagen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-114294413717145060?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/114294413717145060/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=114294413717145060' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/114294413717145060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/114294413717145060'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2006/03/bsqueda-avanzada.html' title='Búsqueda avanzada'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-114190581277746326</id><published>2006-03-09T12:54:00.000+01:00</published><updated>2006-03-09T13:03:32.790+01:00</updated><title type='text'>Videos Demo CRM</title><content type='html'>En la web de Addlink ha aparecido un contenido nuevo de mucho interés, al menos para mi: ¡soy el protagonista! (modestia aparte). Es una serie de demos grabadas en forma de web cast para la web de CRM de Addlink. Haremos por ahora un vídeo para cada módulo.&lt;br /&gt;&lt;br /&gt;Aquí está el resultado del primero: &lt;a href="http://www.microsoft-crm.es/ventas/webcast1.asp"&gt;http://www.microsoft-crm.es/ventas/webcast1.asp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Me habría gustado más que fuera una pelicula de acción, pero nos quedamos sin presupuesto para especialistas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-114190581277746326?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/114190581277746326/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=114190581277746326' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/114190581277746326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/114190581277746326'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2006/03/videos-demo-crm.html' title='Videos Demo CRM'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-114172339872433812</id><published>2006-03-07T10:12:00.000+01:00</published><updated>2007-04-10T17:53:33.332+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Migración'/><title type='text'>Más sobre el DMP</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/3983/2188/1600/WizardDMFPresentacion.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/3983/2188/320/WizardDMFPresentacion.0.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;El nuevo &lt;strong&gt;Data Migration Pack &lt;/strong&gt;es una mejora y puesta al día del antiguo DMF. La herramienta se ha complementado con asistentes que hacen la tarea accesible a usuarios sin conocimientos (en teoría) de SQL. Todo lo que antes se hacía a fuerza de procedimientos almacenados (es decir: mapear usuarios, territorios, unidades de negocio, campos enumerados &lt;em&gt;picklist&lt;/em&gt;) ahora se puede hacer desde una interfaz gráfica. Lo que veis a continuación es la presentación donde se ve la planificación de los pasos a seguir. Desde este asistente se acceden a otros subasistentes para inicializar, mapear y migrar.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Un ejemplo: esta imagen que veis aquí es un mapeo de un territorio. A la izquierda aparece el valor que se ha encontrado en la bd original. A la derecha, los que están disponibles en CRM (que previamente se ha inicializado con otro asistente).&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/3983/2188/640/WizardDMFMapeo1.jpg"&gt;&lt;br /&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/3983/2188/320/WizardDMFMapeo1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Una vez que nos decidimos a hacer la importación, podemos continuar otra migración parcial previa o limpiar el estado para empezar de nuevo. Eso sí, las tareas de backup y restore de las bases de datos en SQL todavía hay que hacerlas con el administrador de SQL Server.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/3983/2188/640/WizardDMFImportacion1.jpg"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/3983/2188/320/WizardDMFImportacion1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;En resumen, una ayuda muy buena cuando se trata de hacer pequeñas migraciones. Si la migración es grande (muchos campos personalizados, muchos picklist) sigue ayudando, pero el grueso del trabajo se desplaza a la realización de los mapeos, independientemente de la herramienta que utilicemos. De todas formas, que sea bienvenida. &lt;a href="http://picasa.google.com/blogger/" target="ext"&gt;&lt;img style="BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; BACKGROUND: 0% 50%; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial" alt="Posted by Picasa" src="http://photos1.blogger.com/pbp.gif" align="middle" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-114172339872433812?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/114172339872433812/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=114172339872433812' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/114172339872433812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/114172339872433812'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2006/03/ms-sobre-el-dmp.html' title='Más sobre el DMP'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-114129295719941870</id><published>2006-03-02T10:49:00.000+01:00</published><updated>2007-04-10T17:53:33.334+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Migración'/><title type='text'>Data Migration Pack</title><content type='html'>Buenas noticias: ya está disponible la herramienta de migración de datos para la versión 3.0 La verdad es que todavía no la he probado, así que lo único que puedo decir es que la han rebautizado: ahora es un &lt;i&gt;Pack&lt;/i&gt;, que incluye el antiguo &lt;i&gt;Framework&lt;/i&gt; más un asistente para importar contactos y cuentas desde Outlook BCM.&lt;br /&gt;&lt;br /&gt;Se puede descargar aquí:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=3D36AC8E-B485-4F0C-9DEC-C9BACBAD1A73&amp;amp;displaylang=en"&gt;&lt;span lang="EN-GB"  style="font-size:85%;"&gt;Microsoft Dynamics CRM 3.0 Data Migration Pack&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span lang="EN-GB"  style="font-size:85%;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-114129295719941870?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/114129295719941870/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=114129295719941870' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/114129295719941870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/114129295719941870'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2006/03/data-migration-pack.html' title='Data Migration Pack'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-114111329604899570</id><published>2006-02-28T08:52:00.000+01:00</published><updated>2007-04-10T17:54:30.116+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Funcionalidades'/><title type='text'>Edición masiva de registros</title><content type='html'>El título de este post impresiona, ya lo sé, pero no se me ocurre otra manera de llamar a esta nueva funcionalidad de CRM. Es muy sencillo: seleccionamos varios registros, vamos al menú &lt;strong&gt;Acciones&lt;/strong&gt; y seleccionamos &lt;strong&gt;Editar&lt;/strong&gt;. La ventana que aparece es el formulario correspondiente a la entidad que sea, con todos los campos en blanco. Todos los valores que introduzcamos se escribirán simultáneamente en los registros que hayamos seleccionado previamente. Sencillo, ¿no? Pues si hubiera tenido esto en la 1.2 me habría ahorrado mucho trabajo, ya lo creo. Por ejemplo, para rellenar el tratamiento de un montón de contactos (hombre = Sr. , mujer= Sra.) Tuve que fabricar una regla de flujo de trabajo para cada una. Pegas: no todos los campos son editables "masivamente": por ejemplo, no podemos cambiar la cuenta principal o en general cualquier campo que sea de tipo &lt;em&gt;clave ajena&lt;/em&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-114111329604899570?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/114111329604899570/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=114111329604899570' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/114111329604899570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/114111329604899570'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2006/02/edicin-masiva-de-registros_28.html' title='Edición masiva de registros'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-114078032283465046</id><published>2006-02-24T12:22:00.000+01:00</published><updated>2007-04-10T17:55:20.051+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Informes'/><title type='text'>Programación periódica de informes</title><content type='html'>El &lt;b&gt;Report Scheduling Wizard&lt;/b&gt; es una interesante herramienta que permite programar la creación de informes, diaria, semanal o mensualmente. Aprovecha las posibilidades de&lt;br /&gt;programación de informes que permite SQL Reporting Services y las simplifica, colocándolas&lt;br /&gt;directamente en la interfaz de CRM, en la zona de informes.&lt;br /&gt;&lt;br /&gt;Podéis descargarla gratuitamente &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=a101d4d9-6463-4a45-899b-3c3ee979c4d0&amp;amp;DisplayLang=en"&gt;aquí&lt;/a&gt;, eso sí, está disponible sólo en inglés.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-114078032283465046?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/114078032283465046/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=114078032283465046' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/114078032283465046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/114078032283465046'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2006/02/programacin-peridica-de-informes.html' title='Programación periódica de informes'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-114068944587247778</id><published>2006-02-23T11:09:00.000+01:00</published><updated>2007-04-10T17:54:30.118+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Funcionalidades'/><title type='text'>Actividades de registros relacionados</title><content type='html'>Mirando el manual de usuario de CRM 3.0 he encontrado algo que venía echando en falta desde hace tiempo (tanto que ya lo había olvidado):&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Acceso a todos los registros relacionados&lt;/strong&gt; El panel izquierdo de los formularios de contacto o cuenta muestra todas las actividades y registros de los que forma parte una cuenta o contacto, o que hacen referencia a la cuenta, incluidas las subcuentas y registros relacionados con los contactos de la cuenta. &lt;/p&gt;&lt;/blockquote&gt;Ahora podemos ver, seleccionado una cuenta, todas las actividades hechas (historial) o por hacer de una cuenta junto con todas las que estén asignadas a sus contactos. Es una forma de tener un resumen rápido de actividad con un cliente con independencia de la persona de contacto. Muy útil. (Nota maliciosa: en una presentación de CRM pregunté si existía algo parecido y me dijeron que no)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-114068944587247778?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/114068944587247778/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=114068944587247778' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/114068944587247778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/114068944587247778'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2006/02/actividades-de-registros-relacionados_23.html' title='Actividades de registros relacionados'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-114060222357143852</id><published>2006-02-22T10:54:00.000+01:00</published><updated>2006-02-22T10:57:03.583+01:00</updated><title type='text'>Gestión automatizada de sucripciones en CRM</title><content type='html'>Esta nueva funcionalidad de CRM nos puede ahorrar mucho trabajo a la hora de gestionar suscripciones a boletines de noticias. El típico mensaje (obligatorio, por otra parte) de "Si quiere darse de baja de este boletín, escriba un mensaje a esta dirección..." puede automatizarse desde la zona de configuración del sistema:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/3983/2188/640/imagen1.jpg"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/3983/2188/320/imagen1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Desde que activamos la primera opción, todos los usuarios que realicen campañas de marketing (por ejemplo, una campaña exprés) con correo electrónico verán en su editor un botón adicional: &lt;strong&gt;Anular la suscripción&lt;/strong&gt; (ver imagen). La segunda opción nos permite confirmar al cliente que ha sido eliminado de nuestras listas.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/3983/2188/640/imagen2.jpg"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/3983/2188/320/imagen2.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Este botón introduce un enlace en el mensaje de correo electrónico que lanza un proceso automático que actualiza la ficha del cliente, en concreto el campo Enviar materiales de marketing. Aunque seleccionemos a este destinatario en futuras campañas, nunca participará en ellas, porque CRM lo excluirá automáticamente. Por cierto, que también podremos ver en las propiedades de la campaña quiénes han sido estos destinatarios excluidos.&amp;nbsp;&lt;a href='http://picasa.google.com/blogger/' target='ext'&gt;&lt;img src='http://photos1.blogger.com/pbp.gif' alt='Posted by Picasa' style='border: 0px none ; padding: 0px; background: transparent none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;' align='middle' border='0' /&gt;&lt;/a&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-114060222357143852?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/114060222357143852/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=114060222357143852' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/114060222357143852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/114060222357143852'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2006/02/gestin-automatizada-de-sucripciones-en.html' title='Gestión automatizada de sucripciones en CRM'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-114053204196092642</id><published>2006-02-21T15:24:00.000+01:00</published><updated>2007-04-10T17:55:20.053+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Informes'/><title type='text'>Publicar informes en CRM</title><content type='html'>Hace poco tuve que vérmelas con una instalación de CRM 3.0 en la que la parte de Reporting Services no quedó correctamente instalada. Bueno, pues buscando donde buscamos todos encontré este &lt;a href="http://geekswithblogs.net/mskoolaid/archive/2006/01/16/66022.aspx?Pending=true"&gt;artículo&lt;/a&gt; que habla de migración de CRM 1.2 a 3.0 y que incluye un apartado sobre los informes. Bueno, pues esta misma herramienta se puede utilizar para &lt;i&gt;reprovisionar&lt;/i&gt; los informes cuando algo falla en la instalación.&lt;br /&gt;&lt;br /&gt;Los pasos serían los siguientes:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Abrir el administrador de directorio activo&lt;/li&gt;&lt;li&gt;Buscar el usuario &lt;b&gt;Reporting Group&lt;/b&gt;&lt;/li&gt;&lt;li&gt;Abrir sus propiedades y copiar el nombre (con código guid incluido) en el portapapeles&lt;/li&gt;&lt;li&gt;Abrir un intérprete de comandos&lt;/li&gt;&lt;li&gt;Ir a C:\Archivos de Programa\Microsoft CRM\Reports\&lt;/li&gt;&lt;li&gt;Ejecutar &lt;b&gt;PublishReports.exe&lt;/b&gt; con los siguientes parámetros: "Nombre Organización" "Reporting Group" (el que hemos copiado en el portapapeles en el paso 3) &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;u&gt;Ejemplo:&lt;/u&gt;&lt;code&gt;&lt;br /&gt;PublishReports.exe "Adventure Works" "DOMINIO\ReportingGroup {d4b85e97-1a6f-4f8b-8fbe-e8c3b2df5bd6}"&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Por cierto, que esta misma herramienta también se puede utilizar para &lt;i&gt;subir&lt;/i&gt; al servidor de CRM un grupo de informes en formato &lt;b&gt;rdl&lt;/b&gt;. Tal vez ayude a alguien...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-114053204196092642?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/114053204196092642/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=114053204196092642' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/114053204196092642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/114053204196092642'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2006/02/publicar-informes-en-crm.html' title='Publicar informes en CRM'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-113956302772723064</id><published>2006-02-10T10:17:00.000+01:00</published><updated>2007-04-10T17:54:30.119+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Funcionalidades'/><title type='text'>Novedades (y viejedades) de CRM 3.0</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;Aquí dejo mi pequeña lista de observaciones acerca de cómo hace las cosas CRM 3.0 comparado con las versiones anteriores. Por cierto, que la formación para formadores es precisamente esto, una actualización de lo que se vio para la versión 1.0 allá por el año 2003.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;div style='mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt; padding:0cm 0cm 1.0pt 0cm'&gt;  &lt;p class=MsoNormal style='border:none;padding:0cm'&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:11.0pt;font-family:Arial'&gt;Novedades&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial;font-weight:bold'&gt;Asistente de configuración&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;font-family:Arial'&gt; Para la versión Small Business Server. Permite configurar una estructura de temas predefinida por tipo de organización, renombrar entidades (contacto puede ser &amp;#8220;Persona&amp;#8221; o cuenta puede ser &amp;#8220;Empresa&amp;#8221;) y otras pequeñeces como el orden en que se muestra el nombre y apellidos de los contactos. También se puede lanzar desde línea de comandos.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial;font-weight:bold'&gt;Creación de entidades &lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;font-family:Arial'&gt;Para mi gusto, el plato fuerte de esta versión. Se pueden crear nuevas entidades y tenemos además una SDK que las soporta a nivel programático orientado a objetos.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial;font-weight:bold'&gt;Borrar atributos &lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;font-family:Arial'&gt;de una manera soportada. Sin tener que entrar a la base de datos y otras cosas desagradables. Si has puesto Burro con V, puedes echar marcha atrás.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial;font-weight:bold'&gt;Compartir con el usuario original&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;font-family:Arial'&gt; Cuando un usuario asigna un registro a otro, CRM 1.2 automáticamente compartía ese registro con el usuario original. Ahora, esto es configurable a nivel servidor.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial;font-weight:bold'&gt;Web Services&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;font-family:Arial'&gt; Ahora son standard, con el mismo aspecto que los generados desde Visual Studio y por lo tanto más sencillos de manejar. Tenemos también sus wsdl para otras plataformas.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial;font-weight:bold'&gt;Cambio de usuario&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;font-family:Arial'&gt; Desde el administrador de implementaciones podemos cambiar el login del sistema de un usuario de CRM.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;div style='mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt; padding:0cm 0cm 1.0pt 0cm'&gt;  &lt;p class=MsoNormal style='border:none;padding:0cm'&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:11.0pt;font-family:Arial'&gt;Desapariciones&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial;font-weight:bold'&gt;Administrador de esquemas del administrador de implementaciones &lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;font-family:Arial'&gt;Ahora esto se hace desde la propia interfaz web. Mucho mejor.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial;font-weight:bold'&gt;Roles y Equipos&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;font-family:Arial'&gt; Desaparecen del directorio activo. Ahora todo está representado en la base de datos únicamente. Mucho más ligero, mejora el rendimiento aparentemente.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;div style='mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt; padding:0cm 0cm 1.0pt 0cm'&gt;  &lt;p class=MsoNormal style='border:none;padding:0cm'&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:11.0pt;font-family:Arial'&gt;&amp;#8220;Viejedades&amp;#8221;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial;font-weight:bold'&gt;Unidades de negocio&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;font-family:Arial'&gt; Seguimos sin poder eliminarlas. Cuidado con la ortografía.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial;font-weight:bold'&gt;Eventos de formulario&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;font-family:Arial'&gt; Sigue apareciendo en plural (eventos) cuando debería estar en singular. Lo único que podemos capturar en eventos cliente es el evento OnChange de los combos.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial;font-weight:bold'&gt;Año fiscal&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;font-family:Arial'&gt; Sólo se puede establecer una vez. Cambiarlo implica reinstalación. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial;font-weight:bold'&gt;Web Services&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;font-family:Arial'&gt; Podemos seguir utilizando los proxy de la SDK de la versión anterior. O sea, se mantienen los ficheros srf en el directorio MSCRMServices.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-113956302772723064?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/113956302772723064/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=113956302772723064' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/113956302772723064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/113956302772723064'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2006/02/novedades-y-viejedades-de-crm-30.html' title='Novedades (y viejedades) de CRM 3.0'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-113948802805041482</id><published>2006-02-09T13:27:00.000+01:00</published><updated>2006-02-09T14:33:47.336+01:00</updated><title type='text'>Presentación oficial CRM 3.0</title><content type='html'>&lt;a href="http://www.spamina.com/img/escudo.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://www.spamina.com/img/escudo.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Nuestra compañía (CRM i/o .net) va a estar en la presentación oficial de Microsoft CRM 3.0 en Barcelona presentando un caso de éxito: el de nuestro cliente &lt;a href="http://www.spamina.com/"&gt;Spamina&lt;/a&gt;. Spamina es un proveedor de servicios anti-spam y anti-virus para particulares y empresas que se está vendiendo a través de distribuidores y también a usuario final, en sitios como Fnac etc. Implantando CRM quieren hacer un seguimiento de sus ventas segmentando a sus clientes por distribuidor y otros factores. Un caso de libro para CRM, vamos. Esto es lo que vamos a presentar en la sesión del 14 de febrero en Barcelona y el 16 de febrero en Madrid. Más información &lt;a href="http://www.microsoft.com/spain/crm/default.mspx"&gt;en la web de Microsoft&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-113948802805041482?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/113948802805041482/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=113948802805041482' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/113948802805041482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/113948802805041482'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2006/02/presentacin-oficial-crm-30.html' title='Presentación oficial CRM 3.0'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-113897716170231048</id><published>2006-02-03T15:30:00.000+01:00</published><updated>2006-02-03T15:35:59.676+01:00</updated><title type='text'>Caja de CRM 3.0</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/3983/2188/640/homepage08.jpg"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/3983/2188/320/homepage08.jpg" align="left" border="0" /&gt;&lt;/a&gt; He fabricado esta imagen para la nueva web de nuestra compañía. Como soy novato en esto he usado un programita que he encontrado en &lt;a href="http://www.download.com"&gt;www.download.com&lt;/a&gt; que se llama &lt;a href="http://www.ulead.com/cool3d/runme.htm"&gt;Ulead Cool3D&lt;/a&gt; que está muy bien para hacer cosas sencillas. &lt;a href="http://picasa.google.com/" target="ext"&gt;&lt;img style="BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; BACKGROUND: 0% 50%; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial" alt="Posted by Picasa" src="http://photos1.blogger.com/pbp.gif" align="middle" border="0" /&gt;&lt;/a&gt;  Para subir la imagen al blog he usado Picasa (cómo estoy hoy de publicitario).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-113897716170231048?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/113897716170231048/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=113897716170231048' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/113897716170231048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/113897716170231048'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2006/02/caja-de-crm-30.html' title='Caja de CRM 3.0'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-113897558490777116</id><published>2006-02-03T15:06:00.000+01:00</published><updated>2006-02-03T15:06:24.910+01:00</updated><title type='text'>Actualización desde CRM 1.2</title><content type='html'>&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;Hoy hemos empezado las pruebas para hacer una  actualización desde CRM 1.2 a CRM 3.0 La parte &lt;STRONG&gt;automática&lt;/STRONG&gt; te  promete que será tan sencillo como instalar la nueva versión y que todas las  personalizaciones que hayas hecho se propagarán sin problema. Siempre que hayas  sido bueno y hayas seguido las buenas prácticas documentadas en la SDK, claro.  La nueva SDK tiene un montón de nuevas características, pero mantiene la  compatibilidad hacia atrás. Por ejemplo, los ficheros con extensión &lt;STRONG&gt;.srf  &lt;/STRONG&gt;(¿alguien sabe qué significan estas siglas?) siguen ahí: las llamadas a  Web Service que hiciéramos en el pasado seguirán funcionando (menos mal). Ahora,  además, encontramos un montón de ficheros &lt;STRONG&gt;.asmx&lt;/STRONG&gt; en el  directorio MSCRMServices, directamente en el formato de Visual  Studio.&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Arial size=2&gt;A ver qué tal.&lt;/FONT&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-113897558490777116?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/113897558490777116/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=113897558490777116' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/113897558490777116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/113897558490777116'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2006/02/actualizacin-desde-crm-12.html' title='Actualización desde CRM 1.2'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-113897443255587185</id><published>2006-02-03T14:46:00.000+01:00</published><updated>2007-03-24T12:06:36.585+01:00</updated><title type='text'>Foto Dani</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_-OkamweXVGk/RgUFrLJJtwI/AAAAAAAAAE0/MHXy8j0lfdo/s1600-h/dani.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5045445196822198018" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_-OkamweXVGk/RgUFrLJJtwI/AAAAAAAAAE0/MHXy8j0lfdo/s200/dani.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-113897443255587185?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/113897443255587185/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=113897443255587185' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/113897443255587185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/113897443255587185'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2006/02/foto-dani.html' title='Foto Dani'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_-OkamweXVGk/RgUFrLJJtwI/AAAAAAAAAE0/MHXy8j0lfdo/s72-c/dani.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-113888269473387258</id><published>2006-02-02T13:12:00.000+01:00</published><updated>2006-02-03T11:18:45.416+01:00</updated><title type='text'>Migración de datos</title><content type='html'>La migración de datos de cualquier sistema a cualquier sistema es un verdadero dolor de cabeza. Claro, que lo mismo hay a quien le guste, que hay gente para todo... Pero bueno, a mi me parece un trabajo tedioso, complicado, repetitivo y además poco valorado. La gente suele decir "Bueno, sólo hay que importar unos contactos y ya está". Detrás de esa frase puede haber facilmente cuarenta horas de trabajo... Es fácil cometer errores, nunca se alcanzan las expectativas del cliente y demás.&lt;br /&gt;&lt;br /&gt;Por eso está bien que haya herramientas que alivien un poco el dolor: en el caso de Microsoft CRM 1.2 era el &lt;strong&gt;DMF&lt;/strong&gt; o &lt;em&gt;Data Migration Framework&lt;/em&gt;: una base de datos intermedia entre tus datos antiguos y CRM. También tenía algunas herramientas (básicamente, procedimientos almacenados de SQL) para mapear datos enumerados y usuarios, en fin, que era de bastante ayuda. Digo &lt;em&gt;era&lt;/em&gt; porque la versión 3.0 aún no tiene nada parecido. Esperemos que aparezca por el horizonte antes que el primer cliente que necesite migración (o sea, todos).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-113888269473387258?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/113888269473387258/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=113888269473387258' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/113888269473387258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/113888269473387258'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2006/02/migracin-de-datos.html' title='Migración de datos'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-113887962763137778</id><published>2006-02-02T12:22:00.000+01:00</published><updated>2006-02-03T14:54:53.643+01:00</updated><title type='text'>¿Cómo vender CRM?</title><content type='html'>Eso me gustaría saber a mi...&lt;br /&gt;&lt;br /&gt;Andamos dándole vueltas a unas cuantas ideas sueltas que puedan servir como argumento en una venta de CRM. Son provisionales, parciales e incompletas, pero espero que sirvan en algún momento para hacer una campaña a posibles clientes. Allá van:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Para el jefe de ventas&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;“Gestione el trabajo de/controle a” su equipo de ventas&lt;/li&gt;&lt;li&gt;Mejore el rendimiento de su equipo de ventas&lt;/li&gt;&lt;li&gt;Optimice sus procesos de venta&lt;/li&gt;&lt;li&gt;Realice estimaciones de ventas&lt;/li&gt;&lt;li&gt;Tome decisiones más objetivas&lt;/li&gt;&lt;li&gt;Conozca el estado de las oportunidades en marcha&lt;/li&gt;&lt;li&gt;Convierta sus oportunidades en ventas&lt;/li&gt;&lt;li&gt;Demuestre a sus clientes que conoce su caso &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Para el jefe de sistemas&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Adapte/Personalice CRM a las necesidades de su compañía&lt;/li&gt;&lt;li&gt;Disminuya el esfuerzo de administración&lt;/li&gt;&lt;li&gt;Integre sus aplicaciones con .net y SQL Server&lt;/li&gt;&lt;li&gt;Desarrolle soluciones CRM personalizadas para su negocio&lt;/li&gt;&lt;li&gt;Apoye sus procesos de negocio en workflows de CRM&lt;/li&gt;&lt;li&gt;Haga accesible su información a través de web&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;Para el jefe de marketing&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Realice campañas de marketing enfocadas al cliente&lt;/li&gt;&lt;li&gt;Apoye sus campañas en datos fiables&lt;/li&gt;&lt;li&gt;Segmente a sus clientes basándose en datos objetivos&lt;/li&gt;&lt;li&gt;Haga seguimiento detallado de sus campañas&lt;/li&gt;&lt;li&gt;Evalúe el impacto de sus campañas&lt;/li&gt;&lt;li&gt;Integre sus canales de comunicación con CRM&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-113887962763137778?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/113887962763137778/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=113887962763137778' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/113887962763137778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/113887962763137778'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2006/02/cmo-vender-crm.html' title='¿Cómo vender CRM?'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-113862563517155101</id><published>2006-01-30T13:51:00.000+01:00</published><updated>2006-02-02T13:10:07.066+01:00</updated><title type='text'>CRM Global Readiness Tour</title><content type='html'>Es una presentación para partners en las instalaciones de Microsoft en Barcelona, junto al antiguo Fórum 2004. La ocasión para hablar con otros socios sobre las posibilidades con el nuevo &lt;em&gt;CRM&lt;/em&gt;: posibles clientes, mercados a explorar. Los ponentes son la gente de &lt;em&gt;New Horizons: &lt;/em&gt;muy bien la parte comercial, la parte técnica un poco más flojilla. En la presentación comercial se dieron pistas muy buenas sobre cómo transmitir la idea de CRM a los clientes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-113862563517155101?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/113862563517155101/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=113862563517155101' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/113862563517155101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/113862563517155101'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2006/01/crm-global-readiness-tour.html' title='CRM Global Readiness Tour'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21619730.post-113844041021101553</id><published>2006-01-28T10:21:00.000+01:00</published><updated>2006-01-28T10:26:50.220+01:00</updated><title type='text'>CRM a Diario</title><content type='html'>Y aquí comienza... un blog instantáneo dedicado a &lt;strong&gt;MS-CRM&lt;/strong&gt;, o sea &lt;em&gt;Microsoft Dynamics Customer Relationship Management&lt;/em&gt;. Mejor dicho, intentaré ir colgando aquí notas acerca de lo que hacemos en mi compañía (o sea, &lt;a href="http://www.crmio.net/"&gt;CRM i/o .net&lt;/a&gt;) con MS-CRM: los problemas, los errores encontrados, las cosas que echamos en falta, los dolores de cabeza. ¿Me olvido algo? Ah, claro, y las satisfacciones. Bienvenidos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21619730-113844041021101553?l=crmadiario.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crmadiario.blogspot.com/feeds/113844041021101553/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21619730&amp;postID=113844041021101553' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/113844041021101553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21619730/posts/default/113844041021101553'/><link rel='alternate' type='text/html' href='http://crmadiario.blogspot.com/2006/01/crm-diario.html' title='CRM a Diario'/><author><name>Daniel Sabater</name><uri>http://www.blogger.com/profile/13432225659109438828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-OkamweXVGk/TCx8x6pa-5I/AAAAAAAAEVg/zr6o-32us2Q/S220/dani_simpson.jpg'/></author><thr:total>0</thr:total></entry></feed>
