You can use the Destination subtree to set up target destinations that are used by output nodes, the HTTPRequest node, and the RouteToLabel node. The examples below show how you can create and use an ESQL procedure to perform the task of setting up values for each of these uses.
You can 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 will add a queue name to the MQ destination list * in the local environment. * This list is used by a MQOuput node which has its mode set to Destination list. * * IN LocalEnvironment: LocalEnvironment to be modified. * Set this to OutputLocalEnvironment when calling this procedure * IN queue: queue to be added to the list * *******************************************************************************/ DECLARE I INTEGER CARDINALITY(LocalEnvironment.Destination.MQDestinationList.DestinationData[]); IF I = 0 THEN SET LocalEnvironment.Destination.MQDestinationList.DestinationData[1].queueName = newQueue; ELSE SET LocalEnvironment.Destination.MQDestinationList.DestinationData[I+1].queueName = newQueue; END IF; END;
CREATE PROCEDURE overrideDefaultHTTPRequestURL(IN LocalEnvironment REFERENCE, IN newUrl char) BEGIN /******************************************************************************* * A procedure that will change the URL to which the HTTPRequest node will send the request. * * IN LocalEnvironment: LocalEnvironment to be modified. * Set this to OutputLocalEnvironment when calling this procedure * IN queue: URL to send the request to. * *******************************************************************************/ set LocalEnvironment.Destination.HTTP.RequestURL = newUrl; END;
CREATE PROCEDURE addToRouteToLabelList(IN LocalEnvironment REFERENCE, IN newLabel char) BEGIN /******************************************************************************* * A procedure that will add a label name to the RouteToLabel list * in the local environment. * This list is used by a RoteToLabel node. * * IN LocalEnvironment: LocalEnvironment to be modified. * Set this to OutputLocalEnvironment when calling this procedure * IN label: 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;