lunes, 27 de febrero de 2012

Realizar relación lógica entre 2 campos

Hola amigos de este foro..
hoy no voy a colocar un blog o algun error que me ha salido, hoy voy a colocar un instructivo que me envio un amigo de Argentina (Mauro :-)), el cual le he ayudado a que expanda un poco mas si conocimiento en CRM 4.0 de la mejor manera..

espero esto les sirva es muy interesante, y recuerden pueden enviarme sus errores, articulos, etc que con gusto los publicare, para ayudar a muchos amigos  mas con los errores que nos han salido.

bueno auqi esta el articulo.


Instructivo para Realizar relación lógica entre 2 campos

El objetivo del presente documento es explicar cómo crear una relación entre 2 campos tipo Lookup de

una entidad X del sistema, a partir de la creación de 2 entidades personalizadas y la relación entre ellas.

El instructivo explica el procedimiento a partir del ejemplo que he realizado vinculando Países y

Provincias:

1. Crear las 2 entidades personalizadas necesarias. Para el caso del ejemplo: País y Provincia.

a. Ir a Settings -> Customization -> Customize Entities -> New.  


b. Especificar en los campos: 

i. Display Name: el nombre correspondiente.

ii. Plural Name: el nombre correspondiente.

iii. Ownership: seleccionar User u Organization, en base a los permisos de

seguridad que se le van a asignar.

iv. Por último, tildar la opción Settings, para que aparezca en este módulo. 


c. En la pestana Primary Attribute, especificar el nombre del campo que va a aparecer en

el formulario en Display Name y modificar el campo Name.



d. Save and Close -> Actions -> Publish -> Save and Close.

e. Repetir los puntos anteriores para la entidad faltante.

Nota: si al querer guardar aparece un mensaje de error informando que el nombre del atributo ya

existe, cambiar el campo Name o Display Name y volver a intentar guardar.

2. Crear una relación 1:N en la entidad primaria. Para el ejemplo, en País.

a. Ir a Settings -> Customization -> Customize Entities -> Doble click sobre la entidad

correspondiente.

b. Seleccionar del menú izquierdo 1:N Relationships -> New 1-to-Many Relationship.


c. Seleccionar de la lista del campo Related Entity la entidad secundaria. Para mi caso es

Provincia. Especificar el nombre del campo, para mi caso País (ya que es el va a aparecer

en el formulario de Provincia), o el que corresponda para este caso. Modificar el campo

Name con el nombre deseado y dejar las demás opciones por defecto -> Save and Close

-> Actions -> Publish -> Save and Close.


3. Agregar el campo lookup, para mi caso País, en la entidad relacionada o secundaria, Provincia.

a. Ir a Settings -> Customization -> Customize Entities -> Doble click sobre la entidad

correspondiente. En mi caso la secundaria es Provincia.

b. Seleccionar del menú izquierdo Form -> Doble click sobre Form.

c. Seleccionar del menú derecho Add field -> Tildar el campo País (para mi caso) o el que

corresponda -> OK -> Save and Close -> Actions -> Publish -> Save and Close.









Nota: hasta aquí se han creado las 2 entidades personalizadas y la relación entre las mismas. Con los

puntos siguientes se añade la relación a la entidad que contendrá los 2 campos lookup y el script

necesario para crear el filtro. 

4. Ingresar a la entidad principal y crear una relación N:1 para las 2 entidades que van a ser los

nuevos campos de dicho form.

a. Ir a Settings -> Customization -> Customize Entities -> Doble click sobre la entidad

correspondiente. Por ejemplo, Accounts.

b. Seleccionar del menú izquierdo N:1 Relationships -> New Many-to-1 Relationship.






c. Seleccionar de la lista del campo Primary Entity la entidad secundaria. Especificar el

nombre del campo que va a aparecer en el formulario en: Display Name y modificar el

campo Name si es necesario. Dejar las demás opciones por defecto -> Save and Close ->

Actions -> Publish -> Save and Close.






d. Repetir el punto c para la entidad faltante.

5. Configurar la vista Lookup de la entidad secundaria para que pueda buscar por la entidad

primaria.

a. <Nombre_Entidad> Lookup View






b. Seleccionar del menú derecho Add Find Columns -> Tildar los campos por los que voy a

desear filtrar para los campos lookup -> OK -> Save and Close.






6. Ingresar a la entidad principal donde quiero utilizar estos datos y agregar estos 2 campos tipo

lookup. Luego agregar el script correspondiente en el evento OnChange.

a. Ir a Settings -> Customization -> Customize Entities -> Doble click sobre la entidad

correspondiente. En mi caso la secundaria es Provincia.

b. Seleccionar del menú izquierdo Form -> Doble click sobre Form.

c. Seleccionar del menú derecho Add field -> Tildar los 2 campos que correspondan -> OK -

> Save and Close -> Actions -> Publish.

d. Doble click sobre el campo, para mi caso Pais -> Pestana Events -> Edit -> Tildar Event is

Enabled y copiar en el cuadro de texto:

var searchVal = crmForm.all.<nombre_campo1>.DataValue[0].name;

if(searchVal != null)

{

crmForm.all. <nombre_campo2>.Disabled = false;

crmForm.all. <nombre_campo2>.additionalparams = "search=" + searchVal;

}











e. -> OK -> OK -> Save -> Preview -> Create Form (para probar el funcionamiento) -> Save

and Close -> Actions -> Publish.