Construindo a Amostra de Serviço da Web
A amostra do Serviço da Web tem duas partes:
- Uma amostra Host de Serviço da Web
- Uma amostra Cliente de Serviço da Web
Construindo a Amostra Host de Serviço da Web
Se você não quiser fazer isso, um projeto de conjunto de mensagens e um projeto de fluxo de mensagens concluídos são fornecidos com essa amostra.
Para construir a amostra Host de Serviço da Web:
- Crie um conjunto de mensagens. Isso servirá para a mensagem de formato de serviço da Web (XML) e para o formato legado (CWF).
- Inicie o Message Brokers Toolkit.
- Certifique-se de estar na perspectiva Desenvolvimento de Aplicativos do Broker.
- Clique em Arquivo > Novo > Projeto do Conjunto de Mensagens.
- Configure Nome do Projeto como WSHOST_MSP1 e, em seguida, clique em Avançar.
- Configure Nome do Conjunto de Mensagens como WSHOST_MS1.
- Selecione Utilizar Espaços de Nomes e, em seguida, clique em Avançar.
- Selecione Nome do Custom Wire Format e Nome do XML Wire Format e, em seguida, clique em Concluir.
- Feche o messageset.mset, salvando o conteúdo.
- Importe um arquivo de cabeçalho C. Isso é mapeado para a mensagem de entrada e de saída do aplicativo legado.
- Clique em Arquivo > Importar > Sistema de Arquivo > Avançar.
- Navegue para selecionar legacyservice.h do projeto WSHOST_LEGACY.
- Configure Na Pasta como WSHOST_MSP1 e clique em Concluir
- Crie um arquivo de definição de mensagem do Broker a partir do arquivo de cabeçalho C:
- No Navegador de Recurso, clique com o botão direito do mouse em legacyservice.h e, em seguida, clique em Novo > Arquivo de Definição de Mensagem.
- O botão de rádio para o arquivo de cabeçalho C deve estar pré-selecionado. Se não estiver, selecione-o e clique em Avançar
- Dentro do projeto WSHOST_MSP1, legacyservice.h deve estar pré-selecionado.
Se não estiver, selecione-o e, em seguida, clique em Avançar.
- Na área de janela Conjuntos de Mensagens, expanda WSHOST_MSP1 e selecione WSHOST_MS1.
- Selecione Utilizar Espaço de Nomes de Destino, digite http://www.brokersamplewshost.ibm.com como a URL e, em seguida, Avançar.
- Na área de janela Estruturas de Origem, clique em tagIA81CONF, clique no botão> e clique em Selecionar Tudo > Concluir.
- Feche o legacyservice.mxsd, salvando o conteúdo.
- Construa uma definição de mensagem SOAP.
- No Navegador de Recurso, clique com o botão direito do mouse no conjunto de mensagens WSHOST_MS1 e, em seguida, clique em Novo > Arquivo de Definição de Mensagem.
- Clique no botão de rádio Mensagem Fornecida pela IBM e, em seguida, clique em Avançar.
- Na área de janela mensagens fornecidas pela IBM, selecione a mensagem ibm\soap\envelope\soapenv11.xsd e, em seguida, clique em Avançar.
- Expanda WSHOST_MSP1, selecione WSHOST_MS1 e, em seguida, clique em Avançar.
- Em Selecionar Elementos Globais, de onde você cria as mensagens, certifique-se de que nenhum elemento esteja selecionado e clique em Concluir.
- Feche o soapenv11.mxsd, salvando o conteúdo
- Observe que Envelope é criado automaticamente como uma mensagem.
Inúmeros avisos são mostrados na visualização Problemas do Message Brokers Toolkit.
Eles são causados principalmente por terem um CWF definido para uma definição de mensagem SOAP e podem ser ignorados.
- Crie uma categoria para as mensagens (um pré-requisito para geração de WSDL).
No WSDL, todos os nomes de operação devem ser exclusivos dentro de um tipo de porta de fechamento.
Portanto, as mensagens de pedido e resposta definidas em uma categoria de mensagem devem ser diferentes. Para esclarecer isso, duas novas mensagens serão definidas para o conjunto de mensagens,
uma para a entrada de serviços da Web, uma para a saída de serviços da Web.
Elas devem ser criadas no arquivo mxsd ocupado a partir do arquivo de cabeçalho C.
- Abra legacyservice.mxsd.
- Na visualização Tópicos, clique com o botão direito do mouse em Elementos e Atributos e clique em Incluir Elemento Global.
- Altere o nome do Elemento para IA81CONFIN e pressione Enter.
- Selecione a célula Tipo para o Elemento IA81CONFIN. Escolha (Mais...) a
partir da lista.
- Selecione tagIA81CONF e clique em OK.
- Na visualização Tópicos, clique com o botão direito do mouse em Mensagens e clique em Incluir Mensagem do Elemento Global.
- Selecione tns:IA81CONFIN a partir da lista do menu suspenso e pressione Enter.
- Na visualização Tópicos, clique com o botão direito do mouse em Elementos e Atributos e clique em Incluir Elemento Global.
- Altere o nome do Elemento para IA81CONFOUT e pressione Enter.
- Selecione a célula Tipo para o Elemento IA81CONFOUT. Escolha (Mais...) a
partir da lista.
- Selecione tagIA81CONF e clique em OK.
- Na visualização Tópicos, clique com o botão direito do mouse em Mensagens e clique em Incluir Mensagem do Elemento Global.
- Selecione tns:IA81CONFOUT a partir da lista do menu suspenso e pressione Enter.
- Feche o legacyservice.mxsd, salvando o conteúdo.
- Clique em Arquivo > Novo > Arquivo de Categoria de Mensagem.
- Configure Tipo de Categoria para wsdl.
- Configure Uso de Categoria como wsdl:requestresponse e, em seguida, clique em Avançar.
- Selecione o conjunto de mensagens WSHOST_MS1 dentro do projeto de conjunto de mensagens WSHOST_MSP1.
- No campo Nome do Arquivo, digite cat1 e, em seguida, clique em Avançar.
- Na área de janela principal, selecione IA81CONFIN e IA81CONFOUT (pressione e segure a tecla CTRL para fazer múltiplas seleções).
- Na área de janela inferior, configure o valor na célula Tipo para IA81CONFOUT como saída (clique na célula para exibir um menu a partir do qual poderá selecionar o valor).
- Na área de janela inferior, selecione IA81CONFIN e, em seguida, clique em Concluir.
O novo arquivo de categoria de mensagem é criado.
- Gere o WSDL.
- Clique em Arquivo > Novo > Definição de WSDL > Avançar.
- Selecione o conjunto de mensagens WSHOST_MS1 dentro do projeto de conjunto de mensagens WSHOST_MSP1 e, em seguida, clique em Avançar.
- Selecione WSHOST_MSP1 e, em seguida, Criar Nova Pasta.
- Digite wsdl como o nome da pasta e, em seguida, clique em OK.
- Verifique se o botão de rádio Único está selecionado e, em seguida, clique em Avançar.
- Na área de janela "Especificar Detalhes do WSDL", certifique-se de que Estilo esteja configurado como documento e, em seguida, clique em Avançar.
- Na área de janela "Selecionar Categorias", clique em Selecionar Tudo > Avançar.
- Na área de janela Ligações, clique em SOAP/HTTP > Avançar.
- Na área de janela "Propriedades do Serviço", configure Endereço de Porta
como http://localhost:7080/samplebrokerwshost e, em seguida, clique em Concluir.
- Crie um fluxo de mensagem. O fluxo utiliza um pedido HTTP, chama o aplicativo legado utilizando MQ e roteia informações
da resposta do aplicativo legado para o solicitante HTTP.
- Clique em Arquivo > Novo > Projeto do Fluxo de Mensagens.
- Configure Nome do Projeto como WSHOST_MFP1 e, em seguida, clique em Avançar.
- Na área de janela "Projetos Referidos", selecione WSHOST_MSP1 e, em seguida, clique em Concluir.
- No Navegador de Recurso, clique com o botão direito do mouse em WSHOST_MFP1 e, em seguida, clique em Novo > Fluxo de Mensagens.
- Configure Esquema como WSHOST_MFP1.
- Configure Nome como WSHOST_WSHOST1 e, em seguida, clique em Concluir.
- Exiba a paleta (se oculta) e coloque os seguintes nós no canvas do Fluxo de Mensagens:
- 1 nó HTTPInput
- 3 nós Compute
- 2 nós MQOutput
- 1 nó MQGet
- 1 nó MQInput
- 1 nó HTTPReply
- Clique em Conexão na paleta e conecte os seguintes nós e terminais:
- HTTPInput (saída) - Compute (entrada)
- Compute (saída) - MQOutput (entrada)
- MQOutput (saída) - Compute1 (entrada)
- Compute1 (saída) - MQOutput1 (entrada)
- MQInput (saída) - MQGet (entrada)
- MQGet (saída) - Compute2 (entrada)
- Compute2 (saída) - HTTPReply (entrada)
- Isso poderá ajudar sua compreensão se você renomear alguns dos nós. Para renomear um nó, clique com o botão direito do mouse no nó e, em seguida, clique em Renomear.
Os nomes sugeridos são:
- MQOutput -> MQOutput para legado
- MQOutput1 -> estado HTTP armazenado em MQOutput
- MQInput -> MQInput de legacy
- MQGet -> estado HTTP armazenado em MQGet
- Customize o nó HTTPInput:
- Clique com o botão direito do mouse no nó HTTPInput e, em seguida, clique em Propriedades.
- Selecione Básico e configure Seletor de URL como /samplebrokerwshost.
- Selecione Padrão:
- Para Domínio de Mensagem, selecione MRM da lista drop-down.
- Para Conjunto de Mensagens, selecione WSHOST_MS1 da lista drop-down.
- Para Tipo de Mensagem, digite Envelope.
- Para Formato de Mensagem, selecione XML1 da lista drop-down.
- Clique em OK.
- Customize o nó Compute:
- Clique com o botão direito do mouse no nó Compute e clique em Abrir ESQL.
- Codifique o seguinte ESQL entre as instruções BEGIN e END para este módulo. Utilize o assistente de conteúdo (Ctrl + espaço) para selecionar
palavras-chave. Instruções DECLARE NAMESPACE similares àquelas comentadas nas duas primeiras linhas devem ser geradas quando o assistente de conteúdo for utilizado pela primeira vez para selecionar o elemento do Corpo SOAP e qualquer elemento IA81CONFIN. Se estiver
copiando e colando esse código, certifique-se de remover o comentário das instruções DECLARE NAMESPACE.
--DECLARE tns NAMESPACE 'http://schemas.xmlsoap.org/soap/envelope/';
--DECLARE ns NAMESPACE 'http://www.brokersamplewshost.ibm.com';
CALL CopyMessageHeaders();
-- A saída é MQ, portanto, remova cabeçalhos HTTP
SET OutputRoot.HTTPInputHeader = null;
-- A saída é legada, portanto, defina o formato de ligação e o nome da mensagem
SET OutputRoot.Properties.MessageType = 'msg_tagIA81CONF';
SET OutputRoot.Properties.MessageFormat = 'CWF1';
-- Incluir MQMD
CREATE NEXTSIBLING OF OutputRoot.Properties DOMAIN 'MQMD';
-- Construir mensagem para ser enviada ao legado
SET OutputRoot.MRM.MessageId
= InputBody.tns:Body.ns:IA81CONFIN.MessageId;
SET OutputRoot.MRM.OrderNumber
= InputBody.tns:Body.ns:IA81CONFIN.OrderNumber;
SET OutputRoot.MRM.ItemReference
= InputBody.tns:Body.ns:IA81CONFIN.ItemReference;
SET OutputRoot.MRM.ItemQuantity
= InputBody.tns:Body.ns:IA81CONFIN.ItemQuantity;
SET OutputRoot.MRM.CustomerNumber
= InputBody.tns:Body.ns:IA81CONFIN.CustomerNumber;
SET OutputRoot.MRM.DeliveryRef
= InputBody.tns:Body.ns:IA81CONFIN.DeliveryRef;
SET OutputRoot.MRM.Confirm
= InputBody.tns:Body.ns:IA81CONFIN.Confirm;
SET OutputRoot.MRM.filler1
= InputBody.tns:Body.ns:IA81CONFIN.filler1;
RETURN TRUE;
- Customize o nó MQOutput (MQOutput para legado):
- Clique com o botão direito do mouse no nó MQOutput e clique em Propriedades.
- Se você pretende executar o aplicativo legado em um gerenciador de filas do WebSphere MQ diferente
para o Intermediário, selecione Básico e
configure Nome do Gerenciador de Filas como o nome do gerenciador de filas
do aplicativo legado. Caso contrario, deixe-o em branco.
- Configure Nome da Fila como WSHOST1_OUT1.
- Selecione Avançado e configure Modo de Transação como Sim.
- Configure Contexto de Mensagem como Padrão.
- Selecione Pedido e selecione a caixa de opções para Pedido.
- Configure Fila Responder Para como WSHOST1_IN1 e, em seguida, clique em OK.
- Customize o nó Compute1:
- Clique com o botão direito do mouse no nó Compute1 e, em seguida, clique em Abrir ESQL.
- Codifique o seguinte ESQL entre as instruções BEGIN e END para este módulo. Utilize o assistente de conteúdo (Ctrl + espaço) para selecionar
palavras-chave. Uma instrução DECLARE NAMESPACE semelhante às comentadas na primeira linha deve ser gerada quando
o assistente de conteúdo for utilizado pela primeira vez para selecionar o elemento do Corpo SOAP.
--DECLARE tns NAMESPACE 'http://schemas.xmlsoap.org/soap/envelope/';
--DECLARE ns NAMESPACE 'http://www.brokersamplewshost.ibm.com';
-- A mensagem de saída construída nesse nó armazena o contexto HTTP.
-- Qualquer formato pode ser adequado, mas estamos utilizando um campo
-- autodefinido em um Cabeçalho SOAP para fazer isso
-- Portanto, o formato de ligação é XML
-- Criar as propriedades do conjunto de mensagens de destino
SET OutputRoot.Properties.MessageSet = InputRoot.Properties.MessageSet;
SET OutputRoot.Properties.MessageType = 'Envelope';
SET OutputRoot.Properties.MessageFormat = 'XML1';
-- Criar o MQMD e definir o CorrelId
-- O CorrelId precisa ser definido como MsgId da mensagem enviada para
-- o aplicativo legado. Quando a resposta do aplicativo
-- legado for recebida, utilizaremos MQGet da fila de
-- armazenamento com correlid igual ao correlid da resposta legada
SET OutputRoot.MQMD.CorrelId
= InputLocalEnvironment.WrittenDestination.MQ.DestinationData.msgId;
-- Construir mensagem para armazenar contexto HTTP
SET OutputRoot.MRM.tns:Header.HTTP.RequestIdentifier
= InputLocalEnvironment.Destination.HTTP.RequestIdentifier;
RETURN TRUE;
- Customize o nó MQOutput1 (estado HTTP armazenado por MQOutput):
- Clique com o botão direito do mouse no nó MQOutput1 e, em seguida, clique em Propriedades.
- Selecione Básico e
configure Nome da Fila como WSHOST1_STATE1.
- Selecione Avançado e configure Modo de Transação como Sim.
- Configure Contexto de Mensagem como Padrão.
- Clique em OK.
- Customize o nó MQInput (MQInput legado):
- Clique com o botão direito do mouse no nó MQInput e clique em Propriedades.
- Selecione Básico e configure Nome da Fila como WSHOST1_IN1.
- Selecione Padrão:
- Para Domínio de Mensagem, selecione MRM da lista drop-down.
- Para Conjunto de Mensagens, selecione WSHOST_MS1 da lista drop-down.
- Para Tipo de Mensagem, digite msg_tagIA81CONF.
- Para Formato da Mensagem, selecione CWF1 da lista drop-down.
- Clique em OK.
- Customize o nó MQGet (estado HTTP armazenado por MQGet):
- Clique com o botão direito do mouse no nó MQGet e clique em Propriedades.
- Selecione Básico e
configure Nome da Fila como WSHOST1_STATE1.
- Selecione Padrão:
- Para Domínio de Mensagem, selecione MRM da lista drop-down.
- Para Conjunto de Mensagens, selecione WSHOST_MS1 da lista drop-down.
- Para Tipo de Mensagem, digite Envelope.
- Para Formato de Mensagem, selecione XML1 da lista drop-down.
- Selecione Avançado:
- Para Gerar Modo, selecione Mensagem e LocalEnvironment da lista drop-down.
- Para Copiar Mensagem, selecione Copiar Mensagem Inteira da lista drop-down.
- Selecione Pedido e selecione a caixa de opções para Obter por ID de Correlação.
- Selecione Resultado e configure Local dos Dados de Saída como OutputLocalEnvironment.
- Clique em OK.
- Customize o nó Compute2:
- Clique com o botão direito do mouse no nó Compute2 e clique em Propriedades.
- Selecione Básico e configure Computar Modo como LocalEnvironment e Mensagem.
- Clique em OK (para permitir que o contexto HTTP seja transmitido para o nó HTTPReply)
- Clique com o botão direito do mouse no nó e selecione Abrir ESQL.
- Codifique o seguinte ESQL entre as instruções BEGIN e END para este módulo:
--DECLARE tns NAMESPACE 'http://schemas.xmlsoap.org/soap/envelope/';
--DECLARE ns NAMESPACE 'http://www.brokersamplewshost.ibm.com';
-- A entrada é CWF, a saída é SOAP/XML
SET OutputRoot.Properties.MessageSet = InputRoot.Properties.MessageSet;
SET OutputRoot.Properties.MessageType = 'Envelope';
SET OutputRoot.Properties.MessageFormat = 'XML1';
SET OutputRoot.MRM.tns:Body.ns:IA81CONFOUT = InputRoot.MRM;
-- Definir identificador de resposta http
SET OutputLocalEnvironment.Destination.HTTP.RequestIdentifier =
CAST(InputLocalEnvironment.MRM.tns:Header.HTTP.RequestIdentifier AS BLOB);
RETURN TRUE;
- Feche o WSHOST_WSHOST1.esql, salvando o conteúdo.
- Feche o WSHOST_WSHOST1.msgflow, salvando o conteúdo.
- Se você pretende executar o aplicativo legado em um gerenciador de filas do WebSphere MQ
diferente para o intermediário, é preciso definir a fila de entrada do aplicativo legado para o gerenciador de filas do aplicativo legado.
Utilize o utilitário apropriado do WebSphere MQ para digitar a seguinte definição de fila:
DEFINE QLOCAL(WSHOST1_OUT1) REPLACE
Construindo a Amostra Cliente de Serviço da Web
Se você não quiser fazer isso, um projeto de conjunto de mensagens e um projeto de fluxo de mensagens concluídos são fornecidos com essa amostra.
Para construir a amostra Cliente de Serviço da Web:
- Crie um conjunto de mensagens. Isso servirá para a mensagem de formato de serviço da Web (XML) e para o formato legado (CWF).
- Inicie o Message Brokers Toolkit.
- Certifique-se de estar na perspectiva Desenvolvimento de Aplicativos do Broker.
- Clique em Arquivo > Novo > Projeto do Conjunto de Mensagens.
- Configure Nome do Projeto como WSCLIENT_MSP1 e, em seguida, clique em Avançar.
- Configure Nome do Conjunto de Mensagens como WSCLIENT_MS1.
- Selecione Utilizar Espaços de Nomes e, em seguida, clique em Avançar.
- Selecione Nome do Custom Wire Format e Nome do XML Wire Format e, em seguida, clique em Concluir.
- Feche o messageset.mset, salvando o conteúdo.
- Importe um arquivo de cabeçalho C. Isso fornece as definições de mensagens de entrada e de saída dos aplicativos legados.
- Copie o arquivo legacyservice.h do projeto WSHOST_LEGACY
e cole-o no projeto WSCLIENT_MSP1.
- Crie um arquivo de definição de mensagem do Broker a partir do arquivo de cabeçalho C:
- No Navegador de Recurso, clique com o botão direito do mouse em legacyservice.h e, em seguida, clique em Novo > Arquivo de Definição de Mensagem.
- O botão de rádio para o arquivo de cabeçalho C deve estar pré-selecionado. Se não estiver, selecione-o e clique em Avançar
- Dentro do projeto WSCLIENT_MSP1, legacyservice.h deve estar pré-selecionado.
Se não estiver, selecione-o e, em seguida, clique em Avançar.
- Na área de janela Conjuntos de Mensagens, expanda WSCLIENT_MSP1
e selecione WSCLIENT_MS1; em seguida, clique em Avançar.
- Na área de janela Estruturas de Origem,
clique em tagIA81BUY,
clique no botão >,
clique em tagIA81CONF,
clique no botão > e,
em seguida, clique em Selecionar Tudo > Concluir.
- Feche o legacyservice.mxsd, salvando o conteúdo.
- Importe o WSDL para o serviço da Web.
- Clique em Arquivo > Importar > Sistema de Arquivo > Avançar.
- Navegue para selecionar o diretório wsdl
do projeto WSHOST_MSP1.
- Configure Na Pasta como WSCLIENT_MSP1 e clique em Concluir
- Crie um arquivo de definição de mensagem do Broker a partir do WSDL:
- No Navegador de Recurso, clique com o botão direito do mouse em WSHOST_MS1Service.wsdl,
dentro do diretório wsdl do projeto
WSCLIENT_MSP1
e clique em Novo > Arquivo de Definição de Mensagem.
- O botão de rádio para o arquivo WSDL deve estar pré-selecionado. Se não estiver, selecione-o e clique em Avançar
- Dentro do projeto WSCLIENT_MSP1, WSHOST_MS1Service.wsdl deve estar pré-selecionado.
Se não estiver, selecione-o e, em seguida, clique em Avançar.
- Na área de janela Conjuntos de Mensagens, expanda WSCLIENT_MSP1 e selecione WSCLIENT_MS1.
- Na área de janela de espaço de nomes, configure o prefixo de espaço de nomes para o espaço de nomes http:www.brokersamplewshost.ibm.com
como wshost e clique em Avançar.
- É mostrada uma lista de arquivos que serão gerados. Clique em Concluir.
- Crie um fluxo de mensagem. O fluxo captura como entrada uma mensagem do WebSphere MQ,
constrói um pedido de serviço da Web e envia o pedido utilizando HTTP. A resposta HTTP é recebida e uma mensagem de resposta do WebSphere MQ é enviada.
- Clique em Arquivo > Novo > Projeto do Fluxo de Mensagens.
- Configure Nome do Projeto como WSCLIENT_MFP1 e, em seguida, clique em Avançar.
- Na área de janela "Projetos Referidos", selecione WSCLIENT_MSP1 e, em seguida, clique em Concluir.
- No Navegador de Recurso, clique com o botão direito do mouse em WSCLIENT_MFP1 e, em seguida, clique em Novo > Fluxo de Mensagens.
- Configure Esquema como WSCLIENT_MFP1.
- Configure Nome como WSCLIENT_WSCLIENT1 e, em seguida, clique em Concluir.
- Exiba a paleta (se oculta) e coloque os seguintes nós no canvas do Fluxo de Mensagens:
- 1 nó MQInput
- 2 nós Compute
- 1 nó MQReply
- 1 nó HTTPRequest
- Clique em Conexão na paleta e conecte os seguintes nós e terminais:
- MQInput (saída) - Compute (entrada)
- Compute (saída) - HTTPRequest (entrada)
- HTTPRequest (saída) - Compute1 (entrada)
- Compute1 (saída) - MQreply (entrada)
- Customize o nó MQInput (MQInput legado):
- Clique com o botão direito do mouse no nó MQInput e clique em Propriedades.
- Selecione Básico e configure Nome da Fila como WSCLIENT1_IN1.
- Selecione Padrão:
- Para Domínio de Mensagem, selecione MRM da lista drop-down.
- Para Conjunto de Mensagens, selecione WSCLIENT_MS1 da lista drop-down.
- Para Tipo de Mensagem, selecione msg_tagIA81BUY da lista drop-down.
- Para Formato da Mensagem, selecione CWF1 da lista drop-down.
- Clique em OK.
- Customize o nó Compute:
- Clique com o botão direito do mouse no nó Compute e clique em Abrir ESQL.
- Codifique o seguinte ESQL entre as instruções BEGIN e END para este módulo. Utilize o assistente de conteúdo (Ctrl + espaço) para selecionar
palavras-chave. Instruções DECLARE NAMESPACE similares àquelas comentadas nas duas primeiras linhas devem ser geradas quando o assistente de conteúdo for utilizado pela primeira vez para selecionar o elemento do Corpo SOAP e qualquer elemento IA81CONFIN. Se estiver
copiando e colando esse código, certifique-se de remover o comentário das instruções DECLARE NAMESPACE.
--DECLARE tns NAMESPACE 'http://schemas.xmlsoap.org/soap/envelope/';
--DECLARE ns NAMESPACE 'http://www.brokersamplewshost.ibm.com';
CALL CopyMessageHeaders();
-- Salvar o MQMD; enviando para HTTP posteriormente no fluxo o destrói
SET Environment.MQMD = InputRoot.MQMD;
-- A entrada é CWF, a saída é SOAP, portanto, configurar formato de ligação e nome da mensagem
SET OutputRoot.Properties.MessageType = 'Envelope';
SET OutputRoot.Properties.MessageFormat = 'XML1';
-- Construir mensagem para ser enviada ao serviço da Web
SET OutputRoot.MRM.tns:Body.ns:IA81CONFIN.MessageId = 'IA81CONF';
SET OutputRoot.MRM.tns:Body.ns:IA81CONFIN.OrderNumber = InputBody.OrderNumber;
SET OutputRoot.MRM.tns:Body.ns:IA81CONFIN.ItemReference = InputBody.ItemReference;
SET OutputRoot.MRM.tns:Body.ns:IA81CONFIN.ItemQuantity = InputBody.ItemQuantity;
SET OutputRoot.MRM.tns:Body.ns:IA81CONFIN.CustomerNumber = InputBody.CustomerNumber;
SET OutputRoot.MRM.tns:Body.ns:IA81CONFIN.DeliveryRef = ' ';
SET OutputRoot.MRM.tns:Body.ns:IA81CONFIN.Confirm = ' ';
SET OutputRoot.MRM.tns:Body.ns:IA81CONFIN.filler1 = ' ';
RETURN TRUE;
- Customize o nó HTTPRequest:
- Clique com o botão direito do mouse no nó HTTPRequest e clique em Propriedades.
- Selecione Básico e configure URL de Serviço da Web
como http://localhost:7080/samplebrokerwshost. Observe se o intermediário que hospeda o serviço da Web está em uma máquina diferente para esse intermediário ou está utilizando uma porta não-padrão, ou ambos; corrija essa URL, conforme apropriado.
- Selecione Padrão:
- Para Domínio de Mensagem, selecione MRM da lista drop-down.
- Para Conjunto de Mensagens, selecione WSCLIENT_MS1 da lista drop-down.
- Para Tipo de Mensagem, selecione Envelope da lista drop-down.
- Para Formato de Mensagem, selecione XML1 da lista drop-down.
- Clique em OK.
- Customize o nó Compute1:
- Clique com o botão direito do mouse no nó Compute1 e, em seguida, clique em Abrir ESQL.
- Codifique o seguinte ESQL entre as instruções BEGIN e END para este módulo. Utilize o assistente de conteúdo (Ctrl + espaço) para selecionar
palavras-chave. Uma instrução DECLARE NAMESPACE semelhante às comentadas na primeira linha deve ser gerada quando
o assistente de conteúdo for utilizado pela primeira vez para selecionar o elemento do Corpo SOAP.
--DECLARE tns NAMESPACE 'http://schemas.xmlsoap.org/soap/envelope/';
--DECLARE ns NAMESPACE 'http://www.brokersamplewshost.ibm.com';
CALL CopyMessageHeaders();
-- A saída é MQ, portanto, remova cabeçalhos HTTP
SET OutputRoot.HTTPResponseHeader = NULL;
-- A saída é CWF, portanto, configurar as propriedades do conjunto de mensagens de destino
SET OutputRoot.Properties.MessageType = 'msg_tagIA81CONF';
SET OutputRoot.Properties.MessageFormat = 'CWF1';
-- Criar um MQMD e restaurá-lo para os valores salvos
CREATE NEXTSIBLING OF OutputRoot.Properties DOMAIN 'MQMD';
SET OutputRoot.MQMD = Environment.MQMD;
-- Construir mensagem a ser enviada
SET OutputRoot.MRM.MessageId - InputBody.tns:Body.ns:IA81CONFOUT.MessageId;
SET OutputRoot.MRM.OrderNumber = InputBody.tns:Body.ns:IA81CONFOUT.OrderNumber;
SET OutputRoot.MRM.ItemReference = InputBody.tns:Body.ns:IA81CONFOUT.ItemReference;
SET OutputRoot.MRM.ItemQuantity = InputBody.tns:Body.ns:IA81CONFOUT.ItemQuantity;
SET OutputRoot.MRM.CustomerNumber = InputBody.tns:Body.ns:IA81CONFOUT.CustomerNumber;
SET OutputRoot.MRM.DeliveryRef = InputBody.tns:Body.ns:IA81CONFOUT.DeliveryRef;
SET OutputRoot.MRM.Confirm = InputBody.tns:Body.ns:IA81CONFOUT.Confirm;
SET OutputRoot.MRM.filler1 = InputBody.tns:Body.ns:IA81CONFOUT.filler1;
RETURN TRUE;
- Customize o nó MQReply:
- Não há nenhuma customização a ser feita
- Feche o WSCLIENT_WSCLIENT1.esql, salvando o conteúdo.
- Feche o WSCLIENT_WSCLIENT1.msgflow, salvando o conteúdo.
Voltar para Home da Amostra