Spiga

Personalizando la entidad lista de precios y productos de la lista de precios (PriceList - ProductPriceList) 2da Parte

Continuando con la entrada anterior les voy a contar como hacer para poder crear un nuevo atributo en la entidad "Lista de precios" (PriceLevel).

Como les comenté anteriormente si intenta crear un nuevo campo se van a encontrar con el siguiente mensaje de error.


El problema es que cuando Microsoft CRM intenta crear el nuevo atributo en la base de datos no encuentra la tabla de extensión correspondiente a la entidad.

Para poder solucionar esto vamos a hacer lo siguiente:


  1. Entramos a Managmet Studio de SQL 2005 y buscamos la base de de datos de CRM (compañía_MSCRM).

  2. Creamos una nueva tabla la cual vamos a llamar "PriceLevelExtensionBase" (Sin comillas).

  3. A esta tabla le vamos a crear un único atributo de nombre "productpricelevelid" del tipo de dato uniqueidentifier, al cual lo vamos establecer como clave primaria de la tabla (Primary Key).

  4. Guardamos todos los cambios.


Bien!.. una ver hecho esto ya tenemos la tabla de extensión de nuestra entidad lista de precios... pero... como le indicamos a CRM que esa tabla es la tabla de extensión??.

Bueno.. para eso hacemos lo siguiente:

  1. Entramos a Managmet Studio de SQL 2005 pero esta vez vamos a la base metadata.

  2. Entramos a la tabla Entity y buscamos la fila correspondiente a PriceList.
  3. Buscamos la columna ExtensionTableName y la modificamos con el valor "PriceLevelExtensionBase".
  4. Guardamos todo.


Una vez terminado volvemos al CRM a intentar crear nuevamente nuestro nuevo atributo... a ver que pasa esta vez... :)

Ahí lo tienen un nuevo atributo en la lista de precios!!!..

Una vez terminado de personalizar el formulario les recomiendo que vuelvan a la tabla Entity y modifiquen nuevamente el atributo IsCustomEntity en 0. (Sólo ese).

Algunas cosas a tener en cuenta:

  1. Recuerden que esta práctica no esta soportada por Microsoft!!
  2. Tengan cuidado cuando tengan que exportar e importar la personalizacion en un nuevo entorno.
  3. Este mismo procedimiento se puede realizar también para la entidad Productos de la lista de precios (ProductPriceLevel).
  4. Esta práctica NO funciona para todas las entidades. Solo les puedo decir que lo prueben en cada caso.
  5. No esta de mas decir que hagan esto en un ambiente de prueba.

Finalmente solo me queda decir que funciona y bien. Pero como siempre tengan en cuenta que al no estar soportado nadie les asegura que ante la aplicaron de un parche o cambio de versión esto deje de funcionar. (He instalado el Rollup 1 sobre una implementación con esta práctica y no sufrió cambios).

Bueno eso es todo espero que les sea de utilidad.

Hasta la próxima!

0 comentarios: