Is Flowable suitable for my circumstances?

I’d like to describe my situation and ask whether using a BPM tool such as Flowable seems to make sense. I’ve never used a BPM tool before, so I’m wondering whether it’s a path worth pursuing for my specific circumstances.

I work in an application development group, and we’ve been tasked with automating a number of manually-performed workflows to build client deliverables, where most of these deliverables are Excel workbooks or flat file data extracts. The bulk of the individual tasks involve copying and updating SQL or SAS scripts. Some tasks are executed conditionally–for example, run tasks T3 and T4 if we’re building a brand new client deliverable; otherwise run task T9 and T10 if we’re generating a client deliverable that is a continuation of a prior deliverable. I figure that most of the SQL or SAS scripts can be parameterized in order to eliminate the manual copy & update operations, and I would guess that we could distill the unique aspects of each client deliverable into somewhere between a dozen and 20 parameters.

In light of the fact that essentially all the tasks could be invoked from a Unix command line, my first inclination is to build some shell scripts to orchestrate the execution of tasks, since that’s a technique that I am accustomed to. On the other hand, I see benefit in being able to model the workflows using a graphical tool, which makes it easy to present and discuss with the business users, all of whom understand flowcharts and very few of whom understand Unix shell scripts. Plus, we would want to be able to see how a running workflow instance is progressing, restart a workflow from a point of failure, collect runtime details for each task, and other operational stuff like that.

The production support manager will surely suggest that I create a bunch of job sets in our corporate scheduler (Autosys). This is an option, but it doesn’t handle the conditional execution nature of the workflows very well. Also, I anticipate that we would need to run multiple instances of some workflows simultaneously, something else the corporate scheduler is not really designed for.

In light of what I’ve described, is it worthwhile to consider using a tool like Flowable, or would it be more trouble than it’s worth compared to building a bunch of shell scripts? If I’ve left out details needed for an informed decision, please let me know.

Yes. (Sorry, but we always answer “yes”).

Just kiddin’. :grin:

In my opinion, you can give it a try. BPMN is very flexible and it can do much more than classical business processes with user tasks, etc. In addition to that, Flowable is very flexible as well and you can use it wherever you want. I’d recommend two things:

  1. Gather your workflow requirements and start small with a basic PoC covering the mandatory things
  2. Keep your BPMN model clean in terms of business logic, that is, use Service Tasks to call programming logic. In other words, don’t try to “program” in BPMN. Use BPMN only to model the business logic behind processes. BPMN models must change only because there is a business-related change.

I hope this helps!

Just to add to jorge.mora’s response, another advantage of using a bpm model is that the flows are easy to monitor and modify. You have the admin dashboard, that is going to let you see how your flows are executed, when, etc. And with that information, modifying a flow (for example, to add a new conditional gateway that covers a new case), is quick and doesn’t alter processes that are already running. That’s a great advantage of taking the bpm path: it’s iterative.

As suggested, I encourage you to do your first PoC. Other users are already running similar approaches to yours, for example for orchestrating microservices, and they are happy with the results.

1 Like

My only additional comment is that using a tool like Flowable this way, it’s probably best to have Java knowledge available. You can use it like a black box, but it’s a lot easier to do more and deal with more situations with experience with Java.