WebSphere Commerce permite ampliar el escucha de WebSphere MQ (anteriormente el adaptador de transporte) de modo que pueda procesar mensajes adicionales. Esto requiere realizar las tareas siguientes:
- Crear una plantilla XML del mensaje.
- Correlacionar el mensaje con un mandato de controlador.
Para hacerlo, tendrá que tener conocimientos avanzados de XML y de los mandatos de controlador de WebSphere Commerce. Si el mensaje requiere que cree un nuevo mandato de controlador, también tendrá que tener conocimientos avanzados del esquema de base de datos de WebSphere Commerce y de programación Java.
Para añadir mensajes, haga lo siguiente:
- Cree un archivo DTD que se utilizará para analizar el mensaje de entrada y colocarlo en dir_instalación_WC/xml/messaging.
- Añádalo al distintivo del atributo Messaging,
ECInboundMessageDtdFiles, en el archivo nombre_INSTANCIA.xml:
EcInboundMessageDtdPath="E:\WebSphere\CommerceServer55\xml\messaging" EcMimePropFile="lang_mime.data" EcSystemTemplateFile="sys_template.xml" EcTemplatePath="E:\WebSphere\CommerceServer55\xml\messaging" EcUserTemplateFile="user_template.xml" XMLWebControllerUserId="wcsadmin" />
- Cree un archivo de correlación para correlacionar el contenido del mensaje con el nombre del mandato y los parámetros necesarios en el archivo de plantilla del mensaje de usuario. La plantilla inicial la puede encontrar en dir_instalación_WC/xml/messaging/user_template.xml.
Para añadir mensajes nuevos, continúe con la tarea siguiente:
- Cree un nuevo mandato de controlador (interfaz e implementación) para ejecutar la lógica de negocio necesaria.
- Añada una fila a la tabla URLREG y asigne un nombre de URL con un nombre de interfaz correcto.
- Si altera temporalmente la implementación del mandato existente, añada o actualice la fila correspondiente de la tabla CMDREG y asigne una correlación de nombres de clases correcta al nombre de interfaz correcto.
- Reinicie WebSphere Commerce.
Puede seguir los ejemplos siguientes:
Mensaje de ejemplo:
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE Update_New_Message SYSTEM 'Update_New_Message.dtd'> <Update_First_Element version='1.0'> <DataArea> <ABC>123456</ABC> </DataArea> </Update_First_Element>
Archivo DTD de ejemplo:
<!ELEMENT Update_First_Element (DataArea)> <!ATTLIST Update_First_Element version CDATA #FIXED "1.0"> <!ELEMENT DataArea (ABC)> <!ELEMENT ABC (#PCDATA)>
Archivo user_template.xml de ejemplo:
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE ECTemplate SYSTEM 'ec_template.dtd' > <ECTemplate> <TemplateDocument> <DocumentType version='1.0'>Update_New_Message</DocumentType> <StartElement>Update_First_Element</StartElement> <TemplateTagName>NewMessageMap</TemplateTagName> <CommandMapping> <Command CommandName='NewCommand' /> </CommandMapping> </TemplateDocument> <TemplateTag name='NewMessageMap'> <Tag XPath='DataArea/ABC' Field='ABC_id' /> </TemplateTag> </ECTemplate>