How to Recover BPM Process Instances from a MDS 00054 Error in Oracle BPM 12.1.3 (Part 1) by Siming Mu

clip_image001

 

Introduction

There is an issue in Oracle SOA Suite Fabric layer in version 11.1.x. and 12.1.3. The issue is documented in Bug# 20517579: “Composites Lost Completely after redeployment and server restart”. This bug is fixed in version 12.2.1. A few customers have run into this bug. Once this bug is encountered, BPM server usually shows “MDS 00054: The file to be loaded oramds:/deployed-composites/CompositeName_rev1.0/composite.xml does not exist” error during server startup. The composite is no longer visible in EM and all User Tasks from this composite are not visible in BPM Workspace either. The composite appears to be lost.

One work-around for this issue is deploying the same composite as a higher version. Or customers can manually un-deploy their problematic version of the composite using WLST script and then deploy the same composite again. In either case, customers will lose all running instances of this composite. If this outcome is not desirable, we need to find a way to recover all running instances.

This multi-part blog will present one way to manually recover those instances. To make this process more understandable to readers, a very simple BPM composite is used to take you through the processes of deployment/undeployment, reproduction of the bug# 20517579 and MDS 00054 errors, and finally steps to recover instances. Along the way, we will look at changes in MDS and SOAINFRA tables due to normal life cycles of the sample composite and bug# 20517579.

Even though this bug is fixed in 12.2.1, I think the information documented in this blog will provide a valuable resource for understanding MDS and SOAINFRA schema.

What happens in MDS when a composite is deployed?

First, let’s take a look what happens in MDS when a BPM composite is deployed. To do that, we need a tool like MDS Explorer. Before any BPM composite is deployed, your MDS should look empty similar to the following image.

Now we will deploy a very simple BPM composite to check for changes in MDS. We can use a BPM composite similar to the following for our testing purposes.

Notice that I created two human tasks but only have one interactive activity in my BPM process. We will only use human task 1 for now and the other one will be used to generate the MDS 00054 error later.

After deploy this composite, the MDS  should look like this: 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

The BPM 12c Process Monitor Dashboard in 5 Minutes by Jaideep

clip_image002

The Oracle BPM 12c Workspace offers two dashboards right out of the box. The Process Monitor and the Standard Dashboard. In this video we’ll go over how to use the process monitor.

Process monitor dashboards enable you to monitor and optimize business process execution. It can be a very helpful tool to be able to see process statistics like how many instances are currently running, how many have completed, how many have faulted etc over a time interval. It displays alerts that can help to identify process issues that are affecting performance. It also displays two performance graphs, the Workload per Activity and Performance per Activity.

Watch this video to get a quick overview of what the process monitor looks like and how to use it. Watch the video 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

Autumn SOA Suite 12c and BPM Suite 12c free on-demand Bootcamps October 2016

image

Training On-Demand: Oracle Business Process Management 12c

This boot camp is an ideal starting point for an implementer who is planning to learn Oracle BPM Suite 12c and use it on BPM projects. The course provides a combination of lecture segments that present conceptual and feature background and hands-on labs that provide practice with the tooling.

It introduces process developers to Oracle BPM Suite 12c. It covers the key concepts, features and processes needed to begin using the design-time and run-time capabilities on BPM projects. Throughout the training, you will benefit from hands-on exercises based upon two case studies. At the conclusion of the course, you should feel comfortable to start using BPM Suite 12c for process modeling, simulation, analytics, business rules and human workflow.

For details please visit the registration page here.

Training On-demand: Oracle SOA Suite 12c Implementation Specialists

Oracle SOA Suite 12c is the latest version of the industry’s most complete and unified application integration and SOA solution. With simplified cloud, mobile, on premises and Internet of Things (IoT) integration capabilities, all within a single platform, Oracle SOA Suite 12c delivers faster time to integration, increased productivity and lower TCO.

The Oracle SOA Suite 12c Implementation Boot Camp provides relevant insight to current and prospective SOA implementers and for those companies interested on becoming Oracle SOA Suite 12c Specialized. Participants will learn how to develop and implement solutions using SOA Suite 12c that will drive their customer organizations run more effectively and efficiently.

