Perfiles de acceso
Es muy común, especialmente al crear aplicaciones web, que se requiera un nivel de detalle diferente en varias páginas web para el mismo objeto. Por ejemplo, en una página de lista de productos, solo es necesaria una información mínima sobre cada producto, mientras que en una página de detalles del producto, se necesita más información. Para incluir las diferentes necesidades de los diferentes niveles de conocimientos sobre un objeto, los clientes pueden utilizar perfiles de acceso para comunicar la intención de sus solicitudes.
{_wcf.ap=IBM_Admin_Details}/CatalogGroup[Name='MyCatalogGroupName']
- Definir un bloque XPATH_TO_SQL_STATEMENT en el archivo de plantilla de consulta. El nombre de plantilla es XPath_key+Access_profile, donde XPath_key es la clave generada desde una consulta XPath y Access_Profile es el nombre del perfil de acceso. El perfil de acceso junto con la clave XPath se utilizan para localizar la plantilla de consulta necesaria en el archivo de plantilla.
- Definir el perfil de acceso en la sección PROFILE del archivo de plantilla de consulta y definir una o varias plantillas SQL bajo la sección ASSOCIATON_SQL_STATEMENT. Cuando se llama a la DSL con este perfil de acceso, se ejecuta la sentencia SQL asociada. Puede utilizar este método para estructurar una consulta que recupere un conjunto de objetos y después utilizar la sentencia SQL asociada para recuperar información sobre esos objetos. Para obtener más información sobre la configuración de los perfiles de acceso, consulte Archivo de plantilla de consulta.
Extensiones de perfil de acceso
Puede ampliar un perfil de acceso, incluidos los perfiles de acceso predeterminados de HCL Commerce.
BEGIN_SYMBOL_DEFINITIONS
COLS:CATENTRY=CATENTRY:*
COLS:XWARRANTY=XWARRANTY:*
END_SYMBOL_DEFINITIONS
BEGIN_ASSOCIATION_SQL_STATEMENT
name=MyAssociatedQuery
base_table=CATENTRY
sql=
SELECT CATENTRY.$COLS:CATENTRY$,
XWARRANTY.$COLS:XWARRANTY$
FROM
CATENTRY
LEFT OUTER JOIN XWARRANTY ON
(CATENTRY.CATENTRY_ID = XWARRANTY.CATENTRY_ID)
WHERE
CATENTRY.CATENTRY_ID IN ($ENTITY_PKS$)
END_ASSOCIATION_SQL_STATEMENT
BEGIN_PROFILE
name=MyProfile
extends = IBM_Admin_Summary
associated_sql_statement=MyAssociatedQuery
BEGIN_ENTITY
En el ejemplo, el perfil de acceso MyProfile amplía IBM_Admin_Summary, un perfil de acceso predeterminado de HCL Commerce. También se define un nuevo bloque de sentencia SQL asociada, MyAssociatedQuery. Esta sentencia SQL debe estar en el mismo archivo de plantilla de consulta que el nuevo perfil de acceso.- Solo se soporta un nivel de herencia en la extensión de perfil de acceso.
- Si no amplía un perfil de IBM, no puede reutilizar una sentencia SQL asociada existente.
- Es necesario implementar un nuevo Compositor gráfico personalizado si está ampliando un perfil de acceso de HCL Commerce predeterminado con más de una sentencia SQL asociada y una de las condiciones siguientes es verdadera:
- El perfil de acceso que está ampliando está utilizando una clase de compositor gráfico (GraphComposer) que no es la predeterminada.
- El conjunto de resultados de todas las sentencias SQL asociadas (a las que hacen referencia los perfiles de acceso predeterminado y personalizado) recupera registros idénticos de tablas distintas de la tabla base.
El nombre de la tabla base no debe especificarse en el nuevo perfil de acceso. Se hereda del perfil original. Las plantillas SQL asociadas a las que hace referencia el perfil de extensión deberían especificar el mismo nombre de tabla base que el utilizado en el perfil predeterminado. En el ejemplo anterior, la tabla base para la sentencia SQL MyNewAssociatedSQLName es la misma que la tabla base del perfil de acceso padre, CEDescriptionProfileWithAdditionalObject.