Renew BAM demodata

Recently I did a POC with BAM 12c at the customer. In a series of post’s I will describe my findings/experiences.
In the first post of this series I described the initial situation (Impact of ACM Implementation on BAM). This post ended up with the following challenge.

We have a ACM Case consisting of about thirty Case Activities. The Case and the individual Case Activities are housed in a private composite (1 + ~30 composites).

Challenge: How can we group/filter in BAM by ‘specific’ metrics that are present in each Composite. For example ‘ Department ‘.

In the Fourth post (Populating BAM using JMS) I described that I have used an oracle tutorial to Populate BAM in SOA using JMS. This tutorial and sample project can be found on the Oracle website. In the image below, you see the corresponding composite.


By calling this RequestService from different BPM processes BAM can be loaded with data via JMS). After that I went to work with this data in BAM to create dashboards. Hereby I ran into the following problem:
The dashboards that have to be developed have a data scope of 2 weeks. To test this properly I need at least 2 weeks of data. For this I created a dataset that contains data for 2 weeks. This data set, however, concerns the last 2 weeks. This means that the data actually been directly out-dated.

My challenge: How can it be ensured that the data is up to date?

Using the commandline tool bamloadgen it is possible to provide BAM with data. With this tool it is even possible to use placeholders to renew the data. But the options are limited to today and yesterday (For details see Oracle documentation). This means that bamloadgen is not suitable to renew data from 2 weeks.

I made my own solution.

Continue reading

Runtime Fault Handling with the Fault Management Framework

Fault handling allows a SOA suite component to handle error situations caused by outside web services. The error situations can be both business (e.g. invalid data value) and runtime faults (service unavailable). I’m aiming to handle business fault as much as possible in the composite (catch) while handle runtime faults outside the composite.
In the remaining of this blog I will describe an implementation of the Fault Management Framework to handle runtime faults.

I have implemented the following policy:
1) RemoteFault (invocation of a service fails)

  • Start a retry cycle
    standaard retryCount:                 5
    standaard retryInterval:              300 (seconden)
    standaard exponentialBackoff:   2
    Retry will take place after 5, 10, 20, 40 en 80 minutes.
  • If it still fails, start a human intervention

2) All other unhandled (runtime) faults

  • Start a human intervention

Continue reading

An advanced Email component for the SOA suite

In my previous post I described how to send an email with attachment from Oracle BPEL (Sending an email with attachment from Oracle BPEL). This post described a rather simple approach to send emails. In this post I will describe an advanced email component as an alternative.

In the ‘simple’ approach the used variables of the email activity are a combination of static and dynamic parts. Static in the way that it often contains a default subject and/or body. Optionally extended with the content of BPEL variables (dynamic). Changes in the static parts result in a redeployment of the composite. Especially in the subject and body part this happens quite often.


Continue reading

SOA Suite 11g: set the Composite Instance title with a BPEL component

In this blog I will describe how to set the composite title with a BPEL component. I will also describe where this approach matches and where it differs from setting the title with a BPM or Mediator component.

Lets first start with an overall important match: you need the setCompositeInstanceTitle function. This function sets the composite instance title and returns it. The return value brings us to the biggest difference: the assignment of the return value. In BPMN and BPEL you must assign the return value to a variable. In Mediator you must assign it to a property.

This post shows the BPEL approach. In parallel posts I show the BPM and Mediator approach.

Continue reading