For details please visit the registration page 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

How to debug a BPM Process in BPM 12c by Fusion Applied

 

This video is an excerpt from one of our BPM Training courses that shows you how to use the new BPM process debugger in JDeveloper 12c
clip_image001
If you like our videos and blogs, be sure to subscribe to this channel. You can also sign up for Free Lessons and Training Discounts at https://training.fusionapplied.com. Watch the video 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

Talk to your UI from your BPM process by Fernando

clip_image002

A few weeks back we had the opportunity to participante in an 12c challenge which had lots of different flavours (BPM, Coherence, ADF, etc.) and some very strict performance requirements.

Scenario

In this solution, an operator would be logged on to an ADF application showing different regions, with one particular region that would update as the BPM instance progressed through the different human tasks in the process. The team had opted for a simple solution to find out when a BPM instance had reached a human task: to poll the engine until a task was found.

The problem

Polling the engine could be a solution if the instance load was low but the objective was to handle thousands of short-lived instances in parallel, which would overload the engine with queries. In addition, there was the issue of having to wait an interval which resulted in additional time loss.

As with most push/pull cases, the ideal would be to approach the problem from the other side of the fence: instead of polling for events, pushing them from the BPMN process and reacting to these from the UI side.

For the first part, emitting events when the BPM tasks arrives at a human task would be straight-forward: the Human Workflow API provides a series of callback events that can be used, with the onAssigned event being the one to use. Therefore, the remaining question was how to receive and process events on the ADF side.

The solution

From the requirements, we needed a way to react when an event was received. This immediately lead to using JavaScript, as it is well supported in ADF. The only question left was what type of event to receive.

The answer lies in a new Weblogic 12c "native" feature: web-sockets (we can use web-sockets in 11g using Jersey as well). JavaScript can handle opening new sockets and listening for messages.

We developed a Web Socket application that would enable a server endpoint for every BPM instance (remember these are short-lived instances, thus there is no risk of running out of resources).

As the ADF app was responsible for creating BPM instances with a correlation key, it connected to the server endpoint using that very same key, effectively establishing a direct connection to the endpoint with its own channel.

On the server side, every onAssigned event that would be received by the human task callback class would publish a new message to the endpoint (using the same correlation key, in this case exposed as a public attribute in the human task) which in turn would be relayed by the server to the ADF UI. 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 Subprocesses (Part 3 of 3): Event Subprocess by Antonis Antoniou

clip_image001

 

In this third and last part of a three part series on subprocesses we will explore a special type of subprocess referred to as an “Event” subprocess.
This type of subprocess is triggered by an event that can occur anytime during the execution of a process flow that allows you to interrupt the normal flow of an instance.
Such capability can be applicable in various use cases. For example, an error might occur in the process, or you can very well define various service level agreements to delineate execution times or you can even have a business requirement to cancel a flow (for example cancel an order).
You can use the “Event” subprocess to implement such requirements (i.e. handle system and business exceptions).
“Event” subprocesses posses various unique characteristics. One of them is that, by configuration, you can have an “Event” subprocess either as interrupting, that is interrupting the normal process flow execution or have an “Event” subprocess running in parallel (concurrently) to the main flow of your process.
Another really nice and useful characteristics of an “Event” subprocess is that it shares the same context as the main flow of the process, meaning that from the “Event” subprocess you can have access to all the data objects that are used by the main process (and of course update their state).
An “Event” subprocess resembles like an embedded subprocess (except that it’s displayed in a dashed-line boarder), however an “Event” subprocess cannot have outgoing or incoming sequence flows. And just as with the other types of subprocesses an “Event” subprocess can define data objects that are local to its scope.We will implement a very simple process that will make use of the event sub-process to simulate the functional use case depicted by the image above; the scenario is straightforward, you can cancel an order as long as it’s not shipped. 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

Process Timers – Controlling the time in which your process executes by Jose Rodrigues

clip_image002

 

Following up a series of questions around setting timers in the Oracle Community forums, I decided to write this article to try and guide their use and how these can be used to control process execution.

