Web サービス・クライアント・フローの作成

既存の WSDL 定義から Web サービス・クライアント・フローを作成するには、次のようにします。インポートした OrderService.wsdl ファイルを使用して、Web サービス・フローを正常に作成しておく必要があります。詳しくは、Web サービス・メッセージ・フローおよびメッセージ・セットの作成を参照してください。

  1. WebServicesAsyncClientFlow.msgflow という名前の新しいメッセージ・フローを AsyncWebServiceFlows プロジェクトに追加します。
  2. 以下の表に示すノードを WebServiceAsyncClientFlow メッセージ・フローに追加します。
    ノード・タイプ ノード名
    MQInput MQWSInput
    MQOutput MQWSOutput
    Compute Compute Request、Format Response
    SOAPAsyncRequest SOAP Asynchronous Request
    SOAPAsyncResponse SOAP Asynchronous Response

  3. 以下の表に示すようにノードを接続します。WebSphere Message Broker 資料の、メッセージ・フロー・ノードの接続を参照してください。

    ノード名 ターミナル 接続先のノード
    MQWSInput Out Compute Request
    Compute Request Out1 SOAP Asynchronous Request
    SOAPAsyncResponse Out Format Response
    Format Response Out1 MQWSOutput

    下の図は、ノードが相互に接続された WebServicesAsyncClientFlow メッセージ・フローの画面取りを示しています。

    WebServicesAsyncClientFlow メッセージ・フローの画面取り

  4. 「AsyncWebServiceMessages」プロジェクトから SOAP Asynchronous Request ノードに OrderService.wsdl をドラッグします。OrderService.wsdl ファイルは、 「AsyncWebServicMessages」>「AsyncWebServicMessages」>「Deployable WSDL」フォルダーの順に選択すると見つかります。
  5. SOAP Asynchronous Request ノードの「基本」プロパティーで、 「固有 ID」フィールドに SampleAsynchNodePair と入力します。
  6. SOAP Asynchronous Response ノードの「基本」プロパティーで、 「固有 ID」フィールドに SampleAsynchNodePair と入力して、 この 2 つの非同期ノードをペアにします。
  7. MQWSInput ノードのキューを WEBSERVICECLIENTIN に設定して、 MQWSOutput ノードのキューを WEBSERVICECLIENTOUT に設定します。
  8. MQWSInput ノードの「入力メッセージ構文解析」プロパティーを以下のように設定します。
    メッセージ・ドメイン XMLNSC
    メッセージ・セット SampleDriverMessages
  9. Compute Request ノードをダブルクリックして、以下のモジュールを ESQL ファイルに貼り付けます。
    DECLARE ns NAMESPACE 'http://www.acmeOrders.com/OrderService';
    
    
    CREATE COMPUTE MODULE WebServicesAsyncClientFlow_Compute
    	CREATE FUNCTION Main() RETURNS BOOLEAN
    	BEGIN
    		DECLARE inMsg REFERENCE TO InputRoot.XMLNSC.OrderMessage.localElement;
    		SET OutputRoot.SOAP.Body.ns:submitPORequest.partNo = inMsg.PartNumber;
    		DECLARE outMsg REFERENCE TO OutputRoot.SOAP.Body.ns:submitPORequest;
    		SET outMsg.partQuantity = inMsg.Quantity;
    		SET outMsg.personName.firstName = inMsg.FirstName;
    		SET outMsg.personName.lastName = inMsg.LastName;
    		SET outMsg.address.street = inMsg.Street;
    		SET outMsg.address.city = inMsg.City;
    		SET outMsg.address.zipCode = inMsg.ZipCode;
    		
    		RETURN TRUE;
    	END;
    END MODULE;
  10. Format Response ノードをダブルクリックして、以下のモジュールを ESQL ファイルに貼り付けます。
    CREATE COMPUTE MODULE WebServicesAsyncClientFlow_Format
    	CREATE FUNCTION Main() RETURNS BOOLEAN
    	BEGIN
    		SET OutputRoot.Properties.MessageDomain   = 'XMLMSC';
    		SET OutputRoot.Properties.MessageSet   = 'SampleDriverMessages';
    		SET OutputRoot.Properties.MessageType   = 'OrderResponse'; 
    		
    		DECLARE inMsg REFERENCE TO InputRoot.SOAP.Body.ns:submitPOResponse;
    		SET OutputRoot.XMLNSC.OrderResponse.PartNo = inMsg.partNo;
    		DECLARE respMsg REFERENCE TO OutputRoot.XMLNSC.OrderResponse;
    		SET respMsg.PartQuantity = inMsg.partQuantity;
    		SET respMsg.AMT = inMsg.orderAmt;
    		SET respMsg.Status = inMsg.orderStatus;
    		
    		RETURN TRUE;
    	END;
    END MODULE;


これで、サンプルのキューを作成できます。WebSphere MQ キューの作成を参照してください。

「Asynchronous Consumer サンプルの作成」に戻る