clés de contexte de boîte de dialogue

Le contexte de boîte de dialogue (DCX) agit comme mémoire transitoire d'une boîte de dialogue. Il conserve des informations contextuelles transmises d'un portlet vers les portlets suivants et fournit les informations à tous ces portlets ultérieurs. Les données stockées dans le contexte de boîte de dialogue (DCX) le sont uniquement pour la durée de vie d'une session utilisateur. Si un utilisateur se déconnecte du portail ou si la session utilisateur arrive à expiration, l'instance de boîte de dialogue courante, toutes les instances de boîte de dialogue en attente et toutes les données associées sont perdues.

  • Le contexte de boîte de dialogue (DCX) est divisé en segments, chacun d'eux conservant les données ou les informations contextuelles d'une instance de boîte de dialogue unique.
  • Normalement, lorsque vous indiquez des événements, QName définit le mode de stockage de la charge correspondante dans le segment de l'instance de boîte de dialogue spécifique et sous quelle clé.
    Par exemple, le contexte de boîte de dialogue comporte les informations suivantes après que vous avez exécuté la transition :
    • Une entrée avec key = passengerID.
    • Une valeur correspondant au contenu envoyé avec l'événement correspondant.

    Le portlet d'informations de location de véhicule portlet2 est ensuite initialisé avec les données stockées dans le contexte de boîte de dialogue (DCX), sous la clé userID. Si aucune précédente transition n'a stocké un élément quelconque sous la clé userID, portlet2 ne reçoit pas de données.

    Exemple de code
    
      <transition>
          <source>
              <transition-endpoint nameref="portlet1">
                  <event qname="passengerID"/>
              </transition-endpoint>
          </source>
          <target>
              <transition-endpoint nameref="portlet2">
                  <event qname="userID"/>
              </transition-endpoint>
          </target>
      </transition>
    

Les clés de contexte de boîte de dialogue (DCX) permettent d'indiquer la clé sous laquelle un portlet enregistre les données dans le contexte DCX, ou la clé sous laquelle un portlet lit des données à partir du contexte DCX.

Pour permettre à portlet1 de communiquer avec portlet2, vous disposez des deux options ci-dessous :
  • Vous pouvez faire en sorte que portlet1 enregistre sa charge sous la clé userID, même s'il émet un événement avec QName passengerID. L'exemple de code suivant montre comment vous pouvez amener portlet1 à stocker des données sous userID.
    Exemple de code
    
      <transition>
          <source>
              <transition-endpoint nameref="portlet1">
                  <event qname="passengerID" dcx-key="userID"/>
              </transition-endpoint>
          </source>
          <target>
              <transition-endpoint nameref="portlet2">
                  <event qname="userID"/>
              </transition-endpoint>
          </target>
      </transition>
    
  • Vous pouvez faire en sorte que portlet2 lise la clé passengerID même s'il attend un événement avec QName userID. L'exemple de code suivant montre comment vous pouvez amener portlet2 à lire des données sous passengerID.
    Exemple de code
    
      <transition>
          <source>
              <transition-endpoint nameref="portlet1">
                  <event qname="passengerID"/>
              </transition-endpoint>
          </source>
          <target>
              <transition-endpoint nameref="portlet2">
                  <event qname="userID" dcx-key="passengerID"/>
              </transition-endpoint>
          </target>
      </transition>