Oracle BPM Suite 11g Developer's cookbook

By Vivek Acharya
  • Instant online access to over 7,500+ books and videos
  • Constantly updated with 100+ new titles each month
  • Breadth and depth in over 1,000+ technologies
  1. Process Modeling

About this book

Oracle Business Process Management Suite is a complete set of tools for creating, executing, and optimizing business processes.

Oracle BPM Suite 11g offers the flexibility that business demands, hand-in-hand with the power IT requires. The result is an agile platform that brings together your existing applications, enabling you to react quickly to new business requirements.

With this cookbook we will develop rich, interactive business processes using the Oracle Business Process Management suite.

With Oracle BPM Suite 11g Developer's Cookbook, a common process model based on BPMN is presented to the specific role assigned to readers in each chapter. Explore Oracle BPM 11g with Modelling, Implementation, Simulation, Deployment, Exception Management, BPM and SOA in Concert, Advanced Rules and Human tasks, End User Interaction and Run-time.

Oracle BPM Suite 11g Developer's Cookbook will help readers learn BPM 11g through a Real World Sample Process.

This book is divided into four sections: the first section, Modeling, lays the foundation and demonstrates how to implement the Modeling of Business processes for a Use Case of a Fictitious Organization which needs BPM to be implemented at their site (with data objects and information handling). In the second section, Implementation, we learn about Process Implementation, Human Interaction, Business Rules, and much more. In the third section, Measuring, we learn about Post Process Development, Performance Analysis and Simulation Models. In the last section, Deployment, Migration and Run-Time, we learn deployment and migration, and Post Deployment Run-Time.

Publication date:
April 2012
Publisher
Packt
Pages
512
ISBN
9781849684224

 

Chapter 1. Process Modeling

In the first chapter, you will start with laying the foundation for, and demonstrating how to implement the modeling of, business processes for a Use Case of a fictitious organization that needs Oracle BPM to be implemented at their site. Recipes will demonstrate how to create and model business processes using Business Process Management Notation and Modeling (BPMN) within the Oracle Business Process Management Suite and how to create an organizational model that mimics your real-world organization.

In this chapter you will learn the following:

  • Modeling business processes with BPM

  • Simulating the BPM Application development lifecycle

  • Modeling a fictitious organization

  • Creating Business Process Flow

  • Creating and defining Projects

  • Defining Role and Organization Units

  • Organizing processes using swimlanes

  • Adding user interaction to Process Flow

  • Controlling Process Flow—Defining exclusive gateways

  • Controlling Process Flow—implementing exclusive gateways

  • Controlling Process Flow—Parallel gateways

  • Controlling Process Flow—Sequence flows

  • Communicating with external processes and services

  • Changing the value of Data objects in your process

  • Creating Business objects in Business Catalog

  • Adding documentation to the Flow Element

  • Creating MDS for BPM

  • Publishing a BPM Project in BPM Studio to MDS

Introduction

Business Process Management (BPM) is for process transparency, process intelligence, business empowerment, and business alignment. This chapter explores recipes to carry out a model business process, using Oracle BPM Suite 11g. Business Architecture lays the blueprint for operating and transforming the Enterprise. Business Architecture includes various models that define business goals, objectives, initiatives, and metrics. Business Architecture models business functions, both internal and external. They also encompass organizational models to depict roles, responsibilities, and collaborations to define how, and by whom, defined functions will be provided and used. Along with this, Business Architecture defines the business rules and policies to infuse governance, so that stakeholders can adhere and enforce policies. Steps to achieve business transformation objectives are also defined.

However, one Business Architecture element that is of interest for us in this book is, Business Process Models. Business Process Models define the activities, steps, and information flow between processes, to carry out business functions.

As BPM is a part and element of Enterprise architecture, they need to be designed so that the Enterprise can fully reap the rewards of Oracle BPM. While designing business processes, we are not just automating and managing processes; it's more about how an enterprise adapts to a comprehensive view of business processes, where one has to take the overall Enterprise architecture into account and not just automating and managing business processes. Hence, you can look at BPM adoption in an Enterprise as an element of Enterprise architecture.

With BPM, an enterprise can achieve the goal of automation. It can now model a business process, make associations with human workflow and IT applications, and infuse Business Rules Management Systems (BRMS). In combination with SOA and BRMS, enterprises can achieve extremes of agility. Oracle BPM will offer business agility whose process impact is directly proportional to process complexity. BPM is used for continuous process improvement as well.

Oracle BPM methodology is an agile strategy and an iterative approach to Business Process Management. It is well-suited to this era of ever-changing business processes, where there is a demand for continuous incremental improvement. Traditional methodologies were code-centric, rarely Model Driven; they always overlook the KPI, lacked continuous improvement, and had no vision beyond the current single project. For BPM, a methodology was required that could address these inadequacies; that could bridge the gap between IT and Business.

Oracle BPM methodology as a foundation for Business Process Implementation, as an Enterprise element, offers many benefits, such as the following:

  • Business-driven: You will witness, in the BPM lifecycle, that business leadership and the Enterprise Architect work closely. This leads to process improvements with continuous alignment with business needs.

  • Evaluation: Evaluation of IT assets enables effective planning. Gaps in the IT landscape can be identified and accessed, and required enhancements can be specified.

  • Predictability: With simulation and analysis of processes, BPM incorporates predictability, so that results and costs can be determined in advance and with a high degree of accuracy and confidence.

  • Bridging the Business-IT gap: Business stakeholders are involved at every step of process design and development. Information is exchanged at every engineering step. A Process or Business Analyst always works with Process Architects. Business Process Analysts, with their process, business and modeling skills, capture and model processes, drive process optimization, recommend changes, incorporate change requests from business, direct UAT, identify rules, define KPI's, and work with Process Architects for technical coordination.

  • Traceability: With Process Analysis, you can capture the key decisions and associated motivation artifacts to support impact analysis and enable traceability throughout the business process lifecycle.

  • Measurablity: With Process Analysis you can monitor your business processes, which enables a feedback loop, enabling continuous improvement.

  • Adaptability: BPM methods and activities can be integrated with existing methods and new methods, with ease.

  • Role Definition: Clear definition of duties.

The prerequisites to explore modeling, implementation, and deployments, using Oracle BPM Suite through recipes in this book, are that the following software be installed at your machine/site:

  • Oracle Weblogic Server

  • Oracle SOA Suite (includes Oracle BPM Suite)—BPM Suite gets installed when you install Oracle SOA Suite.

  • Oracle Database

  • Oracle Jdeveloper (with updates for SOA and BPM configured)

    Note

    Demos and examples used throughout this chapter and book are created on WebLogic server 10.3.5, SOA Suite 11.1.1.5.0, and JDeveloper 11.1.1.5.0 on a Windows 7, 64-bit machine.

BPM Application development lifecycle

Just as SOA enables IT Agility, BPM enables Business Agility. Process Impact is directly proportional to Process Complexity. BPM allows for continuous process improvement.

It is argued that BPM enables organizations to be more efficient, more effective, and more capable of change than a functionally focused, traditional, hierarchical management approach. It's the BPM that provides Process Management to serve business agility and manage complex business processes. An Oracle BPM Application's development lifecycle has many phases, such as:

  • Vision

  • Model

  • Implementation

  • Deployment

  • Runtime

This application development lifecycle is equally applicable to any type of BPMN Process, be it a Standard process, Orchestration process, or Choreographic process. Most process modelers, and even you, after reading this book and creating a model, must be more familiar with defining the flow of activities. This is called a Standard process or an Orchestration process. In Choreography processes, the focus is not on orchestrations of work performed by the participants but rather on the exchange of messages/information between participants.

User personas

There are user personas for every phase of the Application Development lifecycle, as different phases require interaction from different types of users.

Vision

Making BPM adoption Enterprise business-driven, is the vision laid by the leadership and coordinated by Enterprise-wide Architects. It brings both business and process agility. As you can see in the preceding diagram for Vision & Mission, the business leadership and Enterprise Architect work closely, and this leads to process improvements with continuous alignment with business needs.

This phase lays the foundation for BPM adoption in the Enterprise with automation and continuous improvement guaranteed, at the same time staying aligned with business needs. You can term it as planning, strategy, analysis, or design. Planning is must for a BPM initiative to succeed. BPM planning needs to go beyond a departmental level and must incorporate a comprehensive view of the entire enterprise—it's goals, operations, processes, and IT Systems.

Alignment with business objectives must be the strategy for a BPM vision. Business leadership, along with process owners, must analyze the processes and find other high-value processes that are amenable to automation and have a high benefit-to-risk ratio. These high-value processes are BPM process candidates.

An Enterprise Architect will then analyze the technical aspects of the BPM process candidates and create a BPM road map. This road map will describe the current state and future vision, and identify the gaps between the two. A road map to get from the current state to the desired state is defined as the mission.

Participants in this phase are—Business leadership and Enterprise Architects.

  • Business leadership (Business Participant) will drive the requirements by setting business goals, objectives, and priorities. Business leadership provides initial inputs, such as high-level vision definition and mission statements. They fund the BPM initiative. Business leadership may include many roles, such as Executive Management, Line-of-Business, and so on. However, let's define them as Enterprise Process Officers, who are responsible for developing a process-centric culture, system, and behaviors. They use BPM Analytics to determine business process changes. Business leadership is supported by Enterprise Architects.

  • Enterprise Architects ensure that IT strategies and standards are applied. Along with Business Leadership, they identify business architecture inputs to BPM and help determining the needs for major business process changes.

