Mostrando entradas con la etiqueta SQL Server. Mostrar todas las entradas
Mostrando entradas con la etiqueta SQL Server. Mostrar todas las entradas
sábado, 18 de mayo de 2013
Nueva versión del CRM "Implementation Guide"
Hola, Microsoft ha publicado una nueva actualización del Microsoft Dynamics CRM 2011 Implementation Guide. Esta disponible para su descarga en el Download Center: http://www.microsoft.com/en-us/download/details.aspx?id=3621
El resumen de lo que incluye está en el siguiente enlace: http://technet.microsoft.com/en-us/library/hh699811.aspx
Este documento recomiendo que lo tengan presente todos ya que es muy útil a nivel general para implentaciones de Dynamics CRM.
un saludo,
Etiquetas:
documentacion,
Sistemas,
SQL Server
sábado, 28 de abril de 2012
Error al Importar la base de datos de CRM en SQL Server Standar Edition
Muchas veces para "llevarnos" un CRM de un servidor a otro, lo hacemos directamente a través de un backup de la base de datos SQL Server.
Básicamente consiste en hacer un backup normal de la base de datos en el servidor SQL Server del CRM, y restaurarla en el servidor SQL del CRM de destino.
Luego simplemente se importa con el Administrador de implementaciones de CRM, y listo, hemos movido una implantación de CRM.
En la "vida real" nos encontramos con escenarios que nunca son como los ideales o como los esperamos.
Existe un error documentado por la gente de soporte de Microsoft que impide imporar un backup de un Base de datos SQL Server Enterprise en una de version Standar.
Básicamente nos da un error commo el siguiente
Restore failed for Server 'SQLServerName'.Este error puede ser resuelto mediante la ejecución de un Script antes de hacer el backup de la Base de datos.
Additional information:
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
Database 'Org_MSCRM' cannot be started in this edition of SQL Server because it contains a partition function 'AuditPFN'. Only Enterprise edition of SQL Server supports partitioning. Database 'Org_MSCRM' cannot be started because some of the database functionality is not available in the current edition of SQL Server. (Microsoft SQL Server, Error: 905)
Para más información hacerca de este error ir a Soporte de Microsoft a esta URL:
http://support.microsoft.com/kb/2567984
Etiquetas:
Errores,
Sistemas,
SQL Server
martes, 1 de marzo de 2011
Paginación a mas de 250 registros
Muchos usuarios suelen preguntar como ampliar la páginación de los registros en las vistas. Como ya saben, esto solo se puede modificar a nivel de usuario, desde 25 registros hasta 250 como máximo.
Pero que pasa si queremos poner por ejemplo 500 registros?
Pues, esto se puede hacer, pero de forma no soportada, y además que lo he probado y no lo recomiendo.
Lo que hay que hacer es:
Por cierto, esto funciona también para CRM 2011 (ojo que hay que hacer IISRESET para que recoja los cambios):
Pero que pasa si queremos poner por ejemplo 500 registros?
Pues, esto se puede hacer, pero de forma no soportada, y además que lo he probado y no lo recomiendo.
Lo que hay que hacer es:
UPDATE UserSettingsBase set PagingLimit=500 WHERE SystemUserId=''
![]() |
| Vista de ejemplo con 500 registros como tamaño de paginación CRM 4.0 |
Además de no recomendar esto porque no está soportado, tengan mucho cuidado con esto ya que se ralentiza mucho el navegador ya que hay muchisimo Javascript ejecutándose por detrás.
Por cierto, esto funciona también para CRM 2011 (ojo que hay que hacer IISRESET para que recoja los cambios):
![]() |
| Vista de ejemplo con 500 registros como tamaño de paginación CRM 2011 |
Un saludo
viernes, 27 de agosto de 2010
Eliminación de registros en SQL Server
Normalmente en los proyectos de CRM, hay una parte del mismo que se dedica a realizar cargas iniciales.
Estas cargas iniciales las vamos realizando primero en servidores de desarrollo para ir probando como van quedando, y luego los eliminamos y para volver a realizar las mismas.
Para relizar estas eliminaciones masivas, podríamos eliminar los registros directamente en el servidor de SQL Server.
Obviamente esto esta totalmente no soportado, pero si se hace de forma controlada, puede ayudarnos a ahorrarnos una cuantas horas.
Por ejemplo, si tenemos una entidad de paises con el nombre "new_pais", la eliminación de todos los registros de esta entidad sería la siguiente:
Siempre primero se debe eliminar la "...ExtensionBase" y luego la "...Base".
Algunas entidades como las actividades ademas necesita que se eliminen mas registros (por ejemplo la tabla ActivityPointer), pero de todos modos, el SQL Server nos irá diciendo que tablas relacionadas se deben eliminar previamente.
Un saludo
Estas cargas iniciales las vamos realizando primero en servidores de desarrollo para ir probando como van quedando, y luego los eliminamos y para volver a realizar las mismas.
Para relizar estas eliminaciones masivas, podríamos eliminar los registros directamente en el servidor de SQL Server.
Obviamente esto esta totalmente no soportado, pero si se hace de forma controlada, puede ayudarnos a ahorrarnos una cuantas horas.
Por ejemplo, si tenemos una entidad de paises con el nombre "new_pais", la eliminación de todos los registros de esta entidad sería la siguiente:
DELETE new_paisExtensionBase
DELETE new_paisBase
Siempre primero se debe eliminar la "...ExtensionBase" y luego la "...Base".
Algunas entidades como las actividades ademas necesita que se eliminen mas registros (por ejemplo la tabla ActivityPointer), pero de todos modos, el SQL Server nos irá diciendo que tablas relacionadas se deben eliminar previamente.
Un saludo
miércoles, 7 de julio de 2010
Como saber quién tiene instalado el Cliente de Outlook

