Liferay 6.1 Campos personalizados

19
Liferay 6.1 Campos personalizados

description

 

Transcript of Liferay 6.1 Campos personalizados

Page 1: Liferay 6.1 Campos personalizados

Liferay 6.1Campos personalizados

Page 2: Liferay 6.1 Campos personalizados

Campos personalizados

Preparado por Jesús Salinas Revelles

Índice de contenidos

‣ Introducción.

‣ Tablas asociadas a los campos personalizados.

‣ Modelo y servicios asociados:

‣ ExpandoTable.

‣ ExpandoColumn.

‣ ExpandoRow.

‣ ExpandoValue.

Page 3: Liferay 6.1 Campos personalizados

Campos personalizados

Preparado por Jesús Salinas Revelles

Introducción

‣ Existe un mecanismo para añadir nuevos campos a la entidades que ya existen en el núcleo de Liferay sin necesidad de modificar el modelo y sus servicios asociados.

‣ Este mecanismo se conoce como Campos personalizados.

‣ Desde el panel de control se puede acceder a la funcionalidad que comentamos:

Page 4: Liferay 6.1 Campos personalizados

Campos personalizados

Preparado por Jesús Salinas Revelles

Introducción

‣ Seleccionando la opción Editar pueden añadirse campos:

‣ Se debe definir una clave y un tipo de dato.

Page 5: Liferay 6.1 Campos personalizados

Campos personalizados

Preparado por Jesús Salinas Revelles

Introducción

‣ Los tipos disponibles para la versión 6 de Liferay son:

Page 6: Liferay 6.1 Campos personalizados

Campos personalizados

Preparado por Jesús Salinas Revelles

Tablas asociadas a los campos personalizados

‣ El programador necesita conocer cuatro tablas en la base de datos para entender cómo se gestionan los campos personalizados:

‣ expandotable.

‣ expandorow.

‣ expandocolumn.

‣ expandovalue.

Page 7: Liferay 6.1 Campos personalizados

Campos personalizados

Preparado por Jesús Salinas Revelles

Tabla expandotable

‣ La tabla expandotable almacena una fila para cada entidad de Liferay que tiene asociados campos personalizados.

‣ La columna tableid se relaciona con classnameid, que es el identificador de la clase asociada a la entidad.

Page 8: Liferay 6.1 Campos personalizados

Campos personalizados

Preparado por Jesús Salinas Revelles

Tabla expandocolumn

‣ La tabla expandocolumn almacena los campos personalizados que se definen en el sistema relacionándolos con las entidades asociadas.

Page 9: Liferay 6.1 Campos personalizados

Campos personalizados

Preparado por Jesús Salinas Revelles

Tabla expandocolumn

‣ Columna tableid: identificador de la tabla asociada, es decir, el campo personalizado se encuentra asociado a una entidad específica de Liferay.

‣ Columna name: nombre del campo personalizado.

‣ Columna type: tipo de campo personalizado.

Page 10: Liferay 6.1 Campos personalizados

Campos personalizados

Preparado por Jesús Salinas Revelles

Tabla expandorow

‣ La tabla expandorow relaciona las columnas tableid y classpk

Page 11: Liferay 6.1 Campos personalizados

Campos personalizados

Preparado por Jesús Salinas Revelles

Tabla expandorow

‣ ¿Para qué necesito esta tabla?

‣ Esta tabla se encarga de relacionar las columnas tableid y classpk.

‣ Se relaciona un objeto de tipo ExpandoTable con objetos específicos de una determinada entidad.

‣ Ejemplo:

‣ ExpandoTable define una fila para trabajar con campos personalizados para la entidad User identificada mediante un tableId específico.

‣ ExpandoRow define una fila para cada objeto de tipo User que tiene relleno un campo personalizado.

Page 12: Liferay 6.1 Campos personalizados

Campos personalizados

Preparado por Jesús Salinas Revelles

Tabla expandovalue

‣ La tabla expandovalue almacena el valor de un determinado campo personalizado asociado a una entidad para un objeto específico:

Page 13: Liferay 6.1 Campos personalizados

Campos personalizados

Preparado por Jesús Salinas Revelles

Tabla expandovalue

‣ Una fila almacena el valor de un campo personalizado definido para una determinada entidad para un objeto específico, es decir:

‣ data_: valor que almacena el campo personalizado.

‣ tableid: identificador de la entidad de Liferay sobre la que se aplica el campo personalizado.

‣ columnid: nombre y características del campo personalizado.

‣ rowid_: objeto específico sobre el que se aplica el valor del campo personalizado.

Page 14: Liferay 6.1 Campos personalizados

Campos personalizados

Preparado por Jesús Salinas Revelles

Modelo y servicios asociados

‣ El conocimiento profundo de los modelos y servicios asociados a los campos personalizados permiten al desarrollador manejarlos de forma programática.

Page 15: Liferay 6.1 Campos personalizados

Campos personalizados

Preparado por Jesús Salinas Revelles

ExpandoTable

‣ Para averiguar el className asociado a una clase, se debe utilizar el servicio ClassNameLocalServiceUtil:

‣ A partir de ahí se recupera la tabla asociada a esa entidad.

‣ Si una entidad no tiene campos personalizados, no tiene una fila en la tabla expandotable.

long userClassNameId = ClassNameLocalServiceUtil.getClassNameId( User.class.getName());

ExpandoTable table = ExpandoTableLocalServiceUtil.getDefaultTable( companyId, userClassNameId);

Page 16: Liferay 6.1 Campos personalizados

Campos personalizados

Preparado por Jesús Salinas Revelles

ExpandoTable

‣ La gestión de esta tabla se lleva a cabo mediante:

‣ El modelo ExpandoTable.

‣ El servicio ExpandoTableLocalServiceUtil.

Page 17: Liferay 6.1 Campos personalizados

Campos personalizados

Preparado por Jesús Salinas Revelles

ExpandoColumn

‣ La gestión de esta tabla se lleva a cabo mediante:

‣ El modelo ExpandoColumn.

‣ El servicio ExpandoColumnLocalServiceUtil.

‣ Ejemplo:

ExpandoColumn column = ExpandoColumnLocalServiceUtil.getColumn(tableId, name);

Page 18: Liferay 6.1 Campos personalizados

Campos personalizados

Preparado por Jesús Salinas Revelles

ExpandoRow

‣ La gestión de esta tabla se lleva a cabo mediante:

‣ El modelo ExpandoRow.

‣ El servicio ExpandoRowLocalServiceUtil.

Page 19: Liferay 6.1 Campos personalizados

Campos personalizados

Preparado por Jesús Salinas Revelles

ExpandoValue

‣ La gestión de esta tabla se lleva a cabo mediante:

‣ El modelo ExpandoValue.

‣ El servicio ExpandoValueLocalServiceUtil.

ExpandoValueLocalServiceUtil.getValue(tableId, columnId, classPK);

ExpandoValueLocalServiceUtil.addValue(classNameId, tableId, columnId, classPK, data);