Wednesday, April 8, 2015

#389 SOA Suite 12c & BAM

Many folks were impressed by the auto-creation of BAM data objects on deployment of a BPM project.

So how this work with BPEL?
Here is a simple example - My project is called NCTest and
it contains the following simple order process -

I deploy and note that no relevant artifacts have been auto-created for me in BAM.

I now add some BI metrics to my BPEL process -

I click on the analytics view  (rightmost icon)

Here I create a Single Mark to track the price of the product ordered -

I then create a new business indicator -

I rename the measurement mark -

I now configure analytics (2nd icon from the left)

Note: the default value(Do Not Generate)

I select Inherit From Composite Default.

I can also set analytics at composite level -

Now we go to EM -

Go to the System MBean browser -

I navigate to -

Check out the properties -

Note : DisableProcessMetrics is set to true.

I re-deploy the composite.

and check the BAM data objects -

Note the two new data objects at the bottom of the following screenshot -

Check out the NCTest Activity DO -
Here are the price columns -

Check out the Process DO -

Now I add some more measurements etc. to the process -

I add a product dimension -

and bind it as follows -

I re-deploy the composite and refresh the BAM DO -

I create an instance of the process

and then re-visit the BAM DO - NCTestActivity -

Note: we have 7 rows here.

Now, just as a recap, here is the BPEL process -

Let's look at some other column values in the 7 rows -

So this DO is very useful if I want to track changes in the value of,
for example, the price as the order moves from activity to activity.

To illustrate this, I add a new activity to the process of type ASSIGN.
Here I compute the final order price, by applying a 10% discount.

I deploy and test -

The value of 1000 is from the receiveInput Activity.

Now look at the contents of the NCTestProcess DO - after the first test.

Note: only 1 row here.

Now, I test my process again for an iWatch order, price 500.

Note: the discount has been applied.

Here is some more data from the DO.

Now I add a 30 second WAIT to the process - so we can see if the
price value in the NCTestProcess DO changes.

I test with the following payload --

I immediately check the value in NCTestProcess DO 

I then wait a bit and re-check -

This makes it very easy to imagine the different use cases
for NCTestProcess DO and NCTestActivity DO.

No comments: