既存の WSDL 定義から Web サービス・クライアント・フローを作成するには、次のようにします。インポートした OrderService.wsdl ファイルを使用して、Web サービス・フローを正常に作成しておく必要があります。詳しくは、Web サービス・メッセージ・フローおよびメッセージ・セットの作成を参照してください。
ノード・タイプ | ノード名 |
---|---|
MQInput | MQWSInput |
MQOutput | MQWSOutput |
Compute | Compute Request、Format Response |
SOAPAsyncRequest | SOAP Asynchronous Request |
SOAPAsyncResponse | SOAP Asynchronous Response |
ノード名 | ターミナル | 接続先のノード |
---|---|---|
MQWSInput | Out | Compute Request |
Compute Request | Out1 | SOAP Asynchronous Request |
SOAPAsyncResponse | Out | Format Response |
Format Response | Out1 | MQWSOutput |
下の図は、ノードが相互に接続された WebServicesAsyncClientFlow メッセージ・フローの画面取りを示しています。
メッセージ・ドメイン | XMLNSC |
メッセージ・セット | SampleDriverMessages |
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;
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 キューの作成を参照してください。