Posts

Showing posts with the label Business Rules

jBPM DMN Explained – Knowledge Source, Knowledge Model, Decision, Decision Service, Input Data & Text Annotation (with Examples)

Image
DMN (Decision Model and Notation) in jBPM is used to model and automate business decisions in a clear, auditable, and business-friendly way. At the heart of DMN is the Decision Requirements Diagram (DRD) , which is built from specific elements: Knowledge Source Knowledge Model (Business Knowledge Model) Decision Decision Service Input Data Text Annotation This guide explains what each element means , when to use it , and how they work together —with examples and a comparison table. ⭐ 1. DMN Knowledge Source 🔹 What is a Knowledge Source? A Knowledge Source documents where a decision’s logic comes from . It represents: Laws and regulations Company policies External standards Expert knowledge ⚠️ Important: A Knowledge Source does not execute logic . It is documentation only . 🔹 Example “Loan approval rules are based on RBI guidelines and internal bank policy.” ⭐ 2. DMN Knowledge Model (Business Knowledge Model – BKM) 🔹 What is a Knowledge Model? A...

Camunda 7 DMN – Complete Guide with Examples

Image
  DMN (Decision Model and Notation) is a powerful standard used in Camunda 7 to automate decisions using Decision Tables , Context , Literal Expressions , and FEEL . It separates business logic from workflow logic , making your BPMN processes cleaner, maintainable, and business friendly. In this guide, you will learn how to create, deploy, and execute DMN tables in Camunda 7 using Java , REST , and Modeler . ⭐ What is DMN? DMN = Decision Model and Notation Created to: ✔ Automate business rules ✔ Externalize decision logic ✔ Allow business users to define rules ✔ Integrate with BPMN processes ✔ Support FEEL expressions (Friendly Enough Expression Language) In Camunda, DMN is executed by the Decision Engine , which is part of the Camunda BPM platform. 1️⃣ Creating a DMN Decision Table in Camunda Modeler A DMN table contains: Inputs (values coming from the process or API) Rules Outputs (result of evaluation) Hit Policy FEEL expressions Example Sc...

jBPM DMN Tutorial – Using Functions in DMN (FEEL Functions Explained)

🚀 Introduction In jBPM , DMN (Decision Model and Notation) is widely used to model business rules, decision logic, and calculations . One of the most powerful parts of DMN is the ability to use functions written in: FEEL (Friendly Enough Expression Language) Java (via invocation) External logic (via WorkItemHandlers + DMN inputs) In this blog, we will focus on the DMN FEEL functions , the most commonly used and the most powerful inside DMN models. 🧩 What is a DMN Function? A function in DMN is a reusable block of logic that can: ✔ Take inputs ✔ Perform calculations ✔ Return an output You can call functions inside decision tables , literal expressions , or context entries . DMN in jBPM supports: Built-in FEEL functions Custom FEEL functions Boxed functions (literal function expressions) 🔵 1. Built-in FEEL Functions FEEL provides many ready-made functions. 👉 Commonly used DMN FEEL functions: Function Purpose string(length) Convert values to st...

📘 DMN vs BPMN — Quelle est la différence ?

Image
  ✅ Introduction Lors de la modélisation de processus métiers dans jBPM , Camunda , ou tout autre outil BPM, deux standards reviennent souvent : BPMN → pour modéliser le flux de processus DMN → pour modéliser les décisions / règles métier Même si ces deux standards fonctionnent ensemble, ils ne servent pas au même objectif . Comprendre la différence entre BPMN et DMN permet de : réduire la complexité du workflow, externaliser les règles métier, améliorer la maintenabilité du projet. 🧠 Qu’est-ce que BPMN ? BPMN = Business Process Model and Notation 📌 BPMN sert à modéliser le déroulement d’un processus métier — ce qui doit se passer et dans quel ordre . 🔥 BPMN se concentre sur : Les tâches (User Task / Service Task) Les étapes du processus Les événements de début et de fin Les gateway (décisions dans le flux) ✏️ Exemple d’un processus BPMN Nouvelle commande reçue → Vérifier le stock → Emballer → Expédier → Notifier le client 🧩 Élé...