jueves, 6 de octubre de 2011

Error al acceder al Historial de auditoría en CRM 2011

Existe un pequeño error que ocurre a veces en algunos registros, al acceder al historial de auditoría.
El error que aparece es como el siguiente:

La descripción del error nos puede dar algo de información:

[CrmException: An unexpected error occurred.]

en Microsoft.Crm.Application.Platform.ServiceCommands.PlatformCommand.XrmExecuteInternal()
en Microsoft.Crm.Application.Platform.ServiceCommands.RetrieveRecordChangeHistoryCommand.Execute()
en Microsoft.Crm.ApplicationQuery.RetrieveAuditByObjectCommand.RetrieveData()
en Microsoft.Crm.ApplicationQuery.ExecuteQuery()
en Microsoft.Crm.Application.Platform.Grid.GridDataProviderQueryBuilder.LoadQueryData()
en Microsoft.Crm.Application.Platform.Grid.GridDataProviderQueryBuilder.LoadData()
en Microsoft.Crm.Application.Controls.GridUIProvider.PrepareGridData()
en Microsoft.Crm.Application.Controls.GridUIProvider.Render(HtmlTextWriter output)

El error aparentemente ocurre cuando el sistema no tiene el formato de fecha de US English segun comentan en los foros: http://social.microsoft.com/Forums/zh/crm/thread/117dd980-5a5b-4710-8ca7-4eff9538104b

De todos modos esto ya se debería arreglar con el Rollup 4 (lo he comprobado y es así):
http://www.microsoft.com/downloads/es-es/details.aspx?familyid=c83ae301-1c10-4bd2-a43e-5e8dcd1cad3f&displaylang=es

Al instalar el Rollup 4 deja de dar el error, pero los antiguos siguen dando error. Una buena manera de arreglar esto (de forma no soportada, por supuesto) es borrando los historiales conflictivos de la tabla AuditBase:

delete Auditbase
where 
objectid='85E26447-3965-E011-BC15-000C29A20BB7' 
 
un saludo,

martes, 4 de octubre de 2011

Drag And Drop ficheros como Adjuntos en CRM 2011

Hoy he encontrado un desarrollo muy interesante sobre CRM 2011. Una de las funcionalidades un poco "molestas" de CRM es el tema de añadir adjuntos a una entidad.
Aprovechando funcionalidades de Silverlight y su integración con CRM 2011, se ha creado una solución para poder hacer un drag and drop de ficheros en un formulario de CRM para uqe esos ficheros se almacenen como notas adjuntas.
el funcionamiento es muy sencillo, simplemente se debe importar una solución (http://www.mindthecloud.net/wp-content/uploads/2011/09/Drag2MSCRM_1_0_0_0_managed.zip) que contiene un Web Resource y luego añadir el mismo en algun formulario deseado:


La verdad que es una muy pequeña funcionalidad, pero muy cómoda si tenemos que adjuntar varios ficheros a la vez...

Esta idea la he recogido del blog de "Sebastian W" (http://twitter.com/qmiswax) del artículo: http://www.mindthecloud.net/?p=512)

Gracias! un saludo

viernes, 9 de septiembre de 2011

Problemas en desarrollo de Plugins para Citas

Hola, este artículo es para complementar otro que ya había publicado en relación con los Plugins y las citas (http://crmtoall.blogspot.com/2011/07/plugin-en-la-creacion-de-citas-no-se.html)
En ese artículo explicaba como registrar un plugin en el postCreate de las Citas (como "child pipeline").
A pesar de que eso funciona, no es del todo completo.
Los mensajes de Create de Cita no se llaman siempre de la misma manera, dependiendo de si ha habido un conflicto de Citas o no. que es la típica ventana que aparece cuando hay algun usuario no disponible:

Es decir, si no hay conflicto, el mensaje de Create se llama como "Child", pero si hay alguno, el mensaje de "Create" se llamará recién cuando se haga click en "Omitir y guardar" y como "Parent".

Esto tiene su lógica, ya que al crear una Cita, se llama al mensaje "Book" y si va todo bien, desde el mismo mensaje de Book, se llama al Create (como hijo de este).
En caso de haber un conflicto, entra por el Book, que devuelve al usuario el mensaje de error. Si el usuario confirma la grabación, no se vuelve a llamar al "Book" y se llama directamente al Create (como "Parent").

Esto es un poco complicado, pero es así como funcionan los plugins de Citas.

Es por esto que al crear plugins en las Citas, hay que tener mucho cuidado si es que se llaman correctamente, y probarlos siempre con conflictos y sin conflictos, ya que los plugins se llaman de manera diferente.

un saludo,

miércoles, 31 de agosto de 2011

Usuarios no interactivos en CRM 2011

Antiguamente en CRM 4.0, si necesitabamos que un desarrollo nuestro (una aplicación web por ejemplo) se conecte al CRM con un usuario determinado con unos roles específicos, debíamos consumir una licencia de CRM 4.0. Es decir, crear un usuario, que nunca accederá al CRM como tal, sino que simplemente se utiliza para conectarse a través de la SDK.
Esto cambia con CRM 2011 y se resuelve. Ahora existe la posibilidad de crear usuarios "No interactivos", mediante lo cual podemos crear usuarios que no consumen licencias y que nos permiten conectarnos directamente al CRM desde nuestros desarrollos.
Para hacer esto, lo que hay que hacer es simplemente crear un usuario nuevo, y poner al atributo "Modo de acceso" el valor "No interactivo".
El problema es que hay cierto funcionamiento en el formulario relacionado este atributo que hace que no se vea. Si entramos a la personalización del formulario, se ve que el atributo aparece, pero luego en la realidad no se ve. En realidad lo que ocurre es que donde está ubicado este atributo, se oculta la sección completa.
Entonces lo que hice fue simplemente volver a añadirlo de la siguiente forma:
Luego lo que añado el atributo y publico, puedo ver los valores:


Un saludo,

miércoles, 10 de agosto de 2011

Como hacer Lookup relacionados en CRM 2011

Como todos saben, al añdir atributos de tipo "lookup" en una entidad (por ejemplo selección de Provincias y Países en Cuenta), al hacer click en la "lupa", no se realiza ningún filtro y nos aparecer todos los registros de la entidad relacionada (según los roles de seguridad, claro).

En el "antiguo" CRM 4.0 si queríamos hacer que por ejemplo al seleccionar un País, solo nos muestre las provincias de ese país, había que buscarse la vida con soluciones complejas en javascript no soportadas o desarrollos a medida con ASP.Net.

Afortunadamente Microsoft ha escuchado nuestros gritos desesperados (je) acerca de este tema, y nos da una solución mediante la cual podemos definir estas relaciones simplemente en las personalizaciones del formulario.

Este sería el ejemplo que comento en el formulario de Cuentas:

Esto da por supuesto que tenemos previamente creadas dos nuevas entidades (new_pais y new_provincia) relacionadas entre sí.
De esta manera, al seleccionar un País en la Cuenta, al ir al buscador de Provincias, aparecerán filtradas según el País seleccionado.
Esta funcionalidad funciona también con la "busqueda rápida" de los lookups:

Espero les sea útil.

un saludo,

miércoles, 3 de agosto de 2011

Procesos de tipo diálogo y sus traducciones

Resulta que me ha surgido una necesidad, que ha provocado que detecte que hay algo que "faltaría" para próximas versiones de CRM.
Como todos saben, el CRM es mutiidioma, y se pueden habilitar en una misma implantación diversos lenguajes diferentes.
Además es posible traducir todas las etiquetas y nombres de atributos y entidades a traves de un Excel.
El tema es que hay algo que se ha quedado fuera de las traducciones, que son los nuevos procesos de tipo "díalogo".
Imaginense que utilizan esta funcionalidad para hacer un asistente o "wizard" para guiar a los usuarios para ir rellenando cierta información. Pues bien, si quieren que esas "Preguntas y respuestas" de los diálogos sean en multiidioma, la solución solamente pasa por hacer nuevamente todo el proceso de tipo "Diálogo" en otro idioma, y así para cada uno de los idiomas que haya instalados en CRM 2011.
Hasta aquí, mas o menos bien. Pero para crear un diálogo en otro idioma, no basta simplemente con recoger una serie de "etiquetas" que deben ser traducidas, sino que hay que hacer un curso real del idioma del que se trate, por ejemplo si quiero hacerlo en hebreo se vería así (por cierto, como mola el CRM visto de derecha a izquierda):


Luego, al intentar ejecutar en cada uno de los idiomas, solamente aparecerá el diálogo que tenga en el idioma actual por ejemplo para inglés y español se verían 2 diferentes:




Finalmente, creo que la funcionalidad de diálogos en CRM 2011 está estupenda, pero creo que, teniendo en cuenta que los diálogos es como una forma de crear "formularios" en CRM con etiquetas y campos de entrada, se debería haber previsto algún método de traducción.
De todos modos, mientras tanto podremos seguir utilizando los mismos con toda su funcionalidad idioma a idioma.

martes, 2 de agosto de 2011

Rollup 3 para Dynamics CRM 2011

Bien! seguimos a buen ritmo con los Rollups, esto quiere decir que se "mueve".
Han publicado el tercer Rollup para CRM 2011, toda la información esta en el blor del equipo de CRM: http://blogs.msdn.com/b/crm/archive/2011/08/01/update-rollup-3-for-microsoft-dynamics-crm-2011.aspx

sino para descargarse: http://www.microsoft.com/download/en/details.aspx?id=26912
o sino la Knowledge Base: http://support.microsoft.com/kb/2547347

un saludo