Wednesday, December 18, 2013

Oracle BPM quick and dirty SQL Scripts

All these queries are based on the 'soainfra' schema, and requires the CubeCommand to be enabled:

1. Count of assigned (as in open) human tasks by assignees.

select distinct count(*),assignees from wftask wf where state like 'ASSIGNED' group by wf.ASSIGNEES;

2. Activity Performance across the BPM stack:

BPM_ACTIVITY_PERFORMANCE_V -

For example to extract the averages for all activities:

select activity_label "BPM Activity", avg(ACTIVITY_RUNNING_TIME_IN_MSEC) "ms running time" from bpm_activity_performance_v group by activity_label;

3. Process Performance End to End time

BPM_PROCESS_PERFORMANCE_V - Start to End time

4. Count of Active BPM Processes:

select count(*) "Running Processes" from bpm_process_instance_v where sequence_id not in (select sequence_id from bpm_process_performance_v);

Sunday, October 13, 2013

Oracle Case Management Tips

BPM-73420


Error in starting cases.
Error in starting cases.
Contact system administrator for assistance.

....
         at oracle.bpm.casemgmt.persistence.model.CaseStakeHolder.toString(CaseStakeHolder.java:224)
.........


Make sure that all the Stakeholders in the Case Configuration points to a valid  member configuration with a valid member type defined.

Rules going 'haywire'

Remember that any Case Activity can only contain one primitive parameter, or else you are going to break the wiring on the composite level.

Oracle Rules only accept a single primitive type, and multiple complex types (if required).

Thursday, July 18, 2013

Oracle BPM Flex Field Index Creation

Use the output from the following sql script, to create indexes for the WFTASK public and private flex fields. The script looks at the statistics of the WFTASK table to determine the required indexes. Replacing DEV_SOAINFRA, with the schema specified during the RCU creation step.

You can also modify the script to search for may be a bigger number of distinct rows, by changing the number '1' in the script.


set heading off
set echo off
EXEC DBMS_STATS.gather_table_stats('DEV_SOAINFRA','WFTASK');
select 'create index DEV_SOAINFRA.'||column_name||'_idx on DEV_SOAINFRA.'||table_name||' ('||column_name||');' from all_tab_columns where table_name = 'WFTASK'and num_distinct>1 and column_name like '%ATTRIBUTE%';

Output will be in the format:


create index DEV_SOAINFRA.PROTECTEDNUMBERATTRIBUTE1_bpmflex_idx on DEV_SOAINFRA.
WFTASK (PROTECTEDNUMBERATTRIBUTE1);

create index DEV_SOAINFRA.PROTECTEDTEXTATTRIBUTE13_bpmflex_idx on DEV_SOAINFRA.W
FTASK (PROTECTEDTEXTATTRIBUTE13);

Thursday, June 27, 2013

Oracle FMW on 12c Container Database with a Pluggable Database

Oracle FMW 11.1.1.7 (aka PS6) is certified to run on Oracle Database 12c Container with a pluggable database.

To run the rcu (or Repository Creation Utlity) you have to connect to the service of the container created to contain your FMW repository.

For example, I have created a database container called orcl, with a container called pdborcl. If you I run 'lsnrctl status', I get the service orcl.domain.com (root container) as well as pdborcl.domain.com. In my case I would connect to pdborcl.domain.com service.

The other thing to remember is that the 'well known' 'sys' user is a root container based user, and thus you have to grant dba rights to the sys user on the pdborcl container. This is achieved by connect to the service pdborcl as sys and run the command 'grant dba to sys'.