{"id":5825,"date":"2023-10-24T10:00:00","date_gmt":"2023-10-24T08:00:00","guid":{"rendered":"https:\/\/www.js-soft.com\/?p=5825"},"modified":"2024-04-09T10:05:40","modified_gmt":"2024-04-09T08:05:40","slug":"sap_btp-integration","status":"publish","type":"post","link":"https:\/\/www.js-soft.com\/en\/sap_btp-integration\/","title":{"rendered":"Camunda SaaS-SAP BTP Integration using BPMN and DMN"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>TL;DR: Process-driven software is a thing. And always was. Now proven in a real world business scenario with the help of Camunda SaaS and SAP BTP.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What does a key user want to implement a process-driven application?<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Not to become a Citizen Developer.<\/li>\n\n\n\n<li>Neither a low-code developer.<\/li>\n\n\n\n<li>Nor having to upskill to any developer-related ability for that matter.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Instead, the person wants to <em>model processes.<\/em> That should run business logic and provide UI screens to users. Without having to spec out technical APIs or implement protocol details. This is exactly what we achieved when integrating the Camunda SaaS suite with BTP services and runtimes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">BPMN and DMN<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Even though the Business Process Model Notation (BPMN) has been around for 20 (!) years and is a widely recognized standard, it has yet to manifest its full potential in the SAP sphere. BPMN \u201cwill provide businesses with the capability of understanding their internal business procedures in a graphical notation and will give organizations the ability to communicate these procedures in a standard manner\u201d (direct quote from <a href=\"https:\/\/www.bpmn.org\/\"><\/a><a href=\"https:\/\/www.bpmn.org\">https:\/\/www.bpmn.org<\/a>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Its counterpart for modelling decisions is DMN, the Decision Modelling Notation. &#8220;The primary goal of DMN is to provide a common notation that is readily understandable by all business users, from the business analysts needing to create initial decision requirements and then more detailed decision models, to (\u2026) the businesspeople who will manage and monitor those decisions\u201d (direct quote from the specification, <a href=\"https:\/\/www.omg.org\/spec\/DMN\/1.5\/Beta1\/PDF\">https:\/\/www.omg.org\/spec\/DMN\/1.5\/Beta1\/PDF<\/a>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It helps to think of DMN as \u201cExcel light\u201d as it provides an \u201cif-this-then-that pattern\u201d: if x is of value \u201cfoo\u201d and y is of value \u201cbar\u201d, then the result shall be \u201cfoobar\u201d &#8211; similar to using an <code>IF<\/code> formula in Excel \ud83d\ude38.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">BPMN is easy to understand even without knowing the formal specification. Take this Pizza Delivery process as an example:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"312\" src=\"https:\/\/www.js-soft.com\/app\/uploads\/2023\/10\/Pizza_Prozess-1024x312.png\" alt=\"\" class=\"wp-image-5383\" srcset=\"https:\/\/www.js-soft.com\/wp-content\/uploads\/2023\/10\/Pizza_Prozess-1024x312.png 1024w, https:\/\/www.js-soft.com\/wp-content\/uploads\/2023\/10\/Pizza_Prozess-300x91.png 300w, https:\/\/www.js-soft.com\/wp-content\/uploads\/2023\/10\/Pizza_Prozess-768x234.png 768w, https:\/\/www.js-soft.com\/wp-content\/uploads\/2023\/10\/Pizza_Prozess-1536x468.png 1536w, https:\/\/www.js-soft.com\/wp-content\/uploads\/2023\/10\/Pizza_Prozess-2048x624.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Just by looking at the elements, visual hints and texts, it is clear that \u201cafter waiting 30 minutes and complaining to the delivery service, when the pizza hasn\u2019t arrived after an additional 20 minutes, the order is cancelled.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It\u2019s visual expressiveness qualifies BPMN not only as a notation standard, but also as a comprehensive documentation tool!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Which, in turn, is its greatest pitfall: if only used for documentation purposes, BPMN models tend to transition into the digital filing cabinet quickly. Sitting and collecting virtual dust rather than being constantly updated and referred to.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is where Camunda comes in &#8211; an engine that can run BPMN and DMN models!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Camunda SaaS and SAP BTP<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Camunda provides a <a href=\"https:\/\/camunda.com\/platform\/\">cloud-based solution<\/a> for both drawing and running BPMN- and DMN-models. In addition to the <a href=\"https:\/\/camunda.com\/platform\/modeler\/\">modelling capability<\/a>, It provides so-called <em>job workers<\/em> representing a particular BPMN task of the model. Following the above Pizza example, the \u201cCancel Order\u201d service task would create a job worker containing all relevant business and technical data to perform a cancellation of the order in IT systems.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It is now the task of a <em>business logic runtime<\/em> to perform the work associated with Camunda\u2019s job worker &#8211; in our project, this is done by the CAP layer in SAP BTP. <a href=\"https:\/\/cap.cloud.sap\/docs\/\">CAP is SAP\u2019s \u201cCloud Application Programming Model\u201d<\/a> designed for building cloud-native applications. In our case, we utilized CAP\u2019s Node.js flavour to provide Camunda with job workers, implementing the required business logic, including interaction with 3rd party and SAP S\/4 HANA systems. Interfacing with the Camunda SaaS via <a href=\"https:\/\/grpc.io\">gRPC<\/a> creates a fault-tolerant, yet highly performant, integration between the business logic runtime and the process execution engine.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"604\" src=\"https:\/\/www.js-soft.com\/app\/uploads\/2023\/10\/SaaS-uns-SAP-BTP-1024x604.png\" alt=\"\" class=\"wp-image-5385\" srcset=\"https:\/\/www.js-soft.com\/wp-content\/uploads\/2023\/10\/SaaS-uns-SAP-BTP-1024x604.png 1024w, https:\/\/www.js-soft.com\/wp-content\/uploads\/2023\/10\/SaaS-uns-SAP-BTP-300x177.png 300w, https:\/\/www.js-soft.com\/wp-content\/uploads\/2023\/10\/SaaS-uns-SAP-BTP-768x453.png 768w, https:\/\/www.js-soft.com\/wp-content\/uploads\/2023\/10\/SaaS-uns-SAP-BTP-1536x906.png 1536w, https:\/\/www.js-soft.com\/wp-content\/uploads\/2023\/10\/SaaS-uns-SAP-BTP-2048x1208.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On top of the business logic, a UI5-based User Interface provides user input to the running BPMN process where necessary. The CAP runtime updates the UI along the BPMN process, keeping the business process in sync with user interaction. By using web sockets for refreshing UI elements, the user experience becomes instant and blazingly fast.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In addition to using OData- and REST-APIs for interacting with 3rd party and SAP systems, our solution uses the Event capabilities of BTP to both send and receive events from connected systems. This allows for quickly adding and removing event-capable business system, without having to connect APIs directly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">By providing a CAP implementation for all major BPMN tasks, a literal platform was created that allows a very generic execution of runtime logic for business tasks &#8211; which in turn puts the Modellers into the driver\u2019s seat. By creating BPMN and DMN models, the Modeller build a software application without having to write code: the definition of \u201clow-code software development\u201d.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">No code necessary: BPMN drives the software<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">By separating BPMN modelling and execution from BTP business logic runtime, the key users never have to bother with technical implementations of their business processes. They model BPMN and DMN on the Camunda layer, never being burdened with technical configurations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Changes to the running application on BTP don\u2019t require code changes and redeployments, but adjustments of the BPMN and DMN model only &#8211; an increase in flexibility and turn-around time benefitting the business users.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In case there are updates necessary to the business logic runtime on BTP, developers can independently proceed from the modellers, not disturbing their work on the subject matters.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">No real SAP pendant no process-driven software<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Is there something from SAP serving the same purpose? Yes and No.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u201cYes\u201d, because on a high level, there\u2019s <a href=\"https:\/\/www.sap.com\/products\/technology-platform\/process-automation\/features.html\">SAP Build Process Automatio<\/a>n. It allows creating workflows and automations on BTP, similar to Camunda Modeller, and running them, similar to Camunda Process Orchestration.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u201cNo\u201d, because SAP Build Process Automation is not providing BPMN- and DMN-capabilities, but a proprietary modelling standard. This requires upskilling on that proprietary modelling language, resulting in a lock-in for the modellers: all process design will only work in Process Automation, they\u2019re not portable, nor universally valid.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And again \u201cNo\u201d because in terms of \u201corchestration\u201d capabilities, Process Automation only provides a friction of the Camunda engine features. Controlling the workflow via APIs, interacting with other systems (S\/4, 3rd party, etc) or in-process data handling is where Camunda truely shines. Also, Process Automation holds very few capabilities of running custom buiness logic in a process. It doesn\u2019t follow the \u201cjob\u201d pattern by handing out work to a technical runtime like Camunda does, but requires the \u201cjob\u201d to run as part of the Process Automation execution. This quickly results in limitations for providing business logic results.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Our integration between Camunda SaaS for business process modelling and SAP BTP for runtime logic caters ideally to the target audiences: a well-know User Experience for end users, a domain-specific capability for key users, and a familiar environment for developers. All can work independent of each user, with code and models deployed separately, disjunct update cycles, and no hindering close coupling.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Could this be a sustainable solution for generically running BPMN- and DMN-processes in BTP? Absolutely. There\u2019s no technical reason why the solution only works for a specific customer. In fact, the solution has been so well-perceived that ideas started circulating for productising the Camunda-BTP-integration as a BTP \u201cAdd-On\u201d for customers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We have already implemented this successfully. <a href=\"https:\/\/www.js-soft.com\/sap-development\/prozessgetriebene-software-entwicklung\/\">Read more<\/a> about Costumer&#8217;s requirements and KPIs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Process-driven software is a thing. And always ways. Now proven in a real world business scenario with the help of Camunda SaaS and SAP BTP.<\/p>\n","protected":false},"author":4,"featured_media":5393,"comment_status":"closed","ping_status":"open","sticky":false,"template":"template-news-right.blade.php","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[184,14],"tags":[190,203,191,192],"class_list":["post-5825","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cap","category-comany","tag-0data-en","tag-bpmn-2","tag-bpnm-en","tag-sap-btp-en"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Camunda SaaS-SAP BTP Integration using BPMN and DMN - j&amp;s-soft<\/title>\n<meta name=\"description\" content=\"Process-driven software is a thing. And always ways. Now proven in a real world business scenario with the help of Camunda SaaS and SAP BTP.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.js-soft.com\/en\/sap_btp-integration\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Camunda SaaS-SAP BTP Integration using BPMN and DMN - j&amp;s-soft\" \/>\n<meta property=\"og:description\" content=\"Process-driven software is a thing. And always ways. Now proven in a real world business scenario with the help of Camunda SaaS and SAP BTP.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.js-soft.com\/sap_btp-integration\/\" \/>\n<meta property=\"og:site_name\" content=\"j&amp;s-soft\" \/>\n<meta property=\"article:published_time\" content=\"2023-10-24T08:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-09T08:05:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.js-soft.com\/wp-content\/uploads\/2023\/10\/Pizza_Header.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1205\" \/>\n\t<meta property=\"og:image:height\" content=\"678\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Volker Buzek\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Volker Buzek\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Camunda SaaS-SAP BTP Integration using BPMN and DMN - j&amp;s-soft","description":"Process-driven software is a thing. And always ways. Now proven in a real world business scenario with the help of Camunda SaaS and SAP BTP.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.js-soft.com\/en\/sap_btp-integration\/","og_locale":"en_US","og_type":"article","og_title":"Camunda SaaS-SAP BTP Integration using BPMN and DMN - j&amp;s-soft","og_description":"Process-driven software is a thing. And always ways. Now proven in a real world business scenario with the help of Camunda SaaS and SAP BTP.","og_url":"https:\/\/www.js-soft.com\/sap_btp-integration\/","og_site_name":"j&amp;s-soft","article_published_time":"2023-10-24T08:00:00+00:00","article_modified_time":"2024-04-09T08:05:40+00:00","og_image":[{"width":1205,"height":678,"url":"https:\/\/www.js-soft.com\/wp-content\/uploads\/2023\/10\/Pizza_Header.png","type":"image\/png"}],"author":"Volker Buzek","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Volker Buzek","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.js-soft.com\/sap_btp-integration\/#article","isPartOf":{"@id":"https:\/\/www.js-soft.com\/en\/sap_btp-integration\/"},"author":{"name":"Volker Buzek","@id":"https:\/\/www.js-soft.com\/en\/#\/schema\/person\/37600ae6c109080aa418b9998f6e011f"},"headline":"Camunda SaaS-SAP BTP Integration using BPMN and DMN","datePublished":"2023-10-24T08:00:00+00:00","dateModified":"2024-04-09T08:05:40+00:00","mainEntityOfPage":{"@id":"https:\/\/www.js-soft.com\/en\/sap_btp-integration\/"},"wordCount":1194,"publisher":{"@id":"https:\/\/www.js-soft.com\/en\/#organization"},"image":{"@id":"https:\/\/www.js-soft.com\/sap_btp-integration\/#primaryimage"},"thumbnailUrl":"https:\/\/www.js-soft.com\/wp-content\/uploads\/2023\/10\/Pizza_Header.png","keywords":["0Data","BPMN","BPNM","SAP BTP"],"articleSection":["CAP","Company"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.js-soft.com\/en\/sap_btp-integration\/","url":"https:\/\/www.js-soft.com\/sap_btp-integration\/","name":"Camunda SaaS-SAP BTP Integration using BPMN and DMN - j&amp;s-soft","isPartOf":{"@id":"https:\/\/www.js-soft.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.js-soft.com\/sap_btp-integration\/#primaryimage"},"image":{"@id":"https:\/\/www.js-soft.com\/sap_btp-integration\/#primaryimage"},"thumbnailUrl":"https:\/\/www.js-soft.com\/wp-content\/uploads\/2023\/10\/Pizza_Header.png","datePublished":"2023-10-24T08:00:00+00:00","dateModified":"2024-04-09T08:05:40+00:00","description":"Process-driven software is a thing. And always ways. Now proven in a real world business scenario with the help of Camunda SaaS and SAP BTP.","breadcrumb":{"@id":"https:\/\/www.js-soft.com\/sap_btp-integration\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.js-soft.com\/sap_btp-integration\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.js-soft.com\/sap_btp-integration\/#primaryimage","url":"https:\/\/www.js-soft.com\/wp-content\/uploads\/2023\/10\/Pizza_Header.png","contentUrl":"https:\/\/www.js-soft.com\/wp-content\/uploads\/2023\/10\/Pizza_Header.png","width":1205,"height":678,"caption":"Use BPNM to show what decisions are made when ordering a pizza."},{"@type":"BreadcrumbList","@id":"https:\/\/www.js-soft.com\/sap_btp-integration\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Start","item":"https:\/\/www.js-soft.com\/en\/"},{"@type":"ListItem","position":2,"name":"Camunda SaaS-SAP BTP Integration using BPMN and DMN"}]},{"@type":"WebSite","@id":"https:\/\/www.js-soft.com\/en\/#website","url":"https:\/\/www.js-soft.com\/en\/","name":"j&amp;s-soft","description":"IT-Unternehmensberatung f\u00fcr SAP","publisher":{"@id":"https:\/\/www.js-soft.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.js-soft.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.js-soft.com\/en\/#organization","name":"j&amp;s-soft","url":"https:\/\/www.js-soft.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.js-soft.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/www.js-soft.com\/wp-content\/uploads\/2022\/03\/Logo-js-soft.png","contentUrl":"https:\/\/www.js-soft.com\/wp-content\/uploads\/2022\/03\/Logo-js-soft.png","width":2560,"height":544,"caption":"j&amp;s-soft"},"image":{"@id":"https:\/\/www.js-soft.com\/en\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.js-soft.com\/en\/#\/schema\/person\/37600ae6c109080aa418b9998f6e011f","name":"Volker Buzek","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.js-soft.com\/wp-includes\/images\/blank.gif","url":"https:\/\/www.js-soft.com\/wp-includes\/images\/blank.gif","contentUrl":"https:\/\/www.js-soft.com\/wp-includes\/images\/blank.gif","caption":"Volker Buzek"},"description":"Volker is heading all things mobile- and web-dev at j&amp;s. Because \u201cthere\u2019s no glory in prevention\u201d, he regards writing tests as a way of getting better sleep at night, where he dreams of bringing Scuba diving + IT together on a level that doesn\u2019t involve coding submerged.","sameAs":["https:\/\/www.linkedin.com\/in\/volkerbuzek\/?originalSubdomain=de"]}]}},"_links":{"self":[{"href":"https:\/\/www.js-soft.com\/en\/wp-json\/wp\/v2\/posts\/5825","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.js-soft.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.js-soft.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.js-soft.com\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.js-soft.com\/en\/wp-json\/wp\/v2\/comments?post=5825"}],"version-history":[{"count":0,"href":"https:\/\/www.js-soft.com\/en\/wp-json\/wp\/v2\/posts\/5825\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.js-soft.com\/en\/wp-json\/wp\/v2\/media\/5393"}],"wp:attachment":[{"href":"https:\/\/www.js-soft.com\/en\/wp-json\/wp\/v2\/media?parent=5825"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.js-soft.com\/en\/wp-json\/wp\/v2\/categories?post=5825"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.js-soft.com\/en\/wp-json\/wp\/v2\/tags?post=5825"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}