Model

During this stage, a Process Analyst creates process models based on real-world business processes and problems. Oracle BPM provides three distinct tools for modeling business processes. Each tool has a different role within the Oracle BPM Suite. The tool you use depends on your business requirements, the stage of the application development cycle, and your user persona.

  • Oracle BPM Studio

  • Oracle Business Process Composer

  • Oracle Business Process Analysis Suite (BPA)

Models are simply a way for Process Analysts to document processes in a structured way. Process Analysts model the flow of a business process and document its steps. They are assisted by Process Architects with their technical skills. Process Analyst and Process Architect are the critical roles in the automation of business process. One has a greater business focus and the other has a technical orientation.

This bridges the business-IT gap. Business Process Analysts, with their process, business, and modeling skills, capture and model processes, drive process optimization, recommend changes, incorporate change requests from business, direct UAT, identify rules, define KPI, and work with the Process Architect for technical coordination.

The participants in modeling are as follows:

  • Process Analysts: They are also termed as Business Process Analysts. They are involved in Process Modeling and have the relevant skills. They are responsible for:

    • Capturing and managing the graphical business process models

    • Driving process optimization

    • Recommending changes

    • Handling process change requests from the business

    • Incorporating incremental process improvements

    • Identifying and coding business rules

    • Working in User Acceptance Testing.

    They work closely with the Process Architect for technical coordination.

  • Process Architects: They coordinate with the Process Analysts in Process Modeling. It's a role that we also identify as Solution Architect. However, they have modeling skills and process implementation skills, too.

    They are responsible for:

    • Analysis and design of technical aspects for the process

    • Defining technical integration strategies

    • Technical specification for new IT capabilities

    • Directing system and integration testing

Implementation

After Process Analysts model business processes, Process Developers are responsible for creating business applications based on these models. Using Oracle BPM Studio, Process Developers implement reusable services and integrate other business systems. Implementation may include the following types of tasks, generally performed by Process Developers:

  • Refining the process model

  • Making technical configurations

They implement defined rules. They can create a user interface and can incorporate Exception management. However, they have secondary developers to perform specialist technical tasks, for example, an Oracle ADF expert can create dynamic ADF pages to be used as Task Forms. Some other developer with Exception Handling expertise can perform that on the process. An integration expert can incorporate SOA stuff into the process, and so on.

After a Process Developer finishes the implementation, the application is compiled and deployed like other SOA composite applications. It can be compiled and deployed using Oracle BPM Studio.

Process Developers: Also termed as Process Designers, they implement the process model to make it executable by configuring data mappings, defining data, and transforming activity input and output. They may not be knowledgeable about business processes, but rely on Process Models for implementations. They have the following responsibilities:

  • Rapidly create business processes using tools. Tools Required: BPM Studio

  • Creating implementation Artifacts.

  • Populating business catalog with rich implementation artifacts.

Deployment

This phase includes testing and deployment. Process Developers or a supporting deployment team can perform process deployment.

For testing, either a developer or a QA can be involved. Different phases involve participation from different people. Generally, developers will perform the Unit testing. System and Integration testing will be performed by the QA and directed by Process Architects. User Acceptance Testing (UAT) will witness involvement of Process Analysts and QAs. Once UAT is completed, the process is deployed to runtime.

Deployment is the process of transferring an Oracle BPM project from the development environment to the runtime environment. This can be either a testing or production runtime environment. After finishing the integration of business processes with backend systems and reusable services, Process Developers create and compile a working, process-based application. This application is then deployed to Oracle BPM Runtime. Oracle BPM Suite contains the following typical scenarios for deploying to Oracle BPM Run Time:

  • Deployment directly from Oracle BPM Studio

  • Deployment directly from Business Process Composer

  • Deployment using an exported SAR file

  • Deployment using the WebLogic Scripting Tool (WLST)

Once the process is deployed to runtime, it's available to end users.

Runtime

After an application is deployed, the runtime environment makes the Oracle BPM application available to process participants, based on the roles assigned in the organization where the business processes were deployed. This stage is divided into the following distinct functions:

End user interaction

Process participants and process owners are responsible for interacting with the running application using process workspace. Process Analysts and owners can also monitor the process and revise Oracle Business Rules at runtime.

End user participants: Process participants are the end users or process performers in a business process who perform the human aspects of the business process task and perform interactive activities. They provide task execution details to the Process Analyst and are involved in Acceptance Testing. They should be contacted and interviewed at the time of Process Automation, as it's a must for process design to know what they actually do. They have many roles, such as supervisor, sales manager, sales representative, business analyst, agents, clerks, and so on.

Oracle BPM flow will automatically route these tasks to a participant, based on his/her role, and they have to log in (either to Oracle BPM workspace or Process Spaces) and perform their activity. End user interaction to running process is performed by logging on to either Oracle BPM Workspace or Process Spaces.

Administrators are responsible for maintaining running business applications and the overall runtime infrastructure, using Oracle Enterprise Manager and the Oracle Weblogic Server administration console.

Administrators or Operation Managers are responsible for the following:

  • Configuring and Monitoring SOA Infrastructure

  • Configuring BPMN Process Service Engine

  • Integrating Oracle BPM with External Monitoring, such as Oracle Business Activity Monitoring, and many more.

Process management and monitoring

Process owners are responsible for monitoring and maintaining running processes using process workspace. Process Analysts and owners use Oracle Business Process Analysis to monitor the real-time performance of business processes. The participant is process owner in this phase.

Process owners are the subject matter experts for the business process (es). They own a process or processes. They are responsible for:

  • Assisting the Business Process Analyst (B) throughout the modeling

  • Assisting the Business Process Administrators (IT) throughout runtime they require considerable business knowledge

  • Managing Process flow

  • Assigning tasks

  • Defining rules and objectives

  • Analyzing end-to-end Business Process Performance

  • Making process-specific decisions to resolve conflicts like the gap between departmental silos of business process activities where ownership is undetermined and knowledge is sparse. Process owners resolve such issues, as they are the process experts responsible for the end-to-end flow of key business processes.

  • Advocating recommendation for Enterprise-wide process improvements.

  • They are also responsible for the monitoring business process(es) that they own.

 

Introduction


Business Process Management (BPM) is for process transparency, process intelligence, business empowerment, and business alignment. This chapter explores recipes to carry out a model business process, using Oracle BPM Suite 11g. Business Architecture lays the blueprint for operating and transforming the Enterprise. Business Architecture includes various models that define business goals, objectives, initiatives, and metrics. Business Architecture models business functions, both internal and external. They also encompass organizational models to depict roles, responsibilities, and collaborations to define how, and by whom, defined functions will be provided and used. Along with this, Business Architecture defines the business rules and policies to infuse governance, so that stakeholders can adhere and enforce policies. Steps to achieve business transformation objectives are also defined.

However, one Business Architecture element that is of interest for us in this book is, Business Process Models. Business Process Models define the activities, steps, and information flow between processes, to carry out business functions.

As BPM is a part and element of Enterprise architecture, they need to be designed so that the Enterprise can fully reap the rewards of Oracle BPM. While designing business processes, we are not just automating and managing processes; it's more about how an enterprise adapts to a comprehensive view of business processes, where one has to take the overall Enterprise architecture into account and not just automating and managing business processes. Hence, you can look at BPM adoption in an Enterprise as an element of Enterprise architecture.

With BPM, an enterprise can achieve the goal of automation. It can now model a business process, make associations with human workflow and IT applications, and infuse Business Rules Management Systems (BRMS). In combination with SOA and BRMS, enterprises can achieve extremes of agility. Oracle BPM will offer business agility whose process impact is directly proportional to process complexity. BPM is used for continuous process improvement as well.

Oracle BPM methodology is an agile strategy and an iterative approach to Business Process Management. It is well-suited to this era of ever-changing business processes, where there is a demand for continuous incremental improvement. Traditional methodologies were code-centric, rarely Model Driven; they always overlook the KPI, lacked continuous improvement, and had no vision beyond the current single project. For BPM, a methodology was required that could address these inadequacies; that could bridge the gap between IT and Business.

Oracle BPM methodology as a foundation for Business Process Implementation, as an Enterprise element, offers many benefits, such as the following:

  • Business-driven: You will witness, in the BPM lifecycle, that business leadership and the Enterprise Architect work closely. This leads to process improvements with continuous alignment with business needs.

  • Evaluation: Evaluation of IT assets enables effective planning. Gaps in the IT landscape can be identified and accessed, and required enhancements can be specified.

  • Predictability: With simulation and analysis of processes, BPM incorporates predictability, so that results and costs can be determined in advance and with a high degree of accuracy and confidence.

  • Bridging the Business-IT gap: Business stakeholders are involved at every step of process design and development. Information is exchanged at every engineering step. A Process or Business Analyst always works with Process Architects. Business Process Analysts, with their process, business and modeling skills, capture and model processes, drive process optimization, recommend changes, incorporate change requests from business, direct UAT, identify rules, define KPI's, and work with Process Architects for technical coordination.

  • Traceability: With Process Analysis, you can capture the key decisions and associated motivation artifacts to support impact analysis and enable traceability throughout the business process lifecycle.

  • Measurablity: With Process Analysis you can monitor your business processes, which enables a feedback loop, enabling continuous improvement.

  • Adaptability: BPM methods and activities can be integrated with existing methods and new methods, with ease.

  • Role Definition: Clear definition of duties.

