Это вариант ответа @Daniel Steinmann. Вам необходимо решить, насколько надежны и согласованы ваши соглашения об именах Брокера и соглашения об именах URL-адресов целевой системы и могут ли они приближаться алгоритмически .
Они также должны быть достаточно стабильными, чтобы у вас не возникало проблем с жестким кодированием. Да, жесткое кодирование, как полагают многие, является анафемой для хорошей практики кодирования, но добавление еще одной точки отказа при использовании базы данных конфигурации создает свои собственные проблемы. Вопрос, который я задаю перед принятием решения о том, что жесткое кодирование не приведет к необоснованным развертываниям, состоит в том, изменится ли это через год.
CREATE COMPUTE MODULE ComputeNode
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
DECLARE UrlPattern CHAR 'https://target-XX/resource/';
IF CONTAINS(BrokerName, 'DEV') THEN
SET UrlPattern = REPLACE(UrlPattern, 'XX', 'dev');
ELSEIF CONTAINS(BrokerName, 'TST') THEN
SET UrlPattern = REPLACE(UrlPattern, 'XX', 'test');
ELSEIF CONTAINS(BrokerName, 'PRD') THEN
SET UrlPattern = REPLACE(UrlPattern, 'XX', '');
END IF;
SET OutputLocalEnvironment.Destination.HTTP.RequestURL =
UrlPattern || InputRoot.JSON.Data.Aggregate.PrimaryKeyField;
....
Я хотел бы отметить, что большинство сайтов, на которых я работал, будут иметь конфигурационную базу данных, и если у вас ее нет, вполне вероятно, что она появится в недалеком будущем. С момента создания узлов Callable Flow я начал использовать их для создания единого Callable Flow, который обрабатывает загрузку данных конфигурации.
Удачи в вашем решении.