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.
{_wcf.ap=IBM_Admin_Details}/CatalogGroup[Name='MyCatalogGroupName']
- 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.
- 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.
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.- 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.