Puede utilizar un mensaje XML para el nodo CORBARequest o crear un mensaje utilizando otro nodo de flujo de mensajes.
Asegúrese de que ha creado y configurado un flujo de mensajes con un nodo CORBARequest, como se describe en Desarrollo de un flujo de mensajes con un nodo CORBARequest.
Puede especificar la ubicación en el árbol de mensajes entrantes del que se recuperan datos para formar la solicitud que envía el nodo CORBARequest. Especifique esta ubicación utilizando la propiedad Ubicación de datos del separador Solicitud. El valor válido es $Body.
El siguiente ejemplo muestra el XML y ESQL que podría recibir un flujo de mensajes.
Combinación de parámetros in, inout y 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 archivo IDL contiene una interfaz con dos operaciones,
que tienen un parámetro in, un parámetro inout y un parámetro out. Para la primera operación, exampleOneOperationA, debe pasar los parámetros inparamA y inoutparamA bajo el tipo de nivel superior ExampleOne.exampleOneOperationA. No es necesario que pase el parámetro outparamA.
<ExampleOne.exampleOneOperationA>
<inparamA>your value</inparamA>
<inoutparamA>your value</inoutparamA>
</ExampleOne.exampleOneOperationA>
A continuación se muestra un ejemplo
de ESQL:SET
OutputRoot.DataObject."ExampleOne.exampleOneOperationA".inparamA = 'yourvalue';
SET
OutputRoot.DataObject."ExampleOne.exampleOneOperationA".inoutparamA = 'yourvalue';
Para la segunda operación, exampleOneOperationB, debe pasar
los parámetros inparamB e inoutparamB
bajo el tipo de nivel superior ExampleOne.exampleOneOperationB.
No es necesario que pase el parámetro outparamB. <ExampleOne.exampleOneOperationB>
<inparamB><item>your value</item></inparamB>
<inoutparamB><member>your value</member></inoutparamB>
</ExampleOne.exampleOneOperationB>
A continuación se muestra un ejemplo
de ESQL:SET
OutputRoot.DataObject."ExampleOne.exampleOneOperationB".inparamB.item = 'your value';
SET
OutputRoot.DataObject."ExampleOne.exampleOneOperationB".inoutparamB.member = 'your value'
Parámetros in e inout únicamente
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 archivo IDL contiene dos operaciones sólo con un parámetro in
e inout. La eliminación del parámetro out y la existencia de los parámetros in
e inout únicamente no cambia los parámetros que se deben pasar. Para llamar a la primera operación, exampleTwoOperationA, pase los parámetros inparamA e inoutparamA bajo el tipo de nivel superior ExampleTwo.exampleTwoOperationA.
<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 llamar a la segunda operación, exampleTwoOperationB,
pase los parámetros inparamB e
inoutparamB bajo el tipo de nivel superior
ExampleTwo.exampleTwoOperationB. <ExampleTwo.exampleTwoOperationB>
<inparamB><item>your value</item></inparamB>
<inoutparamB><member>your value</member></inoutparamB>
</ExampleTwo.exampleTwoOperationB>
A continuación se muestra un ejemplo
de ESQL:SET
OutputRoot.DataObject."ExampleTwo.exampleTwoOperationB".inparamB.item = 'your value';
SET
OutputRoot.DataObject."ExampleTwo.exampleTwoOperationB".inoutparamB.member = 'your value';
Ningún parámetro o sólo parámetros out
Si la operación no contiene ningún parámetro, o sólo contiene parámetros out, no es necesario que especifique nada en el cuerpo del mensaje. El nodo CORBARequest no busca en el mensaje entrante.