Task geographical location and plotting on maps

I am evaluating the feasibility of using flowable as part of a technical field tool (Android application). In this case a task may have to be executed at a specific geographical location which is an attribute not currently directly supported on flowable tasks. It may for example be a premises inspection and may end up in a device replacement or other device functions. There are forms involved in task options the technician would be presented.

Such tasks may need a map involved and in future potentially include optimal route calculation (the order of execution of assigned tasks).

The only way I can think of implementing this currently is with a process started with for example gps coordinates and a textual location description as variables. The field tool would have to look for these variables from the execution when looking at a task. This is less than ideal in terms of easy querying of many tasks to plot on maps (not just for technicians but for managers).

Any better ideas? Or could one contribute such attributes to the engine?

Regarding adding such fields to the engine, IMHO it’s too specific. Process/task variables and custom functions should be more than enough. Sorry if I don’t understand well enough your business case but I don’t see the need for engine contributions. Certainly it would be nice to have a “geolocation” event but that would force the engine to be location aware. It sound a bit out of bounds.

When you say “a task may have to be executed at a specific geographical location which is an attribute not currently directly supported on flowable tasks”, that sounds to me like a normal event. The geographical event can be part of your application and that event can trigger a BPMN event to complete the task or to do whatever it must do. Maybe a good approach can be to have pending “Get to point X” tasks that are followed by “Perform Revision Y to machine Z” tasks.

Instead of having to query to get the task to execute, maybe you can do it differently. Correct me if I’m wrong but you know the exact location when you create those “pending” tasks. What if instead of querying you create a listener to populate a pending activation list in your application as the tasks are created. That would create in your application the “hotspots” and then it’s just a matter of making the geolocation magic happen to trigger events to the engine with the corresponding taskIds.

I hope this helps you. Your application looks very interesting!

Thanks @jorge.mora for your response. I will have to think a bit about your comments regarding an event driven approach. I am not sure how to align that with the concept of a user having a bunch of tasks “Execute X at premises Y”, and just completing them.

But the idea of having a listener populate some efficient mapping of tasks to geo data outside of the engine sounds like something I’ll explore…

Great @ruzkant! Let us know if in the process of exploring the event driven approach you need something else. Enjoy!