This webinar will explore the benefits of using visual model-driven standards to rapidly create business automations. In particular, we will explore how using BPMN for Automation differs from the traditional Method and Style way of using BPMN for Documentation. This innovative approach uses of the Friendly Enough Expression Language (FEEL) open standard as the Low Code glue that brings it all together for both coders and non technical users.
3. Aka “Digital Transformation”
• Automation of manual tasks and processes
• In-person -> Online
Driven by
• Globalization
• The Cloud
• APIs everywhere
• COVID
WHAT IS BUSINESS AUTOMATION?
Business Response to COVID
4. Model-based software development
• “Makers” include product owners, technically oriented business users
• 65% of all app dev will be Low-Code
by 2024 --Gartner
Driven by
• Faster time-to-value
• Avoid IT resource bottleneck
WHAT IS LOW-CODE?
5. Most Low-Code/No-Code platforms are for very simple situational apps in HR/CRM
◦ I am talking about automating core business activities
◦ Healthcare
◦ Care plan coordination
◦ Preauthorization
◦ Banking
◦ Digital mortgage underwriting
◦ Posting to general ledger
Release minimum viable product quickly for market feedback
◦ … and quickly make suggested changes
Composition and reuse of many existing services
WHAT CAN I DO WITH IT?
6. • Public APIs everywhere! - Services created by others
• Access to apps, databases, data sources in the cloud
• Available for free or low monthly subscription
• Catalogued in Trisotech Operation Library
• Services created by you
• Business logic (DMN decision service)
• Process services (BPMN)
COMPOSITION OF SERVICES
7. • Modeling for documentation
• Non-executable modeling by business users
• Activity flow only, data “implied” by gate labels
• Activity described by label only, human vs automated
• The challenge: Make detailed process logic clear from printed
diagrams alone
• Requires additional conventions – Method and Style
TWO TYPES OF PROCESS MODELING
8. • Modeling for automation
• Executable modeling by “makers”
• Data inputs/outputs and flow defined explicitly
• Activity logic defined explicitly via task type configuration
• The challenge: Make it run reliably and return correct output
TWO TYPES OF PROCESS MODELING
9. • REST API defines programmatic access to a service via standard
web protocol (http)
• Operation provides a single action, grouped into interface with
common server, authorization
• Operation Library entries define services available to the model
• URL = {server URL}/{operation path}?{query parameters}
• Authorization credential, such as API key
• Request parameters
• Response parameters
REST APIS
10. Steps to using a public API in Business Automation
1. Create the Operation Library entry
◦ Automatically from a Connector
◦ Import OpenAPI
◦ Import OData
◦ Manually Add from API documentation
USING PUBLIC APIS
11. Steps to using a public API in Business Automation
1. Create the Operation Library entry
◦ Automatically from a Connector
◦ Import OpenAPI
◦ Import OData
◦ Manually Add from API documentation
2. Bind service task to an operation
◦ Operation inputs become service task inputs
◦ Operation outputs become service task outputs
USING PUBLIC APIS
12. Steps to using a public API in Business Automation
1. Create the Operation Library entry
◦ Automatically from a Connector
◦ Import OpenAPI
◦ Import OData
◦ Manually Add from API documentation
2. Bind service task to an operation
◦ Operation inputs become service task inputs
◦ Operation outputs become service task outputs
3. Map process variables to/from task variables
◦ Uses boxed expressions and FEEL
◦ Process variable my IP mapped to task input IP Address
◦ Task output Geolocation information mapped to process
variable my Location
USING PUBLIC APIS
Task variables=Service parameters
Process variables=data objects
13. Decision tasks invoke DMN decision services you create yourself
◦ Uses REST API but not Operation Library
◦ E.g. Validate Vacation Request checks process data input for correctness
1. DMN model defines business logic
◦ DRD shows dependencies on input data and supporting decisions
◦ Each decision has value expression returning output value for given input values
REST-ENABLE YOUR OWN BUSINESS LOGIC DMN Decision Model
14. Decision tasks invoke DMN decision services you create yourself
◦ Uses REST API but not Operation Library
◦ E.g. Validate Vacation Request checks process data input for completness
1. DMN model defines business logic
◦ DRD shows dependencies on input data and supporting decisions
◦ Each decision has value expression returning output value for given input values
2. DMN decision service defines unit of execution
◦ Inputs and Output decisions (service outputs)
REST-ENABLE YOUR OWN BUSINESS LOGIC DMN Decision Model
DMN Decision Service (REST API)
15. Decision tasks invoke DMN decision services you create yourself
◦ Uses REST API but not Operation Library
◦ E.g. Validate Vacation Request checks process data input for completness
1. DMN model defines business logic
◦ DRD shows dependencies on input data and supporting decisions
◦ Each decision has value expression returning output value for given input values
2. DMN decision service defines unit of execution
◦ Inputs and Output decisions (service outputs)
3. Bind Decision task to a DMN decision service
◦ Service inputs/outputs become task inputs/outputs
REST-ENABLE YOUR OWN BUSINESS LOGIC
DMN Decision Service (REST API)
BPMN Decision Task (invokes
Decision Service)
DMN Decision Model
16. Decision tasks invoke DMN decision services you create yourself
◦ Uses REST API but not Operation Library
◦ E.g. Validate Vacation Request checks process data input for completness
1. DMN model defines business logic
◦ DRD shows dependencies on input data and supporting decisions
◦ Each decision has value expression returning output value for given input values
2. DMN decision service defines unit of execution
◦ Inputs and Output decisions (service outputs)
3. Bind Decision task to a DMN decision service
◦ Service inputs/outputs become task inputs/outputs
4. Map process variables to/from task inputs/outputs
REST-ENABLE YOUR OWN BUSINESS LOGIC
DMN Decision Service (REST API)
BPMN Decision Task (invokes
Decision Service)
DMN Decision Model
BPMN Low-Code mapping of
process variables to Decision
Service parameters
17. PERSISTENT DATA
Cloud datastore
• Persistent data table in Trisotech workspace
• A process variable, accessed from process like a data object
• Also accessible externally, using management utility (via Excel)
or API
18. Data gateway service puts OData wrapper around your own company’s apps,
databases, and systems
◦ Gateway produces OData file imported to Operation Library
◦ Automatically generates 5 database operations for each DB table
◦ Bind and map Service task just like Public API
REST-ENABLE YOUR OWN DATABASES AND APPS
MySQL on bizauto.space
Your endpoint on skyvia.com
Business Automation on Trisotech.com
Wrapper API Service
generates OData file
Import OData file to
Operation Library…
… automatically generates REST API for
database operations
19. SIMPLE EXAMPLE: RESTAURANTS NEAR ME
From data input my IP return 10 restaurants near
me
Standard IP Lookup returns my latitude and
longitude from my IP
◦ Map to text string my Location
Restaurants near me uses here.com Geolocation
API to find restaurants near my Location
◦ Map to data output restaurants
20. Process and task variables modeled as FEEL datatypes
◦ Most task variables defined by the service provider
◦ Process data inputs/outputs and data objects defined by modeler
◦ Process data inputs/outputs are the service inputs/outputs of the Business Automation
service
Data flow shown explicitly as data associations
◦ From data input to task input (invoked service input)…
◦ From task output (invoked service output) to process variable (data object)…
◦ From data object to another task input…
◦ From task output to data output
◦ Each data association corresponds to a data mapping in task configuration
DATA FLOW IN BUSINESS AUTOMATION
21. From data input my IP return 10 restaurants near
me
Ipstack Geolocation service from Trisotech
Connector library
◦ Drag to BPMN diagram creates Operation Library
entry automatically
◦ Service input IP Address from my IP
◦ Output Geolocation information mapped to data
object my Location using FEEL
Restaurants near me calls Geocoding and Search
API from here.com
◦ Import OpenAPI file from here.com, generates
Operation Library entry
◦ Service input at from data object my Location
◦ Output Search results mapped to data output
restaurants using FEEL
LIVE DEMO: RESTAURANTS NEAR ME
22. Cloud Publish
◦ Enter authorization credential (API key) in identity
for each service
◦ One-click compile and deploy to Trisotech Cloud
In Service Library, click Form to run
◦ Enter data input my IP, Submit
LIVE DEMO: RESTAURANTS NEAR ME
23. 1. Almost anything you need is accessible as a REST API
• Create Operation Library entry, bind Service task to it
• … or Create your own business logic in DMN, bind Decision task to it
• Trisotech automatically creates FEEL datatypes for inputs/outputs
2. FEEL and boxed expressions map between data objects and API inputs/outputs
• Code completion helps with FEEL syntax
3. Publish as REST service in one click!
4. Executable BPMN modeling different from modeling for documentation
• It’s all Low-Code, not programming
• You need to know DMN, including FEEL and boxed expressions
• Flexible, powerful… and you can do it!
• … but many things to learn
TAKEAWAYS
24. New Courses
• Self-paced eLearning
• Hands-on with the tools (Modeling + Automation), 60-day access included
• In-class exercises and post-class certification
1. DMN Method and Style
• Revised for DMN 1.4 and Trisotech v11
• Covers DRD, FEEL, boxed expressions – everything you need for Low-Code Business Automation
• Links
• Free introduction and overview: https://methodandstyle.com/videos/DMNfree/story.html
• Registration: https://methodandstyle.com/product/dmn-method-and-style-web-on-demand/
• 2. Low-Code Business Automation
• Executable BPMN - Assumes you know DMN already
• Basics - All the techniques, build Vacation Request workflow
• Advanced - REST-enable databases, incorporate public APIs, build a Stock Trading pageflow app
• Links
• Free introduction and overview: https://methodandstyle.com/videos/BusinessAutomation/story.html
• Registration: https://methodandstyle.com/product/low-code-business-automation/
TRAINING
25. Thank you
More information on methodandstyle.com
Or contact me at bruce@brsilver.com
Watch the FREE overview videos
DMN: https://methodandstyle.com/videos/DMNfree/story.html
Business Automation: https://methodandstyle.com/videos/BusinessAutomation/story.html
Hi I’m Bruce Silver, and I want to show you something today that you may not know you could do with the Trisotech platform. And that is Low-code Business Automation based entirely on standards… BPMN and DMN.
Business Automation – also called Digital Transformation – automation of manual tasks and processes, moving work to digital online. No doubt this is a key initiative in your own company, a result of globalization, the cloud, the proliferation of public APIs, even COVID. I have no doubt you are all trying to do this.
Low-Code means software development based on models - diagrams and tables plus some business-friendly formula language – not code. So getting a minimum viable product out the door does not require waiting for overstretched IT resources to become available; product owners, product managers, or subject matter experts can do it themselves. Gartner says that by 2024, 65% of all application development will be Low-Code. The key reason: time-to-value.
OK, so what can you do with Low-Code Business Automation? Most products that advertise themselves as Low-Code/No-Code platforms are just used for small situational apps, mostly in HR and CRM. That’s not what I’m talking about. I’m talking about automating core business functions. For example, in healthcare… things like care plan coordination, or preauthorization for some procedure. In Banking, things like digital mortgage underwriting, or posting accounting events to the general ledger.
I’m talking about creating new capabilities quickly, getting a minimum viable product into the marketplace fast for customer feedback, and turning around suggested changes quickly.
We can do that, because we are not building everything from the ground up. Business automation is mostly composition and reuse of existing services.
In Low-Code Business Automation you are composing individual services, mostly created by others, through their REST APIs. Today REST APIs are everywhere! There are thousands of public APIs available for free or a low monthly subscription. Here you see just a small sample from one of many API aggregators. You can find a public API for just about anything you need. Just grab the API, import it into your model’s Operation Library.
In addition there are REST APIs for services created by you – business logic created in DMN, and executable subprocesses created in BPMN.
Business Automation modeling is quite different from BPMN for documentation. Modeling for documentation is non-executable. It is done by business users, who just need to know the names and order of the process steps. Activities are described only by a label, and whether human or automated.
Process data is not defined, so the challenge is simply to communicate the process logic – what happens in what order – clearly and completely from the printed diagrams themselves.
That requires additional conventions, such as BPMN Method and Style, which defines a small bit of data implicitly from things like gate labels.
For example, the automated task Auto Approve Vacation has an output variable with allowed values Approved, Refused, or Refer to Manager.
Modeling for automation is different. Not all business users can do it. It requires some facility with data and basic logic formulas – but if you can create spreadsheets using the formulas ribbon in Excel, you can do it. The BPMN you are creating is executable, so There is a lot more detail in the modeling: in addition to the activity flow, these models represent the data flow, configuration of each task type to invoke some service, and mapping between process variables and the service parameters.
Here the challenge for modelers is different: making the process you’ve diagrammed run without errors and return the correct result. That’s quite a bit harder, but it’s all Low-Code, not programming.
Each task in executable BPMN is a service – an action performed on request using a REST API.
Each service operation performs a particular action, and related operations are grouped into an interface with a common server URL and authorization credential. The Trisotech Operation library defines the elements required to call the API: the URL, composed of the server URL and the operation path, possibly followed by query parameters; the name and type of authorization credential required, and for each operation the path, input parameters and their datatype, and the output parameter and its type. For example here the operation called by the task Standard IP is defined by the entry you see here.
Incorporating a public API in Business Automation has 3 steps. First you need to create an Operation Library entry for it. Here for the task Standard IP Lookup we did it automatically by dragging in a Trisotech Connector. We can also generate the entry automatically by importing an OpenAPI file or Odata file, or manually from API documentation.
Step 2, bind a BPMN service task to the operation. Just click on the task type icon and select the operation from the Operation Library. Operation inputs become the service task inputs, and operation outputs become the service task outputs.
Step 3 is mapping process variables, the data objects, to and from the task variables, meaning the service inputs and outputs. So you see process variable my IP is mapped to the task input IP Address, and the task output Geolocation information is mapped to the process variable my Location. The mapping uses boxed expressions and FEEL borrowed from DMN.
In addition to public APIs, your own DMN and BPMN models expose REST APIs you create yourself. For example, the Decision task Validate Vacation Request is business logic that checks the process data input Vacation Request for correctness. The validation logic is defined in this DMN decision model. Here we see its Decision Requirements Diagram, or DRD, which diagrams the logic dependencies. Ovals are input data, values supplied to the model at time of execution. Rectangles are decisions, each with a value expression that returns an output value for a given set of input values.
The unit of execution of a DMN model is a decision service, with specified service inputs and outputs. Here the service inputs are the input data, and the service outputs are the decisions Validation Errors and Employee Record. The decision Federal Holidays is used in the logic but is not output by the service.
In BPMN, click on the task type icon to bind it to the Decision service. As we saw previously, the service inputs become the task inputs and the service outputs become the task outputs.
Finally, data mapping maps process variables to and from the task inputs and outputs. Here we just see the input mapping, where the table Employee Vacation Data, a cloud datastore, is filtered to extract a single record matching the Employeeid of Vacation Request. Again, using boxed expressions and FEEL.
Data objects do not retain their values when the process completes, but cloud datastores, a new feature of the platform, do. Datastores act as a simple database inside the Trisotech workspace. A datastore is a process variable holding a single data table. It is accessed via data association just like a data object, but accessible also externally, via using either a management utility via Excel on the desktop or an API. So here in this Vacation Request process, the datastore Employee Vacation Data holds a table of employees and their accrued vacation time. The input mapping to decision task Validate Vacation Request extracts the record for the employee matching data input Vacation Request, a FEEL filter expression.
And there’s more… you can REST-enable your own databases and apps using the Odata standard. For example here I used the Skyvia Connect data gateway service to generate a REST API for a MySQL database on my own website. The gateway generates an OData metadata file that I import into the Operation Library, and REST APIs for 5 operations per database table are generated automatically. You bind and map Service tasks to these operations just like Public APIs.
Let’s look at a simple example. Here is a Business Automation service that returns 10 restaurants near me, where my location is derived from my ip address. The BPMN looks like this, 2 service tasks, a data input my IP taken from myIP.com, a data object my Location, and a data output restaurants, a list of restaurants returned by the service. The first task returns my location as a string latitude comma longitude using the ipstack geolocation service, which is in the Trisotech Connectors library. The second task uses the Here.com Geolocation API to return a list of restaurants near data object my Location, which we map to data output restaurants.
Variables are modeled as FEEL types. Most task variables are defined by the service provider. The process variables are the data inputs, data objects, and data outputs. We define those.
Data flow is shown explicitly as data associations, represented as dotted arrows in the diagram. Data flows from data inputs to task inputs, from task outputs to data objects, from data objects to other task inputs, and ultimately from task output to data outputs.
Each data association represents a data mapping defined in task configuration. For example here you see a fragment of the task output Geolocation information. The data association to my Location maps the components latitude and longitude to a comma-delimited string.
So lets see how to model and deploy this Business Automation service.
[live demo]
The next task Restaurants near me invokes the free Geocoding and Search API from here.com. Downloading the OpenAPI file from here.com and importing it to our model again
generates the Operation Library entry automatically.
The service input at takes the value of my Location,
and the output Search results, another complex structure, is mapped to the process data output restaurants, again using a simple FEEL expression. That’s all we need to do to define this Business Automation service. Now let’s see how easy it is to compile, deploy and run it.
[Do this live demo]
We just click Cloud Publish. We need to enter our api key for each service as an identity, then in one click our model is compiled and deployed to the Trisotech cloud, where we can access it through the Service Library.
There we can run it by clicking Form. We enter my IP, which I got from myip.com, then Submit. And boom, there it is, a list of 10 restaurants near me. Now how easy is that?
Here are a few takeaways from what we’ve seen.
First, almost anything you need is accessible as a REST API, one way or another. You can find a public API, create the Operation Library entry for it – usually automatically – and bind a service task to it. Or create your own business logic in DMN, define it as a decision service, and bind a BPMN decision task to it. Trisotech automatically creates the FEEL datatypes for your service inputs and outputs.
Second, use FEEL and boxed expressions to map the data flow, from data input to task input, etc, as we have seen. Since we know the datatypes, the code completion feature helps us with the mapping.
Third, compiling and deploying BPMN as a REST service is so easy! Just one click.
Fourth, while modeling for automation is quite a bit more detailed than modeling for documentation, it uses the same graphical language BPMN and most important… it’s all low-code. There is no programming. You do need to know FEEL and boxed expressions. The little restaurants near me example is very simple, but I have used the same techniques in projects doing digital mortgage underwriting and financial accounting, so they can handle complex real-world scenarios implementing core business functions. But If you’re a product owner or product manager, business architect, or a subject matter expert, it means you can do it yourself! And if you are a programmer, it means you can do it much faster than with code!
But there are a lot of details in the modeling. Each task type – decision task, service task, user task, script task, and call activity – plays a specific role and has specific configuration details. Not hard, but there are many things to learn.
And to that end… I’ve just introduced two new courses that show you how to do it, in detail. Both are self-paced eLearning, with lots of hands-on exercises using the Trisotech platform and tools. Each course includes 60-day access to my Trisotech workspace and post-class certification.
The first one is DMN Method and Style, completely revised and updated with new features of DMN1.4 and Trisotech platform v11, streamlining the material, and emphasizing things you need for business automation. If you have already taken DMN Advanced, you don’t need to take this new course. But if FEEL, boxed expressions, BKMs and contexts are new to you, you should take this course before tackling Business Automation. If you order DMN and Business Automation training together there is a significant bundling discount.
The second course is Low-Code Business Automation, focusing on all those details of executable BPMN. It assumes the student has a good familiarity with FEEL and boxed expressions. It’s one course, divided in two sections. The Basics section explains the basic techniques, including details of configuration of all the task types. There are a number of exercises using the tool, and it ends with creation of the Vacation Request workflow process. The Advanced section is essentially all hands-on, creating a Stock Trading pageflow app. It adds two more basic techniques important in real-world projects: creating Operation Library entries manually from the service provider documentation, and REST-enabling relational databases using Odata. Each student is provided his or her own MySQL database and a REST endpoint linked to it.
I hope I’ve gotten you thinking about the possibilities for your own organization, things you previously thought were impossible or would have to wait for programming resources to become available. I urge you to watch the free introduction and overview videos, using the links here, or they are also on the Learn ribbon of the Trisotech tool. And I’ve also provided links to register for the courses. With that I thank you, and if there is time we can take some questions.