The prerequisites to explore modeling, implementation, and deployments, using Oracle BPM Suite through recipes in this book, are that the following software be installed at your machine/site:

  • Oracle Weblogic Server

  • Oracle SOA Suite (includes Oracle BPM Suite)—BPM Suite gets installed when you install Oracle SOA Suite.

  • Oracle Database

  • Oracle Jdeveloper (with updates for SOA and BPM configured)

    Note

    Demos and examples used throughout this chapter and book are created on WebLogic server 10.3.5, SOA Suite 11.1.1.5.0, and JDeveloper 11.1.1.5.0 on a Windows 7, 64-bit machine.

BPM Application development lifecycle

Just as SOA enables IT Agility, BPM enables Business Agility. Process Impact is directly proportional to Process Complexity. BPM allows for continuous process improvement.

It is argued that BPM enables organizations to be more efficient, more effective, and more capable of change than a functionally focused, traditional, hierarchical management approach. It's the BPM that provides Process Management to serve business agility and manage complex business processes. An Oracle BPM Application's development lifecycle has many phases, such as:

  • Vision

  • Model

  • Implementation

  • Deployment

  • Runtime

This application development lifecycle is equally applicable to any type of BPMN Process, be it a Standard process, Orchestration process, or Choreographic process. Most process modelers, and even you, after reading this book and creating a model, must be more familiar with defining the flow of activities. This is called a Standard process or an Orchestration process. In Choreography processes, the focus is not on orchestrations of work performed by the participants but rather on the exchange of messages/information between participants.

User personas

There are user personas for every phase of the Application Development lifecycle, as different phases require interaction from different types of users.

Vision

Making BPM adoption Enterprise business-driven, is the vision laid by the leadership and coordinated by Enterprise-wide Architects. It brings both business and process agility. As you can see in the preceding diagram for Vision & Mission, the business leadership and Enterprise Architect work closely, and this leads to process improvements with continuous alignment with business needs.

This phase lays the foundation for BPM adoption in the Enterprise with automation and continuous improvement guaranteed, at the same time staying aligned with business needs. You can term it as planning, strategy, analysis, or design. Planning is must for a BPM initiative to succeed. BPM planning needs to go beyond a departmental level and must incorporate a comprehensive view of the entire enterprise—it's goals, operations, processes, and IT Systems.

Alignment with business objectives must be the strategy for a BPM vision. Business leadership, along with process owners, must analyze the processes and find other high-value processes that are amenable to automation and have a high benefit-to-risk ratio. These high-value processes are BPM process candidates.

An Enterprise Architect will then analyze the technical aspects of the BPM process candidates and create a BPM road map. This road map will describe the current state and future vision, and identify the gaps between the two. A road map to get from the current state to the desired state is defined as the mission.

Participants in this phase are—Business leadership and Enterprise Architects.

  • Business leadership (Business Participant) will drive the requirements by setting business goals, objectives, and priorities. Business leadership provides initial inputs, such as high-level vision definition and mission statements. They fund the BPM initiative. Business leadership may include many roles, such as Executive Management, Line-of-Business, and so on. However, let's define them as Enterprise Process Officers, who are responsible for developing a process-centric culture, system, and behaviors. They use BPM Analytics to determine business process changes. Business leadership is supported by Enterprise Architects.

  • Enterprise Architects ensure that IT strategies and standards are applied. Along with Business Leadership, they identify business architecture inputs to BPM and help determining the needs for major business process changes.

Model

During this stage, a Process Analyst creates process models based on real-world business processes and problems. Oracle BPM provides three distinct tools for modeling business processes. Each tool has a different role within the Oracle BPM Suite. The tool you use depends on your business requirements, the stage of the application development cycle, and your user persona.

  • Oracle BPM Studio

  • Oracle Business Process Composer

  • Oracle Business Process Analysis Suite (BPA)

Models are simply a way for Process Analysts to document processes in a structured way. Process Analysts model the flow of a business process and document its steps. They are assisted by Process Architects with their technical skills. Process Analyst and Process Architect are the critical roles in the automation of business process. One has a greater business focus and the other has a technical orientation.

This bridges the business-IT gap. Business Process Analysts, with their process, business, and modeling skills, capture and model processes, drive process optimization, recommend changes, incorporate change requests from business, direct UAT, identify rules, define KPI, and work with the Process Architect for technical coordination.

The participants in modeling are as follows:

  • Process Analysts: They are also termed as Business Process Analysts. They are involved in Process Modeling and have the relevant skills. They are responsible for:

    • Capturing and managing the graphical business process models

    • Driving process optimization

    • Recommending changes

    • Handling process change requests from the business

    • Incorporating incremental process improvements

    • Identifying and coding business rules

    • Working in User Acceptance Testing.

    They work closely with the Process Architect for technical coordination.

  • Process Architects: They coordinate with the Process Analysts in Process Modeling. It's a role that we also identify as Solution Architect. However, they have modeling skills and process implementation skills, too.

    They are responsible for:

    • Analysis and design of technical aspects for the process

    • Defining technical integration strategies

    • Technical specification for new IT capabilities

    • Directing system and integration testing

Implementation

After Process Analysts model business processes, Process Developers are responsible for creating business applications based on these models. Using Oracle BPM Studio, Process Developers implement reusable services and integrate other business systems. Implementation may include the following types of tasks, generally performed by Process Developers:

  • Refining the process model

  • Making technical configurations

They implement defined rules. They can create a user interface and can incorporate Exception management. However, they have secondary developers to perform specialist technical tasks, for example, an Oracle ADF expert can create dynamic ADF pages to be used as Task Forms. Some other developer with Exception Handling expertise can perform that on the process. An integration expert can incorporate SOA stuff into the process, and so on.

After a Process Developer finishes the implementation, the application is compiled and deployed like other SOA composite applications. It can be compiled and deployed using Oracle BPM Studio.

Process Developers: Also termed as Process Designers, they implement the process model to make it executable by configuring data mappings, defining data, and transforming activity input and output. They may not be knowledgeable about business processes, but rely on Process Models for implementations. They have the following responsibilities:

  • Rapidly create business processes using tools. Tools Required: BPM Studio

  • Creating implementation Artifacts.

  • Populating business catalog with rich implementation artifacts.

Deployment

This phase includes testing and deployment. Process Developers or a supporting deployment team can perform process deployment.

For testing, either a developer or a QA can be involved. Different phases involve participation from different people. Generally, developers will perform the Unit testing. System and Integration testing will be performed by the QA and directed by Process Architects. User Acceptance Testing (UAT) will witness involvement of Process Analysts and QAs. Once UAT is completed, the process is deployed to runtime.

Deployment is the process of transferring an Oracle BPM project from the development environment to the runtime environment. This can be either a testing or production runtime environment. After finishing the integration of business processes with backend systems and reusable services, Process Developers create and compile a working, process-based application. This application is then deployed to Oracle BPM Runtime. Oracle BPM Suite contains the following typical scenarios for deploying to Oracle BPM Run Time:

  • Deployment directly from Oracle BPM Studio

  • Deployment directly from Business Process Composer

  • Deployment using an exported SAR file

  • Deployment using the WebLogic Scripting Tool (WLST)

Once the process is deployed to runtime, it's available to end users.

Runtime

After an application is deployed, the runtime environment makes the Oracle BPM application available to process participants, based on the roles assigned in the organization where the business processes were deployed. This stage is divided into the following distinct functions:

End user interaction

Process participants and process owners are responsible for interacting with the running application using process workspace. Process Analysts and owners can also monitor the process and revise Oracle Business Rules at runtime.

End user participants: Process participants are the end users or process performers in a business process who perform the human aspects of the business process task and perform interactive activities. They provide task execution details to the Process Analyst and are involved in Acceptance Testing. They should be contacted and interviewed at the time of Process Automation, as it's a must for process design to know what they actually do. They have many roles, such as supervisor, sales manager, sales representative, business analyst, agents, clerks, and so on.

Oracle BPM flow will automatically route these tasks to a participant, based on his/her role, and they have to log in (either to Oracle BPM workspace or Process Spaces) and perform their activity. End user interaction to running process is performed by logging on to either Oracle BPM Workspace or Process Spaces.

Administrators are responsible for maintaining running business applications and the overall runtime infrastructure, using Oracle Enterprise Manager and the Oracle Weblogic Server administration console.

Administrators or Operation Managers are responsible for the following:

  • Configuring and Monitoring SOA Infrastructure

  • Configuring BPMN Process Service Engine

  • Integrating Oracle BPM with External Monitoring, such as Oracle Business Activity Monitoring, and many more.

Process management and monitoring

Process owners are responsible for monitoring and maintaining running processes using process workspace. Process Analysts and owners use Oracle Business Process Analysis to monitor the real-time performance of business processes. The participant is process owner in this phase.

Process owners are the subject matter experts for the business process (es). They own a process or processes. They are responsible for:

  • Assisting the Business Process Analyst (B) throughout the modeling

  • Assisting the Business Process Administrators (IT) throughout runtime they require considerable business knowledge

  • Managing Process flow

  • Assigning tasks

  • Defining rules and objectives

  • Analyzing end-to-end Business Process Performance

  • Making process-specific decisions to resolve conflicts like the gap between departmental silos of business process activities where ownership is undetermined and knowledge is sparse. Process owners resolve such issues, as they are the process experts responsible for the end-to-end flow of key business processes.

  • Advocating recommendation for Enterprise-wide process improvements.

  • They are also responsible for the monitoring business process(es) that they own.

 

