Mastering BPT in OutSystems: A Guide to Efficient Design and Scalability
Business Process Management (BPM) technology is extensively used across various industries, particularly those involving complex logistics, approval flows, and integration of independent business flow orchestrations. Although Outsystems applications implementing Business Process Technology (BPT) are not widespread, I have encountered several such implementations over the years. These BPT implementations in Outsystems often face significant challenges, including poor performance, excessive complexity, problematic evolutionary maintenance, and a shortage of specialized developers. In some cases, clients have even abandoned BPT, removing it from their application altogether.
Given these issues, it is crucial to address them and provide effective solutions to enhance the longevity and maintenance of BPT designs and lifecycles. In my experience, several strategies have proven successful in improving BPT implementations, and I'll go over them in this article.
Exploring BPM and BPT: Key Concepts and Their Importance
Business Process Management (BPM) is a multifaceted discipline that employs diverse methods to discover, model, analyze, measure, improve, and optimize business processes. It encompasses a systematic approach aimed at enhancing the effectiveness and efficiency of these processes.
BPM tools are instrumental in creating this systematic approach. They facilitate the modeling, implementation, and automation of business workflows. The overarching goal of utilizing BPM tools is to bolster corporate performance. This enhancement is achieved by reducing errors, cutting down inefficiencies, and eliminating miscommunication within business operations.
BPT, or Business Process Technology, is closely related to BPM. It refers to the technology solutions and tools specifically designed to support the BPM discipline. BPT allows for the practical application of BPM strategies and methodologies within an organization’s technological framework. By integrating BPT solutions, businesses can more effectively implement, monitor, and evolve their process management strategies, leading to more dynamic and responsive operational models. This alignment of process management with technology not only streamlines workflows but also enables continuous process improvement in a rapidly changing business environment.
Designing a Simple and Scalable BPT Flow in OutSystems
Architecture
The starting point of an effective BPT flow is its architecture. Determining the business flow's main stages or statuses is crucial to ensure they're both intuitive and future-proof, even if not all are used in every process.
These primary stages or statuses will form the foundation of your main process flow. This flow is typically triggered by creating a record in your main entity marked with a unique identifier of your business flow or item.
Consider establishing a common Workflow App and Core App to facilitate scalable development and prevent the concentration of diverse teams and business flows in the same modules or apps. The specific implementations of distinct business flow steps should be distributed across other workflow and core apps.
My Common BPT App Workflow
This app should contain a single module, [moduleName]_WF, enclosing the main common flow. Once defined, this flow should only be modified to reference new logic from other workflows or update existing references.
Additionally, each step should look something like the flow in Image 2.
My Common BPT App Core
It should have at least the following two modules:
[moduleName]Common_CS – containing basic CRUD logic, the core entity that triggers the primary BPT process, and other core common entities like your status tables and your BPT abstraction tables.
[moduleName]Common_BL – encapsulating common or orchestration business logic and other logic necessary for maintaining the abstraction data model.
Secondary BPT App’s Workflows
The secondary BPT apps should contain a single workflow module, [moduleName]_WF, with the public processes for each step (if applicable) referenced in the main workflow steps. There should be one different workflow for each vertical business line.
Secondary BPT App’s Cores
Each secondary BPT App should have at least the following two modules:
[moduleName]_CS – containing basic CRUD logic, the core entity extension table(s), with specific data for this business line, extending the primary entity that triggers the primary BPT process, and other core entities like your substatus tables.
[moduleName]_BL – containing logic specific to the business and other logic necessary for maintaining the abstraction (mainly the substatus updates) data model.
Data model, performance and longevity
Abstraction data model
While OutSystems BPT offers a solid foundation for business process management, there is room to elevate its capabilities through strategic adaptations. Optimizing indexing and shifting from Integer to Long Integer IDs for entities can take the platform's efficiency and scalability a step further, building on its already robust BPM framework.
Suggested for You
Databases handle thousands or millions of records and must return results in milliseconds. Therefore, data fetching optimization is crucial. This article explains how to do it through indexes and their implementation in OutSystems.
Performance and Longevity
Consider creating and maintaining a tailored data model for improved BPM performance and longevity. Use Long Integer IDs and streamline the structure to include 2-3 essential entities, focusing on fields critical for your regular queries. This dedicated data model allows for more efficient index optimization tailored to your needs. This approach complements the existing BPT data model used by the OutSystems platform, enabling more effective handling of your unique application logic and user interface requirements while concurrently leveraging the robust capabilities of the OutSystems environment.
Updating your abstraction data model
As shown in image 2, the major status updates can be made using an automatic activity inside every step of the main common flow.
Since usually substatus are associated with human activities, you can store the substatus, activity id, activity status and definition id’s in the Human Activity events, OnReady, OnOpen, and OnClose.
Closing
We trust you found value in this overview, offering essential insights for optimizing your BPT flows. This article skims the surface of what's possible with BPT and OutSystems, and there's much more to explore for deeper understanding and application. We encourage you to delve into our other articles and posts for more comprehensive insights and guidance. Should you require specialized assistance to fully leverage BPT technology and the OutSystems platform in your organization, don't hesitate to reach out to us. We're here to help you harness the full potential of these powerful tools for your business needs.
We encourage you to explore the resources listed below for more comprehensive insights and guidance on this subject.
What Is BPM Technology? Understanding Tech's Role in Process Management
OutSystems BPT Documentation – A comprehensive guide to understanding the nuances of BPT within the OutSystems platform.
Like this article? Share it: