Aggiunta dei messaggi nel Listener di WebSphere MQ

WebSphere Commerce consente di estendere le funzioni del Listener di WebSphere MQ (l'adattatore trasporti) per elaborare messaggi aggiuntivi. Ciò richiede quanto segue:

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:

  1. Creare un file DTD da utilizzare per l'analisi dei messaggi in entrata e collocarli in WC_installdir/xml/messaging.
  2. 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" 
    />
    
  3. 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.
  4. 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.
  5. 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.
  6. 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>