Modeling business processes with BPM


Modeling is the first phase of the BPM Application development lifecycle, as the preceding diagram shows, and is carried out by Process Analysts. It lays the foundation for Process Development, by creating a model of the process to be implemented. Oracle BPM Suite 11g provides a rich set of applications to perform modeling.

How to do it...

During the phase of modeling you will learn the following:

  1. 1. Simulating a BPM Application development lifecycle

  2. 2. Modeling a fictitious organization

  3. 3. Creating Business Process Flow

  4. 4. Defining process participants, Roles, and Organization Units

  5. 5. Defining the start and end of your process

  6. 6. Adding user interaction to your Process Flow

  7. 7. Controlling your Process Flow using gateways and sequence flows

  8. 8. Communicating with external processes and services (optional)

  9. 9. Creating Process Data objects

  10. 10. Adding documentation to Flow Elements and processes

  11. 11. Handling information in your process design

  12. 12. Configuring activity instance attributes

  13. 13. Developing arguments, scope, and access

  14. 14. Creating data associations

  15. 15. Developing transformations

  16. 16. Creating MDS for BPM

How it works...

The Oracle BPM Suite provides two primary applications for modeling and implementing business processes:

  • Oracle BPM Studio supports Business Process Management Notation (BPMN) 2.0. It is a component of the Oracle BPM Suite that provides a user-friendly environment.

  • Business Process Composer provides a user friendly environment for editing processes and process templates created in Oracle BPM Studio.

You will simulate, model, define, interact, control, and document, using Oracle BPM Studio. As this is the chapter in which you will model the Business Process, you will act as a Process Analyst and you will use Oracle BPM Suite 11g BPM Studio to model the Business Process.

 

Simulating the BPM Application development lifecycle


By simulating BPM Application development lifecycle, you will define the strategy, paradigm, and Use Cases. As a Process Analyst, you will use BPM Studio to create BPM Process Models. Based on these models, Process Developers will implement the BPM applications and deploy it to BPM runtime.

Using BPM Studio, a Process Analyst can do the following:

  • Model business processes

  • Define business rules and performance indicators

  • Simulate processes

  • Determine the optimal resource requirements to achieve specified SLAs

How to do it...

The steps to define strategy, paradigm, and Use Case are:

  1. 1. Chose between BPA and BPM Suite.

    If your answer is 'YES' to following requirements, then you need BPM as a tool:

    • If you are concentrating only on a process and not enterprise-wide modeling

    • If you have human-centric Use Cases that require flexibility and collaboration

    • If you have to focus on the project at hand and not on your total enterprise

    • If you have the tactical/implementation of the processes, BPM Suite works best

    If your answer is 'YES' to following requirements, then you need BPA as a tool:

    • If you have a strategic/pre-implementation work, such as as-is, to-be, gaps, requirements definition, and so on, BPA works best

    • If you need to focus on higher-level, enterprise-wide modeling that might be done using rigorous methodologies, use Oracle BPA

    • If you need the ability to model other things that relate to processes, such as systems, data, people, organizations, and services that represent the Enterprise, use BPA

    • If you need models that relate not only to processes but to other parts of the enterprise, as well, use BPA

  2. 2. Define modeling approach:

    If it is bottom-up, then:

    • Create projects in BPM Studio

    • Populate projects with reusable artifacts, such as data services, and so on

    • Publish to MDS—Projects or Templates can be published to MDS

    • From Process Composer, check out published BPM projects

    • Customize and use these projects to create new processes

    Else if it is top-down ,then:

    • Create high-level abstract Process Flows (blueprints) from scratch using BPM Composer

    • Publish them to MDS

    • Check into BPM Studio and refine them

    • Deploy

  3. 3. Define the Use Case:

    • Determine the business requirements

    • Model the required business processes using Oracle BPM Studio

    • Create simulation models for "as-is" and "to-be" processes or models. Implement the processes by integrating each element of the process with backend systems and reusable services

    • Compile the Oracle BPM project as a composite application

    • Deploy the application to the runtime environment

    • Interact with the deployed processes as part of a running business application

    • Maintain and monitor the running process-based applications

How it works...

You can start modeling in either BPA Suite or BPM Suite. However, as a Process Analyst, you will choose BPM Suite to model, because you have answered 'YES' to all questions asked when choosing between BPA and BPM, in favor of BPM. Along with it, BPM Suite offers predictability, traceability, adaptability, is measurable, and bridges the gap between Business and IT. As a Process Analyst, you have some knowledge of the business process and can collaborate with business users to enrich the modeling outcomes.

As a Process Analyst, in this chapter, you will probably follow the bottom-up modeling paradigm as your modeling strategy. Metadata Store (MDS) enables modeling paradigms. The MDS repository is used for creating a shared, collaborative work environment across multiple BPM Studios and process composers.

There's more...

In addition to the modeling methods described in the preceding text, there are different ways by which a Process Analyst can model business processes, such as the following:

  • Implementing a modeling Use Case with Business Process Composer, by creating Process blueprints. These blueprints will be used by developers to create project templates and store them into Oracle MDS. After this, Process Analyst will use these project templates again to create projects, and finally, to deploy them.

  • You can even use Oracle BPA suite to model the processes by designing the business architectures, analyzing the processes that will be candidates for BPM projects, and then creating process models and importing them into Studio to finally make them available at runtime.

 

Modeling a fictitious organization


Our fictitious organization "FusionNX", located at http://www.fusionnx.net/, has a number of business processes. Let's take into consideration FusionNX's Sales Quote business process to implement the modeling phase.

How to do it...

  1. 1. Define the Business Process and the tasks inside it:

    • Define SalesToContract as a process that you will model for the Sales Quote process of FusionNX

    • Create SalesToContract as the main process

    • Define Enter Quote, Business Analysis, Approvals, and Contract Finalization as different tasks inside it.

  2. 2. Define who the participants are and what role they will play in process development and at runtime:

    • Define users who will participate in different tasks/work in the process, such as Sales Representatives, Approvers, and so on, in the SalesToContract process, which you will model for the Sales Quote process of FusionNX.

  3. 3. Define what data will be associated with the process:

    • Define quote data, as per Quote.xsd, for the SalesToContract process, which you will model for the Sales Quote process of FusionNX.

  4. 4. Define the outcome of the process as a whole and outcomes of the different tasks:

    • Enlist outcomes of all the tasks that you have rejected or approved as possible outcomes of the Approvals task; also enlist all other tasks for the SalesToContract process which you will model for Sales Quote Process of FusionNX.

How it works...

As per the Use Case listed in the preceding text, the Process Analyst will determine the business requirement and will come up with with the Process Flow, user persona, data meant for the process, and outcome of the process. The resulting conclusion is an understanding of the business requirement specific to FusionNX's Sales Quote business process.

The following information is required by Process Analyst to design the Business Process Model:

  • Process Flow

  • Process participants: Users ,Groups, and organizational roles

  • Data: Business data, and input and output of each process step, and process as a whole

  • Outcomes: Possible Outputs from human workflow, process steps, and the process as a whole.

 

Creating Business Process Flow


Using the Business Process Flow, you will model the process the sales quote for FusionNX and in the SalesToContract business process meant for the creation of Sales Quote. The SalesToContract business process implements a solution for sales representatives to submit the sales quotes and manage all the approvals within a particular sales organization. The sales quote travels through many phases and gets finalized. Once finalized, it's saved in FusionNX's Enterprise database.

How to do it...

The SalesToContract process has many tasks. Let us define the major tasks of the SalesToContract business process:

  1. 1. Defining the task—Enter sales quote

    • Task: Entering a sales quote is a Sales Representative's solution process to:

    • Submit the sales quote:

      • i. Manage approvals

      • ii. Role: Sales Representative

    • Data: Input and output business data is Quote.

    • Outcomes: The Sales Representative, as a process participant, is responsible for the creation of a sales quote. He will create the sales quote initially, and after rejections from Approvers, edit it as well.

  2. 2. Defining the task—Business Analyst review

    • Task: Sales quote review

    • Role: Business Analyst

    • Data: Input and Output business data is "Quote" (Quote.xsd)

    • Outcome: The Business Analyst as process participant can either approve or reject the quote.

      If approved: The process continues forward.

      Else: On rejection, the flow token reaches the Sales Representative again, to refine and resubmit the quote.

  3. 3. Defining the task—Quote Approval

    • Task: Quote Approval has two parallel tasks

      • i. Deal Step Approval

      • ii. Term Step Approval

    • Roles: Approvers

    • Data: Input and Output business Data is "Quote" (Quote.xsd)

    • Outcomes: Approver as Process Participant can either APPROVE or REJECT the quote

      If Approved: The Process continues forward.

      Else: On rejection, the process reaches the Sales Representative again, to refine and resubmit the quote.

  4. 4. Defining the task—Finalize Contract

    • Task: Contract Finalization

    • Role: Contracts

    • Data: Input and Output Business Data is "Quote" (Quote.xsd)

    • Outcome: The quote is saved in the Enterprise database by external service call

How it works...

Task definition is the primary objective of Process Flow definition. The Process Analyst has to define roles and responsibilities, which depend on the task definitions. The Process Analyst can choose any tools to carry out the task definition. However, he must try and understand the process to the best of his ability.

Approve Deal is used for approving the deal structure of the quote, and the Approve Terms step is used for approving the terms of the quote.

 

Creating and defining projects


