Spiga

Error de instalación del cliente outlook de CRM en Windows 2000

Hace un tiempo tuve la necesidad de realizar una instalación del cliente outlook de CRM en una workstation con windows 2000.

Luego de cumplir todos los requerimientos mínimos descriptos en el IG, comencé a instalarlo y me encontré con el siguiente error:

Error de la accion Microsoft.Crm.Setup.Client.InstallAbpAction.Exception from HRESULT:0xFFFFFFFF

Después de varias idas y vueltas pude encontrar la solución y el porqué de este error.

Primero el problema:

El problema se dá por un archivo de Windows 2000 y no de MSCRM. Específicamente en el archivo MSI.DLL.
El error se produce por la configuración regional del equipo. En mi caso tenía configurado Español (Argentina). Pero tengo entendido que con otros idiomas se produce el mismo error.



Solución:

  1. Desinstalar cualquier instalación del cliente que tengamos en el cliente.
  2. Entrar a Configuración / Panel de Control / Configuración Regional.
  3. En "Su idioma (ubicación)" seleccionar ESPAÑOL (ESPAÑA).
  4. En Alfabetización seleccionar INTERNACIONAL.
  5. Aceptar e intentar de nuevo la instalación del cliente de CRM.
Por supuesto una vez instalado pueden volver a su configuración regional original.

Saludos.

JavaScript no documentado sobre formularios de Microsoft CRM

Continuando un poco el hilo de la entrada anterior donde les comentaba sobre algunas funciones de JavaScript no documentadas que podíamos utilizar sobre la grilla de CRM. Ver artículo.
Hoy voy a agrandar la lista de funciones pero esta vez las que podemos utilizar sobre el formulario de las entidades.

Antes que nada y como siempre, aclaro que esto no esta soportado por Microsoft y ustedes a esta altura ya saben lo que eso implica.

Comencemos..

Algunas de las funciones que si estan "soportadas" por que figuran en el SDK y de hecho hay varios artículos de Microsoft hablando de ellas son:

Funciones:
crmForm.Save() - Guarda el formulario.
crmForm.SaveAndClose() - Guarda el formulario y lo cierra.
crmForm.SetFieldReqLevel(sField, bRequired) -Establece un campo como requerido o no.
Parametros:
sField: String del id del campo (Ej: 'accountnumber');
bRequired: Entero/Booleano. valor (1) Si es requerido. valor (0) si no lo es.

Propiedades:
crmForm.FormType - Retorna el tipo de formulario. (creación, modificación, sólo lectura, etc)
crmForm.ObjectTypeCode -Retorna el código del tipo de entidad a la que pertenece el formulario.
crmForm.ObjectTypeName -Retorna el nombre de la entidad a la que pertenece el formulario.
crmForm.ObjectId -Retorna el id del objeto.
crmForm.isDirty - Retorno si hubo una molificación en un campo no guardada.

Ahora bien, a esta lista les podemos sumar todas estas que no están documentadas (ni soportadas, en teoría).:

Funciones:
crmForm.detachCloseAlert() - Elimina el cartel que nos indica si estamos seguros de cerrar el formulario luego de haber realizado una modificación no guardada.
crmForm.GetLabel(oControl) - Obtiene el label del campo
Parámetros:
oControl: Object. Objeto o campo (Ej: crmForm.accoutnumber)
crmForm.GetControl(sId) - Obtiene el objeto que por su id.
Parámetros:
sId: (String) id de campo (Ej: 'accountnumer')
crmForm.Close() -Cierra el formulario verificando si hay datos sin guardar (distinto a window.close())

Bueno eso es todo espero que les sea de utilidad.

Hasta la próxima!

Primer contacto con CRM 4.0 Titan

Hola a todos!... hoy la entrada va a ser breve y es simplemente para recomendarles que vean este videillo que realizó el amigo Marco Amoedo presentando algunas de las nuevas características del Microsoft CRM 4.0, y por sobre todo su nueva interfaz!!. Para ver el video click Aqui .

Saludos

Como agregar el logo de mi compañía en Microsoft CRM 3.0

