BPM 12c Events (Part 2 of 3): End Events by Antonis Antoniou

 

clip_image002End events define how a process should finish and just like with start events, processes can have more than one end event.

As you can see from the sample process below, we are provided with a plethora of end events that include a “None End” event, a “Message Send” event, a “Signal” event and a “Terminate End” and “Error End” event.

The “None End” event is the default end event in a manual and reusable process and as it’s name implies, it is used when your process doesn’t need to perform any action upon completion. When all process instance tokens reach the “None End” event, the instance is completed.

The "Message End" event, as the name implies, will send a message before an instance completion and is especially useful when you want to trigger another process or instance. The "Message End" event has one unique particularity, it can only be used with either a message start event or a message catch event.

The "Signal Event" will publish a signal before completion.

The "Terminate End" is used to terminate, immediately, without any error handling, a process.

The "Error End" will throw an error before completion. This type of end event is used most commonly in subprocesses to trigger an exception to a main process.

Let’s see how you can use these end events in practice.
Create the basic BPM application and BPM project (named both application and project "EndEventsDemo") and select "Composite with BPMN Process" in step 3. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

Custom SOA Administrator by Antonis Antoniou

clip_image002

The default SOA administrator in a SOA/BPM installation is "weblogic". The SOA administrator, amongst other tasks, is the BPM Workspace administrator, the out-of-the-box web-based interface where users can access and manage their tasks. This is just fine for development and testing purposes.
However, at some point during your process lifecycle you will be faced with the task of creating and assigning a custom SOA administrator other than "weblogic" to serve your processes’ administrative tasks, for example, mapping application roles to users and/or enterprise groups.
The first thing that you need to do is of course create your new SOA admin user using the Weblogic Administrator Console.

Next you need to point out to the SOA Infrastructure that James Cooper, as in the example above, will be the new SOA Administrator.
There are a couple of ways to do so.
The first and most easiest way is by assigning the "Administrators" group to your new user as in the image below.

The easiest way though is not always the right way. Doing so you are automatically granting access administrative access to applications like the Weblogic Console where you new SOA admin user can fiddle with your Weblogic settings.
A much better approach would be to map your new user to the SOAAmin application role using the Enterprise Manager. To do so, right click the soa-infra node and from the context menu select "Security > Application Roles"
On the "Application Roles" page enter SOAAdmin in the search box field and click on the search button. You should see the SOAAdmin application role displayed in the search results page and selected. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

BPM 12c Advanced Error Handling and Recovery – Part 1 by Antonis Antoniou

clip_image002Introduction

The ability to handle exceptions and recover from errors is fundamental to implementing reliable and robust business processes and enterprise systems.

There might be cases, though, when an unexpected problem occurs during the runtime lifecycle of a process that will cause your process to fail. This could be the result of a connectivity loss, a failure in a database connection, a selection failure, or a failure during an invoke activity. These types of errors, referred to as systems errors, arise directly from the underlying software or hardware infrastructure where the BPMN Service Engine is running.

There might be cases when business faults occur. These are application-specific faults that are generated when there is a problem with the information being processed (e.g., a stock control and inventory service throwing an error when a stock item is not found). Business faults are a more “controlled” fault type since you are aware of its plausible appearance; it can occur only if your application executes a THROW activity or your invoke activity receives a fault message response.

However, despite their essentialness, error handling and recovery are often overlooked in Business Process Management (BPM) projects. Analysts tend to model exception handling (mostly system or rare business faults) in the BPMN, making process design very complex, and very difficult to read and follow—resulting in skyrocketing maintenance efforts.

The new release of Oracle BPM Suite 12c introduced some really nice new error handling and recovery features. And even though I am tempted to just put on my developer’s hat, I cannot ignore the importance of the fundamental improvements Oracle has made in error recovery, from an operations and management perspective.

This two-part article will compare the differences in fault handling options between 11g and 12c and will explore the new error handling and recovery features introduced in Oracle BPM 12c from both a developer’s angle (part 1) and an administrator’s perspective (part 2).

Main

Force Commit After Execution

One of the new developer-oriented error handling and recovery features in Oracle BPM 12c is the “Force commit after execution” option (see Figure 1, below). This option configures activities, events and gateways to explicitly force BPM runtime to add a checkpoint in the dehydration store, committing the state of the BPM instance after their execution.

This important new feature lets developers explicitly force dehydration during process execution to avoid re-executing non-idempotent activities in case an error forces the transaction to be rolled back.

Let’s take, for example, the loan initiation process. A customer requests a loan and the system exports the loan application into an xml file before persisting the loan application data into an operational database (see Figure 2). Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

BPM 12c Gateways (Part 5 of 5): Event-based Gateway by Antonis Antoniou

 

clip_image002My last article on gateways is on the event-based gateway, another type of gateway supported by Oracle BPM 12c to provide divergence in processes.
The event-based gateway is very similar, conceptual wise, to the exclusive gateway in the sense that we can have various outgoing sequence flows but only one branch is followed. The operational difference though is that, as its name suggests, the event-based gateway uses events for defining the branching conditions and decisions rather than data-specific conditions.