You will need a container for the resources that are used to create and support business applications created using Oracle BPM. Oracle BPM projects are based on SOA projects, but they include the additional functionality of the Oracle BPM Suite, including BPMN processes.

How to do it...

You will use JDeveloper as the IDE to work with BPM Studio. The version of JDeveloper used is 11.1.1.5.0. This is done as follows:

  1. 1. Start the JDeveloper Studio (11.1.1.5.0). Choose the default role, to enable all the technologies. You can also choose the BPM Process Analyst role.

  2. 2. Click on File | New | All Items, and choose BPM Application:

  3. 3. Give a name to the application, say FusionNX_Application.

  4. 4. We will create an application as we are starting the demo. In subsequent chapters and demos, we will use the same chapter.

  5. 5. Click on the Application menu, to the right of the application name in JDeveloper and click New Project....

  6. 6. Choose BPM Tier in the project gallery, and select BPM Project:

  7. 7. Enter the Project details such as Project Name (SalesQuoteToContractDemo) and specify the Directory where it will get saved.

  8. 8. Make sure that both BPM and SOA are selected.

  9. 9. A new Project will get created and will appear in the Project navigator, with a structure of resources, as shown:

How it works...

You must be aware that to handle resources, which together create an application, you need a container. And Projects is the container for BPM resources to create a BPM application.

There's more...

In addition to the two resources of BPM project, Processes and Organization, there are other major resources of an Oracle BPM project:

  • Processes: BPM and/or BPEL processes

  • Activity Guide: Includes project milestones defined for each BPMN process

  • Organization: Includes the organization elements, such as Roles, Organization Units, Calendars, and Holiday rules

  • Business Catalog: Includes reusable components including services, adapters, and human tasks

  • Simulations: Includes the simulation models defined for a project and individual BPMN processes

  • Resources: Contain the XML transformations defined for your project

 

Defining Role and Organization Units


Once finished with defining a process model, you, as Process Analyst, will define the roles (who will perform which responsibility/task) and Organization Units (Organization association, Calendar rules, and Holiday rules). You will define Application Roles in the BPM Studio, and those Application Roles are mapped to organizational users.

Getting ready

Roles authorize the people with a set of responsibilities (tasks) to perform. Later, you divide the tasks based on these roles by creating swimlanes in the process. Each horizontal swimlane is associated with a role.

The roles we will create in Project | Organization are logical roles. LDAP defines the actual users, and during deployment of BPM projects, logical roles are mapped to LDAP roles. Use BPM Studio to map roles to specific users using LDAP.

How to do it...

Now, you have created Application and Project. You already know the Process Flow. Let's create the processes. However, we still don't know "who will perform what", that is, the roles yet need to be defined. Let's organize our Processes, based on roles and Organization Units. Every process has some task/work to be performed. It's the Roles that help decide who has the responsibility to perform the task/work.

Creating a Role

You will create application roles, and later, these roles will be mapped to organizational users. This is done as follows:

  1. 1. Double-click Organization in the Project navigator. Project Editor will open the Organization window.

  2. 2. Select the Roles tab.

  3. 3. Click the "add" (+) icon to add roles.

  4. 4. The role name dialog appears. Enter Name of the role, say Sales Representative. Repeat this step to create other roles listed.

Associating Roles with members

Here, you will map Application Roles to organizational users. This is done as follows:

  1. 1. Click the Roles tab in Organizations.

  2. 2. In the Roles | Members section, choose User as the Type.

  3. 3. Click on Browse (Identity lookup browse).

  4. 4. Select the Application Server connection and Realm from the drop-down lists.

  5. 5. In Search Pattern, specify *(search all) and select User Name from the drop-down list as the search string. This will list all the users in the Realm.

  6. 6. Select the User. As you are associating members to the Sales Representative role, choose a user (member) meant to perform the Sales Representative role.

  7. 7. Repeat the preceding steps for all the users and associate them with members.

    Note

    However, in actual scenarios, Process Analysts need not know which user in the organization is mapped to application roles. This assignment is typically done by Process Admins through the Worklist Application or EM.

Creating Organization Units

Organization units represent a division in an organization, and once defined, process participants might be assigned to one of the organizational units. This is done as follows:

  1. 1. Click Organization, in the Project navigator, and select the Organizational Chart tab.

  2. 2. Click + to add an organization unit root node, which will contain organization units based on geography; say FusionNXorganizationUnit:

  3. 3. Let's say your Sales Representative is from APJ | India. However, for his/her sales quote he/she needs approvals from the APJ head.

  4. 4. When you have finished the preceding steps, click Save.

Associating members to Organization Units

The Organization Units and Roles defined in BPM Studio are abstract. They need to be mapped to your real-world organization FusionNX. During deployment of your project, the components of the modeled organization and roles are mapped to your real-world organization:

  1. 1. In Organization, select the Organization Unit tab.

  2. 2. Scroll to Members Section. Select User as the Type and click Browse, to browse Identity Lookup.

  3. 3. Select Application Server and Realm.

  4. 4. In Search Pattern, search for all (*), with User Name as search string.

  5. 5. When users are listed, choose the appropriate user to associate with the Organization Unit. Say, for APJ | India, associate Sales Representative user and APJ with Approvers.

  6. 6. When you are finished, click Save.

Creating Calendar Rules for Organization Units

In this section, you will define the working hours of an individual, as follows:

  1. 1. In the Organization Unit editor window, select the Calendar tab.

  2. 2. Click the "add" (+) icon to create a calendar, say FusionNXCal.

  3. 3. Click the created Calendar rule to define Time Zone and Work Days with hours:

  4. 4. Chose the Work Days by selecting the checkbox, and specify the Starting Time and Finish Time for each day.You can include an optional Holiday rule for Calendars.

  5. 5. When you have finished the preceding steps, click Save.

Creating Holiday rules

Use the following steps to create a Holiday rule:

  1. 1. Open JDeveloper in the default role and go to View | Application Navigator.

  2. 2. Select FusionNX_Application, which you have just created, and select the SalesQuoteToContractDemo project, which you have already created. This is the Project navigator.

  3. 3. In the Project navigator go to Open Organization.

  4. 4. In the Organization Unit editor window, select the Holiday tab

  5. 5. Click the "add" (+) icon to create a Calendar, say FusionNXHolidayRule.

  6. 6. Select Holiday Rule and click the "add" (+) icon.

  7. 7. Provide the following details for the Holiday rule, and then click OK.

    • Description: Fill in a description of the Holiday rule

    • Type: Common (Common/Fixed)

    • Date: This refers to the dates for this Holiday rule. To specify a range, you must create a new entry for each day

  8. 8. When you have finished the preceding steps, click Save.

How it works...

Creating roles works only when Process Analyst has the Process Flows defined. This has resulted in the following list of Roles:

  • Sales Representative

  • Business Analyst

  • Approvers

  • Contracts

Roles are defined in Organization Resources inside the BPM Project. Check the preceding screenshot of the Project navigator; you can identify Organizational Chart in it. Organizational Chart is used to define Roles, Organization Units, Calendar Rules, and Holiday rules.

Associating roles to members allows you to define what members of your real-world organization are responsible for performing the activities and tasks within your process.

FusionNX operates in multiple geographical locations and has sales units that are divided based on geography, say America, EMEA, APJ, and so on. Hence, organization units were categorized by geography. You know that the Sales Representative is from APJ in the India Organization Unit and that the Approver is from APJ.

To define when resources are working in an Organization, create Calendar rule, and to define when resources are not working, define Holiday rules in an organization.

 

Organizing processes using swimlanes


Swimlanes are the horizontal lines running across the Process Editor and are used to:

  • Group flow objects based on roles

  • Make process readable.

Swimlanes are created for a process, hence you have to create and define processes first. Tasks inside the swimlane must have application roles associated with them.

How to do it...

In this section, you will create a BPM process, and will create a swimlane, and associate it with an application role.

Create Process

This is done as follows:

  1. 1. Go to the Project navigator and right-click processes (this will open the new gallery).

  2. 2. From Categories, choose BPM Tier.

  3. 3. Select Process to create a process.

  4. 4. Click OK.

  5. 5. The BPMN Process definition dialog opens up.

  6. 6. Enter process name and choose Type:

    • Process name: SalesToContract process:

    • Process Type: Manual Process (no Start and End event)

    • Process Instance initialization: A None start event followed by a user task defined with the initiator pattern will result in Process Instance initialization.

  7. 7. Click Next.

  8. 8. In the Advance tab, go to Select | Inherit Project Default.

  9. 9. Click Finish and Save.

Adding swimlanes

Follow the ensuing steps to create swimlanes:

  1. 1. Click Add Role in the Project Editor, as shown:

  2. 2. It will open a Role properties dialog box.

  3. 3. From the Role properties, choose the Role.

  4. 4. For the first swimlane, choose the SalesRepresentative role:

  5. 5. Repeat the preceding steps to create swimlanes for BusinessAnalyst, Approvers and Contracts roles too.

  6. 6. For SalesRepresentative, BusinessAnalyst, Approvers and Contracts roles, the swimlanes will look like the following:

  7. 7. When you have finished the preceding steps, click Save.

How it works...

The None start event will not trigger the Process Instance. However, it is required while triggering a process instance using the following flow objects:

  • Receive task must have a Create Instance property set to true

    OR

  • User task must be implemented with the initiator pattern

In the SalesToContract process, since the process contains a User task implemented with the initiator pattern, the None start event triggers a process instance.

