Discussion about developing the ProcessMaker application and suggestions for improving it

Moderator: ArturoRobles

By SpiraMirabilis

I used ProcessMaker to help a non-profit streamline some of their CRM, complince and general workflow tasks. I had next to no experience with workflow / business process software / development before. However, I was stuck by how ProcessMaker's processes are similar to non-deterministic definitive state machines. These, I had a fair bit of experience with in my background developing for Amazon's AWS platform, specifically their "Simple Workflow Service" and more recently Step Functions. I know what you're going to say: "wait, you just said you had no experience with workflow software." And maybe you're right, but the truth is I never really considered applying it to processes involving human workflow, but more as a way to ensure with a good deal of certitude that a automated process either completed successfully, or if it didnt then I would know that too. Too many times with things like importing data in a business to business setting stuff is just missing or fallen through the cracks when a server hiccups, and without something like that there is no way to know what you needed to retry.

In any event, has anybody considered trying to hack the Designer in process maker to design these serverless type functions? Here is the simplest example of one:

Because, the designer for Step functions sucks. Logic Apps in Microsoft Azure are a little better, but not by a lot.

In AWS the state machine itself is called the Step Function, and each "node" is called an State which can be as simple as an API call for an REST resource to running a Lambda function (serverless python or nodeJS code). I also have experience with Microsoft's platform, in Azure they're called Logic Apps.

Approaching it from a different tact, has anyone considered making like a... cloud exporter/compiler? Where instead of using PM just as a designer, you use PM as normal but your logic and processes run in a serverless setting for scalability and triggered by an API gateway? AWS uses a JSON-based structured language they call States Language. It's not quite how PM stores data, but its not Greek either.
User avatar
By amosbatto
Changing the designer interface to add your own elements would probably be very hard, but I haven't tried it, so I can't tell you for sure. You have to add code to both the front-end and the backend and you probably would have to add your own database tables to hold the information you want to store about your elements.

Out of curiosity, why can't you use the existing tasks and gateways in PM? It looks like to me that they have the functionality that you need. Are you planning on doing cases where the user has to interact with the system, or is this totally automated? If you need to automate everything, then you can create a external script that checks for new cases in the APPLICATION table and uses REST to automatically run through the entire process.
By SpiraMirabilis
RIght now that is exactly how I am using it, and it works great. Part of itis just bias/perspective from developing on AWS and Azure platforms for the last couple of years.

However, it is mainly because it becomes exponentially easier to scale out and up and for no capital expenses. Two use cases come to mind, one a type of process that is very time sensitive and has to complete no matter what while being somewhat variable in frequency. A case where if you wanted to ensure the reliability to the required degree would not be economical if you provisioned and ran all the machines/VMs/load balancers all the time.

For example, large ambulance companies in the United States have learned that for cases like a motor vehicle collision the first person to submit a bill to the either or both party's automobile insurance are the ones most likely to get paid, because the limits of coverage are frequently exhausted. So, many large ambulance companies have a dedicated billing department that usually consists of work-at-home people who handle reviewing and submitting billings essentially as soon as they drop the patient off at the hospital.

Another example would be a situation like Black Friday, where retailers and their supply chains must quickly scale up to an incredible degree, when most of the time their base demand is quite low.
User avatar
By amosbatto
In my experience, hacking the PM interface is a lot of pain, so I prefer to just create my own interface or add a plugin with a new page and menu item in PM and then use REST to interact with the PM engine. But creating your own process designer from scratch is also a lot of work. Good luck.

I've exported and imported a process copy, when st[…]

Hi Kirk, Thx for your advice. I was thinking of […]

Number of columns of a grid

Hi, Accidentally, in https://www.pmusers.com/inde[…]

Was wondering if anyone has encountered issues run[…]