Exemple : Utilisation du service de composition du système de messagerie
L'exemple suivant montre comment utiliser le service de composition du système de messagerie. Si vous avez un magasin nommé MyStore et que vous souhaitez affecter deux transports, e-mail et fichier, au type de message CompanyAOrderCreateMsg, vous devez :
<forward className="com.ibm.commerce.struts.ECActionForward"
name="OrderCreateXMLFormatView/0/-3" path="/OrderCreateXML.jsp">
<set-property property="resourceClassName" value="com.ibm.commerce.messaging.viewcommands.MessagingViewCommandImpl"/>
<set-property property="properties" value="storeDir=no"/>
<set-property property="interfaceName" value="com.ibm.commerce.messaging.viewcommands.MessagingViewCommand"/>
<set-property property="implClassName" value="com.ibm.commerce.messaging.viewcommands.MessagingViewCommandImpl"/>
<set-property property="direct" value="true"/>
</forward>
<result name="OrderCreateXMLFormatView/0/-3">
<param name="location">/OrderCreateXML.jsp</param>
<param name="properties">storeDir=no</param>
<param name="implClassName">com.ibm.commerce.messaging.viewcommands.MessagingViewCommandImpl</param>
<param name="interfaceName">com.ibm.commerce.messaging.viewcommands.MessagingViewCommand</param>
<param name="resourceClassName">com.ibm.commerce.messaging.viewcommands.MessagingViewCommandImpl</param>
<param name="direct">true</param>
</result>
- INTERFACENAME
- com.ibm.commerce.messaging.viewcommands.MessagingViewCommand
- CLASSNAME
- com.ibm.commerce.messaging.viewcommands.MessagingViewCommandImpl
- PATH
- Paramètre contenant le nom de fichier JSP ajouté au début de n'importe quel sous-répertoire relatif au répertoire de magasin.
- PROPERTIES
- Utilisez le format suivant pour pointer vers le fichier JSP docname=jsp file.
- DEVICEFMT_ID
- Représente le format du périphérique et doit utiliser la valeur -3 (le format standard du périphérique) à moins d'utiliser des formats de périphérique personnalisés pour votre application. DEVICEFMT_ID doit correspondre au format de périphérique sélectionné lors de l'attribution d'un type de message à un transport.
Dans l'exemple suivant, le STOREENT_ID de MyStore est 10001 et viewname est CompanyAOrderAuthorizedView. Pour éviter d'éventuels problèmes de migration, assurez-vous d'ajouter un préfixe unique au nom de l'affichage et au nom du type de message. Dans l'attribut de nom, "CompanyAOrderAuthorizedView/10001/-3" représente viewname, respectivement l'ID de magasin et le format de périphérique.
Dans la version 9.0.0.x, le code est le suivant :
<forward className="com.ibm.commerce.struts.ECActionForward"
name="CompanyAOrderAuthorizedView/10001/-3" path="/Store_10001_Dir/OrderCreateXML.jsp">
<set-property property="resourceClassName" value="com.ibm.commerce.messaging.viewcommands.MessagingViewCommandImpl"/>
<set-property property="interfaceName" value="com.ibm.commerce.messaging.viewcommands.MessagingViewCommand"/>
<set-property property="implClassName" value="com.ibm.commerce.messaging.viewcommands.MessagingViewCommandImpl"/>
<set-property property="direct" value="true"/>
</forward>
<result name="CompanyAOrderAuthorizedView/10001/-3">
<param name="location">/Store_10001_Dir/OrderCreateXML.jsp</param>
<param name="implClassName">com.ibm.commerce.messaging.viewcommands.MessagingViewCommandImpl</param>
<param name="interfaceName">com.ibm.commerce.messaging.viewcommands.MessagingViewCommand</param>
<param name="resourceClassName">com.ibm.commerce.messaging.viewcommands.MessagingViewCommandImpl</param>
<param name="direct">true</param>
</result>
Utilisez la console d'administration pour affecter les transports de messagerie et de fichier au message CompanyAOrderCreateMsg et configurez les paramètres. Cela peut être fait en utilisant l'autorité d'administration de niveau site ou magasin. La création de paramètres de niveau site le rendra accessible à tous les magasins.
Dans l'implémentation d'une commande, instanciez la commande SendMsgCmd pour utiliser les services de messagerie et appelez les méthodes setMsgType() et setStoreID(), à l'aide du nom du type de message de CompanyAOrderCreateMsg et de l'ID de magasin de storeent_id 10001. Placez le fichier CompanyAOrderCreateMsg.jsp dans le répertoire racine du magasin.
Pour utiliser la configuration de niveau site, procédez comme suit :
- Spécifiez 0 pour STOREENT_ID.
- Pour PROPERTIES, indiquez storeDir=no au nom du fichier JSP.
- Placez le fichier JSP dans le répertoire WC_eardir/Stores.war.
- Invoquez la méthode de composition de l'interface du système de messagerie sortante et transmettez tous les paramètres supplémentaires sous la forme d'un objet TypedProperty. Consultez la rubrique Services de définition de contenu de message.
- Appelez sendImediate ou sendTransacted sur SendMsgCmd si vous souhaitez que le message soit envoyé immédiatement ou après validation de la transaction. Reportez-vous à la documentation du système de messagerie pour obtenir une explication supplémentaire sur l'utilisation de chaque méthode.
- Appelez la méthode d'exécution de SendMsgCmd pour exécuter l'envoi.