By default, a default role and a single horizontal swimlane get created in the Project Editor. You can make it work by either renaming the first default swimlane or following the preceding steps.

There's more...

Process Instance creation depends on the type of start event. FusionNX's SalesToContract process is a manual process, as we have chosen while creating the process.

Triggering of a Process Instance: For SalesToContract, we have a User task following the None start event, which has an initiator pattern defined. This will result in initialization of a Process Instance. None start event will not accept input arguments.

Defining the Start and End of a Process

Start events: A Start defines the starting point of a process. Start means initialization of the Process Instance.

End Events: An End event defines the end of a process. When the token reaches the end event, it gets consumed and the instance gets completed. The SalesToContract process will end when the contract is finalized in the Contracts swimlane.

Since the SalesToContract process will end once the contract is finalized, follow the ensuing steps:

  1. 1. Drag the End event to the Contracts swimlane.

  2. 2. Delete the sequence flow from User Task in the SalesRepresentative swimlane to End event by right-clicking the sequence flow, as shown in the following screenshot:

  3. 3. Delete the created User Task, Default, as we will create a User task with initiator pattern to initiate the Process Flow.

  4. 4. When you have finished the preceding steps, click Save.

 

Adding user interaction to Process Flow


The Process participant's interaction is enabled in the SalesToContract process by Human Tasks. You will create a User task in the process, where a process participant is required to perform tasks.

How to do it...

In the SalesToContract process, inside the SalesRepresentative swimlane, the user with the Sales Representative role has the task of entering quote information.

Create a User task, which will prompt the Sales Representative, to enter quote information, as follows:

  1. 1. Click on the process name (SalesToContract) in the Project navigator. This will open the Process Editor.

  2. 2. Click on Component Palette | BPM Components and select Activities, in the list.

  3. 3. Click on Interactive | Initiator. You will create a human task of the Initiator type:

  4. 4. Enter name of the User task as Enter Quote.

  5. 5. Click on the sequence flow icon, at the top middle of the Process Editor.

  6. 6. Create an outgoing sequence flow from Start Event | Enter Quote.

  7. 7. Create the sequence flow as "unconditional".

  8. 8. Click on Sequence flow, and open the Sequence Flow Properties dialog box, wherein you can create Conditional sequence flows as well.

  9. 9. When you have finished the preceding steps, click Save.

How it works...

The Process participant interacts with BPM Workspace in BPM Suite. This can be a simple interaction, such as entering a form, or part of a more complicated workflow that requires input from multiple process participants.

As you are modeling the process, you, as a Process Analyst, will only add the user task to a process diagram. Process Developers, during implementation, will create the necessary human tasks and implement them as part of creating the overall process-based business application.

User tasks contain incoming and outgoing data associations. User tasks may also contain incoming and default outgoing sequence flows.

 

Controlling Process Flow—Defining exclusive gateways


You will be modeling Task # 2 (Business Analyst Review), which is performed by the Business Analyst role, in the Business Analyst swimlane.

Getting ready

The Business Analyst will review the Sales quote and he/she can either APPROVE or REJECT the Quote.

If Approved: The process continues forward.

Else: On Rejection, the process reaches the Sales Representative again, to refine and resubmit the quote.

How to do it...

Create User Task

Perform the following steps to create a User task:

  1. 1. Select Project navigator, click Process | Project Editor.

  2. 2. In the Project Editor, at the the BusinessAnalyst swimlane, create a User task, which is performed by the Business Analyst to review the quotation.

  3. 3. Select Component Palette | BPM | Activities and select User task.

  4. 4. Drag User task from Interactive Activities and position it in the swimlane.

  5. 5. Name the User task Business Analyst Review.

  6. 6. When you have finished the preceding steps, click Save.

Create a Condition Switch

Before the Business Analyst performs the review on the sales quote and either rejects or approves the quote, you will check if a Business Analyst Review is required or not.

If required: Proceed to the Business Analyst Review User task.

Else: Proceed to Approvers review.

  1. 1. Select Component Palette | BPM | Gateways.

  2. 2. Select Exclusive Gateway, click on the Business Analyst swimlane, and position it where you want to create the Condition switches.

  3. 3. It will open a Properties dialog box. Enter basic information:

    Name: Is Business Analyst Review required? This will get displayed on the Process editor on the Exclusive Gateway.

  4. 4. Create an unconditional sequence flow from Enter Quote (Initiator User task) to the Is Business Analyst Review required? Exclusive Gateway.

  5. 5. When finished, click Save.

Create Process Data Object

Processes access and store information, and BPM supports data structures to keep track of this information. These data structures are—Process Data objects, Project Data objects, Arguments, and Subprocess Data objects.

Process Data objects—They store information related to each process instance you create. The value of these data objects is different for every instance in the process. However, the structure of the data object is the same for all process instances. When you define a process, you must define the data object to store information. You must also define in which part of the process you assign a value to these data objects. The value of data objects may come from user input, from external systems, or might be calculated based on other process data objects. When you create an instance, the Process Engine assigns Null as the default value for all the process data objects defined for that process. Later on, the activities in the process assign values to these variables.

Project Data objects—The processes in a BPM project often have a set of data they share. The value of this data is different for every instance in each of those processes; they only share the necessity to keep track of that data. Project data objects allow you to ensure that all the processes in a certain project keep track of a set of data. Then each process has to assign and update the value of this data.

You can create project data objects as follows:

  1. 1. In the Project navigator, click on the process name, SalesToContract.

  2. 2. You can see a Structure panel open at the lower-left corner of the JDeveloper screen.

  3. 3. Right-click Process Data Objects. Click New to create a Data object.

  4. 4. Enter the following details for the Process data object:

    • Data Object name: BusinessAnalystReviewRequire

    • Type: Boolean (Bool)

  5. 5. Create a conditional sequence flow from Exclusive Gateway to Business Analyst Review User task.

  6. 6. This will open sequence a Flow properties dialog.

  7. 7. In the Description tab, enter Name of the Sequence flow as Yes.

  8. 8. In the Properties tab, click on Expression Builder and set the value of the Process Data object as BusinessAnalystReviewRequire == true.

  9. 9. When you have finished the preceding steps, click Save.

How it works...

This User task, Business Analyst Review, will be performed by the Business Analyst to review the quotation. However, even before a review is carried out by the Business Analyst, you will check if a review is required or not. When the token reaches Exclusive Gateways, it will determine what path the process token will take.

 

Controlling Process Flow—Implementing Exclusive Gateways


The Business Analyst will either reject the quote or approve it, to switch the token flow, based on Business Analyst Review User task.

How to do it...

Perform the following steps to implement Exclusive gateways:

  1. 1. Create an Exclusive Gateway for the condition switch.

  2. 2. Create an Exclusive Gateway to check on the Business Analyst Approval Outcome.

  3. 3. Select Component Palette | BPM | Gateways and select Exclusive Gateway.

  4. 4. Next, click on the BusinessAnalyst swimlane and position it where you want to create the condition switches. In this case, place it after the Review task (User task).

  5. 5. It will open a Properties dialog box. Enter basic information, such as:

    • Name:Business Analyst Outcome

  6. 6. When you have finished the preceding steps, click Save.

Create a Process Data object to hold outcome of the Business Analyst Review User task as follows:

  1. 1. Click the process name SalesToContract in the Project navigator.

  2. 2. You can see that a Structure panel opens at the lower left corner of the JDeveloper screen.

  3. 3. In the Structure panel, on the lower-left side, right-click Process Data Objects and click New, to create a new Data object.

  4. 4. Enter the following details for the Process Data object:

    • Data object name: BusinessAnalystOutcome

    • Type: String

    • Enable Auto Initialise.

  5. 5. When you have finished the preceding steps, click Save.

  6. 6. Create Sequence flows by implementing the outcome scenario:

    If outcome of the Business Analyst Review is REJECT: Then, send a quote to the Sales Representative.

    Else: Send it to Approvers for approvals.

  7. 7. Case: REJECT

    • Create a Conditional Sequence flow from Business Analyst Outcome Gateway to User Task (Enter Quote)

    • Click on sequence flow to open the Properties dialog

    • Enter basic information as follows:

    • In the Description tab ,enter Name: Business Analyst Rejected

    • In the Properties tab:

    • Select Type as Condition (to implement conditional sequence flow)

    • In the Expression section, click Expression Builder

    • In Expression Builder, select Mode as Simple expression

    • From the Variables section, chose the Data object BusinessAnalystOutcome and set value as: BusinessAnalystOutcome=="REJECT"

    • Click OK

    • When you have finished the preceding steps, click Save.

  8. 8. Case: APPROVE

    • Create an unconditional sequence flow from Gateway (Business Analyst Outcome )to Approvals(Parallel gateway), in the Approvers swimlane

    • Enter basic information such as:

    • In the Description tab, enter Name: Business Analyst Approved

    • In the Properties tab, select Unconditional as Type(to implement unconditional sequence flow)

    • When you have finished the preceding steps, click Save.

How it works...

Exclusive gateways used for the conditional switch discussed in the preceding text are flow objects that define the flow of process. Gateways define what path the process token will take. Exclusive gateways have conditional outgoing sequence flows. You can build expressions to determine if your process continues down a conditional sequence flow.

To implement Conditional Switch:

If: Business Analyst Review is required = Yes, then proceed to the Business Analyst Review User task.

Else: Proceed to Approvers Review.

