How to Model Business Rules?

Today, when you design a modern business application, you have to deal more and more with constantly changing business rules. The reason for this is that not only the software industry follows the agile path. Business processes are also subject to a permanent change. At the same time, however, business processes are becoming increasingly complex as more and more information is influencing our business world. In the following I will show how business processes and their rules can be modeled with the help of BPMN.

Continue reading “How to Model Business Rules?”

Imixs-BPMN for Eclipse Oxygen

With the new version 1.8, Imixs-BPMN is now available for all current Eclipse platforms and also fully integrated into the latest version of Eclipse Oxygen.

Imixs-BPMN in  based on the Open Source BPMN modelling tooling for Eclipse Oxygen, which is currently available in version 1.4.3. See the Eclipse BPMN Homepage for what’s new. The current version 1.8 of Imixs-BPMN can be installed from here.

Imixs-BPMN takes the full advantage of all the capabilities from the BPMN 2.0 standard and complements them with the requirements to a modern workflow management system. Imixs-BPMN enhances the Eclipse BPMN2 modelling Framework with the aspects of a human-centric workflow model executable on the Imixs-Workflow Engine.

The Imixs-Workflow engine provides a set of modern Java Enterprise Services to create and manage process instances based on a BPMN 2.0 definition. The Imixs-Workflow engine can be embedded into a Java Enterprise application as well be deployed into a Microservice Architecture as a Docker Container. See the Imixs-Microservice Project for more details.

Also for older versions of the Eclipse Platforms (Eclipse Mars, Eclipse Neon) Imixs-BPMN is still are available.

Imixs-BPMN – Version 1.4.7 Released

The open source project Imixs-BPMN has released version 1.4.7. Besides the integration into the Eclipse platform Oxygen, the new version offers various improvements in modeling business processes based on the BPMN 2.0 standard.

Imixs Workflow is a human centric workflow engine that allows to model and to execute human-2-human business processes. Based on the Eclipse platform, Imixs-BPMN offers a professional and stable platform for modeling within the BPMN 2.0 standard. Both, responsibilities and access rights, as well as individual business rules can be modelled graphically.

Version 1.4.7 now represents business rules – so called ‘ conditions ‘ – and access rights (ACL) in a graphical way. This makes it easier to create process models and control them during the design phase.

In addition, Imixs-BPMN now supports so-called ‘Conditional-Events’ and ‘Split-Events’. The former can be used to model decisions based on business rules. Split-Events support parallelism. Split-Events play an important role for the mapping of audit-safe business processes. These new features increase the transparency of complex processes within an organisation.

Imixs-BPMN is open source and part of the Imixs-Workflow technology. The IMIXS Software Solutions GmbH supports enterprises and organisations in the development and implementation of digital business processes.

Imixs-BPMN – Data Objects

With the latest version 4.2.5, the Imixs-Workflow Engine, is now supporting BPMN Data Objects. This kind of model element can be used to model more complex wokflows processing input data:

With this new feature any kind of data object – e.g. a XML or HTML templates – can be associated with a BPMN Task. As a result, the task element will provide these data objects in the new item ‘dataObject’. This item can be injected into a running process instance. See the following code example which is injecting a ‘Invoice HTML template’ into a workitem:

...
ItemCollection task = model.getTask(1000);
List<?> dataObjects = task.getItemValue("dataObjects");
if (dataObjects.size()>0) {
  String[] data=(String[]) dataObjects.get(0);
  String templateName=data[0];
  String content=data[1];
  if ("Invoice Template".equals(templateName) {
    // inject data...
    workitem.repalceItemValue("htmldocument",content);
  }
}
....

DataObjects are part of Imixs-Office-Workflow Version 3.2  to provide an easy and flexible way to create documents and templates during a business process.

BPMN 2.0 – Conditional Events

With version 4.2.0 the Imixs-Workflow engine supports conditional events. A conditional event can be defined with one of the BPMN Gateways  ExclusiveInclusive or EventBased.

Conditional Events

The conditions are defined as boolean rule expressions for each output of the gateway. A condition can be defined with the Script language JavaScript. The following example evaluates the workitem attribute ‘_budget’ for a value greater than 100:

(workitem._budget && workitem._budget[0]>100)

With Conditional Events, Imixs-BPMN offers a significant extension of the modeling possibilities for BPMN 2.0 models to be executed within the Imixs-Workflow engine. Find further details about the modelling with Imixs-BPMN here.

Email Templates with Imixs-Workflow

With the latest release of Imixs-Workflow the open source workflow engine supports now Email Templates. With this new feature the email output can be based on a XSL Template. This opens up a powerful way to configure the mail content of more complex e-mail messages during the lifecycle of a business process.

Email Templates

The new template mode can be easily configured using the Imixs-BPMN Modeling Tool by putting a valid XSL document into the mail body definition. The template will be processed automatically with the XML representation of the current workitem.

See the following XSL Template example:

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 <xsl:output method="html" media-type="text/html" indent="no"
 encoding="ISO-8859-1" />
 <xsl:template match="/">
  <html>
    <body>
     <h1>Welcome</h1>
     <h2>
       <xsl:value-of select="document/item[@name='txtname']/value" />
     </h2>
    </body>
  </html>
 </xsl:template>
</xsl:stylesheet>

Imixs-Workflow supports the BPMN 2.0 standard and is build up on the Java EE specification. For that reason, it is easy to connect the open source workflow engine with a mail host in various ways. Open Source Mail servers as also Microsoft Exchange are supported. Find more details about the Imixs-MailPlugin in the plugin section of the project documentation.

New Release – Imixs-BPMN Report 1.4.6

The new version 1.4.6 of the Imixs-BPMN Plugin is released. The new release includes bugfixes and enhancements. The Imixs-BPMN Report Plugin which is part of the Imixs-BPMN modelling tool now provides a new feature to directly include the content of a XSL file into a report definition:

Imixs-BPMN Report 1.4.6

Reports allow the extraction of information from a Imixs-Workflow instance. Imixs-Workflow provides a flexible REST-API to customize the output of a report. This includes the XSL Transformation. With this feature, workflow information can be transformed in any kind of output, like XML, JSON and also different document formats like PDF or MS-Word or MS-Excel.

The workflow business suite Imixs-Office-Workflow includes a management dashboard with different char diagrams to visualize relevant business process data.

Imixs-Office-Workflow with Imixs-BPMN Report 1.4.6

Imixs-BPMN is based on the Eclipse BPMN2 Project. The installation guide for Imixs-BPMN can be found here.

Don’t model Business Behavior in Objects!

During the past years I saw many projects where nearly any kind of business requirements was modeled into the technical object model, independent of the reason of the requirement. In many cases, modelling business requirements into a technical object model is quite ok and I agree with it in general. But also modelling business requirements into the affected business objects can lead into a ugly and complicated data structure. Let’s look into a short example to illustrate my thoughts: Continue reading “Don’t model Business Behavior in Objects!”

How to secure Business Objects

This post explains how you can secure your business objects in a model driven way, using the Imixs-Workflow engine.

Most applications deal with security in a functional way. This means that a business application typically defines different functional roles which are mapped to different users. For example let’s look on a simple Ordering System. In an Ordering System, we will have roles like

  • Order-Creator‘ – creating the order
  • Order-Approver‘ – validating and approving
  • Order-Executor‘ – execution

These roles are typical for such an business application and mostly tightly coupled to the corresponding business methods – e.g. createOrder(), approveOrder() and executeOrder(). This works well in a monolithic business application where you can control the security layers as also the business logic. But as more complex the business application becomes, also the enclosed security becomes more complicated. For modern application design, in addition, you often have to deal with external web services and business logic which need to be adapted easily to changing requirements. So this static security model leads into a hell of hard coded business rules or, what is worse, can no longer guarantee the security. Continue reading “How to secure Business Objects”