WebSphere Message Broker, Versão 8.0.0.5 Sistemas operacionais: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte as informações sobre a versão mais recente do produto em IBM Integration Bus, Versão 9.0

Construindo uma Mensagem para o Nó CORBARequest

É possível usar uma mensagem XML para o nó CORBARequest ou você pode construir uma mensagem usando outro nó do fluxo de mensagens.

Antes de começar:

Assegure que você tenha criado e configurado um fluxo de mensagens com um nó CORBARequest, conforme descrito em Desenvolvendo um Fluxo de Mensagens com um Nó CORBARequest.

O nó CORBARequest requer uma mensagem de entrada. O nó pode usar uma mensagem XML de outro nó ou é possível construir uma mensagem usando um nó Compute, JavaCompute ou PHPCompute. Se a mensagem recebida tiver um modelo de mensagem, você poderá usar um nó Mapeamento para construir a mensagem e enviar ao nó CORBARequest. A árvore de mensagens recebidas deve estar no domínio DataObject e os elementos na árvore deverão corresponder À interface IDL que você está chamando. A representação física de uma mensagem no domínio DataObject é XML; portanto, seu aplicativo constrói corpos de mensagem como os exemplos a seguir.

É possível especificar o local na árvore de mensagens recebidas a partir da qual os dados são recuperados para formar o pedido que é enviado pelo nó CORBARequest. Especifique este local usando a propriedade Local dos Dados na guia Pedido. O valor-padrão é $Body.

  1. Descubra quais dados precisam estar no corpo da mensagem para enviar ao nó CORBARequest.
  2. Especifique o elemento de nível superior (interface.operationName) para a mensagem que você precisa enviar no nó CORBARequest.
  3. Especifique um filho para cada parâmetro in e inout. Não é necessário transmitir um valor para parâmetros out.

Os exemplos a seguir mostram o XML e o ESQL que poderão ser recebidos por um fluxo de mensagens.

Uma mistura de parâmetros in, inout e out

A seguir há um exemplo de arquivo IDL:
interface 

ExampleOne {
	enum completion{YES, NO, MAYBE};
 	typedef sequence<string> stringlist;
	struct stringobject {string member;};

	string exampleOneOperation(in string inparamA, inout string inoutparamA, out string outparamA);
	completion exampleOneOperationB(in stringlist inparamB, inout stringobject inoutparamB, out completion outparamB);
}
Este arquivo IDL contém uma interface com duas operações, que possuem um parâmetro in, um parâmetro inout e um parâmetro out.

Para a primeira operação, exampleOneOperationA, é necessário transmitir os parâmetros inparamA e inoutparamA no tipo ExampleOne.exampleOneOperationA de nível superior. Não é necessário transmitir o parâmetro outparamA.

A seguir há um XML de exemplo:
<ExampleOne.exampleOneOperationA>
	<inparamA>your value</inparamA>
	<inoutparamA>your value</inoutparamA>
</ExampleOne.exampleOneOperationA>
A seguir há um exemplo de ESQL:
SET  
OutputRoot.DataObject."ExampleOne.exampleOneOperationA".inparamA = 'yourvalue';

SET  
OutputRoot.DataObject."ExampleOne.exampleOneOperationA".inoutparamA = 'yourvalue'; 
Para a segunda operação, exampleOneOperationB, é necessário transmitir os parâmetros inparamB e inoutparamB no tipo ExampleOne.exampleOneOperationB de nível superior. Não é necessário transmitir o parâmetro outparamB.
A seguir há um XML de exemplo:
<ExampleOne.exampleOneOperationB>
	<inparamB><item>your value</item></inparamB>
	<inoutparamB><member>your value</member></inoutparamB>
</ExampleOne.exampleOneOperationB>
A seguir há um exemplo de ESQL:
SET  
OutputRoot.DataObject."ExampleOne.exampleOneOperationB".inparamB.item = 'your value';

SET  
OutputRoot.DataObject."ExampleOne.exampleOneOperationB".inoutparamB.member = 'your value'

Apenas parâmetros in e inout

A seguir há um exemplo de arquivo IDL:
interface 

ExampleTwo {
	enum completion{YES, NO, MAYBE};
	typedef sequence<string> stringlist;
	struct stringobject {string member;};

	string exampleTwoOperationA(in string inparamA, inout string inoutparamA);
	completion exampleTwoOperationB(in stringlist inparamB, inout stringobject inoutparamB);

}
Este arquivo IDL contém duas operações apenas com um parâmetro in e um inout. A remoção do parâmetro out e a existência apenas de parâmetros in e inout não altera os parâmetros que você precisa transmitir.

Para chamar a primeira operação, exampleTwoOperationA, transmita inparamA e inoutparamA no tipo ExampleTwo.exampleTwoOperationA de nível superior.

A seguir há um XML de exemplo:
<ExampleTwo.exampleTwoOperationA> 
	<inparamA>your value</inparamA>
	<inoutparamA>your value</inoutparamA>
</ExampleTwo.exampleTwoOperationA>
A seguir há um exemplo de ESQL:
SET  
OutputRoot.DataObject."ExampleTwo.exampleTwoOperationA".inparamA = 'yourvalue';

SET  
OutputRoot.DataObject."ExampleTwo.exampleTwoOperationA".inoutparamA = 'yourvalue'; 
Para chamar a segunda operação, exampleTwoOperationB, transmita inparamB e inoutparamB no tipo ExampleTwo.exampleTwoOperationB de nível superior.
A seguir há um XML de exemplo:
<ExampleTwo.exampleTwoOperationB>
	<inparamB><item>your value</item></inparamB>
	<inoutparamB><member>your value</member></inoutparamB>
</ExampleTwo.exampleTwoOperationB>
A seguir há um exemplo de ESQL:
SET  
OutputRoot.DataObject."ExampleTwo.exampleTwoOperationB".inparamB.item = 'your value';

SET  
OutputRoot.DataObject."ExampleTwo.exampleTwoOperationB".inoutparamB.member = 'your value';

Nenhum parâmetro ou apenas parâmetros out

Se a operação não contiver parâmetros, ou contiver apenas parâmetros out, não será necessário colocar nada no corpo da mensagem. O nó CORBARequest não consulta a mensagem recebida.

A seguir: Processe as respostas a partir de CORBARequest, conforme descrito em Processando Respostas de um Nó CORBARequest.
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última atualização:
        
        Última atualização: 2015-02-28 18:30:50


Tópico de TarefaTópico de Tarefa | Versão 8.0.0.5 | bc22450_