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.
lunes, 30 de abril de 2012
martes, 17 de abril de 2012
Windows 2008 R2 bootable con Windows 7 instalado
¿Estás empezando en esto de la virtualización o crear una nube (y no de café)?
Es sencillo:
Eso es todo, os dejo un tutorial donde se explica este proceso en Youtube:
Pues aquí os dejo este post para preparar un equipo con una maquina virtual (que será Windows Server 2008 R2). La idea es 'cacharrear' con el PC/Portatil procurando incidir lo menos posible en la configuración ya existente (Windows 7 instalado).
Es sencillo:
- Iniciar el equipo con el DVD de Windows 20008 y 'siguiente, siguiente...' hasta llegar a la pantalla donde tienes que seleccionar la unidad en la que vas a instalar.
- Pulsar Mayusculas + F10 para que aparezca la ventana de comandos. Vereis que directamente sale la ruta X:\Source>
- Hay que averiguar la letra de la unidad donde está instalado el sistema. Para ello basta con probar en la linea de comandos DIR C:\ ó DIR D:\ ó DIR E:\ etc....
- Ahora teclead el comando DISKPART. Es una utilidad de windows para hacer particiones, crear discos virtuales, etc...
- Creamos el disco virtual con el comando:
CREATE VDISK FILE="D:\nombre_deldisco.vhd" TYPE=EXPANDABLE MAXIMUM=40000 - Adjuntamos el disco virtual con el comando:
ATTACH VDISK - Salimos del DISKPART con el comando EXIT.
Eso es todo, os dejo un tutorial donde se explica este proceso en Youtube:
Etiquetas:
boot,
diskpart,
vdisk,
Windows 2008,
Windows 7
jueves, 30 de junio de 2011
Cómo incluir ficheros .JS externos en nuestro CRM 4.0
Desarrollar introduciendo javascript en los eventos de los formularios es un verdadero coñazo porque tienes que grabar, publicar, probar, etc... Existe un método más sencillo y es, referenciar en el evento del formulario un fichero .js publicado en un sitio externo pudiendo ser incluso en una parte del site de nuestro CRM. De este modo solo tenemos que edita el .js con Visual Studio y probarlo directamente una vez subidos los cambios.
Cread un .js que contenga al menos una función llamada ejecutarOnLoad() y dentro de ella todo el código que querais que ejecute el evento en el formulario. Publicadlo y después escribid este código en el evento OnLoad()
Publicar la entidad y listo!
Cread un .js que contenga al menos una función llamada ejecutarOnLoad() y dentro de ella todo el código que querais que ejecute el evento en el formulario. Publicadlo y después escribid este código en el evento OnLoad()
var scriptEntidad = document.createElement('script');
scriptEntidad.language = 'javascript';
scriptEntidad.src = 'http://servidor/sitioweb/JS/vacacionesOnLoad.js';
scriptEntidad.onreadystatechange = OnScriptReadyState;
document.getElementsByTagName('head')[0].appendChild(scriptEntidad);
function OnScriptReadyState() {
if (event.srcElement.readyState == "loaded" || event.srcElement.readyState == "complete") {
ejecutarOnLoad();
}
}
Publicar la entidad y listo!
jueves, 4 de noviembre de 2010
¿Cómo eliminar un equipo?
Al menos la versión 4.0 del Dynamics no permite desde su interfaz eliminar un equipo, un poco raro ¿verdad? bueno, no pasa nada, para todo hay una solución :-)
Tenemos que acceder a la base de datos del CRM y borrar el registro del equipo de la tabla TeamBase. Previamente deberemos quitar a los integrantes del equipo.
Nota: Existen dos tablas (Team y TeamBase) pero con solo eliminar el registro de TeamBase es suficiente porque automáticamente se elimina de la otra tabla.
Tenemos que acceder a la base de datos del CRM y borrar el registro del equipo de la tabla TeamBase. Previamente deberemos quitar a los integrantes del equipo.
Nota: Existen dos tablas (Team y TeamBase) pero con solo eliminar el registro de TeamBase es suficiente porque automáticamente se elimina de la otra tabla.
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í:
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.
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.
miércoles, 22 de septiembre de 2010
Vista asociada en un Iframe
Por requerimientos del cliente (como siempre) necesitaba poner en una pestaña la vista asociada de una entidad relacionada con la del formulario principal ¿que qué es esto? me explico: Tengo una entidad personalizada que llamamos Linea de venta (algo así como una linea de un presupuesto) que está relacionada con las Ofertas en N:1 respectivamente. El cliente no quiere hacer más clics de los necesarios por lo que me veo a mostrar la vista asociada de las lineas de venta de la oferta directamente en una de las pestañas del formulario, ¿dónde? en un Iframe, y aquí os pego el código:
En el evento OnLoad del formulario:
Notas:
"new_quote_new_linea" es el nombre de la relación 1:N entre ambas entidades.
IFRAME_view es el nombre del frame donde vamos a colocar la vista asociada.
En el evento OnLoad del formulario:
function GetFrameSource(tabSet) {
if (crmForm.ObjectId != null) {
var oId = crmForm.ObjectId;
var oType = crmForm.ObjectTypeCode;
var security = crmFormSubmit.crmFormSubmitSecurity.value;
return "areas.aspx?oId=" + oId + "&oType=" + oType + "&security=" + security + "&tabSet=" + tabSet;
}
else {
return "about:blank";
}
}
crmForm.all.IFRAME_view.src = GetFrameSource("new_quote_new_linea");
crmForm.all.IFRAME_view.allowTransparency=true;
Notas:
"new_quote_new_linea" es el nombre de la relación 1:N entre ambas entidades.
IFRAME_view es el nombre del frame donde vamos a colocar la vista asociada.
miércoles, 15 de septiembre de 2010
Aumentar en número de registros por página
Como sabéis existe un límite de registros por página que puede definir el usuario en el menú Herramientas > Opciones. El máximo que puedes elegir es 250 registros.
Pues con una pequeña consulta y un Update podemos cambiarlo y poner la cantidad que queramos.
Ahí va:
Pues con una pequeña consulta y un Update podemos cambiarlo y poner la cantidad que queramos.
Ahí va:
UPDATE UserSettings SET PagingLimit = 10000 WHERE SystemUserId = (SELECT su.SystemUserId FROM SystemUser su WHERE su.FullName Like 'Administrador%')
Suscribirse a:
Entradas (Atom)
