Why flowable-rest separated from flowable-task?

Hi,
i am executing the example given by the doc.
i succesfully created a flow with flowable-modeler, then published it into flowable-task.
now i would like to fill in the form by using REST, so i have to use flowable-rest, but it doesn’t know the project created into flowable-modeler/flowable-task.

So my question : Why flowable-rest separated from flowable-task ?
The only way to import a project into flawable-rest is to send a “myFlow.zip” file by using http post ?

Regards
Eric

Hi Eric,

The Flowable engines are exposed by REST APIs.
These are provided in the Flowable Task UI app. But also seperately in the Flowable REST app.
In addition to the engine APIs the Flowable Task UI app has some specific endpoints.

The Flowable REST app can be used in a scenario where you ‘just’ want to run the engine(s) and expose the REST API(s). (f.e. without the UI apps)

What do you mean exactly by importing a project?
If you want to distribute artifacts between modeler instances you should use the ‘app’ export and import.
If you want to deploy to the engine(s) you can deploy single deployable artifacts; like BPMN process XMLs. Or package them in a ‘bar file’. (You can export an app as a bar file in the modeler’).

Deploying can be done by using the Java or the REST API.

Hope this helps.

Regards,
Yvo

2 Likes

What do you mean exactly by importing a project?>
=> i mean flowable doesn’t see the flow created in flowable-task, so i guess i have to give a “myFlow.bar” to flowable-rest.
For example, when i execute
curl --user kermit:kermit "http://localhost:8080/flowable-rest/Service/management/tables/ACT_RE_PROCDEF, the result is different from the content of the same table in the postgres database created by flowable-task.

Second question : if i test one of the end points given by the web page
localhost:8080/flowable-admin ,
i get nothing, for example :
curl -u admin:test -X GET -H “Content-Type:application/json” “http://localhost:8080/flowable-task/form-api” => gives "HTTP 404 - Not Found"
So i do not understand how to get a end point for flowable-task :sweat:

You should provide a resource that can be resolved. For example;

http://host:port/flowable-task/form-api/form-management/engine

See the REST API docs for more info on the resources.

Regards

Yvo

Your example works fine, but in the doc i didn’t find the end points for a given form.

This web page

localhost:8080/flowable-admin/#/form-definitions

gives the list of forms created by me, with columns “ID”, “Name”, “Deployment ID”.
But i do not know how to build the end point with these informations !
for example

curl … http://localhost:8080/flowable-task/form-api/form-definitions/2727

gives “HTTP 404 - Not Found” :wilted_flower::blossom::sunflower:

Is 2727 a form definition id that is available?

Is it listed when you do a GET on /form-repository/form-definitions?

2727 is a “Deployment ID” given by
localhost:8080/flowable-admin/#/form-definitions
i tried to use the form ID (03db6677-…) but it doesn’t work :confused:

If you to query by deployment ID you should use

GET form-repository/deployments/{deploymentId}

Please check the docs for this.

GET localhost:8080/form-repository/form-definitions
gives HTTP 404 - Not Found
maybe there is a missing path between 8080 and form-repository ??

Yes. The context path. In your case; flowable-task.

Ok, i tried

curl -u admin:test -X GET -H “Content-Type:application/json” “http://localhost:8080/flowable-task/ form-repository/form-deifinitions”

=> it gives … nothing, no error message, nothing in the log
Does it mean there is something wrong in the configuration ? :apple::strawberry::pear:

That probably mean that engine running in the Task app does not have any form deployed.
Are you sure this is the case?

You mentioned you see form deployments listed in the Admin app. Is the Admin app communicating with the same Flowable Task instance?

That probably mean that engine running in the Task app does not have any form deployed.
Are you sure this is the case?

=>
localhost:8080/flowable-admin/#/content-engine
is empty, but
localhost:8080/flowable-admin/#/form-engine
contains 30 “forms deployments”

Is the Admin app communicating with the same Flowable Task instance?
=> how can i check it ? :rabbit::rabbit2::penguin:

It’s described here;

http://www.flowable.org/docs/userguide/index.html#flowableAdminApp

I think the answer is yes because flowable-admin and flowable-task are deployed on the same tomcat server, and flowable-admin gives the list of tasks coming from flowable-tasks.
The following url
localhost:8080/flowable-admin/#/process-engine
gives the list of deployed tasks.
So, admin and task seem to communicate properly

The login:password i must use for
curl … localhost:8080/flowable-task/form-repository/form-definitions
is kermit:kermit or the one defined in flowable-idm ??
:tropical_drink::wine_glass::cup_with_straw:

SOLUTION :
“form-api” was missing in the request like this :

curl -u admin:test -X GET -H “Content-Type:application/json” “http://localhost:8080/flowable-task/form-api /form-repository/form-deifinitions”

:slight_smile:

I think initial problem was, that out-of-the box WAR’s (Task/Modeler/REST webapps) are using their own h2 in-memory db instance, thus they won’t “see” each other’s data until changing h2 to shared file-based database!

I was struggling with the same issue.
Perhaps this should be changed in default configurations?

That’s indeed an option. Probably putting something in the user.home is the way that works cross-operating systems.