Hoy les voy a comentar sobre una personalización que si bien no tiene gran utilidad funcional, hace que nuestro CRM sea un poco mas personalizado para nuestra compañía.

La idea es poder agregar una imagen (o logo), sobre la barra de negación lateral.

Por supuesto y antes que nada quiero aclarar que esta personalización no esta soportada por Microsoft.

Lo primero que tenemos que hacer es ubicar el archivo navbarpage.aspx en la carpeta \CRMWeb\_root de nuestro servidor de Microsoft CRM.

Luego lo editamos con el notepad, y buscamos la siguiente sección

</script>
<body class="leftBody">


Por ultimo entre ambas secciones insertamos la imagen con nuestro logo.

</script>
<img Src="../_imgs/logo.jpg"/>
<body class="leftBody">


Les recomiendo antes de hacer esto de realizar una copia del archivo original como backup.

Saludos

Utilizar JavaScript sobre la grilla de Microsoft CRM (CrmGrid)

En la entrada de hoy les voy a hablar sobre algunas funciones en JavaScript que utiliza Microsoft CRM sobre la grilla que muestra los registros de las diferentes entidades.
Claro esta, que todas estas funciones no están documentadas y no están soportadas para su utilización, lo que implica que pueden o no estar en próxima versiones del producto.

Lo ideal para utilizar todos estos métodos y propiedades es hacerlo en el isv.config, mediante un nuevo botón y utilizando el atributo JavaScript del mismo para realizar nuestro código y que este se ejecute al hacer click.

Por ejemplo:

<Grid><MenuBar><Buttons><Button Title="Actualizar" ToolTip="Actualizar" Icon="/_imgs/ico_18_1026.gif" WinParams="" JavaScript="crmGrid.Refresh();" /></Buttons></MenuBar></Grid>

Les paso algunos de los métodos y propiedades que pueden utilizar:


Métodos

crmGrid.Refresh() - Como su nombre lo indica actualiza la grilla.
crmGrid.CancelRefresh() - Cancela la actualización de la grilla.
crmGrid.Reset() -Reinicia la grilla, a diferencia del Refresh no utiliza la cache del control.
crmGrid.Print() - Presenta el contenido de la grilla para ser impreso.
crmGrid.ExportToExcel() -Exporta el contenido de la grilla a Excel.
getSelected('crmGrid') -Obtiene el id (GUID) del elemento seleccionado en la grilla.

Propiedades

crmGrid.PageNumber - Obtiene o establece el número de la página.
document.all['crmGrid'].InnerGrid.NumberOfRecords - Número de registros de la página.
document.all['crmGrid'].InnerGrid.SelectedRecords- Obtiene un array con el id, tipo de objeto y posición en la grilla.
document.all['crmGrid'].InnerGrid.MoreRecords - Retorna falso si estamos posicionados en la última página y true si quedan mas páginas.

Hasta la próxima!!!

Saludos

Como ocultar el asistente de formulario en Microsoft CRM 3.0

Una de las cosas que mas me han pedido en las implementaciones de Microsoft CRM, es la necesidad de ocultar el asistente de formulario que se despliega en algunas de las entidades.

La realidad es que Microsoft CRM no facilita (de una forma sencilla al menos), la manera de realizar esto.

La forma de realizarlo es la siguiente:


  1. En principio debemos exportar la entidad en cuestión, por ejemplo cuenta (account).
  2. Guardamos el xml y lo editamos con el notepad
  3. Buscamos el/ los atributos relatedInformationCollapsed y enablerelatedinformation.
  4. Modificamos los atributos y guardamos los cambios.
  5. Importamos la entidad y la publicamos.

Descripción de los atributos:

relatedInformationCollapsed="true" .Indica si el asistente inicia colapsado (Si el atributo no se encuentra el asistente se abre por defecto desplegado).

enablerelatedinformation="true" .Indica si el asistente esta habilitado, es decir si debe visualizar o no.

Como ultimo comentario les cuento que en la próxima versión de CRM (Microsoft CRM 4.0). Esta personalización ya puede realizar facilmente desde la intefase de personalización de formulario de cada entidad.

Bueno eso es todo. Espero sus comentarios

Saludos