新增訊息到 WebSphere MQ 接收程式中

WebSphere Commerce 可讓您延伸 WebSphere MQ 接收程式(舊稱傳輸配接器), 以處理額外的訊息。所涉及的作業如下:

如果要如此做,您必須具備高階的 XML 知識,以及瞭解 WebSphere Commerce 控制程式指令。 如果您的訊息要求您建立新的控制器指令,您也必須具備高階的 WebSphere Commerce 資料庫綱目和 Java 程式設計知識。

如果要新增訊息,請執行下列步驟:

  1. 建立一個用來剖析入埠訊息的 DTD 檔,並置於 WC_installdir/xml/messaging 中。
  2. 在 INSTANCE_name.xml 檔中,將此訊息新增到傳訊屬性 ECInboundMessageDtdFiles 的標籤中:
    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. 建立一個對映檔,以便將訊息內容對映至使用者訊息範本檔中的指令名稱與所需的參數。 起始範本可在 WC_installdir/xml/messaging/user_template.xml 中找到。
  4. 如果要新增新訊息,請繼續執行下列步驟:

    • 建立一個新控制程式指令(介面與實作),以執行所需的商業邏輯。
    • 在 URLREG 表格中新增一列,並以適當的介面名稱來指定 URL 名稱。
  5. 如果您要改寫現有的指令實作,請在 CMDREG 表格中新增或更新對應列, 並指定對映至正確介面名稱的適當類別名稱。
  6. 重新啟動 WebSphere Commerce。

以下的範例可供您遵循:

範例訊息:

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

範例 DTD 檔:

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

範例 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>