Sorties de zone de contenu

Les sorties de zone de contenu offrent la possibilité de modifier le flux par défaut du traitement des zones de contenu. Vous pouvez donc, dans l'environnement d'exécution, remplacer la règle à traiter, l'utilisateur en cours et les résultats du traitement de la règle. Des instances de la même classe de sortie sont instanciées pour toutes les zones de contenu. Le nom de l'interface de classe de sortie est public interface RuleExit.

La classe de sortie de la zone de contenu permet d'effectuer les actions suivantes :
  1. Accéder aux informations de requête et de session
  2. Définir des informations dans le contexte Personalization, y compris la modification de l'utilisateur
  3. Extraire le nom de la campagne
  4. Extraire le nom de la règle à extraire pour la campagne
  5. Remplacer et préciser la règle à exécuter
  6. Ignorer le traitement de la règle ; aucune règle n'est traitée.
Après le traitement de la règle, la classe de sortie de la zone de contenu peut fournir les actions suivantes :
  1. Ajouter des éléments résultats
  2. Retirer des éléments résultats
  3. Remplacer les éléments résultats
Méthodes RuleExit :
void aboutToExecuteRule(RuleTrigger contentSpot, RequestContext requestContext)
Permet d'extraire les résultats de l'exécution de la règle.
Object[] getFilteredResults(RuleTrigger contentSpot, RequestContext requestContext, Object[] originalResults)
Quitter pour permettre la modification des résultats de l'exécution de la règle. originalResults : Le tableau d'origine des résultats est fourni à la sortie. filteredResults : la sortie peut renvoyer le tableau d'origine si aucune modification ne s'impose.
Méthodes RuleTrigger :
String getCampaignName()
Extrait le nom de la campagne pour la zone de contenu.
String getRuleName()
Extrait le nom de la règle à exécuter dans cette zone. Peut renvoyer une valeur nulle si le nom n'est pas encore établi.
void setRuleName(String ruleName)
Définit le nom de la règle à exécuter dans la zone. Si le nom n'est pas défini, aucune règle n'est exécutée.
void setRuleExit(RuleExit ruleExit instance)
Définit la sortie de règle pour cette instance de zone de contenu particulière.
RuleTrigger prend également en charge une méthode statique qui contient une instance de RuleExit définie lors de l'initialisation. Vous pouvez implémenter setRuleExit(RuleExit) par zone de contenu afin de remplacer uniquement les zones de contenu que vous précisez.

Le nom de classe du responsable d'implémentation RuleExit par défaut est extrait du fichier PersonalizationService.properties.

Scénario exemple d'utilisation
  1. Indiquez une classe RuleExit dans PersonalizationService.properties, comme présenté ci-dessous.
    rulesEngine.defaultRuleExit=com.ibm.websphere.personalization.RuleExitSample
    	...
  2. Au démarrage, l'environnement d'exécution de Personalization crée une instance de cette classe (aRuleExit dans ce scénario) et la met en cache dans une méthode statique RuleTrigger privée.
  3. Au fur et à mesure du déclenchement de chaque zone, le moteur de règle de Personalization détermine le nom de règle à utiliser.
  4. aRuleExit.aboutToExecuteRule() est appelé, transmettant la zone et le contexte de requête
  5. aRuleExit possède plusieurs options :
    • Informations relatives au contexte de requête d'accès (incluant les requêtes et sessions http)
    • Extraction des noms de la campagne
    • Spécification d'un ID utilisateur de requête
    • Modification du nom de la règle à exécuter
    • Ignorer la règle en attribuant une valeur nulle au nom de règle
  6. La règle est exécutée.
  7. aRuleExit.getFilteredResults() est appelée ; la sortie de règle modifie les résultats de manière appropriée, puis renvoie l'ensemble mis à jour
  8. Les résultat mis à jour sont stockés.