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

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.


miércoles, 27 de octubre de 2010

Incluir un link referente a una entidad en emails con un Triggers

Esto es otra opción además de la que anteriormente escribí en el post Incluir un link referente a una entidad bastante más sencilla (desde mi punto de vista) aunque tocando la base de datos del CRM, lo que puede poner nervioso a más de uno. Pero a mi me funciona :-)

PASO 1:
Crear un atributo de tipo nvarchar con una longitud de 250 en la entidad que queramos al que llamare 'new_enlace', en mi caso en una entidad personalizada llamada "new_vacaciones". Publicamos los cambios en la entidad.

PASO 2:
Hay que crear un Trigger tal que así:
CREATE TRIGGER [dbo].[TR_Link_Vacaciones] ON [dbo].[New_vacacionesExtensionBase]
AFTER INSERT
AS
DECLARE @ID AS uniqueidentifier
BEGIN
 SET NOCOUNT ON
 SELECT @ID = (SELECT New_vacacionesId FROM Inserted )
 UPDATE New_vacacionesExtensionBase
 SET New_enlace = '<a href=''http://miservidorCRM/UNIDADPRINCIPAL/userdefined/edit.aspx?etc=10025&id=' + cast(@ID AS nvarchar(50)) + '''>aquí.</a>'
END

PASO 3:
Agregar al cuerpo del email del workflow de turno la típica frase:
"Para visualizar este registro puede hacer clic" y añadimos el campo 'new_enlace' de la entidad 'new_vacaciones'. Obsérvese que el tag href ya lleva el texto 'aquí.' por lo que quedaría completa la frase.