A veces necesitamos saber exactamente que usuarios tienen instalado o utilizan el cliente de Outlook para CRM.
Existe una consulta en la base de datos, que puede devolvernos esta información y además decirnos en que ordenador está instalado.
La consulta es la siguiente:
SELECT Subscription.MachineName, SystemUserBase.FullName
FROM Subscription
INNER JOIN SystemUserBase
ON Subscription.SystemUserId = SystemUserBase.SystemUserId
Un saludo!
lunes, 21 de junio de 2010
Consultado los Workflows desde SQL Server
Los flujos de trabajo se ejecutan con el servicio asíncrono de CRM (AsyncService) y van dejando en el SQL Server registro del estado de los mismos, los pasos y el seguimiento de los mismos.
Como todos sabemos, no esta soportado el acceso a ciertas tablas del SQL Server directamente, pero el CRM nos ofrece unas "FilteredViews" para poder consultar los Workflows para hacer un seguimiento de la ejecución de los mismos.
Las vistas se llaman "FilteredAsyncOperation" y "FilteredWorkflowLog"
La consulta para recoger todas las ejecuciones de workflows es la siguiente:
y para recoger el estado de cada uno de los "Steps" (pasos) del workflow:
De esta forma por ejemplo lo que podemos hacer es un monitor de ejecución de flujos de trabajo, de forma muy sencilla con una aplicación de escritorio o web que se vaya actualizando automáticamente.
un saludo
Como todos sabemos, no esta soportado el acceso a ciertas tablas del SQL Server directamente, pero el CRM nos ofrece unas "FilteredViews" para poder consultar los Workflows para hacer un seguimiento de la ejecución de los mismos.
Las vistas se llaman "FilteredAsyncOperation" y "FilteredWorkflowLog"
La consulta para recoger todas las ejecuciones de workflows es la siguiente:
select asyncoperationid, name,statecodename,statuscodename, createdon
from FilteredAsyncOperation
WHERE messagename='ExecuteWorkflow'
order by createdon desc
y para recoger el estado de cada uno de los "Steps" (pasos) del workflow:
select stepname,activityname,description, completedon,statusname
from FilteredWorkflowLog
where asyncoperationid='8C6D813F-0C73-DF11-955A-000C299E8D82' --(aqui poner un "id" recogido de la consulta anterior)
De esta forma por ejemplo lo que podemos hacer es un monitor de ejecución de flujos de trabajo, de forma muy sencilla con una aplicación de escritorio o web que se vaya actualizando automáticamente.
un saludo
jueves, 13 de mayo de 2010
Combinación de correspondencia con Campañas de marketing
Existen algunas entidades de sistema que no tienen la posibilidad de realizar Combinación de correspondencia con Word directamente desde CRM. Por ejemplo: Campañas, Listas de marketing, Competidores, Pedidos, etc.
Si quisiésemos hacer una combinación de correspondencia, sólo nos quedaría la opción de exportar primero a Excel y luego combinar desde allí. Esta opción es medianamente válida, salvo que nos obligaría a hacer el paso adicional de exportar primero a Excel.
Para permitir esto, existe una forma NO SOPORTADA de permitir esta posibilidad, que consiste en actualizar mediante un UPDATE en el SQL los metadatos de la entidad.
Para esto habría que hacer el siguiente update y luego un "IISRESET":

Cabe destacar que este cambio también habilitará la opción de creación de nuevas plantillas de combinacion de correspondencia relacionadas con Campañas:

