Liferay 6.1 Campos personalizados
-
Upload
ematiz-tecnologia-sl -
Category
Documents
-
view
485 -
download
1
description
Transcript of Liferay 6.1 Campos personalizados
Liferay 6.1Campos 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.
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:
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.
Campos personalizados
Preparado por Jesús Salinas Revelles
Introducción
‣ Los tipos disponibles para la versión 6 de Liferay son:
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.
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.
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.
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.
Campos personalizados
Preparado por Jesús Salinas Revelles
Tabla expandorow
‣ La tabla expandorow relaciona las columnas tableid y classpk
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.
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:
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.
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.
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);
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.
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);
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.
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);