You will create a Process Data Object to store values, as the evaluation is determined by the expression defined for the outgoing conditional sequence flow. If this evaluates to true, then the Process Flow proceeds down the Yes path (towards the Business Analyst Review User task). If it evaluates to false, then the Process Flow proceeds down the path of the default outgoing sequence flow. The condition in the sequence flow will be based on values of Process Data object BusinessAnalystReviewRequired.

If the Process Data object BusinessAnalystReviewRequired = True, then choose the sequence flow Yes

Else: Choose the sequence flow No

 

Controlling Process Flow—Parallel gateways


Task # 3, Quote Approval has 2 parallel tasks:

  • Deal Step Approval

  • Term Step Approval

They need to be performed in parallel by the Approvers and Contracts roles.

How to do it...

I. Create a Parallel gateway

  1. 1. Move to Component Palette | BPM | Activities.

  2. 2. Click Gateways, and select Parallel Gateway.

  3. 3. Drag it to the Project Editor, in the Approvers swimlane.

  4. 4. Enter basic information into the properties dialog of the gateway, such as:

    • Name: Approvals

  5. 5. When you have finished the preceding steps, click Save.

II. Create a User task

Note

You need to create two User tasks in the Process Model, which will perform the Approval deal and Approval terms tasks, by the Approvers and Contracts roles, respectively.

  1. 1. Go to Component Palette | BPM | Activities.

  2. 2. Click User task in interactive activities.

  3. 3. Click in the Approvers swimlane, where you want to position this User task.

  4. 4. Enter the following details in the Properties dialog of the User task:

    • In the Base tab, enter Name as Approve Deal

    • In the Implementation tab, leave the default, as we will implement it in the implementation phase of the development cycle

  5. 5. When you have finished the preceding steps, click Save.

  6. 6. Go to Component Palette | BPM | Activities.

  7. 7. Click User task in interactive activities.

  8. 8. Click on the Approvers swimlane, at the point where you want to position this User task.

  9. 9. Enter the following details in the Properties dialog of the User task:

    • In the Base tab, enter Name as Approve Terms

    • In the Implementation tab, leave the default, as we will implement it in the implementation phase of the development cycle.

  10. 10. When you have finished, click Save.

III. Create sequence flows

Create unconditional sequence flows from the Approvals Parallel gateway to Approve Deal and Approve Terms User tasks.

  1. 1. Click on the sequence flow on top of the Process Editor.

  2. 2. Create a Sequence flow (Unconditional) from the Approvals Parallel gateway in the Approvers swimlane to the Approve Deal User task.

  3. 3. Similarly, create a Sequence flow (Unconditional) from the Approvals Parallel gateway in the Approvers swimlane to the Approve Terms User task.

  4. 4. When you have finished the preceding steps, click Save.

IV. Create Process Data objects

Create Process Data objects to store the outcome of the Approve Deal and Approve Terms User tasks.

  1. 1. Click the process name SalesToContract in the Project navigator.

  2. 2. You can check the open Structure panel at the lower-left corner of the JDeveloper screen.

  3. 3. In the Structure panel, on the lower-left side, right-click the Process Data object, and click New, to create a new Data object.

  4. 4. Enter the following details for the Process data object:

    • Data object name: approveDealOutcome

    • Type: String

    • Enable Auto Initialize

  5. 5. Enter Following Details for the Process data object :

    • Data Object name : approveTermsOutcome

    • Type: String

    • Enable Auto Initialize

  6. 6. When you have finished the preceding steps, click Save.

How it works...

The Parallel Gateway guides the process token to perform two or more tasks simultaneously.

The Parallel Gateway:

  • Splits your process into two or more paths when you want your Process Flow to follow all paths simultaneously

  • When a token reaches a parallel gateway, the parallel gateway creates a token for each outgoing sequence flow

 

Controlling Process Flow—Sequence Flows


Task # 4 is performed at the Contracts swimlane by the Contracts role. You will merge the outcome of the Approval Deal and Approval Terms User tasks. Data objects that have already been created (approveDealOutcome and approveTermsOutcome) will contain the values of outcome from the Approve Deal and Approve Terms User tasks, respectively.

How to do it...

  1. 1. Merge Outcome: Merge the outcome of Approve Deal and Approve Term User tasks:

    • Go to Component Palette | BPM | Gateways

    • Click on Parallel Gateway

    • Click on the Contracts swimlane, where you want to place the Parallel Gateway

    • Name the Parallel Gateway Merge Approvals

    • Create an unconditional, unnamed sequence flow from the Approve Deal and Approve Terms User tasks to the gateway Merge Approvals.

    • When you have finished the preceding steps, click Save

  2. 2. Create a Finalize User task:

    • Go to Component Palette | BPM | Activities

    • Select a User task from the interactive section

    • Click on the Contracts swimlane and position User task before theEnd event

    • In the User task Properties window, enter the following:

    • In the Basic tab, enter Name = Contract Finalize

    • Leave the implementation tab as default

    • When you have finished the preceding steps, click Save

    • Create an unconditional sequence flow from the gateway Approvals Outcome to the Contract Finalize User task.

    • Name the sequence flow as Approved

    • When you have finished the preceding steps, click Save

  3. 3. Switch on Approve Deal and Approve Terms outcome:

    Post merger, you have to switch on the outcome of Approve Deal and Approve Terms User tasks. Create Exclusive Gateway to implement conditional switch on outcomes.

    • Go to Component Pallet | BPM | Gateway and select Exclusive Gateway

    • Click on the Contracts swimlane, where you want to place the Exclusive Gateway

    • Name the gateway Approvals Outcome

    • When you have finished the preceding steps, click Save

  4. 4. Create sequence flows:

    To implement the outcome scenario

    If the outcome of Approve Deal OR Approve Terms User tasks is REJECT, then send the quote back to the Sales Representative

    Else: Send it to Finalize Contract User task

  5. 5. When REJECT:

    • Click on the sequence flow icon on top of the process editor to create a sequence flow

    • Create a conditional sequence flow from the gateway Approvals Outcome to the Enter Quote User task.

    • Enter the following information in the properties of the sequence flow:

    • In the Description tab, enter Name = Deal or Terms Rejected

    • In the Properties tab, Type = Condition

    • In the Expression section, choose Simple Expression

    • Select Expression Builder

    • You can find the approveDealOutcome and approveTermsOutcome process Data objects. They hold the outcome values from User tasks:

    • approveDealOutcome == REJECT or approveTermsOutcome == REJECT

    • When you have finished, click Save

  6. 6. When APPROVE:

    • Create an unconditional sequence flow from the Gateway Approvals Outcome to the Contract Finalize User task.

    • Name the sequence flow Approved

    • When you have finished the preceding steps, click Save

How it works...

As per Process Flow:

If: the outcomes for the Approve Deal or the Approve Terms User tasks' is REJECT,

Else: The contract will be finalized.

You can also use the parallel gateway to merge process paths split by the parallel gateway. The merge of the parallel gateway waits for a token to arrive from each of the incoming sequence flows. After all tokens arrive, only one token is passed to the outgoing sequence flow.

In addition, you should design your process so that a token arrives for each incoming sequence flow, for the merging parallel gateway. If you do not, your process can freeze if the merger is expecting tokens that do not arrive.

 

Communicating with external processes and services


Till this point, you have finalized the contract. Let's save the contract information in the database. We can achieve it by communicating with either an external service, which performs the service of interacting with the desired database and performs an insert operation into it. This external service could be a BPEL Service, Mediator service, Adapter Service, or another BPM Process itself. Let's take the case of invoking an Adapter Service (Database Adapter) to perform the insert operation. As a Process Analyst, you will model the service call in the process. However you will implement it in Implementation phase.

How to do it...

  1. 1. Go to Component Palette | BPM | Default Activities and select the Service Task activity.

  2. 2. Click on the Contract swimlane between the Finalize Contracts User task and End event.

  3. 3. This will open the Properties dialog for the Service Task activity.

  4. 4. In the Basic tab, enter Name as Save Quote.

  5. 5. Leave other tabs as default. We will implement it at the implementation phase.

  6. 6. Create an unconditional sequence flow from the Contracts Finalize User task to the Save Quote service and from the Save Quote service to the End event.

  7. 7. When you have finished the preceding steps, click Save.

How it works...

Process Analysts can add the service task when they know that a process must invoke an external service or process to communicate with other processes and services, such as BPMN process, BPEL process, SOA service, Adapter Services and mediator services.

Service task invokes processes and service, synchronously. When the service task invokes a process or service, the token waits at the service task until a response is returned. After the response is received, the token continues to the next sequence flow in the process.

There's more...

Service Adapter (Database Adapter) will be configured in Composite.xml.

In the Service Activity Save Quote properties, on the Implementation tab, you can browse the service that you will carry out in the Implementation phase to implement it.

 

Changing the value of Data objects in your process


You have created a couple of Process Data Objects while modeling the SalesToContract process. However, you have never initialized those Data objects.

The following Data objects were created during modeling:

  • BusinessAnalystOutcome (to hold the outcome of the Business Analyst Review User task)

  • approveDealOutcome (to hold the outcome of the Approve Deal User task)

  • approveTermsOutcome (To hold the outcome of the Approve Terms User task)

Let's try to change Process Data object values and initialize them in the process.

