BAM Database

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 I described the initial situation (Impact of ACM Implementation on BAM). And in the second post I described the solutions we have recognised/examined to make Management Information (MI) available to the ACM implementation.

During this examination we also looked in detail to the BAM database. The relevant findings of this are described in this post.

In this description we begin from BAM. The Data Objects of the ACM case with associated Case Activities can be found in the processanalytics directory of BAM. See figure below.

do_tree_processanalytics

The default Data Object ‘Activity ‘ looks like this.

do_activity

Where it is about here is that there is a reference to the used database view (BEAM_VIEW_25). We also see that the ALIAS field is not filled in. In the following custom Data Object we see that there is an ALIAS filled in.

do_dummy

The filled in alias is the ‘Synonym’ of the view on the database. In the list below we see that there is a synonym on the database for beam_view_116 and for beam_view_25 that this is not the case.

excel-overzicht
Note: most of the data in this list is from the BEAM_DATAOBJECT table. Also some of this information comes from the BEAM_NAMEMAPPING table.

Background information of the BAM database

During installation various BEAM tables, views and synonyms are created in the SOA-INFRA schema. The names of the tables and views may vary between different environments. But the synonym names are constant over environments. The created tables have a technical name (BEAM_FLEX_<nr>), also the columns in the table, have a technical name (e.g. STRING_1). For each table their is also a view created. This view has the same number as the related table (BEAM_VIEW_<nr>). The column names of these view are functional. The view contains only a sub-set of the columns from the table. Synonyms are used to get more functional names for these views. In BAM, this is done by defining an ALIAS for the Data Object.

If we now look at the definition of the previously created custom view BEAM_VIEW_116, we see the following in the where statement.

wherestatement

There is a selection from the BEAM_FLEX_11 table. The records are selected based on the associated hierarchy. In the previously shown list this hierarchy is also presented. It is also there that the parent object ’11’ is shown (this can also be derived from the hierarchy). All views with the same parent object, select the data from the same table.

For all the ‘Activity’ data objects we can see that the data comes from the BEAM_FLEX_11 table and for all ‘Process’ data objects that the data comes from the BEAM_FLEX_12 table. For each Case Activity there is a view created. They all select data from the same table. But if all these views select data from the same table, is it possible than to combine the views?

In the post Fool BAM with database hack this is done, but perhaps not in the way you’d expect. There it is done as follows:

7image7

With the help of unions the different views (Selects via ALIAS_1 t/m ALIAS_5) are combined. Why is not just an updated ‘where’ statement, as shown below?

wherestatement2

However, this is not possible. The reason why this is not possible, is just above the where statement. The image above shows that ‘department’ in located in column STRING_20. However, if we look carefully at the different views, it turns out this is not always the case (hence the name FLEX :-)).

wherestatement3

The table BEAM_COLUMN contains for all FLEX fields in the BAM schema which mapping there is applied. So does the column ‘COLUMN_FLEXTABLE’ specify from what FLEX table the data comes. In the column ‘COLUMN_DTYPE’ is stated what the data type is of that data. And in the column ‘COLUMN_FLEXCOLUMN_NUMBER’ which FLEX column in the table (of the specific type) contains the data. Also, the table contains additional information such as ‘ maximum length ‘, ‘ Uniqueness ‘ and whether the field might be blank.

For more details on the BAM database, I refer to the Oracle documentation (https://docs.oracle.com/middleware/1221/bpm/bpm-develop/GUID-3B1001DD-3178-470A-88E1-DC102B6B9232.htm#BPMPD11099 – Process Star Schema Views).

This was my last post about the BAM environment. In my next post I will get into BAM. Starting with details about data objects.

 

Advertisements

One thought on “BAM Database

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s