É possível usar uma mensagem XML para o nó CORBARequest ou você pode construir uma mensagem usando outro nó do fluxo de mensagens.
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.
É 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.
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
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.
<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. <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
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.
<ExampleTwo.exampleTwoOperationA>
<inparamA>your value</inparamA>
<inoutparamA>your value</inoutparamA>
</ExampleTwo.exampleTwoOperationA>
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.
<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.