I'm beginner in Microsoft Workflow. I did some small project with it and I've got some about it.
Now I've a question: How does workflow manage rules? Has it rule engine? How can we implement rules?
Must I create another application which manage rules?
Thanks in advance.
Ahmad, from you comment on the question, you are interested in authoring and execution part of business rules. From WF the best you can get is https://msdn.microsoft.com/en-us/library/dd797584(v=vs.110).aspx which allows you to use RuleSet object (WF 3.5) and Policy4 activity to execute them. The issue with that is it is not a rule approach on how you would really author business rules in any of the standard rule modeling approaches e.g. Decision Table, Decision model and Notation, Tree and Flow for with rule or decision.
IMHO Workflow Foundation (WF) as its name refers to is fine for Workflow, but not in any mean in business rules. Not good at all in managing of them. The other option is using any other business rule management system out there that provides a decision-as-a-service capability and then your WF activity can simply call to those.
Related
I use Nuxeo for content management purposes on a project.
I know I'll also need to support "workflow" scenarios, which I currently know very little about.
For example: I'll need to support a workflow scenario for approving a release of a software component.
Such an approval may be composed of several different stages, and in every stage I may need to trigger some kind of an automatic interaction with certain users of the system.
What may be considered some good/valid considerations for not "settling for" the workflow engine provided by Nuxeo, and using a dedicated engine such as Activiti or jBPM instead?
I know the question is very (perhaps too) broad, but still:
What could be some points to consider before I choose one over the other?
Are there other tools I should consider?
Yes, your question IS too broad. every workflow tool has its own cons and pros. why don't you list down all of your needs then compare each of the tools. mainly: Alfresco Activiti, Camunda, jBPM or Nuxeo
I have been asked to start exploring a Activiti tool for some client demo.
The demo will also have JBoss Drools with which Activiti will be integrated.
I am new to both of these tools and business process world, so excuse me if the question is dumb.
The question is why do you need Drools? Isn't Activiti enough for the job?
Both of them have conditional elements so why do you need Activiti on top of drools?
This question doesn't quite fit the purpose of StackOverflow, so don't be surprised if you get a few flags. But I'll try to give a short answer.
Activity is a workflow engine, Drools is a business rules engine. They serve two different purposes.
Workflow engines are useful when you have a flow of actions of different actors that need to be controlled programmatically.
Rules engines are useful when you have business rules for executing some task automatically that you want to describe in a declarative way.
Both purposes are orthogonal to each other, meaning that the problem you have to solve may require none, just one, or both of them.
Imagine a workflow where a customer reports an incident, some experts have to work on it, and finally a bill gets produced, but no heavy algorithms are behind those tasks. That might be supported by a workflow engine without a rules engine.
Imagine a complex price model for a product, like cars having all sorts of special features that may be ordered. (Hifi speakers cost 400 €, except if the executive version of the car is ordered, where they only cost 200 € if ordered in combination with smartphone adapter...) Here a rules engine may be useful, although nobody talked about a workflow, so no workflow engine is needed.
Imagine the first example (incident workflow) together with a complex billing scheme. Here both tools may be used.
I wonder why these two types of tools are in some places described as perfectly fitting together. (Maybe this kind of claim motivated your question.) They serve two different purposes, and whether you need them both depends on the problem you have to solve.
I'm trying to build an claim processing system. There will be multiple variations of insurance policies (based on the negotiations with individual clients). Aim is to keep a base policies per provider and then apply variations to them per client to ensure easy maintenance of top level policies (like damage due to fire covered or not). The policies should be easy to be created by non-technical business users.
What is the best approach for this? I'm thinking on the lines of using Drools to come up with basic rules and then create jBPM processes per policy provider that will consume the rules. Guvnor for authoring and maintenance of rules and processes.
Assuming no human tasks (its going to be just a set of rules that need to be fired and results be thrown out), is using jBPM going to be an overkill? Are there better alternatives in the open source world?
Drools is already closely integrated with jBPM for use cases like this, so it definitely won't be overkill, they will work very nicely together. jBPM is not only about human interactions, it can just as well be used for automatic processing.
One remark, it might even be possible to not have one process per provider but have only one (or a small set of) process(es) and use rules to handle the variations.
I have a question about WWF, I'm working on a webbased ERP project which is a modular application ofcourse.
I'm looking for a way to create an engine for wokflows in the framwrok so modules can rely on it and based on this engine create their workflows.As I see there should be 3 kind of workflows (Human for confirmation of info among the organization, Business for handling business flows such as calculating personnel income based on the different factors and UI workflow for handling chain of usercontrols based on a cartable (dashboard) )
I need some help on handling this and if there is any problem in my insight I wonder to be informed.
This is extremely broad and without more context hard to answer.
WorkFlow can be used in conjunction with e.g. SharePoint to take care of the Human part of a workflow such as creating a document or marking it as OK.
WF can be deployed as a service and supports the interaction with other (web)services to support modularity.
I am relatively new to the concept of rules engines and was trying to work with Drools.
Has anyone already worked this tool before and is it similar to Cognos?
My understanding was that Cognos is a reporting tool and Drools will promote more increased control over the business logic implemented.
Am I on the right track? Any link which would help me differentiate between the 2 would also be helpful.
Thank you.
Cognos is a business intelligence reporting tool. It is meant to query over data sources including data warehouses and data marts, to help provide insight into your data and help you make decisions, view trends, etc. Here is IBM's Cognos product page. Here is a definition of Cognos from Wikipedia which I find helpful.
Drools is a Rete algorithm based Java rules engine that allows you to define business rules within your application and then have your application validate against those rules. Here is its definition from Wikipedia. And here is the Drools community page.
We actually use Drools in some of our applications for client side verification of business rules. And our business is planning on using Cognos (and another tool called QlikView) to do business intelligence reporting over our data warehouses and data marts.
As for how you use Drools, I'd look at the community page. In the version we used (2.0-Beta-10, which was way before Drools was acquired by JBoss) you generally define your rules in XML based files with a .drl extension from what I remember. We use an older version of Drools so it may have changed since then. We also extended Drools in our case so we could write our rules in Java code for run time debugging versus using XML files (since our Business analysts weren't writing the rules anyway).
Hope this helps!
You can use Drools & jBPM5 if your application will define Business Processes and Business Rules. The business rules will allow you to define business logic in a declarative way and the rule engine will allow you to do inferences over the information that you have in your domain. Visiting the community sites and looking for examples will probably help you out to understand how the project look like now and how you can use it.
Cheers