Let’s start!

The Use Case

We’ll begin by setting up the scenario in which we’ll have to control our process flow.

Imagine that you want to have a part of your process that executes immediately if the current time is between 08:00am and 04:00pm (16:00 hours for us Europeans), or wait until 08:00am if it’s outside that interval.

It’s frequent to have some kind of control in parts of the processes, for instance when you want to send SMS to your customers. You certainly don’t want to do it at 03:00am.

How will we make this?

We should use a Catch Timer event, of course, and XPATH’s DateTime functions to check the current time and to set the timer to way for next morning’s 08:00.

The Catch Timer event has several ways to be configured (triggered at specific dates and times, on a specific schedule – every day at 10:28:00 (repeatable), or in a time cycle – every 2 minutes), but we’ll focus on the one where we configure the timer to wait for a specific time and date. More on the others perhaps in another article.

We’ll illustrate the use of timers with an example process. You can, of course, adapt it to your needs.

Defining the execution conditions

So you start by defining a gateway that will split the execution between:

  • Immediate
  • Wait for 08:00am
    • This will have to be split into prior to midnight and after midnight. but for now, we’ll consider the scenario of only two options.

So, you set the expression on the conditional flow that will do the immediate execution, leaving the condition that must wait for 08:00 as the unconditional (default) branch.

The expression should be something like this: 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 Subprocesses (Part 3 of 3): Event Subprocess by Antonis Antoniou

clip_image001

In this third and last part of a three part series on subprocesses we will explore a special type of subprocess referred to as an “Event” subprocess.
This type of subprocess is triggered by an event that can occur anytime during the execution of a process flow that allows you to interrupt the normal flow of an instance.
Such capability can be applicable in various use cases. For example, an error might occur in the process, or you can very well define various service level agreements to delineate execution times or you can even have a business requirement to cancel a flow (for example cancel an order).
You can use the “Event” subprocess to implement such requirements (i.e. handle system and business exceptions).
“Event” subprocesses posses various unique characteristics. One of them is that, by configuration, you can have an “Event” subprocess either as interrupting, that is interrupting the normal process flow execution or have an “Event” subprocess running in parallel (concurrently) to the main flow of your process.
Another really nice and useful characteristics of an “Event” subprocess is that it shares the same context as the main flow of the process, meaning that from the “Event” subprocess you can have access to all the data objects that are used by the main process (and of course update their state).
An “Event” subprocess resembles like an embedded subprocess (except that it’s displayed in a dashed-line boarder), however an “Event” subprocess cannot have outgoing or incoming sequence flows. And just as with the other types of subprocesses an “Event” subprocess can define data objects that are local to its scope.We will implement a very simple process that will make use of the event sub-process to simulate the functional use case depicted by the image above; the scenario is straightforward, you can cancel an order as long as it’s not shipped. 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

Pharma and Automotive BPM Solutions by OpRiskSolutions International Ltd

clip_image002

Our partner OpRiskSolutions developed two solutions based on BPM Suite 12c:

Aria4Automotive Aria4Automotive is a comprehensive solution, designed to address the specific requirements of Project Schedule Management in the Automotive Industry. The solution supports specific automotive industry planning concepts, such as enterprise-wide scheduling.
Aria4Pharma Aria4Pharma is a comprehensive enterprise solution that addresses the specific needs, planning concepts and processes of drug development in the pharmaceutical industry.

For more information about the Solutions Catalog & Cloud Marketplace please see the blog post: Free advertisement for Oracle partners – all details about Solutions Catalog & Cloud Marketplace

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

Middleware Summer Camps free virtual training SOA Suite 12c, BPM Suite 12c & WebLogic 12c: August & September 2016

 

VirtualSummerCamps2016small

You are working on large Fusion Middleware & PaaS opportunities & projects? Oracle is pleased to invite you to the  Middleware Summer Camps 2016. For technical experts we offer live virtual classes:

SOA Suite 12c Training On Demand

BPM Suite 12c Training On Demand

WebLogic 12c Training On Demand

 

 

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