Adicionando mensagens ao WebSphere MQ Listener

O WebSphere Commerce permite estender o WebSphere MQ Listener (formalmente adaptador de transporte) para processar mensagens adicionais. Isso inclui fazer o seguinte:

Para fazer isso, você precisará ter um conhecimento avançado de XML e dos comandos do controlador do WebSphere Commerce. Se sua mensagem requer que um novo comando controlador seja criado, você também precisará ter um conhecimento avançado do esquema de banco de dados do WebSphere Commerce e da programação Java.

Para adicionar mensagens, faça o seguinte:

  1. Crie um arquivo DTD a ser utilizado para analisar a mensagem de entrada e coloque-o em WC_installdir/xml/messaging.
  2. Adicione-o à marcação do atributo Messaging, ECInboundMessageDtdFiles, no arquivo 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. Crie um arquivo de mapeamento para mapear o conteúdo da mensagem para o nome do comando e parâmetros necessários no arquivo de gabarito de mensagens do usuário. O gabarito inicial pode ser encontrado em WC_installdir/xml/messaging/user_template.xml.
  4. Para adicionar novas mensagens, continue com o seguinte: 

    • Crie um novo comando controlador (interface e implementação) para executar a lógica necessária de negócios.
    • Adicione uma linha à tabela URLREG  e atribua um nome de URL a  um nome apropriado de interface.
  5. Se você estiver substituindo a implementação existente do comando, adicione ou atualize a linha correspondente na  tabela CMDREG  e atribua um mapeamento apropriado de nome de classe ao nome correto da interface.
  6. Inicie novamente o WebSphere Commerce.

Você pode seguir as amostras abaixo:

Mensagem de Amostra:

<?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>

Arquivo DTD de Amostra:

<!ELEMENT Update_First_Element (DataArea)>
<!ATTLIST Update_First_Element
version CDATA #FIXED "1.0">
<!ELEMENT DataArea (ABC)>
<!ELEMENT ABC (#PCDATA)>

user_template.xml de amostra:

<?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>