Profils d'accès

Il est très fréquent, particulièrement lors de la construction d'applications Web, de réclamer un niveau de détail différent pour un même objet sur des pages Web différentes. Par exemple, sur la page d'une liste de produits, seules des informations sommaires sont requises alors que sur la page des caractéristiques d'un produit, des informations plus détaillées sont requises. Divers niveaux de connaissances pouvant être requis pour un même objet, les utilisateurs peuvent utiliser des profils d'accès afin d'éclaircir le dessein de leur requête.

Les profils d'accès sont des clés vous permettant de modifier le volume et le type de données renvoyées en réponse par une expression XPath donnée. Le profil d'accès est utilisé pour sélectionner l'instruction SQL dans le fichier de modèle de requête devant extraire les données. Vous devez toujours spécifier le profil d'accès. La requête ci-dessous, par exemple, spécifie le profil d'accès IBM_Admin_Details :
Remarque : IBM_Admin_ figure en préfixe de tous les services destinés à être utilisés par les appels de service basés admin/CMC. Les profils d'accès non conformes aux nouvelles conventions de dénomination continuent à fonctionner correctement, la compatibilité ayant été maintenue avec les versions antérieures. Il est cependant recommandé de suivre ces conventions pour les profils d'accès existants et en cas de modification de profils d'accès futurs.
{_wcf.ap=IBM_Admin_Details}/CatalogGroup[Name='MyCatalogGroupName']
Vous pouvez délimiter les données de réponse de deux manières à l'aide du profil d'accès :
  1. En définissant un bloc XPATH_TO_SQL_STATEMENT dans le fichier de modèle de réponse. Le nom du modèle est composé de XPath_key+Access_profile, où XPath_key correspond à la clé générée depuis une requête XPath et Access_Profile au nom du profil d'accès. Le profil d'accès combiné à la clé XPath est utilisé pour localiser le modèle de requête approprié dans le fichier de modèle.
  2. En définissant le profil d'accès dans la section PROFILE du fichier de modèle de requête et en définissant un ou plusieurs modèles sous la section ASSOCIATION_SQL_STATEMENT. Lorsque la couche service de données est appelée avec ce profil, l'instruction SQL associée est exécutée. Vous pouvez utiliser cette méthode afin de structurer une requête pour extraction d'un ensemble d'objets, puis utiliser l'instruction SQL associée afin d'extraire des informations sur ces objets. Pour des informations sur la configuration de profils d'accès, voir Fichier de modèle de requête.

Extensions de profil d'accès

Il est possible d'étendre un profil d'accès, y compris les profils d'accès par défaut de HCL Commerce.

Un exemple de la syntaxe dans votre fichier de modèle de requête personnalisé figure ci-après :
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
Dans cet exemple, le profil d'accès MyProfile constitue une extension d'un des profils d'accès par défaut de HCL Commerce, IBM_Admin_Summary. Un nouveau bloc d'instruction SQL associée, MyAssociatedQuery, est également défini. Cette instruction SQL doit résider dans le même fichier de modèle de requête que le nouveau profil d'accès.
Remarque : lors de la sélection d'un sous-ensemble de colonnes de la table d'extension (ou d'une table associée à la table de base), vous devez toujours sélectionner la clé primaire de la table personnalisée et la clé externe vers la table de base. Si vous l'omettez, WebSphere Application Server ne parviendra pas à construire la relation entre l'objet de la table de base et celui de la table d'extension.
Restriction :
  • Un seul niveau d'héritage est pris en charge dans une extension de profil d'accès.
  • Vous ne pouvez pas réutiliser une instruction SQL associée sans extension d'un profil IBM.
  • L'implémentation d'un nouveau Composeur de graphique est nécessaire en cas d'extension d'un profil d'accès HCL Commerce par défaut comportant plusieurs instructions SQL associées lorsqu'une des conditions suivantes est présente :
    • Le profil d'accès que vous étendez utilise une classe de composeur Graph autre que celle par défaut.
    • Le jeu de résultats de toutes les instructions SQL associées (référencées à la fois par les profils d'accès par défaut et personnalisés) extrait des enregistrements identiques de tables autres que la table de base.

      Le nom de la table de base ne doit pas être spécifié dans le nouveau profil d'accès. Il est hérité depuis le profil original. Les modèles SQL associés référencés par le profil d'extension doivent spécifier le même nom de table de base que celui utilisé dans le profil par défaut. Dans l'exemple précédent, la table de base pour l'instruction SQL MyNewAssociatedSQLName SQL est identique à celle dans le profil d'accès parent, CEDescriptionProfileWithAdditionalObject.