Ya esta disponible una nueva versión del SDK. La versión 4.0.4.
Les pueden descargar de Aquí..
Saludos!
26 de mayo de 2008 a la/s 4:57 p. m. Publicadas por MSCRM
Ya esta disponible una nueva versión del SDK. La versión 4.0.4.
Les pueden descargar de Aquí..
Saludos!
Temas: Microsoft CRM 4.0, News, SDK 0 comentarios
19 de mayo de 2008 a la/s 3:09 p. m. Publicadas por MSCRM
Hola a todos!,
Me quede pensando en la entrada anterior en la que les contaba Como ocultar tabs (pestañas) en Microsoft CRM con JavaScript. y decidí ir un poco mas allá con este tema.
En esta ocasión voy a comentarles como deshabilitar todos los campos de un tab.
A diferencia de lo explicado anteriormente esto nos va a permitir visualizar todos estos datos.
Bien manos a la obra,
Lo primero que tenemos que hacer es copiar esta función en el evento onload de javascript del formulario de la entidad donde queremos implementar esta funcionalidad.
function SetAllFieldsDisabled(sTab)
{
var iLen = sTab.all.length;
for (i = 0; i < iLen; i++)
{
o = sTab.all[i];
switch (o.tagName)
{
case "INPUT":
case "SELECT":
case "TEXTAREA":
case "TABLE":
case "DIV":
case "SPAN":
case "IMG":
case "IFRAME":
if (!IsNull(o.id) && (o.id != ""))
{
o.Disabled=true;
}
break;
}
}
}
Luego lo que tenemos que hacer es hacer uso de esa función de la siguiente forma:
SetAllFieldsDisabled(crmForm.all.tab1);
Como ven la función recibe como parámetro un referencia al tab el cual queremos que deshabilite sus campos.
Presten particular atención a que la forma de referenciar al tab es distinta a como lo hacíamos en el post anterior.
En este caso hacemos referencia como crmForm.all.<tab_id (tab#)> donde # es el numero de tab comenzando de 0.
Bueno eso es todo
Saludos!
Temas: Java Script, Personalizacion 0 comentarios
12 de mayo de 2008 a la/s 10:08 a. m. Publicadas por MSCRM
Realmente sería un poco difícil poder utilizar Microsoft CRM sin la ayuda de un mouse.
Mas de uno me diría que CRM la posibilidad de desplazarme por los distintos menús de la aplicación con la tecla TAB. Pero la realidad es que el sistema se hace bastante tedioso e inoperante.
Sin embargo, hay ciertas teclas que nos pueden facilitar las cosas cuando usamos CRM todo los días. (Esta entrada va para los usuarios finales!!!.).
Bien, dentro de cualquier formulario de cualquier entidad:
Otro ayudita pero con las grillas!
Muchos de estos atajos también se pueden utilizar en la versión 3.0!!!
Saludos
Temas: Microsoft CRM 4.0 0 comentarios
9 de mayo de 2008 a la/s 12:20 p. m. Publicadas por MSCRM
Algunos lectores del blog me han consultado por correo electrónico como ocultar tabs en Microsoft CRM con JavaScript.
La realidad es, que generalmente este tipo de cosas están por todos lados, y por lo tanto evito ponerlas en este blog. Con una simple búsqueda en google obtenemos mas de 100 resultados, pero después me pregunté el porqué no hacerlo aunque estén en todos lados??.. así que ... en fin.. acá esta.
El script es simple y no tiene muchas vueltas:
Para ocultar un tab se utiliza:
crmForm.all.tab5Tab.style.display="none";
Para que se vuelva visible otra vez:
crmForm.all.tab5Tab.style.display="";
Lo importante en el script es el objeto "tab#Tab". Donde # es el numero de tab que queremos acultar o mostrar.
Otra cosa a tener en cuenta es que al primer tab o pestaña le corresponde el numero 0.
Ej:
Si queremos acultar la primer pestaña:
crmForm.all.tab0Tab.style.display="none";
Si queremos hacer visible la 2da pestaña:
crmForm.all.tab3Tab.style.display="";
Esto se puede utilizar tanto en la versión 3.0 como en la 4.0 de CRM.
Saludos
Temas: Java Script, Personalizacion 1 comentarios
6 de mayo de 2008 a la/s 8:55 a. m. Publicadas por MSCRM
Cumpliendo con lo prometido en la entrada anterior (Error al crear una nueva entidad en Microsoft Dynamics CRM 3.0 /4.0 - Parte 1), les voy a contar como solucionar de forma manual el problema que ocurre al eliminar los roles de sistema en Microsoft Dynamics CRM 4.0.
Solución 1:
Microsoft CRM 4.0 nos da la posibilidad de importar e exportar roles de seguridad como si fuese una entidad cualquiera.
Por lo cual si contamos con otra instalación de CRM (No hace falta que sea instalación basada en la que tenemos el problema, es decir, puede ser una totalmente nueva). Podemos exportar los roles de sistema e importarlos en nuestro CRM.
Publicar todo y problema resuelto.
Solución 2:
Si no contamos con otra instalación lo debemos hacer manualmente (Este es el procedimiento que se realizaba en la versión 3.0 antes de que saliera el rollup 3.)
Para comenzar vamos a la instancia de SQL Server donde esta instalado nuestro CRM.
Si abrimos la tabla RoleTemplateBase. Vamos a ver que siguen existiendo las plantillas de los roles de sistema.
Lo que debemos hacer es en CRM crear nuevos roles (a través de la aplicación) y luego por SQL copiar el RolTempleteId correspondiente y pegarlo en la tabla RoleBase
Saludos
4 de mayo de 2008 a la/s 7:32 a. m. Publicadas por MSCRM
Una de las ultimas cosas que se realizan cuando uno esta finalizando una implementacion de CRM es generalmente el ajuste de los roles de seguridad.
Creamos y copiamos roles modificando los permisos sobre las entidades y sus acciones según nuestras necesidades.
Una de las cosas que se explican en los libros de CRM desde la versión 1.2 es el evitar borrar los roles de sistema, es decir, esos roles que se crean al instalar la aplicación.
Ahora bien, en contraposición a lo anterior el CRM nos permite borrar los roles de sistema!!!!.. Entonces por que no hacerlo???...y acá comienzan los problemas...
Un motivo ya se lo están imaginando por el título de esta entrada... y si, efectivamente, al borrar los roles de sistema CRM nos da un error al crear una nueva entidad.
Como siempre el error que vamos a obtener es:
Se ha producido un error, consulte con el administrador.
Pero si hacemos un trace:
>Crm Exception: Message: roleId, ErrorCode: -2147220989, InnerException: System.ArgumentException: roleId
[2008-03-12 15:35:39.6] Process: w3wp |Organization:c21461e1-7398-4eef-893a-1dc10cfd626a |Thread: 9 |Category: Platform.Metadata |User: 00000000-0000-0000-0000-000000000000 |Level: Error | EntityService.Create
>EntityService.Create caught exception: Microsoft.Crm.CrmArgumentException: roleId ---> System.ArgumentException: roleId
--- End of inner exception stack trace ---
at Microsoft.Crm.Exceptions.ThrowIfGuidEmpty(Guid parameter, String name)
at Microsoft.Crm.ObjectModel.RoleServiceInternal`1.AddPrivileges(Guid roleId, RolePrivilege[] privileges, ExecutionContext context)
at Microsoft.Crm.Metadata.SecurityHelper.AddPrivilegesToUserRole(RolePrivilege[] privileges, Guid[] roleTemplates, ExecutionContext context)
at Microsoft.Crm.Metadata.SecurityHelper.CreateEntityHelper(IEntityDescription entityDescription, OwnershipTypes ownershipTypeMask, ExecutionContext context)
at Microsoft.Crm.Metadata.EntityService.CreateInternal(EntityCreateInfo entityInfo, ExecutionContext context)
at Microsoft.Crm.Metadata.EntityService.Create(EntityCreateInfo entityInfo, ExecutionContext context)
[2008-03-12 15:35:39.6] Process: w3wp |Organization:c21461e1-7398-4eef-893a-1dc10cfd626a |Thread: 9 |Category: Application |User: 00000000-0000-0000-0000-000000000000 |Level: Error | ErrorInformation.LogError
>MSCRM Error Report:
--------------------------------------------------------------------------------------------------------
Error: roleId
Error Number: 0x80040203
Error Message: roleId
Error Details: roleId
Source File: Not available
Line Number: Not available
Request URL: http://crmserver:5555/COR/AppWebServices/SystemCustomization.asmx
Stack Trace Info: [ArgumentException: roleId]
[CrmArgumentException: roleId]
at Microsoft.Crm.Exceptions.ThrowIfGuidEmpty(Guid parameter, String name)
at Microsoft.Crm.ObjectModel.RoleServiceInternal`1.AddPrivileges(Guid roleId, RolePrivilege[] privileges, ExecutionContext context)
at Microsoft.Crm.Metadata.SecurityHelper.AddPrivilegesToUserRole(RolePrivilege[] privileges, Guid[] roleTemplates, ExecutionContext context)
at Microsoft.Crm.Metadata.SecurityHelper.CreateEntityHelper(IEntityDescription entityDescription, OwnershipTypes ownershipTypeMask, ExecutionContext context)
at Microsoft.Crm.Metadata.EntityService.CreateInternal(EntityCreateInfo entityInfo, ExecutionContext context)
at Microsoft.Crm.Metadata.EntityService.Create(EntityCreateInfo entityInfo, ExecutionContext context)
at Microsoft.Crm.Metadata.EntityService.Create(EntityCreateInfo entityInfo)
at Microsoft.Crm.Application.WebServices.SystemCustomization.EntityCreate.Execute(IUser user, ParameterBag paramBag)
at Microsoft.Crm.Application.WebServices.SystemCustomization.SystemCustomization.CreateEntity(XmlNode data)
Si prestamos atención al trace, (donde esta en azul), vamos a ver que el problema esta efectivamente en los roles de seguridad.
Este problema se da por que CRM al crear una nueva entidad, automáticamente le intenta dar permisos al rol de personalización (System Customizer) sobre la nueva entidad a crear. Si llegado el caso se nos ocurrió borrar ese rol de seguridad vamos a recibir el error arriba mencionado.
En Microsoft CRM 3.0 eso ya esta solucionado con el Rollup 3. (Paquete acumulativo de actualizaciones 3 para Microsoft Dynamics CRM 3.0 (KB 935364))
En Dynamics CRM 4.0 tenemos el mismo problema y hasta la fecha no hay un fix que lo solucione.
En la próxima entrada les voy a explicar como solucionar de forma manual este problema en la versión 4.0
Hasta la próxima!!