Una propiedad definida por el usuario (UDP) es una propiedad que se define cuando se construye un flujo de mensajes utilizando el Editor de flujos de mensajes. Esta propiedad puede utilizarla el programa ESQL dentro de los nodos de flujo de mensajes, como por ejemplo el nodo Compute. También se puede utilizar como una propiedad Java dentro del código Java generado por un nodo JavaCompute.
La ventaja de las UDP es que el personal de operaciones puede cambiar sus valores durante el despliegue. No es necesario cambiar los programas de aplicación. Por ejemplo, si utiliza las UDP para que contengan datos sobre su centro de trabajo, puede configurar un flujo de mensajes para una máquina, una tarea o un entorno determinados en tiempo de despliegue, sin tener que cambiar el código a nivel de nodo de mensajes.
Cuando inicia el Editor de flujos de mensajes para crear un flujo de mensajes o modificar un flujo de mensajes existente, así como para decidir qué nodos se requieren en el flujo de mensajes, también tiene la opción (proporcionada por el separador) de definir y asignar valores iniciales a algunas propiedades definidas por el usuario. Utilice el separador Propiedades definidas por el usuario situado en la parte inferior de la ventana de edición. En el apartado Editor de flujos de mensajes encontrará más información sobre cómo realizar esta acción.
Además de definirla utilizando el Editor de flujos de mensajes, una UDP también debe definirse utilizando una sentencia DECLARE con la palabra clave EXTERNAL en cualquier programa ESQL que la utilice, o con el método getUserDefinedAttribute en cualquier nodo JavaCompute que la utilice.
Consulte la Sentencia DECLARE para ver información detallada sobre la sentencia DECLARE, y consulte el apartado Acceder a propiedades definidas por el usuario desde un nodo JavaCompute para obtener más información sobre cómo utilizar una UDP en un nodo JavaCompute.
Cualquier valor que asigne a una UDP cuando la defina en un flujo de mensajes prevalecerá sobre el valor de esa variable en el programa ESQL o Java.
El valor de una UDP también se puede modificar en tiempo de despliegue utilizando el Editor de archivador de intermediario para editar el archivo BAR. Este valor prevalecerá sobre cualquier valor que se haya asignado al definir el flujo de mensajes.
Cada UDP de un flujo de mensajes debe tener un valor, asignado cuando se declara la UDP o por el Editor de flujos de mensajes o de archivador de intermediario; de lo contrario se produce un error de tiempo de despliegue. En tiempo de ejecución, después de que se haya declarado la UDP, su valor se puede consultar mediante sentencias de programa subsiguientes pero no se puede modificar.
El valor de la UDP se establece a nivel de flujo y es el mismo para todos los nodos elegibles contenidos en el flujo. Un "nodo elegible" es un nodo que soporta las UDP y está dentro del ámbito de la declaración que declara la UDP a la aplicación. Por ejemplo, si utiliza el Editor de flujos de mensajes para cambiar el valor de una propiedad de usuario denominada "timezone", que se declara en un esquema denominado "mySchema", en un flujo de mensajes denominado "myFlow", la UDP está disponible en tiempo de ejecución para todos los nodos de myFlow que soportan las UDP y que están dentro de mySchema.
De forma similar, si utiliza el Editor de flujos de mensajes para cambiar el valor de una propiedad definida por el usuario en un subflujo, la propiedad recién editada está disponible para todos los nodos del subflujo que soportan las UDP y están dentro del ámbito de la declaración. No está disponible, por ejemplo, para los nodos del flujo padre.