Features and work arounds


#1

Hi,
my background is with TIBCO BPM and I’m looking for an open source solution for a personal project. I’m evaluating if flowable can be the bpm technology to use.
I only need a rough answer about each feature. Any kind 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. Eg.
    Request for quotation
    |- issudeDate type Date
    |- title type String
    |- Questions type list of Question
    |- questionTitle type String
    |- description type String
    |- answerType type Enum {freeText, Number, Date, File}
    etc.

  2. Can I pass objects as parameters in input and/or output of a user task or I can only use simple types like String, Date, Integer, etc.

  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. Do signals support correlation? For example I have a process instance started from rest call, then the process catches a signal. Is there a way to say automatically that the signal to be caught should have a correlation id equal to a particular process variable. For Example, a user issues a Request for Quotation which goes to variuos suppliers. While the suppliers are getting a task to reply to the request for quotation, the original user decides to withdraw the process. Then a “Withdraw” siganl should be sent with the Request for quotation id set as correlation id. So only the process instances matching that correlation id will catch the signal.

  5. Does the engine supports also catching messages with a correlation id? So, can a process instance catch a message only if the correlation id matches?

These are my main concerns about the BPM engine.
I also would like to know if it is still possible to integrate flowable with alfresco or is there any other cms available?

Thanks for your attention.

Kind regards

Danilo Scuderoni


#2

Hi Danilo,

For points 1 and 2, yes you can use complex objects. We advise to use JSON objects (using Jackson ObjectNode or ArrayNode) so they can be serialized as text in the variable table.

  1. If you want to use the out-of-the-box form engine then no arrays are supported at the moment in the form controls. We welcome community contributions in this area.

  2. The correlation is done using the signal identifier together with an optional process instance id. It would be a nice addition to also allow variable based correlation, but this is not available at this moment.

  3. Messages are quite similar to signals in Flowable, although the BPMN specification mainly uses messages to communicate between different pools in the same process definition.

Yes of course you can integrate Flowable with Alfresco, for example using the Alfresco REST API or CMIS connector. Flowable also has a very simple and lightweight content engine implementation to store documents and files for a process / case / task instance.

Best regards,

Tijs