Mostrando entradas con la etiqueta Funciones. Mostrar todas las entradas
Mostrando entradas con la etiqueta Funciones. Mostrar todas las entradas

viernes, 10 de febrero de 2017

Llamar a función desde popup en CRM con Javascript

Pongámonos en situación, en un CRM 2016 online, desde el formulario principal de Contacto queremos abrir un popup y una vez abierto, desde éste llamar a una función que está en el formulario de Contacto.

Tenemos un fichero contacto.js donde cargamos toda la lógica de negocio de javascript en relación a la entidad Contacto. En la configuración del formulario le añadimos al evento OnLoad la función onLoadContacto que estará en el .js

El popup se abrirá desde uno de los botones del ribbon y queremos desde este popup llamar a una función que está en contacto.js ¿cómo?

En el parent, que es contacto.js añadimos el siguiente código a la función onLoadContacto()

function onLoadContacto() {
    Xrm.Page.test = test;
}

Además creamos la función que se llamará desde el popup:

function test() {
   alert('test');
}

Desde el formulario del popup sólo hay que poner la siguiente instrucción:

window.top.opener.Xrm.Page.test();

lunes, 30 de abril de 2012

Valores de los Picklist en tus consultas SQL

Si te dedicas a personalizar el CRM de tu compañía lo más probable es que ya le hayas metido mano "por debajo" al entramado de SQL. Y este código que os paso aquí es bastante útil a la hora de obtener el literal de un picklist para una consulta o report.

Es tan sencillo como crearos una función en la BD del CRM, tal que así:

CREATE FUNCTION ObtenerValor (  @entidad varchar(50),
@atributo varchar(50),
@id int
)
RETURNS varchar(500)
BEGIN
DECLARE  @return varchar(500)
SET @return = (

SELECT StringMap.Value AS DisplayValue
FROM StringMap 
 INNER JOIN MetadataSchema.Entity 
 ON StringMap.ObjectTypeCode = etadataSchema.Entity.ObjectTypeCode
WHERE (MetadataSchema.Entity.Name Like @entidad)
AND (StringMap.AttributeName Like @atributo)  
AND (StringMap.AttributeValue = @id)

)
return @return
END

y después la llamáis en vuestra consulta:

SELECT 
 dbo.ObtenerValor('new_candidato', 'New_Departamento', c.New_Departamento) AS DEPARTAMENTO
FROM New_candidatoExtensionBase

Acordaos de darle permisos de ejecución de la función al usuario que lance la query.