Showing posts with label BAM. Show all posts
Showing posts with label BAM. Show all posts

Thursday, October 18, 2012

Enabling Business-Driven Development Through Oracle BPM

Recently I was talking to the VP of Business Operations of a leading financial services company. The excerpt from the discussion below;


"How do I empower my business analysts/line of business users to take full control of our business processes?"

"After all, the people in our organization who best understands the business processes are our business analysts. But what we traditionally see is that the Information Technology trying to overwhelm and drive business which is a tragedy. I feel it is imperative for my business analysts to take control of our key business processes which are now driven by our IT whims & fancies."

"But the question that I would like to ask you is how to do it? and more importantly what solution can you offer?" 


The first thing that we need to understand here is that;

"There are really no IT projects in an enterprise. It is only the business processes that drives business which require IT to move it forward"

More often than not, this is forgotten. Honestly speaking the IT wing of a business knows very little about the business and business has very little control on the IT. Increasingly this is the same deficiency or insufficiency more and more businesses are facing. In trying to be agile on their business fronts they are unable to reflect at the same speed on their IT which has now become a critical part.

How to bridge this gap?



The answer lies in ensuring a seamless integration between the business and IT which we term as "Business-Driven Development".

Top three things to enable and sustain this approach are;

We need a technology that will

Equip your business analysts to design & model the business processes who is better placed to understand them

Enable them to share their business process models with the IT (Developers) to get them implemented. What we are trying to enable here is a top-down development approach driven purely by business

Empower stakeholders and LOB users to monitor the key performance indicators (KPIs) on the business processes in real-time so as to take immediate actions to resolve them

Oracle Business Process Management Suite (BPM) along with Oracle Business Activity Monitoring (BAM) - part of the Oracle Fusion Middleware stack can help you achieve all of the above and much more.

Lets delve into these for a moment and look at the components which will help us in achieving the goal.

Oracle Business Process Composer: This is purely a web-based modelling tool which will enable the business analysts of your organization to take control of the core business processes. The composer equips business analysts to work in groups, perform iterative model design/development, configure business rules, share the models with IT for further development, deploy them on server and much more. The important thing to note here is that a business process model can be developed from scratch without any IDE installation - all from within your web browser. I am sure the business guys are going to love this.

Oracle Business Process Workspace: Again a web-based workspace portal which allows all business users under various organization  roles to login and perform actions on their tasks.

Oracle Business Activity Monitoring: A web-based process monitoring dashboard which enables operational visibility into the business processes real-time. Again the BAM dashboards can be built by business users from within the browser based on the KPIs.

Is this not cool technology to take your business forward. Worrying less about IT and concentrating more on business development & growth has always been a dream. Now, take advantage of the latest & greatest technology from Oracle to move your business FORWARD!

Please feel free to write back to me if you need more information on this topic.

Tuesday, July 10, 2012

BAM-01273: Active Data Cache unique constraint violation

There can be multiple reasons for this error. I had a situation in my BPM process where the workflow can take two possible flows. One for the valid payload where the process is fully automated (no human intervention) and another for the incorrect data which goes through a manual user review.

BAM was enabled on this BPM process. The BAM DO got created 'as expected' and the incorrect flow involving the user intervention worked like a charm and was pushing the process data into the BAM DO. Surprise sprung up when 'happy path' was execute. I could see no data in the BAM DO.

On analyzing, the BAM diagnostic logs reported the following error;


Exception: oracle.bam.adc.common.exceptions.UniqueConstraintViolationException: BAM-01273: Active Data Cache unique constraint violation at oracle.bam.adc.dse.oracle.OracleExceptionHelpers.getStorageException(OracleExceptionHelpers.java:135)
  at oracle.bam.adc.dse.oracle.OracleStorageEngine.insertDataSetRow(OracleStorageEngine.java:1216)
……………………………………………
……………………………………………
Caused by: java.sql.SQLIntegrityConstraintViolationException: SQLError(1) SQLState(23000) ORA-00001: unique constraint (PS4_ORABAM.SYS_C0015167) violated
……………………………………………
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

This error is very deceptive. Because, we have different workflow paths behaving differently apparently under the same BPM process.

Then I found the solution trying to assess the process flows and dehydration points. Since the 'happy path' flow was completely automated, I think the BPM process never dehydrated and hence didn't pass on the DO updates into BAM (for whatever reasons). There is a simple solution to this; Open the activities where the BAM DO values are set/updated in the BPM process and force the 'Sampling'. This way we are forcing the BPM process to update the BAM DO with the sampled values. There can be other reasons why you may get the same error on which I have blogged about here


Sunday, February 12, 2012

BPM 11g BAM Data Object not created automagically

Have you ever faced a situation where the BAM DO was not getting created automagically when you deploy and run your BPM 11g (In this case I am using BPM 11.1.1.5 with FP) process as expected? Here are the list of checks that you must make to ensure that everything was setup as documented.

1. Ensure that the BAM deployment configurations are done in Oracle WebLogic Console (Go to Deployments -> BAM Adapter -> Configurations -> Outbound Connection Pool and provide the BAM connection details for eis/bam/soap and update the deployment plan)

2. Go to Oracle WebLogic EM console, ensure that the 'Disable Actions' property is empty (By default, this property will hold a value as 'BAMCommand') under the soa-infra domain 'System MBean Browser'

