bpmnflowable

Flowable - concat dynamic variable and a string in http task (url)


I need to convert the base url according to the production and other environments.

I am using script task before a http task to perform this logic. baseUrl = http://localhost:8080 baseUrl, is the output of the script task. Now I need to add this base url as a prefix in http task url

Url = ${baseUrl}/application/find (something like this).

I am getting the following issue

Unknown Property used in the expression ${baseUrl}/application/find

Script

var env = execution.getVariable("env")
if(env == "prod") {
     var baseUrl = "http://localhost:8080";
     execution.setVariable("baseUrl", baseUrl);
}

Please assist.


Solution

  • This typically means that it is unable to find a property in the expression (as the message says). The only expression you are using is baseUrl which means that the issue is around the baseUrl. The concatenation as you have done it is correct and doesn't need to have an adaption.

    You should check if the variable really exists, this you can do by introducing a wait state before your HTTP task and check afterwards if the variable is created. Rather than using outputs, you can also use the Java API in your script task to create the variable:

    execution.setVariable("baseUrl", "http://localhost:8080");
    

    Assuming you are using Spring Boot, for your specific use-case it would be also an option to use the application.properties to specify your base-url and then refer to the baseUrl with the following expression:

    ${environment.getProperty("baseUrl")}/application/find
    

    This will allow you to change the baseUrl independent of your process definition.