25 marzo 2013
Dynamics CRM Polaris
Os dejo un link a un video muy intresante que hace un recorrido por CRM Polaris. Disponible ya para CRM Online con el RollUp 11 y próximanente disponible para CRM OnPremise.
Version multinavegador y con visión estilo "metro" para tabletas y dispositivos móviles.
Os lo recomiendo!
http://www.youtube.com/watch?feature=player_embedded&v=kjage6envUs
23 marzo 2013
Auditoría de datos
- Microsoft Dynamics CRM admite la auditoría de cambios en los datos de entidades y atributos según la organización, para ello utiliza particiones en SQL Server Enterprise Edition
- La auditoría en CRM incluye las siguientes compatibilidades:
- Entre las características no compatibles se incluyen las siguientes:
- La auditoría se habilita en tres niveles en CRM: organización, entidad y campo
- En este ejemplo vamos a iniciar la auditoría para los campos FullName y LastName de la entidad Contacto
- Marcamos el seguimiento de Auditoría a nivel de Campo
- A nivel de Entidad
- Y a nivel de Organización
- Desde el momento de inicio de auditoría, los cambios en los campos auditados serán registrados por CRM, puede realizarse el seguimiento de operaciones sobre entidad y campo desde la Vista Resumen de Auditorías
- Cada registro de Auditoría muestra la siguiente información sobre la operación realizada
Desde Innovar Tecnologías esperamos que este documento les sea de ayuda en su desarrollo
- La auditoría en CRM incluye las siguientes compatibilidades:
- Auditoría de entidades personalizadas y de sistema
- Auditoría de campos en entidades personalizadas y de sistema
- Auditoría de áreas (ventas, marketing, servicio)
- Auditoría de los cambios de privilegios
- Eliminación del registro de auditoría
- Auditoría de eventos de auditoría
- Auditoría de eventos de creación, eliminación y actualización de registros
- Auditoría de eventos de actualización de campos
- Auditoría de relaciones (1:N, N:1 y N:N)
- Auditoría de campos en entidades personalizadas y de sistema
- Auditoría de áreas (ventas, marketing, servicio)
- Auditoría de los cambios de privilegios
- Eliminación del registro de auditoría
- Auditoría de eventos de auditoría
- Auditoría de eventos de creación, eliminación y actualización de registros
- Auditoría de eventos de actualización de campos
- Auditoría de relaciones (1:N, N:1 y N:N)
- Entre las características no compatibles se incluyen las siguientes:
- No se puede registrar quién lee los datos y cuándo. Esto se aplica a la lectura mediante cualquier medio, incluidos los formularios, las vistas, los informes y las exportaciones de datos
- No se puede realizar un seguimiento de los cambios en los metadatos; por ejemplo, en el cambio de nombre de un campo
- No se puede realizar un seguimiento de los cambios en los metadatos; por ejemplo, en el cambio de nombre de un campo
- La auditoría se habilita en tres niveles en CRM: organización, entidad y campo
- En este ejemplo vamos a iniciar la auditoría para los campos FullName y LastName de la entidad Contacto
- Marcamos el seguimiento de Auditoría a nivel de Campo
- A nivel de Entidad
- Y a nivel de Organización
- Desde el momento de inicio de auditoría, los cambios en los campos auditados serán registrados por CRM, puede realizarse el seguimiento de operaciones sobre entidad y campo desde la Vista Resumen de Auditorías
- Cada registro de Auditoría muestra la siguiente información sobre la operación realizada
Desde Innovar Tecnologías esperamos que este documento les sea de ayuda en su desarrollo
21 febrero 2013
Application Ribbon
- La ribbon de aplicaciones contiene los tabs y grupos de botones comunes a todas las entidades en CRM
- Si tenemos que personalizar el despliegue de alguna de sus secciones o botones debemos tener en cuenta que además de las reglas custom que incluyamos, estos ya tienen además las suyas propias, con lo que debemos añadir en lugar de sobrescribir las propiedades de display, enable y custom actions
- En este ejemplo vamos a incluir una DisplayRule para el botón Búsqueda Avanzada
- El primer paso será crear una solución que incluya la ribbon de aplicaciones y exportarla
- El xml de customizaciones es mostrado a continuación
- Para implementar el nuevo despliegue del botón Advanced Find, haremos uso del recurso de SDK applicationribbon.xml, y haremos una búsqueda para encontrar el valor del atributo Command de este botón, en este caso Mscrm.OpenGridAdvancedFind
- Conociendo el Command que localiza en la ribbon nuestro botón, implementaremos la siguiente CommandDefinition en su sección correspondiente CommandDefinitions
- Observe que en nuestra customización hemos vuelto a incluir el tag Actions definido en el archivo de SDK applicationribbon.xml
- La implementación de la regla de display Mscrm.OpenGridAdvancedFind.Display es la siguiente
- Guardaremos los cambios e importaremos la solución customizada, y publicaremos los resultados
- El resultado de este despliegue es que el botón Búsqueda Avanzada se muestra sólo para la entidad seleccionada Contacto
Puede consultar una lista completa de las DisplayRules en el sitio oficial de Microsoft
Desde Innovar Tecnologías esperamos que este documento les sea de ayuda en su desarrollo
- Si tenemos que personalizar el despliegue de alguna de sus secciones o botones debemos tener en cuenta que además de las reglas custom que incluyamos, estos ya tienen además las suyas propias, con lo que debemos añadir en lugar de sobrescribir las propiedades de display, enable y custom actions
- En este ejemplo vamos a incluir una DisplayRule para el botón Búsqueda Avanzada
- El primer paso será crear una solución que incluya la ribbon de aplicaciones y exportarla
- El xml de customizaciones es mostrado a continuación
<ImportExportXml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Entities></Entities>
<Roles></Roles>
<Workflows></Workflows>
<FieldSecurityProfiles></FieldSecurityProfiles>
<Templates />
<RibbonDiffXml>
<CustomActions />
<Templates>
<RibbonTemplates Id="Mscrm.Templates"></RibbonTemplates>
</Templates>
<CommandDefinitions />
<RuleDefinitions>
<TabDisplayRules />
<DisplayRules />
<EnableRules />
</RuleDefinitions>
<LocLabels />
</RibbonDiffXml>
<EntityMaps />
<EntityRelationships />
<OrganizationSettings />
<optionsets />
<Languages>
<Language>3082</Language>
</Languages>
</ImportExportXml>
- Para implementar el nuevo despliegue del botón Advanced Find, haremos uso del recurso de SDK applicationribbon.xml, y haremos una búsqueda para encontrar el valor del atributo Command de este botón, en este caso Mscrm.OpenGridAdvancedFind
- Conociendo el Command que localiza en la ribbon nuestro botón, implementaremos la siguiente CommandDefinition en su sección correspondiente CommandDefinitions
<CommandDefinitions>
<CommandDefinition Id="Mscrm.OpenGridAdvancedFind">
<EnableRules/>
<DisplayRules>
<DisplayRule Id="Mscrm.OpenGridAdvancedFind.Display" />
</DisplayRules>
<Actions>
<JavaScriptFunction FunctionName="Mscrm.RibbonActions.openAdvancedFind"
Library="/_static/_common/scripts/RibbonActions.js">
<CrmParameter Value="SelectedControl" />
</JavaScriptFunction>
</Actions>
</CommandDefinition>
</CommandDefinitions>
- Observe que en nuestra customización hemos vuelto a incluir el tag Actions definido en el archivo de SDK applicationribbon.xml
- La implementación de la regla de display Mscrm.OpenGridAdvancedFind.Display es la siguiente
<DisplayRule Id="Mscrm.OpenGridAdvancedFind.Display">
<EntityRule AppliesTo="SelectedEntity"
Context="HomePageGrid" EntityName="contact" />
</DisplayRule>
- Guardaremos los cambios e importaremos la solución customizada, y publicaremos los resultados
- El resultado de este despliegue es que el botón Búsqueda Avanzada se muestra sólo para la entidad seleccionada Contacto
Puede consultar una lista completa de las DisplayRules en el sitio oficial de Microsoft
Desde Innovar Tecnologías esperamos que este documento les sea de ayuda en su desarrollo
08 febrero 2013
Secure Configuration en Plugins
- En CRM es posible enviar información parametrizada a un plugin para ser utilizada durante su ejecución, haciendo uso de los espacios Secure y Unsecure en la configuración durante el registro del plugin
- En este ejemplo vamos a desarrollar un plugin que envíe un email al Contacto principal de una cuenta cuando esta es modificada
- Para ello implementaremos el constructor del plugin que incluye los espaciós de configuración como parámetros
- Al realizar el registro del plugin incluiremos datos de Configuración Segura, como se indica a continuación
- Para el desarrollo de este ejemplo registraremos una PostEntityImage con los dos siguientes atributos
- El resultado de una actualización y la ejecución del plugin es el siguiente
- Con el uso de esta configuración en el plugin conseguimos dinamizar los valores de los parámetros durante la ejecución del plugin
Desde Innovar Tecnologías esperamos que este documento les sea de ayuda en su desarrollo
http://www.fotografodebodasbarcelonafg.com
- En este ejemplo vamos a desarrollar un plugin que envíe un email al Contacto principal de una cuenta cuando esta es modificada
- Para ello implementaremos el constructor del plugin que incluye los espaciós de configuración como parámetros
public class Plugin : IPlugin
{
private IPluginExecutionContext context;
private IOrganizationServiceFactory factory;
private IOrganizationService service;
protected string TextoEmail;
public Plugin(string unsecureConfig, string secureConfig)
{
TextoEmail = secureConfig;
}
public void Execute(IServiceProvider serviceProvider)
{
context = (IPluginExecutionContext)
serviceProvider.GetService(typeof(IPluginExecutionContext));
factory = (IOrganizationServiceFactory)
serviceProvider.GetService(typeof(IOrganizationServiceFactory));
service = factory.CreateOrganizationService(context.UserId);
try
{
if (context.PostEntityImages["account"].Contains("primarycontactid"))
{
Guid primaryContactId = ((EntityReference)
context.PostEntityImages["account"]["primarycontactid"]).Id;
Email email = new Email();
ActivityParty fromParty = new ActivityParty();
fromParty.PartyId =
new EntityReference(SystemUser.EntityLogicalName, context.UserId);
ActivityParty toParty = new ActivityParty();
toParty.PartyId =
new EntityReference(Contact.EntityLogicalName, primaryContactId);
email.From = new ActivityParty[] { fromParty };
email.To = new ActivityParty[] { toParty };
email.Description = TextoEmail;
email.Subject = "Su cuenta " +
context.PostEntityImages["account"]["name"].ToString() +
" ha sido modificada ";
Guid emailId = service.Create(email);
SendEmailRequest sendReq = new SendEmailRequest();
sendReq.IssueSend = true;
sendReq.TrackingToken = "";
sendReq.EmailId = emailId;
service.Execute(sendReq);
}
}
catch (InvalidPluginExecutionException)
{
throw;
}
catch (Exception ex)
{
throw new InvalidPluginExecutionException(ex.Message);
}
}
}
- Al realizar el registro del plugin incluiremos datos de Configuración Segura, como se indica a continuación
- Para el desarrollo de este ejemplo registraremos una PostEntityImage con los dos siguientes atributos
- El resultado de una actualización y la ejecución del plugin es el siguiente
- Con el uso de esta configuración en el plugin conseguimos dinamizar los valores de los parámetros durante la ejecución del plugin
Desde Innovar Tecnologías esperamos que este documento les sea de ayuda en su desarrollo
http://www.fotografodebodasbarcelonafg.com
20 enero 2013
Dynamics CRM Mobile
- La integración de CRM con dispositivos móviles es un paso imprescindible para toda red comercial independientemente del volumen de la empresa
- En este apartado exponemos las características de Resco Mobile CRM, una de las herramientas más versátiles a la hora de implementar conexión mobile
- Para una integración de primer nivel, utilizaremos la herramienta Resco Woodford, consistente en un entorno extensión de nuestro CRM, mediante el cual crearemos y publicaremos un Proyecto Mobile
- Para ello conectamos Woodford a nuestro CRM
- Y creamos un nuevo Proyecto Mobile
- En este proyecto incluiremos nuestra entidad custom new_proveedor, incluida en la lista de entidades disponibles, la habilitaremos para su despliegue. Seguidamente marcaremos los campos custom para el proyecto
- Para que el despliegue de la entidad en los distintos dispositivos sea funcionalmente completo, crearemos un formulario de edición de datos, y una vista personalizada de los datos
- Para que la entidad custom despliegue con un icono predeterminado, incluiremos un fichero .png con el nombre de nuestra entidad, en este caso new_proveedor.png, en un fichero zip, y pulsaremos la opción Add Images en la ribbon de Woodford
- En este punto publicaremos el proyecto mobile y sincronizaremos nuestro dispositivo con el entorno CRM
- El resultado desde un dispositivo móvil Windows Phone es el siguiente
- Vista de Calendario Mobile
- Una entidad Account desplegará las siguientes opciones
- La edición de datos de una entidad Contact desplegará del siguiente modo
- Los cambios realizados se sincronizarán bidireccionalmente con la base de datos según la configuración establecida
- Para más información consulte el sitio web oficial de Resco Mobile CRM
Desde Innovar Tecnologías esperamos que este documento les sea de ayuda en su desarrollo
- En este apartado exponemos las características de Resco Mobile CRM, una de las herramientas más versátiles a la hora de implementar conexión mobile
- Para una integración de primer nivel, utilizaremos la herramienta Resco Woodford, consistente en un entorno extensión de nuestro CRM, mediante el cual crearemos y publicaremos un Proyecto Mobile
- Para ello conectamos Woodford a nuestro CRM
- Y creamos un nuevo Proyecto Mobile
- En este proyecto incluiremos nuestra entidad custom new_proveedor, incluida en la lista de entidades disponibles, la habilitaremos para su despliegue. Seguidamente marcaremos los campos custom para el proyecto
- Para que el despliegue de la entidad en los distintos dispositivos sea funcionalmente completo, crearemos un formulario de edición de datos, y una vista personalizada de los datos
- Para que la entidad custom despliegue con un icono predeterminado, incluiremos un fichero .png con el nombre de nuestra entidad, en este caso new_proveedor.png, en un fichero zip, y pulsaremos la opción Add Images en la ribbon de Woodford
- En este punto publicaremos el proyecto mobile y sincronizaremos nuestro dispositivo con el entorno CRM
- El resultado desde un dispositivo móvil Windows Phone es el siguiente
- Vista de Calendario Mobile
- Una entidad Account desplegará las siguientes opciones
- La edición de datos de una entidad Contact desplegará del siguiente modo
- Los cambios realizados se sincronizarán bidireccionalmente con la base de datos según la configuración establecida
- Para más información consulte el sitio web oficial de Resco Mobile CRM
Desde Innovar Tecnologías esperamos que este documento les sea de ayuda en su desarrollo
06 enero 2013
Aplicando filtros a campos Lookup
- Dynamics CRM 2011 introdujo el concepto de restricción de lookups para mostrar sólo los registros necesarios basándose en un criterio predefinido, pudiendo así definir desde qué conjunto de registros queremos seleccionar, facilitando la selección
- En este ejemplo vamos a filtrar el campo lookup Contacto Principal de la entidad Cuentas, para que muestre sólo los Contactos que tienen por Cliente primario al registro activo
- Para editar las propiedades de filtrado accedemos al formulario de la entidad Cuentas en modo diseño
- Seleccionamos el campo Contacto primario y editamos sus propiedades:
- En el grupo 'Filtrado de registros seleccionados' activamos el checkbox 'Mostrar sólo los registros donde'
- Seguidamente, en el grupo 'Propiedades adicionales', establecemos las siguientes opciones
- El resultado con la configuración establecida es el siguiente
Desde Innovar Tecnologías esperamos que este documento les sea de ayuda en su desarrollo
- En este ejemplo vamos a filtrar el campo lookup Contacto Principal de la entidad Cuentas, para que muestre sólo los Contactos que tienen por Cliente primario al registro activo
- Para editar las propiedades de filtrado accedemos al formulario de la entidad Cuentas en modo diseño
- Seleccionamos el campo Contacto primario y editamos sus propiedades:
- En el grupo 'Filtrado de registros seleccionados' activamos el checkbox 'Mostrar sólo los registros donde'
- Seguidamente, en el grupo 'Propiedades adicionales', establecemos las siguientes opciones
- El resultado con la configuración establecida es el siguiente
Desde Innovar Tecnologías esperamos que este documento les sea de ayuda en su desarrollo
16 noviembre 2012
Consultando la Configuración de Usuario
- La configuración de cada usuario incluido en la organización de CRM 2011 está establecida en la entidad de sistema UserSettings
- En este ejemplo vamos a comprobar los valores de configuración para el usuario actual, obteniendo los datos de campos significativos como "localeid", "timezonecode", o "dateformatstring", establecidos en su configuración
- El código de consulta es el siguiente
- Y el resultado a continuación
- Mediante una sencilla consulta podemos comprobar en una vista valores de configuración importantes como configuración de idioma: 1033 (Inglés), código de zona horaria: 105 ((UTC+01:00) Bruselas, Copenhague, Madrid, París), formatos de fecha y hora, ids, etc.
Desde Innovar Tecnologías esperamos que este documento les sea de ayuda en su desarrollo
Web de la empresa
- En este ejemplo vamos a comprobar los valores de configuración para el usuario actual, obteniendo los datos de campos significativos como "localeid", "timezonecode", o "dateformatstring", establecidos en su configuración
- El código de consulta es el siguiente
static void RetrieveCurrentUsersSettings()
{
UserSettings currentUserSettings = orgService.RetrieveMultiple(
new QueryExpression(UserSettings.EntityLogicalName)
{
ColumnSet = new ColumnSet(new string[]
{
"localeid", "timezonecode", "dateformatstring", "timeformatstring",
"systemuserid", "businessunitid", "currencyformatcode",
"currencydecimalprecision", "homepagesubarea",
}),
Criteria = new FilterExpression
{
Conditions = {
new ConditionExpression("systemuserid", ConditionOperator.EqualUserId)}
}
}).Entities[0].ToEntity<UserSettings>();
foreach (KeyValuePair<string, object> attribs in currentUserSettings.Attributes)
{
Console.WriteLine(attribs.Key + " : " + attribs.Value);
}
}
- Y el resultado a continuación
- Mediante una sencilla consulta podemos comprobar en una vista valores de configuración importantes como configuración de idioma: 1033 (Inglés), código de zona horaria: 105 ((UTC+01:00) Bruselas, Copenhague, Madrid, París), formatos de fecha y hora, ids, etc.
Desde Innovar Tecnologías esperamos que este documento les sea de ayuda en su desarrollo
Web de la empresa
Suscribirse a:
Entradas (Atom)


































