Dynamics CRM

Acceder a los campos de un lookup desde un formulario.

Vamos a ver en este post un código JavaScript de como podemos recuperar el valor de los campos de un elemento referenciado en un lookup en un formulario de Microsoft Dynamics CRM 4.0.

La solución más habitual, pero también mas costosa es hacer un Fetch a partir del campo que deseamos y con este construir un SOAP que nos devuelva el elemento que queremos.

Propongo aquí una manera que aunque devuelva sólo el valor del campo, es más rápida de llevar a cabo y funciona a la perfección.

function OnCrmPageLoad()
{
crmForm.all.<nombre_campo>.attachEvent("onafterselect",
OnLocationSelected);
}



function OnLocationSelected()
{
// Cogemos el elemento del lookup que queremos
var lookupValues = crmForm.all.<nombre_campo>.items[0].keyValues;
// Cogemos el campo que deseamos del lookup
var nota = lookupValues.<nombre_campo>.value;
// Modificamos el campo que queramos con el valor recogido antes.
crmForm.all.<nombre_campo>.DataValue = nota;
}



OnCrmPageLoad();


Ojo! Hay que tener en cuenta que el campo que queramos recoger tiene que estar en la vista de búsqueda de la entidad a la que pertenece el lookup.

2 comentarios:

  Unknown

28 de enero de 2009, 9:27

Genial este truquillo. Sólo quería comentar una cosa. ¿Sabes si tiene algún inconveniente utilizar esta funcionalidad en el onchange en vez de asignarlo al evento onafterselect?

Gracias de nuevo! Da recuerdos a Ocaña de mi parte xD.

  doberman

6 de febrero de 2012, 18:11

Estimado Jose, mucho gusto.
Estoy empezando en CRM 4.0, y necesito ayuda para una necesidad, que no he podido obtener en ningun foro hasta ahora.
En mi pais, cada factura debe tener un nro unico fiscal NCF, el cual es una serie incremental, y son diferentes segun el tipo de nro.
Cree dos campos en Factura: new_TipoNCF(picklist) y new_NroNCF, luego cree una entidad que tiene los nros de las series: Entidad: new_NCF, campos: new_TipoNCF y new_nroNCFACT
Lo que necesito: Que al grabar una factura, se asigne el valor new_nroNCFACT al campo new_NroNCF,en el evento OnSave,
o sea no se como obtener el valor de un campo de otra entidad,
espero haber sido claro, desde ya muchisimas gracias.
carlos.