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.

Los perfiles de acceso son claves que le permiten cambiar la cantidad y el tipo de datos de respuesta devueltos por una expresión XPath determinada. El perfil de acceso se utiliza para seleccionar la sentencia SQL en el Archivo de plantilla de consulta que recupera los datos. Siempre debe especificar el perfil de acceso. Por ejemplo, la siguiente consulta especifica el perfil de acceso IBM_Admin_Details:
Nota: IBM_Admin_ es el prefijo de todos los servicios pensados para ser utilizados por llamadas de servicios basadas en admin/CMC. Los perfiles de acceso que no sigan los nuevos convenios de denominación continuarán funcionando correctamente, ya que se mantiene la compatibilidad con las versiones anteriores. No obstante, se recomienda seguir dichos convenios para los perfiles de acceso existentes y al realizar cambios en los perfiles de acceso futuros.
{_wcf.ap=IBM_Admin_Details}/CatalogGroup[Name='MyCatalogGroupName']
Hay dos formas de utilizar el perfil de acceso para especificar el ámbito de sus datos de respuesta:
  1. 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.
  2. 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.

Este es un ejemplo de la sintaxis de su archivo de plantilla de consulta personalizado:
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.
Nota: Al seleccionar un subconjunto de columnas de la tabla de extensiones (o de cualquier tabla asociada con la tabla base), debe seleccionar siempre la clave primaria de la tabla personalizada y la clave externa para la tabla base. De lo contrario, WebSphere Application Server no será capaz de crear la relación entre el objeto de tabla base y el objeto de tabla de extensiones.
Restricción:
  • 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.