In my BPMN Method and Style training, we use examples like the one below to illustrate the difference between interrupting and non-interrupting boundary events: Here an Order process with four subprocesses could possibly be cancelled by the Customer at any time. As you can see, a single physical Cancellation message from Customer is modeled as multiple message flows. That's because the Cancellation message is caught by four different message boundary events, representing four different ways the message is handled depending the state of the process when Cancellation occurs.
I have made the point on multiple occasions (for example, here) that DMN is both more business-friendly and more powerful than better-known Low-Code languages such as Microsoft's Power FX. One reason for that is DMN's context boxed expression, which breaks down a complex bit of business logic (or decision logic, if you prefer) into multiple simple pieces, without cluttering up the DRD with dozens of little decisions. A context is a two-column table, the first column naming a new variable local to the context, and the second column a FEEL expression for its value.
[This post is my presentation at Decision Camp 2022, delivered September 27, 2022.] As a longtime DMN practitioner and from the beginning one of its biggest boosters, I am what you call a true believer. But while DMN continues to gain traction, even I would have to admit it has so far underperformed in the marketplace. The industry analysts say, "OK, we're aware of it... But what's the killer app?" It may not be what you think.
Occasionally in my BPMN Method and Style training, a student will submit a Certification exercise containing a Conditional event. I have always rejected that. Conditional events are not part of Method and Style, and that's because I have always considered them to mean "some magic occurs". According to the spec, a Conditional event may be used either as the Start event of a process or event subprocess, a Catching Intermediate event, or a Boundary event, triggered when its Boolean expression attribute becomes true.
As a followup to my post from last month, there is another aspect of datatypes I've been thinking about. When a simple type is subject to constraints, such as a numeric range or a list of enumerated values, I have been teaching students to create an item definition that expresses those constraints. For example, if a numeric value is always positive, we might assign it the datatype tPositiveNumber, a Number subject to the constraint >0.
In my DMN Method and Style training, we cover a lot of advanced topics, including calendar arithmetic, iteration, filters, and data validation. But I have found that problems in students' certification exercises more often relate to something much more basic, which we discuss at the very beginning of the course: assignment and naming of datatypes. Actually, the runtime engine often does not care whether you've assigned some decision to a datatype or not.
For many years my work has focused on non-executable BPMN using a set of conventions called Method and Style. In the past year or two I have turned my attention to Low-Code Business Automation, based on executable BPMN. When I wrote my book BPMN Method and Style - over a decade ago! - I imagined that harmonizing executable BPMN with Method and Style would be a natural thing, but that never happened.
As we discussed earlier this year, a key factor in the growing popularity of Low-Code Business Automation is the availability of REST APIs for just about anything you need to do. REST APIs provide a simple uniform interface based on the standards of the World Wide Web, so they work the same way with any service operation. You simply send a web message containing the service input parameters and your authorization credential to the service operation's endpoint URL, and the service responds with its output values.
Cloud datastores are a new feature of the Trisotech Automation platform. They are most useful in BPMN, but they can serve also as input data in DMN. Datastores are a standard BPMN element representing persisted storage, accessed by a process task via data association but available for external access as well. In Trisotech's implementation, each datastore is a single relational table. It acts like a database but requires none of the extra work involved in using something like OData.
Ten months in the making, I'm happy to announce that my Low-Code Business Automation training and certification is at last available. While there are many Low-Code Business Automation products available, they all use proprietary modeling and expression languages. Trisotech does not. On the Trisotech platform, you can create complex event-driven workflow services and pageflow apps without programming, using just BPMN and DMN, which are industry standards. The secret is replacing Java, the normal language used to make BPMN executable, with boxed expressions and FEEL borrowed from DMN.