An event-based gateway can consist of multiple events; however the first event that occurs will determine the execution path that will be followed.
Using the order process as an example, once an order is received and validated it needs to be processed. Assuming that we have multiple warehouses, the order will be processed by the warehouse that can process all inventory items ordered and responds first. The process will wait until one of the warehouses responds to the request for processing the order. However, the process cannot wait indefinitely.
So let’s see how we can implement the above scenario using the event-based gateway.
Let’s start with creating the basic BPM application and BPM project (named both application and project "EventBasedGatewayDemo") and selecting "Composite with BPMN Process" in step 3. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

BPM 12c Gateways (Part 3 of 5): Parallel Gateway by Antonis Antoniou

 

clip_image002The parallel gateway enables you to perform multiple tasks simultaneously, allowing your process to follow several unconditional paths in parallel. When your process token reaches a parallel gateway activity, the parallel gateway will create a token for each outgoing parallel sequence flow. Your process will wait until all tokens have arrived at the parallel gateway merge activity before resuming with the rest of the activities.
You should be very careful with the parallel gateway activity because if one of the tokens that have been created by the parallel gateway doesn’t arrive at the parallel gateway merge activity, then your process will freeze.
So let’s see how you can use the parallel gateway in a process. Let’s assume that you are implementing an order process and that at some point in your process you want to request for quotations from two different suppliers. Once you have received both quotations your process should resume (ideally pick the lowest quotation but I will not be implementing this part).
I created a BPM application with a default BPM project (named both application and project "ParallelGatewayDemo") having an empty composite. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

BPM 12c Gateways (Part 2 of 5): Inclusive Gateway by Antonis Antoniou

clip_image002The inclusive gateway, just like the exclusive gateway, enables you to split your process into two or more paths. The intrinsic difference between an exclusive gateway and an inclusive gateway is that in an exclusive gateway, the process only continues down one of several paths (if multiple outgoing sequence flows are present) while in an inclusive gateway a process will follow all conditional paths whose expressions are evaluated to true.

Furthermore, in an inclusive gateway a process will only follow the default path only if no conditional expressions evaluate to true. Because of this particular characteristic the notation of an inclusive gateway consist of a split and a merge inclusive gateway.

An inclusive gateway can consist multiple outgoing conditional sequence flows for an inclusive gateway split. However, an inclusive gateway must define a default sequence flow. All conditional expressions that evaluate to true are executed; otherwise the default sequence flow is executed.

At run time, the BPM engine generates a token for each conditional sequence that evaluates to true. If none of the conditional sequence flows evaluate to true then a token gets generated for the default sequence flow. The process will pause and will resume only when all tokens have reached the merge

So let’s see how you can use an inclusive gateway in a process. I have created a new BPM application using the "BPM Application" JDeveloper template and in the "Project SOA Settings" step i have selected "Composite with BPMN Process". Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

BPM 12c Gateways (Part 1 of 5): Exclusive Gateway by Antonis Antoniou

clip_image002

Oracle BPM provides us with various components to control the flow of a process such as gateways, timer events, errors, message events, send and receive tasks, loop markers and multi-instance markers.
In this five part series part I will be elaborating the gateway control flow components and how we can use them to define the flow of our process.
Gateways are very similar to a flowchart decision element. Using a gateway you can define the control points within your process by splitting and merging paths. At runtime a gateway will determine based on the control points defined at design time the path that a token will take through a process.
There are five gateway types; Exclusive Gateway (XOR), Inclusive Gateway (OR),  Parallel Gateway, Event Based Gateway and Complex Gateway.
Exclusive and Inclusive gateways consist of two outbound sequence flows; a default sequence flow representing the normal path between two objects and a conditional sequence flow to control the process flow based on the evaluation of an expression. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

BPM 12c – Process Asset Manager (PAM) by Antonis Antoniou

An entirely new feature has been introduced in Oracle BPM 12c called “Process Asset Manager” (PAM) which makes it really simple and reliable to share projects between BPM Studio and BPM Process Composer, providing a unified lifecycle management of BPM projects across BPM Process Composer and BPM Studio tools and offering seamless collaboration across the various personas in a BPM project.
PAM comes with an integrated subversion source control system for version management of BPM assets and can be integrated with OPSS for security and can reference the MDS for run-time artifacts.

So let’s see the lifecycle of PAM from the two different interfaces, starting with the Process Composer.
For the needs of this tutorial I have created a sample Hello BPM project with a synchronous process. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

Configuring the SOA Human Task Hostname by Antonis Antoniou

When a human task is opened in BPM Workspace, it will try by default to connect to either localhost or the server’s alias. So if you try to access the BPM Workspace remotely (from a computer other than where Oracle SOA is running) you will get an http error (unable to connect).

You can fix this issue at run-time using the Enterprise Manager (EM). Login to EM and from the farm navigator select your composite by expanding the "SOA", "soa-infra" and your partition node. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki