miércoles, 24 de agosto de 2011

Como ocultar un campo en Dynamics CRM 2011 con JavaScript

Hay algunos posts que indican que ocultar en un campo dinámicamente en CRM 2011 con JavaScript no es posible, y que esa función que era posible en CRM 4.0 ya no se encuentra disponible.

Afortunadamente, gracias a Fabricio, nuestro Ingeniero de proyectos, comprobamos que el método sigue existiendo y que es muy fácil de utilizar:

var control = Xrm.Page.ui.controls.get(field);

control.setVisible(false);

Happy CRMing!

viernes, 5 de agosto de 2011

Migrando a Dynamics CRM 2011: Error al importar la organización

Estábamos muy emocionados, había llegado nuestro nuevo server y teníamos todos los medios de instalación listos para comenzar la gran tarea: Migrar a Dynamics CRM 2011.
 
Comenzamos con el proceso con bastante reticencia pensando. ¿Se migraran todos los datos? ¿Tendremos nuestros Workflows tal cual como los teníamos antes? ¿Cuánto tiempo le tendremos que dedicar hasta dejar nuestro sistema operativo?

El resultado final fue formidable pero… no antes de pasar por la crisis y la angustia.

Seguimos detalladamente todo el proceso de migración explicado por Pablo Peralta aquí.

Justamente cuando el proceso de importación de terminando ¡¡¡HORROR!!! Ante nuestros ojos teníamos un mensaje de error que en un principio no nos hacía ningún sentido:

Error al importar la organización (Nombre=Vertis, Id.=e5dc9ed4-e3e2-45ec-877a-08c701a48ebc) con la excepción: System.Data.SqlClient.SqlException (0x80131904): El inicio de sesión ya tiene una cuenta con otro nombre de usuario. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)

Nos miramos con cara de pregunta, encogiendo los hombros y diciendonos ¿Qué es esto? ¿Qué hicimos mal?

Si estás leyendo este post porque estás viviendo la misma situación, no te hare pasar las largas horas que pasamos nosotros para resolver este problema. La solución viene asi:

Este error se puede producirse por dos causas:

1. La cuenta que se usa para iniciar los servicios de CRM (normalmente servicio de red) no puede ser agregada como un inicio de sesión a las bases de datos del CRM en SQL Server debido a que esta cuenta ya tiene existe y tiene un inicio de sesión en el CRM.

2. La importación de una organización que fue creada en una versión con una localización diferente de Windows puede fallar cuando el proceso de importación de la organización intenta agregar un inicio de sesión que tiene el mismo sid de Servicio de red pero con un nombre distinto.

Afortunadamente la solución para este problema es bastante fácil y rápida:

1. Abre SQL Server Management Studio.
2. Expande MSCRM_Config, serguridad y esquemas.
3. Haz clic derecho sobre servicio de red y haz clic en eliminar.
4. En MSCRM_Config expande usuarios.
5. Haz clic derecho sobre servicio de red y haz clic en eliminar.
6. Expande la base de datos Organización_MSCRM, seguridad y esquemas.
7. Haz clic derecho sobre servicio de red y haz clic en eliminar.
8. En Organización_MSCRM expande usuarios.
9. Haz clic derecho sobre servicio de red y haz clic en eliminar.

Una vez que hayas realizado estos pasos puedes volver a realizar el proceso de importación de la organización el cual esta vez sí debería terminar exitosamente.

Es posible que cuando intentes ingresar al CRM después de este proceso recibas un erro de SQL Server. En ese caso solo debes ingresar nuevamente a SQL Server Management Studio y asignarle el rol de db_owner en la base de datos MSCRM_Config.

1. Abre SQL Server Management Studio.
2. En MSCRM_Config expande usuarios.
3. Haz doble click sobre servicio de red.
4. Haz selecciona db_owner en la sección miembros del rol.

Con esto deberías estar funcionando a la perfección con todos tus datos y customizaciones migradas a Dynamics CRM 2011.

Happy CRMing!