Use the Destination subtree to set up the target destinations that are used by output nodes, the HTTPRequest node, the SOAPRequest node, the SOAPAsyncRequest node, and the RouteToLabel node. The following examples show how you can create and use an ESQL procedure to perform the task of setting up values for each of these uses.
Copy and use these procedures as shown, or you can modify or extend them to perform similar tasks.
CREATE PROCEDURE addToMQDestinationList(IN LocalEnvironment REFERENCE, IN newQueue char) BEGIN /******************************************************************************* * A procedure that adds a queue name to the MQ destination list in the local environment. * This list is used by an MQOutput node that has its mode set to Destination list. * * IN LocalEnvironment: the LocalEnvironment to be modified. * Set this value to OutputLocalEnvironment when calling this procedure * IN queue: the queue to be added to the list * *******************************************************************************/ DECLARE I INTEGER CARDINALITY(LocalEnvironment.Destination.MQ.DestinationData[]); IF I = 0 THEN SET LocalEnvironment.Destination.MQ.DestinationData[1].queueName = newQueue; ELSE SET LocalEnvironment.Destination.MQ.DestinationData[I+1].queueName = newQueue; END IF; END;
CREATE PROCEDURE overrideDefaultHTTPRequestURL(IN LocalEnvironment REFERENCE, IN newUrl char) BEGIN /******************************************************************************* * A procedure that changes the URL to which the HTTPRequest node sends the request. * * IN LocalEnvironment: the LocalEnvironment to be modified. * Set this value to OutputLocalEnvironment when calling this procedure * IN queue: the URL to which to send the request. * *******************************************************************************/ set LocalEnvironment.Destination.HTTP.RequestURL = newUrl; END;
CREATE PROCEDURE addToRouteToLabelList(IN LocalEnvironment REFERENCE, IN newLabel char) BEGIN /******************************************************************************* * A procedure that adds a label name to the RouteToLabel list in the local environment. * This list is used by a RoteToLabel node. * * IN LocalEnvironment: the LocalEnvironment to be modified. * Set this value to OutputLocalEnvironment when calling this procedure * IN label: the label to be added to the list * *******************************************************************************/ if LocalEnvironment.Destination.RouterList.DestinationData is null then set LocalEnvironment.Destination.RouterList.DestinationData."label" = newLabel; else create LASTCHILD OF LocalEnvironment.Destination.RouterList.DestinationData NAME 'label' VALUE newLabel; end if; END;