Tengan en cuenta que esto no esta soportado, pero bueno, podría darnos una buena salida si se necesitase.
Un saludo!
Si quisiésemos hacer una combinación de correspondencia, sólo nos quedaría la opción de exportar primero a Excel y luego combinar desde allí. Esta opción es medianamente válida, salvo que nos obligaría a hacer el paso adicional de exportar primero a Excel.
Para permitir esto, existe una forma NO SOPORTADA de permitir esta posibilidad, que consiste en actualizar mediante un UPDATE en el SQL los metadatos de la entidad.
Para esto habría que hacer el siguiente update y luego un "IISRESET":
Entonces la vista de Campañas tendría la opción de combinar correspondencia:
UPDATE MetadataSchema.Entity
SET ismailmergeenabled=1
WHERE name='campaign'

Cabe destacar que este cambio también habilitará la opción de creación de nuevas plantillas de combinacion de correspondencia relacionadas con Campañas:

Tengan en cuenta que esto no esta soportado, pero bueno, podría darnos una buena salida si se necesitase.
Un saludo!
Etiquetas:
Comentarios,
SQL Server,
Word
sábado, 20 de marzo de 2010
Desarrollo de informes con Visual Studio para Dynamics CRM 4.0
He realizado un video que explica paso a paso como realizar un informe con el Visual Studio. Es un video bastante sencillo relacionado con las oportunidades, sus estados y los ingresos estimados.
Adicionalmente explico como se integran los filtros del CRM con los del Informe desarrollado.
Tengo el orgullo de que este video me lo han publicado en Channel 9 Spain (canal de MSDN).
La Url del video es el siguiente:
http://channel9.msdn.com/posts/channel9spain/Desarrollo-de-informes-con-Visual-Studio-para-Dynamics-CRM-40/

Espero les sirva, un saludo
Adicionalmente explico como se integran los filtros del CRM con los del Informe desarrollado.
Tengo el orgullo de que este video me lo han publicado en Channel 9 Spain (canal de MSDN).
La Url del video es el siguiente:
http://channel9.msdn.com/posts/channel9spain/Desarrollo-de-informes-con-Visual-Studio-para-Dynamics-CRM-40/

Espero les sirva, un saludo
Etiquetas:
Comentarios,
Informes,
SQL Server
jueves, 18 de febrero de 2010
Roles de un usuario a través de FilteredViews
Hay muchas cosas en el CRM que pueden recogerse a través de los propios métodos de los Web Services, pero que también pueden accederse a través del SQL Server de forma soportada (a través de las "FilteredViews").
Este ejemplo es una consulta SQL que nos devuelve los nombres de los Roles de un usuario determinado, en este caso "DOMINIO\usuario":
Ahora bien, si queremos saber un poco más de sus permisos por ejemplo que nivel de acceso tiene de lectura en contactos (Rol de seguridad "prvReadContact"), podemos acceder a traves del SQL Server, pero ahora de forma NO SOPORTADA:
El atributo "PrivilegeDepthMask" dará un número con el nivel de acceso, donde por ejemplo "1" es a nivel de usuario y "8" es a nivel de organización.
Para un listado de los permisos recomiendo este enlace:
http://msdn.microsoft.com/en-us/library/bb955027.aspx
Un saludo!
Este ejemplo es una consulta SQL que nos devuelve los nombres de los Roles de un usuario determinado, en este caso "DOMINIO\usuario":
SELECT RB.Name FROM FilteredRole RB
INNER JOIN FilteredSystemUserRoles UR ON UR.RoleId=RB.RoleId
INNER JOIN FilteredSystemUser U ON UR.SystemUserId=U.SystemUserId
WHERE U.DomainName='DOMINIO\usuario'
Ahora bien, si queremos saber un poco más de sus permisos por ejemplo que nivel de acceso tiene de lectura en contactos (Rol de seguridad "prvReadContact"), podemos acceder a traves del SQL Server, pero ahora de forma NO SOPORTADA:
SELECT RB.Name, RP.PrivilegeDepthMask FROM FilteredRole RB
INNER JOIN FilteredSystemUserRoles UR ON UR.RoleId=RB.RoleId
INNER JOIN FilteredSystemUser U ON UR.SystemUserId=U.SystemUserId
INNER JOIN RolePrivileges RP ON RP.RoleId=RB.RoleId
INNER JOIN Privilege P ON P.PrivilegeId=RP.PrivilegeId
WHERE
U.DomainName='DOMINIO\usuario' AND P.Name='prvReadContact'
El atributo "PrivilegeDepthMask" dará un número con el nivel de acceso, donde por ejemplo "1" es a nivel de usuario y "8" es a nivel de organización.
Para un listado de los permisos recomiendo este enlace:
http://msdn.microsoft.com/en-us/library/bb955027.aspx
Un saludo!
Etiquetas:
FilteredViews,
SQL Server
Suscribirse a:
Entradas (Atom)






Suscribirse al RSS