There is an Eclipse plugin that allows you to build workflows.
And some documentation:
Thanks, but we already use that. Not what we're looking for. We need to build a GUI into our application that allows the customer to build the workflows within the application itself. They would basically build a workflow rule within the running JBoss application, then apply that rule to accounts that meet specific criteria.
How about launching Eclipse from your application? I heard there is a way to conceal the fact you are running Eclipse, but I'm not familiar with plug-in development at all.
Alex, could you please clarify what you mean by launching Eclipse? I'm only familiar with using it on a local machine. Are you suggesting integrating it with a Swing plugin?
The questions I would ask the customer are:
1. What do you need to change about the workflow? Is this really a whole new workflow, or the same workflow with just some different business parameters?
2. How often do you really expect you will need to create a whole new workflow? If it is not very often, can you give the developers the design and let them generate it for you?
In a lot of cases, people are really talking about changes to process variables instead of changing the whole workflow.
kbarfield, i already asked such questions, but they WANT a workflow editor/generator and our CEO says saying 'NO' isn't an option and also says if jBPM wont allow for it, then write everything from scratch. they want to be able to tweak and play with workflows themselves without having to be developers, and to be honest we dont want them bugging us with workflow change requests. there's already too much of that and messing with records already in swimlanes on a production application is dangerous. before writing it from scratch i just wanted to find if we were reinventing the wheel.
'everything?' including the bpm engine? Or just the editor? I hope the latest.
Do you or the customer have any experience with workflow on this level? Our experience is that it should not be left up to the business to directly influence things, unless your editor is real dummy/monkey (read business) proof :-) But then it will probably have to little functionality. Personally I would train one person with some technical knowledge to use the normal designer, or as mentioned by Kevin, maybe use something like a rulesengine to influence the flow.
basically they want to be able to define the rules of the workflow, here's an example:
right now one workflow would look like:
account has a type of X, so use strategy Y
strategy Y is defined as if account has any unpaid invoice > 30 days, fax the account. if that account isnt paid by 45 days, assign the account to a person to call. once successful call is made, if account isn't paid in 15 days, send a 2nd fax. if account still isnt paid in 15 more days, send a demand letter via us mail. if account still isnt paid in 30 days, forward the account to legal.
they want to be able to build a strategy like the one above in a GUI, then apply that strategy to any accounts with a specific type. we can write this, but it's a ton of work, thus i was hoping someone had already written something similar.
this is perfectly possible with jBPM. These are just parameters that influence flow of the designed workflow, not about redesigning the workflow itself.
A combination/demo of something like this with using jBPM with either a database or even JBoss Rules (Drools) would be interesting.
The data would e.g. be the following
Strategy first_deadline second_deadline deadline_after_call third_deadline forth_deadline Y 30 45 15 15 15 Z 15 30 7 9 10
You could read these starting the process and put them into process variables and use them, you could also read them in actionhandlers runtime. Depends on wheter the customer wants already started processes to be influenced by changing parameters or just new processes.
What it essentially boils down to is just some crud application for these fields right? Correct me if I'm wrong.
p.s. stupid me, answering this at 02:11 (in 24h mode)..... ZZZZZZzzzzzz.....
They also want to be able to completely remove or change events. Event 1 might be fax or it might be a call. There might be a total of 5 events before legal or 10 events. Other criteria are if the balance of all invoices that are over 60 days old are > $5000, then do something else. It can get pretty complex.
Still then, I'd try to model a common process where these are parameters for a rules engine and not have the customer change process definitions for this.
How many combinations will they get.... tens? hundreds? If you look for the parts they have in common you will probably be able map it to one process with help of a rules engine. Besides a true/false you can have a rules engine also return things like 'fax', 'mail' if you want certain transitions to be taken or even actions to be carried out. Think out of the box.
I personally would not solve this with changing process definitions
I agree. We have partners and customers here at JBoss that are doing the same type of thing. They built rules on top of jBPM that the users can modify, but the underlying process does not change. Once we integrate JBoss Rules and jBPM, this will be very straightforward. It can still be done in today's world, just requires a little more work.
what are the ideas? JBoss Rules connected to the ESB and jBPM using it via the ESB or connecting the rules engine directly to jBPM?