jueves, 29 de diciembre de 2011

Error con funciones CRM 4.0 getXMLResponseParent

Hola amigos, bueno este es mi primer blog,  desde hace rato estaba que lo hacía o no, pero por el día a día y por la pereza la verdad nunca lo terminaba.

Bueno por el día de hoy quiero compartirles algo bastante interesante que me paso en una migración de CRM 4.0 a CRM 2011
Primero que nada para los que no conocen CRM aquí les dejo un link donde pueden encontrar todo lo relacionado con esta herramienta.
bueno, para los que ya conocemos CRM sabemos que la versión 2011 cambio la forma de personalizar las entidades, las cuales se hacían antes por medio de JavaScript ahora se puede hacer por medio de fetch XML, dejo uno ejemplos de los cambios del código.
DESHABILITAR / HABILITAR CAMPOS
Xrm.Page.getControl(attribute”).setDisabled(true);
Xrm.Page.getControl(“attribute”).setDisabled(false);
MOSTRAR / OCULTAR CAMPOS
Xrm.Page.getControl (“attribute”).setVisible(true);
Xrm.Page.getControl (“attribute”).setVisible(false);
SET FOCUS
Xrm.Page.getControl(“attribute”).setFocus(true);
ESCONDER / MOSTRAR TAB
Xrm.Page.ui.tabs.get(1).setVisible(true);
Xrm.Page.ui.tabs.get(1).setVisible(false);
Bien ya entrando en materia,  lo que me paso es que en las personalizaciones de CRM 4.0 se usa o usaba unas funciones las cuales eran Funciones de procesamiento de respuesta XML ej:
·         ProcessXML
·         getParentValueFromXML
·         getXMLResponseParent
estas y otras funciones son usadas comúnmente en CRM 4.0 con el fin de traer datos de una base de datos dependiendo de un valor entregado.
Cuando realice la migración a CRM 2011 todo paso perfecto, claro esta se deben hacer unas cosillas por ahí pero nada del otro mundo.
Cuando entramos en la etapa de pruebas, me empezaron a reportar errores y errores que no se encontraba estas funciones, y efectivamente el CRM 2011 NO cuentas con estas funciones. Investigando en muchos lados  buscando me llevo a colocar foros en Microsoft para ver si podían ayudarme con mi pequeño gran error y nada todos me decían lo mismo, esas funciones no aparecen en CRM 2011 ni en 4 como las encontraste??  Y en vez de recibir respuesta recibía preguntas, pero doy gracias a todos los que me preguntaban cosas porque de verdad me ayudaron a investigar más y más sobre esta herramienta.. De verdad gracias a todos.. y gracias a los foros Microsoft son muy buenos…. J que tal la perla… pero de verdad son buenos.
Bueno después de 2 meses y nada de encontrar respuestas me dio por buscar en el que todo lo sabe SAN GOOGLE  y busque por la función que mas claro que eso, coloque función getXMLResponseParent  y saben a dónde me llevaba… nada más y nada menos que a las publicaciones que yo había realizado noooooooooooooo estaba ya por darme por perdido.
Así que me descargue el SDK de CRM 4.0 y realice un debugger usando visual studio. Net  y wala encontré la bendita función si señores use quien sabe que de mi cerebro y la encontré… lo único que hice fue modificar el archivo Globals de CRM 2011 para que me tomara este js donde están las funciones. Y lógicamente modificar el Js de las funciones para que el CRM 2011 me las tomara.
Gráficamente que hice… les voy a mostrar.
1.       Ingrese a mi sitio, o más bien a mi entidad personalizada, en CRM 4.0 donde use esta función.
Use la palabra debugger para abrir el paso a paso.

2.       Luego de guardar y publicar, fui a las opciones de internet >>Opciones Avanzadas y deshabilite el ítem: Deshabilitar depuración de scripts.

3.       Fui hasta la entidad y ejecute el evento change que es donde coloque el debugger en mi código, me sale la pantalla de debugger de visual studio.

Después de darle o.k me abrió la aplicación con vs 2008 pude hacer una depuración paso a paso mostrándome todos los métodos etc y logre llegar hasta el js que contenía la función.


Y me mostro el js que contenía la función.



Después de tener esto, lo demás fue más fácil, como les comente editar el archivo global del CRM 2011, para que me leyera la función, y lógicamente actualizar la función preLoadForms para que fuera útil con CRM 2011.

Pues amigos esta fue la solución que encontré espero que en algún momento les pueda ayudar..

Comentarios serán recibidos con agrado y nada a camellar pues, cualquier inquietud puede escribirme que con gusto les ayudare.

Saludos

Quiero aprovechar y darle las gracias a Atilio Rosas desarrollador de CRM Dynamics que me dio una luz en este proceso, dejo su blog por si es de su interés, lo pueden encontrar en

Gracias muchachos.

1 comentario:

  1. Hola!

    Ome que buen post! se le agradece ya que este tipo de errores no son soportados por Microsoft.

    Espero le sirva a muchas personas cuando estén realizando migraciones desde el CRM 4.0

    +10!

    Hernando.

    ResponderEliminar