3. Ensure that the 'Enable BAM' option is selected. Go to 'BPM Project Navigator', right click on the process -> Project Preferences -> Select 'Enable BAM' option. Also ensure that the BAM Adapter JNDI is provided as configured in the deployments (refer step 1 above). By default the JNDI is eis/bam/soap. Leave the Data Object location to Samples/Monitor Express which would the default location where the BAM DO will be created 'automagically'


4. Ensure at least one business indicator (dimension) must have been created in the BPM process for which you would ideally pass/set values from within multiple stages in your process so that the runtime data is sent to BAM real-time

5. Before deploying the BPM process (after enabling BAM), ensure that any previous versions of the process are undeployed from Oracle WebLogic server

6. DO NOT execute the setup.bat or setup.sh script available under /Oracle_SOA1/bam/samples/bam/monitorexpress/bin

I have noticed that this had caused the following error while BAM tries to create the data object dynamically (version 11.1.1.5 with FP). On closer observation of the bam server diagnostic logs the following error is sighted which in itself is not very intuitive to fix as it complains of constraint violation in orabam MDS database during the creation of the BPM BAM DO.

Exception: oracle.bam.adc.common.exceptions.UniqueConstraintViolationException: BAM-01273: Active Data Cache unique constraint violation
  at oracle.bam.adc.dse.oracle.OracleExceptionHelpers.getStorageException(OracleExceptionHelpers.java:134)
  at oracle.bam.adc.dse.oracle.OracleStorageEngine.insertDataSetRow(OracleStorageEngine.java:1216)
  at oracle.bam.adc.kernel.datasets.DatasetBase.insertRowInternal(DatasetBase.java:630)
  at oracle.bam.adc.kernel.datasets.DatasetBase.insertRow(DatasetBase.java:592)
  at oracle.bam.adc.kernel.datasets.SystemDataset.insertRowInternal(SystemDataset.java:172)
..
..
..
Caused by: java.sql.SQLIntegrityConstraintViolationException: SQLError(1) SQLState(23000) ORA-00001: unique constraint (DEV_ORABAM.SYS_C007296) violated

In order to fix this issue, do the following;
Go to BAM console -> Active Studio -> Delete the following reports pertaining to BAM monitor express
  • Monitor Express Dashboard
  • Monitor Express Summary
  • Monitor Process Details
  • Fault Report

Go to BAM Console -> Architect -> Delete the following Data Objects pertaining to BAM monitor express in the order specified below;
  • INTERVAL
  • COUNTER
  • COMPONENT

7. Undeploy existing process composite if any

8. Restart your servers

9. Deploy the BPM process

10. Trigger an instance. Voila!! the BAM Data Object should have got created in your BAM console

11. Now, play around with the BAM DO and build your custom real-time dashboard reports

Friday, December 9, 2011

Oracle BAM ICommand by-pass credential prompts

I came across a requirement where the BAM data object must be updated with new rows recursively. For this, I created the DO XML files containing the valid layout format and data. However, while calling the icommand import script recursively from a shell script, I faced credential issues as the username/password cannot be provided dynamically everytime.

In order to overcome this issue, Oracle BAM provides a feature to configure the default credentials in the config file;

<Oracle_Middleware_Home>/Oracle_SOA1/bam/config/BAMICommandConfig.xml

Open this file and add the following entries;

<ICommand_Default_User_Name>weblogic</ICommand_Default_User_Name>
<ICommand_Default_Password>your password</ICommand_Default_Password>

This would ensure that every time the icommand script is invoked, the default credentials are picked up. Happy scripting :)

Friday, April 29, 2011

Migrate Oracle BAM Reports and DO across environments 11.1.1.4

Today, I am blogging on the migration of Oracle BAM reports and Data Objects across environments.

First we should export the built BAM reports and data objects as XML objects from the development environment. ICommand utility bundled with Oracle SOA suite comes in handy for this purpose.

1. Ensure that the server on which Oracle BAM reports are available is up & running as the ICommand utility extracts the reports/data objects from the MDS store

2. If you have developed the BAM reports under the 'Shared Reports', issue the following icommand in the command prompt/terminal window;

change directory to \Oracle_SOA1\bam\bin

icommand -CMD EXPORT -NAME "/public/Report/Samples/<>" -TYPE report -file Report.xml

If the BAM report is available under 'My Reports' folder, then issue the following command;

icommand -CMD EXPORT -NAME "<Report Name>" -TYPE report -file Report.xml

OR

./icommand -CMD EXPORT -NAME "/private:weblogic/Report/<Report Name>" -TYPE report -file Report.xml

Note that the /private:weblogic/Report must be used to qualify the report export with a admin user privilege.

This will generate Report1.xml under the bin directory.

To export a data object issue the following icommand;

icommand -CMD EXPORT -NAME "/Samples/Monitor Express/<>" -file DO.xml

This will generate DO.xml under the bin directory.

Transfer the generated xml files to the destination server (As per the following example, the xmls are migrated into the bin directory)

3. Now, login to the server where the exported BAM reports and DOs should be installed

4. Ensure that the server is up & running. Change directory to \Oracle_SOA1\bam\bin

5. Issue the following icommand to import the DO & report XMLs

icommand -CMD IMPORT -file DO.xml
icommand -CMD IMPORT -file Report1.xml
 
Wait for the success message and verify the successful import of 
reports & DOs in the destination server