Features enquiry


#1

Hi,
my background is with TIBCO BPM and I’m looking for an open source solution for a personal project.
I only need a rough answer about each feature. Any person with experience in this product will be able to answer very quickly. Here are my questions:

About Modeling:

  1. Can you declare process variable in the form of complex objects? For complex object I mean a class that can encapsulate other classes
  2. Can I pass objects as parameters in input and/or output of a user task or I can only use simple types
  3. It looks to me that forms do not support list or arrays. How do you work around if a user task needs to give in output a list of objects? For example, a User Task that asks the user to take the measurements of the windows. So the output could be 0…* windows dimensions
  4. Can I design a process that starts from a rest api and can that process have another process starter with a correlation input variable so if a process instance has already the same correlation value the engine will point to that process instance?
  5. Does the engine support global signals? For example, a process instance throws a global signal and then all the process instances can catch that signal?
  6. Can the signals have an input that can be correlated to particular process instances so there is a process instance for a Request for quotation that goes to various supplier but then the customer triggers a new process instance to withdraw all the request for quotation using a withdraw signal with the Request for quotation id as correlation id then all the process instances with that particular correlation id will catch the withdraw signal while the other process instance will not catch any signal.
  7. If a task is offered to a group and one user with the right permissions opens that task, will the task be still available to other users of the same group?

These are my main concerns about the BPM engine.
I also would like to know what are the possible solution for developing a web app with the integration of Flowable. Any CMS?

Thanks for your attention.

Kind regards

Danilo Scuderoni


#2

Hello Danilo,

Here some answers to your questions:

  1. Process variables can store complex objects. A common use case is to transform complex objects to JSON and let the engine do the serialization/deserialization for you (org.flowable.variable.service.impl.types.JsonType). There are many possibilities, you could search for the subclasses of org.flowable.variable.api.types.VariableType and see the current list. If that is not enough for you, you can provide your own implementation, it is quite simple.
  2. Yes, that is possible.
  3. The Form Engine you’ve probably used is the one out of the box, which is meant to illustrate how to use/implement a custom engine. As said, this is provided for documentation purposes and it is not meant to be used in a production environment. Customers with a subscription/support get an advanced Form Engine and Modeller Tool, which is more powerful and covers your use case.
  4. I see no problem in achieving that, you can use the Java API to do the checks in a safe way.
  5. Yes, they’re supported.
  6. Signals can be global or be targeted at a specific process instance id. Here you can have more information: https://www.flowable.org/docs/userguide/index.html#bpmnSignalEventDefinition. If you use different signal names for the case you’re describing, you can definitely target a signal to a group of processes whereas the rest won’t be affected by it.
  7. Yes.

The answers to the questions above can be found in our documentation (https://www.flowable.org/documentation.html), there you can get always the most up to date information about our engine. Besides that, there are many sample projects using our engine, you can refer to https://github.com/flowable/flowable-examples.

Hope that helps!
Best regards,
José.