WebSphere Commerce consente di estendere le funzioni del Listener di WebSphere MQ (l'adattatore trasporti) per elaborare messaggi aggiuntivi. Ciò richiede quanto segue:
- Creazione di una maschera XML del messaggio.
- Corrispondenza del messaggio ad un comando del controller.
Per fare ciò, è richiesta una conoscenza avanzata di XML e dei comandi del controller di WebSphere Commerce. Se il messaggio richiede di creare un nuovo comando del controller, occorre anche una conoscenza avanzata dello schema del database di WebSphere Commerce e della programmazione Java.
Per aggiungere messaggi, seguire questa procedura:
- Creare un file DTD da utilizzare per l'analisi dei messaggi in entrata e collocarli in WC_installdir/xml/messaging.
- Aggiungerli alla tag di attributo della messaggistica ECInboundMessageDtdFiles, nel file
INSTANCE_name.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" />
- Creare un file di associazione al contenuto del messaggio nel nome comando e nei parametri necessari nel file maschera del messaggio utente. La maschera iniziale si trova in WC_installdir/xml/messaging/user_template.xml.
Per aggiungere messaggi, seguire questa procedura:
- Creare un nuovo comando del controller (interfaccia ed implementazione) per eseguire la logica commerciale richiesta.
- Aggiungere una riga nella tabella URLREG e assegnare un nome URL con un nome interfaccia appropriato.
- Se si st asostituendo un'implemntazione di comando esistente, aggiungere o aggiornare la riga corrispondente nella tabella CMDREG, ed assegnare un nome classe associato al nome interfaccia corretto.
- Riavviare WebSphere Commerce.
Di seguito sono riportati vari esempi:
Messaggi di esempio:
<?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>
Sample DTD file:
<!ELEMENT Update_First_Element (DataArea)> <!ATTLIST Update_First_Element version CDATA #FIXED "1.0"> <!ELEMENT DataArea (ABC)> <!ELEMENT ABC (#PCDATA)>
Sample user_template.xml:
<?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>