How to do it...

  1. 1. Go to Component Palette | BPM | Default Activity and select the Script task activity.

  2. 2. You will use this activity to initialize the Quote Data objects.

  3. 3. In the Sales Representative swimlane, click where you want to position the Script task activity. Click between the Start event and the Enter Quote User task, to position Script Task.

  4. 4. Once the Script task| Properties dialog opens, enter the following information in the properties dialog:

    • In the Basic tab, enter Name = Initialize Quote

    • In the Implementation tab

    • Chose Implementation Type = Script task

    • Check Use Association

    • Click the Edit button to the right of the Use Associations checkbox

  5. 5. The Data Associations editing dialog will open.

  6. 6. On the right side of the dialog box, list the Data objects created so far in the process.

  7. 7. Drag the BusinessAnalystReviewRequired process Data objects to the Data Associations editor. This will open a blank box with an Expression Builder, as shown in the following screenshot.

  8. 8. Click on Expression Builder to assign values to this Data object, say BusinessAnalystReviewRequired Data object:

  9. 9. In the Expression Builder dialog, choose XPath Exp for Mode:

  10. 10. In the Expression editor, enter false() to assign false() as initial value to the BusinessAnalystReviewRequire Data object.

  11. 11. Click OK, and when you have finished the preceding steps, click Save.

How it works...

Script Tasks are used to change Process Data objects values. So when the process token reaches the script task, it will initialize those Data objects.

The script task is used to:

  • Change values of Data objects within your process

  • Change the values of Data objects outside of another flow object

  • Set initial values of Data objects at the beginning of a process

Project Data objects are Data objects that you define in a project. As with other flow objects that accept data associations, you can use expressions to change the values of Data objects.

 

Creating Business objects in a Business Catalog


The main elements of a business process are tasks and information related to those tasks. The information of a process may change as you run the process. This information defines the state of a process at a given time. According to the value of this information, the instance may take one path or another. This information defines the state of a process at a given time.

You may store this information in an external system also.

The Sales Quote example process uses the following information:

  • Approval flow

  • Approval terms outcome

  • Quote

BPM data objects have two characteristics: Data Object Name and Data Object Data Type. The business catalog is a repository that stores the reusable components you use to implement some flow objects in BPMN processes. The business catalog stores the following types of components:

  • Errors

  • Events

  • Human Tasks

  • Business Rules

  • Service Adapters

  • Synthesized Types

  • BPEL Processes and Mediators

  • Business Objects

  • Business Exceptions

The Business Catalog holds the different types of Services (System, BPEL processes, Task Services, Rule Services) as well as Business objects (Data). There are different folders for holding different types of BPM artifacts. Some folders have a lock to indicate that the artifacts inside them cannot be deleted. Business objects allow you to model and develop the business entities that are part of your process using the Object Oriented paradigm. Using Business objects simplifies the management of the data in your process by encapsulating the data and business behavior associated with the business entity it represents. A Business object is composed of a set of attributes and a set of methods.

  • Attributes store the data related to the entity you are modeling.

  • Methods manipulate the value of these attributes, or perform calculations based on their values.

In a Sales Quote example, you can identify the business entities Quote, Contract, and so on.

You can create Business objects either manually, or based on an XML schema element or complex type, or by customizing a synthetic type in the types.

How to do it...

You will use BPM Studio to create the Quote Business object represented by XML Schema. These Business objects will be stored under Business Catalog.

  1. 1. In the BPM Project navigator, right-click on Business Catalog, select New, and then select Business Object.

    This will bring up the Business Object dialog, as follows:

  2. 2. Type Quote in the Name field.

  3. 3. Click on the magnifying glass icon next to the Destination module. This will bring up the Module List dialog. Click on the New symbol to add a module with the name Data under Business Catalog.

  4. 4. Click OK.

  5. 5. Select the Based on External Schema option and click the magnifying glass icon. This brings up the Type Chooser dialog. Click on the Import Schema Files icon on the top-right corner to import an XSD file into your BPM Project.

  6. 6. Select the Copy to Project option in the Import Schema File dialog and select the magnifying glass icon.

  7. 7. This brings up the SOA Resource browser window. Locate and select the Quote.xsd file.

  8. 8. Click OK to close the SOA Resource browser and click OK again on the Localize Files dialog.

  9. 9. Expand the Project Schema Files folder in Type Chooser, and select the Quote Request element. Click OK and then OK, again.

  10. 10. The Quote Business Object opens. You can add description and documentation details here, as desired. When finished, close the Quote window.

  11. 11. You have now created the Business object quote.

  12. 12. When you have finished the preceding steps, click Save.

How it works...

When you implement Interactive tasks with a Task Service, say the Enter Quote task, you choose a pattern that sets its outcome, and there, you will choose Business object as the task parameter. For the Enter Quote Implementation, you will choose Initiator as the Pattern, outcome will be set to SUBMIT, and the Parameter chosen will be the Business object quote.

 

Adding documentation to the Flow Element


The Oracle BPM Suite 's BPM Studio provides process documentation features too. Within the documentation Windows allows you add documentation for the entire process or for each flow object within your process. You can create end user and Use Case documentation for your processes.

  • End User Documentation: This is the documentation the process participants see using the Oracle BPM Workspace application.

  • Use Case documentation: This is the documentation that Process Analysts and Process Developers see when updating a business process.

How to do it...

Adding documentation to the Flow Element in a process is done as follows:

  1. 1. Open the process SaleToContract.

  2. 2. From the View menu select Documentation.

  3. 3. Select the flow object within your process that you want to document.

  4. 4. You can even add documentation for the whole process or any of its individual elements.

  5. 5. From the drop-down list, select the type of documentation you want to add.

  6. 6. You can choose either Documentation or Use Case Documentation, based on your requirements.

  7. 7. Enter your documentation.

  8. 8. When you have finished, click Save.

How it works...

Have a look at the Documentation tab in the following screenshot. On the upper-left side, you can find the process name given (SalesToContract), as you are documenting the entire process. However, you can choose any Flow Element and its name will appear there, and then you can document for that particular Flow Element too.

 

Creating MDS for BPM


Oracle Metadata Service (MDS) repository is an Oracle Fusion Middleware component that stores metadata for certain types of deployed applications. Oracle BPM uses this repository when deploying applications to runtime. In addition to using Oracle MDS to store information about deployed applications, Oracle BPM also creates a partition in the MDS repository to store projects and project templates.

When an MDS connection is created, BPM partitions are created. These partitions are used by both Oracle BPM Studio and Business Process Composer to share projects and project templates.

The Oracle BPM MDS repository contains the following default folders:

  • Public: Contains all shared Oracle BPM projects.

  • Templates: Contains all project templates.

You can create additional subfolders within these folders, to organize your projects and project templates. The Oracle BPM Metadata Services repository is installed as part of the Oracle BPM runtime installation. After this installation is complete, you must configure your Oracle BPM Studio installation to connect to the repository.

How to do it...

Here you will create an MDS for BPM:

  1. 1. Open JDeveloper in the default role.

  2. 2. Open Resource Palette, by selecting View | Resource Palette.

  3. 3. Go to IDE Connections. Click on the folder with the + sign.

  4. 4. Right-click on New Connection and then Database.

  5. 5. Create a database connection to the MDS, as shown in the following screenshot.

  6. 6. Get the database TNS details and fill the details as per your environment. Once you're done, you can check the connection by pressing the Test Connection button; a Success! message appears, if the parameters are correct. Click the OK button.

  7. 7. Right-click on New Connection and select New Connection and select SOA-MDS.

  8. 8. Create a new SOA MDS Connection, as started in the previous step. In the Select MDS partition, obpm should be automatically selected. Test the connection.

  9. 9. Go to View | BPM MDS Navigator, to open the BPM MDS Navigator.

  10. 10. Open Configure Connection and choose the SOA MDS Connection that you just defined.

  11. 11. Check that root folders Public and Templates are shown in BPM MDS Navigator.

  12. 12. When you have finished the preceding steps, click Save.

How it works...

The Oracle BPM Metadata Service browser enables you to view the contents of the Oracle BPM MDS repository and perform related tasks. You can perform the following tasks using this browser:

  • Publish projects and project templates.

  • Create and configure Oracle BPM MDS connections.

  • Check out and lock projects and project templates

 

Publishing a BPM Project in BPM Studio to MDS


Getting ready

Publishing a project to the Oracle BPM MDS repository enables you to share projects and project templates with other Process Analysts and Process Developers. Once a project or project template is published to the repository, it can be accessed by other Process Analysts and developers using either Oracle BPM Studio or Business Process Composer.

How to do it...

Follow the steps of this section to publish a BPM project in BPM studio to MDS:

  1. 1. Go to BPM Project navigator, right-click on the BPM project that you want to publish, and select the Publish to BPM MDS menu item.

  2. 2. The Publish to BPM MDS dialog pops up. Keep the default name of QuoteProcessLab, Check the Override box, and click OK.

  3. 3. To see the project just published, go to the BPM MDS navigator and expand the Public folder; the project should be listed in the correct location folder.

  4. 4. If you published a BPM Template Project, then you would find it in the Templates root folder.

  5. 5. When you have finished the preceding steps, click Save.

How it works...

After publishing projects to the Oracle BPM MDS repository, business users can use them to create new deployable BPM projects. You can use them in BPM Composer too.

About the Author

  • Vivek Acharya

    Vivek Acharya is an IT professional and has been in the world of design, consulting, and architecture for approximately 12 years. He is a certified expert on blockchain, Hyperledger Fabric, Software as a service (SaaS), and analytics. He loves all things associated with the cloud, permissioned decentralized autonomous organization (pDAO), blockchain, predictive analytics, and social business process management (BPM).

    Browse publications by this author