E' possibile utilizzare la struttura ad albero secondaria Destination per impostare le destinazioni di arrivo utilizzate dai nodi di output, il nodo HTTPRequest e il nodo RouteToLabel. Gli esempi seguenti mostrano come creare e utilizzare una procedura ESQL per svolgere l'attività di impostazione dei valori per ciascuno di questi utilizzi.
E' possibile copiare e utilizzare queste procedure come indicato o modificarle o estenderle per svolgere attività simili.
CREATE PROCEDURE addToMQDestinationList(IN LocalEnvironment REFERENCE, IN newQueue char) BEGIN /******************************************************************************* * Una procedura che aggiungerà un nome coda all'elenco di destinazioni MQ * nell'ambiente locale. * Questo elenco è utilizzato da un nodo MQOuput che ha la propria modalità impostata su Elenco di destinazioni. * * IN LocalEnvironment: LocalEnvironment da modificare. * Impostare su OutputLocalEnvironment quando si richiama questa procedura * IN queue: coda da aggiungere all'elenco * *******************************************************************************/ 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 /******************************************************************************* * Una procedura che modificherà l'URL a cui il nodo HTTPRequest invierà la richiesta. * * IN LocalEnvironment: LocalEnvironment da modificare. * Impostare su OutputLocalEnvironment quando si richiama questa procedura * IN queue: URL a cui inviare la richiesta. * *******************************************************************************/ set LocalEnvironment.Destination.HTTP.RequestURL = newUrl; END;
CREATE PROCEDURE addToRouteToLabelList(IN LocalEnvironment REFERENCE, IN newLabel char) BEGIN /******************************************************************************* * Una procedura che aggiungerà un nome etichetta all'elenco RouteToLabel * nell'ambiente locale. * Questo elenco è utilizzato da un nodo RouteToLabel. * * IN LocalEnvironment: LocalEnvironment da modificare. * Impostare su OutputLocalEnvironment quando si richiama questa procedura * IN label: etichetta da aggiungere all'elenco * *******************************************************************************/ 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;