Uma UDP (User-Defined Property) é uma constante definida pelo usuário cujo valor inicial pode ser modificado, no tempo de design, pelo Editor de Fluxo de Mensagens ou substituído, no tempo de implementação, pelo Editor Archive do Intermediário. É possível utilizar UDPs em seus programas ESQL ou Java. Em ESQL, por exemplo, você utiliza a instrução DECLARE para definir um UDP para seu programa. É possível fornecer um valor inicial ao UDP quando ele é declarado, mas seu código não pode modificar o valor no tempo de execução.
Se um UDP receber um valor inicial quando for declarado, esse se tornará seu padrão. No entanto, qualquer valor especificado pelo Editor de Fluxo de Mensagens no tempo de design ou pelo Editor de BAR na hora da implementação (mesmo uma cadeia com comprimento zero) substitui qualquer valor inicial declarado.
Cada UDP de um fluxo de mensagens deve ter um valor, fornecido quando o UDP é declarado ou pelo Editor de Fluxo de Mensagens ou de BAR; caso contrário, ocorre um erro de tempo de implementação. No tempo de execução, após o UDP ter sido declarado, seu valor pode ser consultado por instruções de programa subseqüentes, mas não modificado.
A vantagem de UDPs é que seus valores podem ser alterados pela equipe operacional no tempo de implementação. Por exemplo, se você utilizar as UDPs para conter dados de configuração, isso significa que é possível configurar um fluxo de mensagens para uma máquina, tarefa ou ambiente específico no tempo de implementação, sem precisar alterar o código no nível do nó. Os dados de configuração não precisam ser acessados, por exemplo, por plug-ins de origens de dados, como bancos de dados, ou copiados em árvores de ambiente.
Utilizando UDPs, os dados de configuração podem ser configurados facilmente e utilizados exatamente como constantes normais. Como nenhuma chamada externa a plug-ins gravados por usuário nem a análise das árvores de ambiente são envolvidas, seu código de programa é mais fácil de gravar e manter e tem melhor execução. Além disso, os custos de análise de leitura de dados fora das árvores são removidos. O valor da propriedade definida pelo usuário é registrado na variável no tempo de implementação, o que torna mais rápido acessá-lo.
É possível declarar UDPs somente em módulos ou esquemas.
Se você utilizar o editor de Fluxo de Mensagens para alterar o valor de uma propriedade definida pelo usuário, o valor da UDP será configurado no nível do fluxo e será igual para todos os nós elegíveis contidos no fluxo. Um "nó elegível" é um nó que suporta UDPs e está dentro do escopo da declaração que declara o UDP para seu aplicativo. Por exemplo, se você utilizar o editor de Fluxo de Mensagens para alterar o valor de uma propriedade do usuário denominada "timezone", que esteja declarada em um esquema denominado "mySchema", em um fluxo de mensagens denominado "myFlow", a UDP estará disponível no tempo de execução para todos os nós no myFlow que suportem UDPs e estejam dentro do mySchema.