jueves, agosto 21, 2008

CRM, Importaciones y Picklist

Hace casi 2 semanas que cambie la infraestructura por CRM, aunque ya llevo casi 2 años conociendo el producto y apoyando los proyectos de CRM ahora soy parte del Equipo y estoy feliz :)

CRM es un producto que hace uso de casi todos los productos con los que he trabajado, se instala sobre Windows Server, usa bases de datos SQL Server, la autenticacion usa Active Directory y el envio de correo es a traves de Exchange, es una aplicacion Web sobre Internet Information Server, es orientado al objeto bastante facil de customizar, le puedes incorporar javascripts, en fin, es como aplicar todo aquello que he aprendido, me gusta.

Cuando se presenta un problema una de las primeras cosas que hago es revisar los logs de errores y buscar en la base de conocimientos ya sea en technet o en el Partner Source, sin embargo a veces no hay documentacion de lo que busco y no queda mas que comenzar a ver distintas alternativas hasta dar con una solucion.

Este fue el caso que tuve con las importaciones, estas se caian y no mostraban error, llegaban al paso de transformacion y quedaban en un status de incorrecto sin dar mas informacion.

Al menos sabia que campo me estaba dando el error, asi que me arme de un plan de accion y a hacer pruebas.

Una habilidad que siento tener y me encanta es esa mezcla entre intuicion y logica, la primera me dice por donde podria estar la solucion y la segunda me ayuda a identificarla.

Despues de algunas horas en el tema, en donde conoci mucho de la metadata de CRM logre identificar que estaba ocurriendo y aunque se sabe que hacer para evitar el problema aun no tengo la justificacion tecnica y sigo sin encontrar documentacion del tema en los sitios de Microsoft.

En las importaciones en CRM 4, los campos de tipo Picklist no deben tener mas de 89 elementos.

Para saber los elementos que contiene este picklist creo que les sera util la siguiente query.

Select Label from MetadataSchema.AttributePicklistValue P, MetadataSchema.LocalizedLabel L
where P.AttributeId = '6E081E95-8B8A-4C39-AF16-74652C9001C0'
and P.AttributePicklistValueId = L.ObjectId
order by Label


Saludos!

Isa

4 comentarios:

Pukitta+ dijo...

Isabel, como te enteraste de ese problema de la importación de registros con el picklist???
Esa definición de encuentra en algún lado?
Tienes alguna recomendación para hacer la carga de registros cuando existe un picklist como más de 100 valores???

Isabel de la Barra dijo...

Holas!

Me entere por que me toco verlo, no pude encontrar una definicion o documentacion al respecto, mas bien fue un tema de prueba y error, estuve buscando en foros y lei que estaba reportado y estan trabajando en un hotfix pero hasta el momento no he visto que salga alguno relacionado con el tema.

Con que objetivo un picklist debiera tener tantos valores? No es mejor crear una entidad y relacionarla mediante un lookup?
Isa

Pukitta+ dijo...

Isabel,

Microsoft ya está enterado del problema.
Encontramos un link con información:
http://forums.microsoft.com/Dynamics/ShowPost.aspx?PostID=3629787&SiteID=27

Estamos a la espera de que nos envien la solución.

Igualmente se resuelve con lo siguiente:
ejecute la siguiente linea de script sobre la base de datos de MSCRM_CONFIG, recuerde siempre mantener un backup actualizado de la misma antes de realizar este tipo de modificaciones:
----------
update DeploymentProperties set IntColumn = 1000 where ColumnName = 'ImportPickListBatchSize'

Isabel de la Barra dijo...

habia visto ese post pero no el script, voy a hacer pruebas y te comento.

Gracias!

Isa