您可以使用 Destination 子树来设置输出节点使用的目标位置。下面的示例显示了如何能创建和使用 ESQL 过程来执行针对每次使用设置值的任务。
如下所示,您可以复制并使用这些过程,或者可以修改或扩展这些过程来执行类似的任务。
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;