Ejemplo: Utilización del servicio de composición del sistema de mensajería
En el siguiente ejemplo se muestra cómo podría utilizar el servicio de composición del sistema de mensajería. Si tuviera una tienda llamada MyStore y quisiera asignar dos transportes, correo electrónico y archivo, al tipo de mensaje CompanyAOrderCreateMsg, debería hacer lo siguiente:
<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
- El parámetro que contiene el nombre de archivo JSP precedido de cualquier subdirectorio del directorio de la tienda.
- PROPERTIES
- Utilice el formato siguiente para señalar al archivo JSP docname=jsp file.
- DEVICEFMT_ID
- Representa el formato de dispositivo y debe utilizar el valor -3 (el formato de dispositivo estándar) a menos que en su aplicación se utilicen los formatos de dispositivo personalizados. El valor de DEVICEFMT_ID debe corresponderse con el formato de dispositivo que se ha seleccionado al asignar un tipo de mensaje a un transporte.
En el ejemplo siguiente, el STOREENT_ID de MyStore es 10001 y el viewname
es CompanyAOrderAuthorizedView. Para evitar posibles problemas de migración, asegúrese de poner un prefijo exclusivo tanto al nombre de vista como al nombre de tipo de mensaje. En el atributo de nombre, "CompanyAOrderAuthorizedView/10001/-3" representa el viewname
, el ID de tienda y el ID de formato de dispositivo, respectivamente.
En la versión 9.0.0.x, el código es el siguiente:
<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>
Utilice la Consola de administración para asignar los transportes correo electrónico y archivo al mensaje CompanyAOrderCreateMsg y configurar los valores. Esto se puede llevar a cabo utilizando la autorización de administración a nivel de sitio o a nivel de tienda. Al crear valores a nivel de sitio todas las tiendas podrán acceder a los mismos.
Cuando implemente un mandato, cree una instancia del mandato SendMsgCmd para utilizar los servicios de mensajería y llame a los métodos setMsgType() y setStoreID(), utilizando el nombre de tipo de mensaje del tipo de mensaje CompanyAOrderCreateMsg y el ID de tienda de storeent_id, 10001. Coloque el archivo CompanyAOrderCreateMsg.jsp en el directorio raíz de la tienda.
Para utilizar la configuración a nivel de sitio, haga lo siguiente:
- Especifique STOREENT_ID como 0.
- Añada PROPERTIES de storeDir=no en el nombre de archivo JSP.
- Coloque el archivo JSP en el directorio WC_eardir/Stores.war.
- Invoque el método de composición de la interfaz del sistema de mensajería de salida y pase cualquier parámetro adicional con el formato de un objeto TypedProperty. Consulte el tema Servicios de definición de contenido de mensajes.
- Llame al método sendImediate o sendTransacted de SendMsgCmd si desea que el mensaje se envíe inmediatamente o después de que la transacción se haya comprometido satisfactoriamente. Consulte la documentación del sistema de mensajería para obtener una explicación detallada de cómo utilizar cada método.
- Llame al método execute de SendMsgCmd para ejecutar el proceso de envío.