AMIS Technology Blog » Marcel van de Glind http://technology.amis.nl Friends of Oracle and Java Tue, 23 Sep 2014 07:44:01 +0000 en-US hourly 1 http://wordpress.org/?v=4.0 SOA/BPM Suite 12c: Oracle Business Rules – Verbal Rules http://technology.amis.nl/2014/06/27/soabpm-suite-12c-oracle-business-rules-verbal-rules/ http://technology.amis.nl/2014/06/27/soabpm-suite-12c-oracle-business-rules-verbal-rules/#comments Fri, 27 Jun 2014 18:55:23 +0000 http://technology.amis.nl/?p=28662 In this blog post I will transform a Decision Table step-by-step into the new Verbal Rules. As a starting point I created a composite with a BPM, a BPEL and a Rules component. Both BPM and BPEL components use the same Rules component. See the following three screenshots. You can download the sample application with [...]

The post SOA/BPM Suite 12c: Oracle Business Rules – Verbal Rules appeared first on AMIS Technology Blog.

]]>
In this blog post I will transform a Decision Table step-by-step into the new Verbal Rules. As a starting point I created a composite with a BPM, a BPEL and a Rules component. Both BPM and BPEL components use the same Rules component. See the following three screenshots. You can download the sample application with this starting point from here.

image1
Composite View

image2
BPM Process

image3
BPEL Service

Open the sample application in JDeveloper 12c to follow the step-by-step example for a hands-on experience.

This blog is divided into the following four part:

  • Explore the sample Business Rule
  • Why Verbal Rules?
  • Creating Business Phrases
  • Creating Verbal Rules

Explore the sample Business Rule

Open the Business Rules file. You have access to it from two different places. From the BPM branch and the SOA branch.
image4
The excel integration is implemented for Decision Tables. As you can see in the image above there is a decision table ‘PensionDT’ available.  Open this table by double clicking on it’s name. The table has the following content:
image5
The input payload for this rule is information about a pension participant. The following information is supplied:

  • dateOfBirth
  • dateOfDeath (filled if participant past away)
  • dateOfJobEnd (when participant is not being productive anymore)
  • applicable Pension Products (OP: Old-age pension, WP: Orphan pension, PP: Widow’s pension)
  • Partner information
    • dateOfBirth
    • DateOfDeath (filled if partner past away)
  • Child(ren) information (for simplicity of the example, the rule currently supports only one child)
    • dateOfBirth
    • DateOfDeath (filled if child past away)

The output payload of this rule is a statement about the current pension status. Possible outcomes are:

  • Contributor (participant is productive and is paying contribution).
  • Sleeper (participant is not productive in this trust and is not paying contribution).
  • Notified contributor  (participant is productive, but get’s retired within a year).
  • Retired (participant has ended his working career and receives an old-age pension).
  • Widow and / or Orphan (participant has died. The widow and / or orphan’s receive a pension).
  • Out Of Scope (e.g. participant and relatives all died).

Why Verbal Rules?

Usually procedural knowledge can be communicated only by demonstrating its application in specific cases. The concise, linguistic form of verbal rules permits the communication of general procedural knowledge in a relatively easy manner; the linguistic form may also be easier to memorize and retrieve than sequences of actions. Thus, verbal rules may be a useful instructional method for procedural tasks. For example, that the rule “a before b, except after c” is easy to communicate, memorize and retrieve is probably verified by the reader’s experience with this rule. Traditional (before 12c) Business Rules and Decision Tables point out to be difficult to understand for Business Analysts and Users. The possibility to formulate them in a more natural way was lacking. Verbal Rules potentially might bridge this cap.

Creating Business Phrases

A verbal rules can be constructed by concatenating several phrases in business language. Depending on the rules input and output data a number of default phrases are available, but it is also possible to define custom phrases. In this paragraph I will show how to do this.
To create verbal rules as a substitute for the PensionDT decision table the phrases required is somewhat arbitrary. Select the Business Phrases tab to start creating phrases. Click the green plus sign in the right upper corner to start creating a new phrase. You have the possibility to create a test phrase and an action phrase. First lets start with a test phrase.
image2
The Business Phrase editor appears.
Now lets define a phrase for a living old-age pension participant. First define a parameter of type ‘member’. The member contains information about the participant which was defined as the input payload of the business rule. After that specify the phrase in the value field. In here define the position of the parameter by entering it’s name between parenthesis. Finally define the mapping as a general rule.
image3
Besides this test phrase I defined eight other test phrases (listed below) and one action phrase (pension status) for the outcome of the rule.

  1. participant has beneficiary relatives –> indicated whether the participant has a living beneficiary partner or children
  2. participants age between .. and ..
  3. participant is living
  4. participant is not living
  5. participant is older than ..
  6. participant is younger than ..
  7. participant is working
  8. participant is not working

Some of these phrases are show below.
image4
image5
image6
image7

Creating Verbal Rules

After creating these phrases it’s time to start defining the verbal rules. For this select the Verbal Rules tab and then click the create Verbal Rule button.
image13
We will start to define the ‘Relatives Pension Payment’ rule. This rule check whether the pension participant past away and has beneficiary relatives. When this is the case the pension status is set to ‘Widow and/or Orphan’. First select the field. From here it is possible to construct the rule by entering the required business phrases. We want to know if the participant is not living anymore. When you type the letter ‘l’ a wizard will show all business phrases containing this letter. Select the phrase ‘member is not living’ we earlier defined.
image14a
Continue to construct the rest of the rule. Play a little around with the phrase selector to get a good feeling of how it works. After creating all five rule you should have some basic understanding of the new verbal rules feature.
image14
image15
image16
image17
image18
The overview tab shows the final result.
image19

The post SOA/BPM Suite 12c: Oracle Business Rules – Verbal Rules appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2014/06/27/soabpm-suite-12c-oracle-business-rules-verbal-rules/feed/ 2
SOA/BPM Suite 12c: Oracle Business Rules – MS Excel Integration http://technology.amis.nl/2014/06/27/soabpm-suite-12c-oracle-business-rules-ms-excel-integration/ http://technology.amis.nl/2014/06/27/soabpm-suite-12c-oracle-business-rules-ms-excel-integration/#comments Fri, 27 Jun 2014 17:23:56 +0000 http://technology.amis.nl/?p=28660 In this blog post I will give a step-by-step example of the Excel integration for Business Rules. As a starting point I created a composite with a BPM, a BPEL and a Rules component. Both BPM and BPEL components use the same Rules component. See the following three screenshots. You can download the sample application [...]

The post SOA/BPM Suite 12c: Oracle Business Rules – MS Excel Integration appeared first on AMIS Technology Blog.

]]>
In this blog post I will give a step-by-step example of the Excel integration for Business Rules. As a starting point I created a composite with a BPM, a BPEL and a Rules component. Both BPM and BPEL components use the same Rules component. See the following three screenshots. You can download the sample application with this starting point from here.

image1
Composite View

image2
BPM Process

image3
BPEL Service

Open the sample application in JDeveloper 12c to follow the step-by-step example for a hands-on experience.

This blog is divided into the following four part:

  • Explore the sample Business Rule
  • Export the Business Rule to MS Excel
  • Edit the Business Rule in MS Excel
  • Import the Business Rule from MS Excel

Explore the sample Business Rule

Open the Business Rules file. You have access to it from two different places. From the BPM branch and the SOA branch.
image4
The excel integration is implemented for Decision Tables. As you can see in the image above there is a decision table ‘PensionDT’ available.  Open this table by double clicking on it’s name. The table has the following content:
image5
The input payload for this rule is information about a pension participant. The following information is supplied:

  • dateOfBirth
  • dateOfDeath (filled if participant past away)
  • dateOfJobEnd (when participant is not being productive anymore)
  • applicable Pension Products (OP: Old-age pension, WP: Orphan pension, PP: Widow’s pension)
  • Partner information
    • dateOfBirth
    • DateOfDeath (filled if partner past away)
  • Child(ren) information (for simplicity of the example, the rule currently supports only one child)
    • dateOfBirth
    • DateOfDeath (filled if child past away)

The output payload of this rule is a statement about the current pension status. Possible outcomes are:

  • Contributor (participant is productive and is paying contribution).
  • Sleeper (participant is not productive in this trust and is not paying contribution).
  • Notified contributor  (participant is productive, but get’s retired within a year).
  • Retired (participant has ended his working career and receives an old-age pension).
  • Widow and / or Orphan (participant has died. The widow and / or orphan’s receive a pension).
  • Out Of Scope (e.g. participant and relatives all died).

Export the Business Rule to MS Excel

In the top menubar of the Decision Table a new <strong>Excel menu is available. Select ‘Export To Excel..’ from this drop-down menu.
image6
The ‘Export To Excel’ dialog appears. Specify the filename (and location) for the Excel file.
image7
After that, click the green plus sign to select the Decision Table that’s being exported.
image8
Then click the Export button to actually create the file.
image9
Because JDeveloper is running (in my case) on a Linux machine without MS Excel, I first have to move the created Excel file to a machine with Excel. After that we can start to use it.

Edit the Business Rule in MS Excel

Open the created ‘OBR_Excel.xslm’ file. It is an Excel file with macro’s. So macro’s must be enabled, as shown on the ReadMe sheet. The ReadMe sheet also describes the structure of the Excel file and the supported operations. It’s best to read and understand these before starting to edit the sheet.
image11
Besides the ReadMe sheet, there’s a sheet with the used ValueSets and a sheet with de PensionDT Decision Table. The ValueSets sheet contains a bucket set for the supported products and a bucket set for the different age ranges.
image12
image13
The Oracle Business Rules menu provides convenient options to perform the following operations.

  • Add/Delete Rule
  • Modify Rules
    • Edit a Decision Table cell
    • Merge/Split Cells
  • Add description to a Rule/Condition/Action using their Labels

image14

Change Bucket Value

Currently the ValueSet has an age range whereas the ‘Old-age pension’ starts at an age of 65. Lets assume the law is changing this to 66. To implement this change, update all the bucket values as shown below.
image14

Add Bucket

Next assume that participants younger than 25 have to pay a lower contribution. To implement this, we need an additional bucket and a new rule in the decision table. First add the bucket. For this, select one of the buckets (e.g. <65). Then click the ‘Add Value’ menu button.
image15
A popup appears where you can enter the new range splitter. Enter 25.
image16
As you can see the ranges are automatically updated.
image17
As you like, you can also update the bucket names. These will be shown in the decision table.
image18
Now we are going to modify the decision table. Select the PensionDT sheet. Then first update the used age labels via the drop-down lists on the C4 row. Implicitly this also means that we have update the used age range from 65 tot 66.
image19

Add Rule

Next we also need to add a rule for the youngster. For this click the ‘add rule’button in the ‘Oracle Business Rule’ menu. As a result of this the Decision Table is extended with an additional column.
image20
Now it is probably the best time to play arround a little bit with the table. Before continuing, modify the table until you have the following result:
image21
Make sure you have saved the modified Excel file before quitting MS Excel and continuing with the next step. Also make sure the file is at a location where JDeveloper can reach it.

Import the Business Rule from MS Excel

Go back to JDeveloper to import the modified excel file into the Decision Table. In the top menubar of the Decision Table select ‘Import From Excel..’.
image22
The ‘Import From Excel’ dialog appears. Select the modified Excel file to import.
With ‘Perform Diff-Merge On Import’ checked off you have the possibility to create a new Decision Table or to overwrite an existing one.
image23
We will used the ‘Perform Diff-Merge On Import’ checked on to demonstrate the Diff-Merge functionality. In our case it is not needed to specify a Base Dictionary.
image24
After the import a ‘Delta’ sign appears on several places to notify that there are differences between the original Decision table and the imported table. In the top left corner there are two buttons you can use to ‘approve’ or ‘reject’ all changes at once. Don’t do this yet !!!.
image25
Open the Decision Table. There you see the same thing on a lower level. You see that the new added column is there and that the modified Age labels are shown next to their old value.
image26
Right click one one of these changes. You will see a menu that gives the possibility to approve or reject an individual change.
image27
Select the option and a new popup will appear. Select Approve for this change. Repeat this for all changes one-by-one or approve them all at once if you like.
image28
Now something strange happened. All Age label changes result in an error message.
image29
This is caused by the fact that labels are not updated in the translation file.
image30
You have to do these translations by hand.
image31
After saving and reopening the rules file, the problems are solves. The Decision table reflects all the modification made from within MS Excel.
image32
This brings me to the end of this step-by-step overview of the MS Excel integration of Oracle Business Rules. If you like to practice a little more you can try to update the PP-rule so that it is only used for the widow and add an additional rule for the orphan(s).

To my opinion this integration really can help to bring understanding and control over the implemented Business Rules to ‘THE BUSINESS’, where it belongs.

The post SOA/BPM Suite 12c: Oracle Business Rules – MS Excel Integration appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2014/06/27/soabpm-suite-12c-oracle-business-rules-ms-excel-integration/feed/ 0
Humantask Assignment: Names and Expressions Assignment via Rules http://technology.amis.nl/2014/04/13/humantask-assignment-names-and-expressions-assignment-via-rules/ http://technology.amis.nl/2014/04/13/humantask-assignment-names-and-expressions-assignment-via-rules/#comments Sun, 13 Apr 2014 07:19:40 +0000 http://technology.amis.nl/?p=27365 This blog post is part of a series of posts about humantask assignment. You can find the starting point of this series by following the next link. In this post I will give an example of task assignment by Names And Expressions using Oracle Business Rules. I will use the same BPM process as in [...]

The post Humantask Assignment: Names and Expressions Assignment via Rules appeared first on AMIS Technology Blog.

]]>
This blog post is part of a series of posts about humantask assignment. You can find the starting point of this series by following the next link.

In this post I will give an example of task assignment by Names And Expressions using Oracle Business Rules. I will use the same BPM process as in most of the other posts in this series.
Screenshot12
Now we have the process, we can assign the task to a representative, group of representatives or role. For this open the taskfile and select the assignment tab.
assignment tab
Edit the default.DefaultPerformer. Select Rule-based and specify the ruleset e.g. NamesAndExpressionsRule.
Screenshot
After selecting OK, the business rules can be specified. Because the process does not have a payload it is not possible to use input data to influence the behavior of the business rules. For this reason I have used priority, one of the many task properties, to control the bussiness rule behavior.
Screenshot-1
The picture below shows the two implemented rules. The first rule “High Priority” assigns the task to taskGroup1 when the priority has the value 1 or 2. The second rule “Low Priority” assigns the task to taskGroup2 when the priority has a value of three or higher.
Screenshot-2
The priority can be set on the General tab of the task. This is during development time. This means that the process must be redeployed when the priority is changed.
Screenshot-3
After deployment of the process we can start new instances via the EM.
Screenshot-4
As a first example I will test it with priority = 2. The task is assigned to TaskGroup1.
Screenshot-5
As you can see in the trace of the rules the High Priority rule is executed.
Screenshot-6
And a second example with the priority = 4.
Screenshot-7
The Low Priority rule is executed. Which means that the task is assigned to taskGroup2.
Screenshot-8
And the task trace …
Screenshot-9
The example shows a very basic implementation of task assignment with the help of Oracle Business Rules. From here you can download the sample project.

The post Humantask Assignment: Names and Expressions Assignment via Rules appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2014/04/13/humantask-assignment-names-and-expressions-assignment-via-rules/feed/ 0
Humantask Assignment: Assignment via External Routing http://technology.amis.nl/2014/04/06/humantask-assignment-assignment-via-external-routing/ http://technology.amis.nl/2014/04/06/humantask-assignment-assignment-via-external-routing/#comments Sun, 06 Apr 2014 07:15:34 +0000 http://technology.amis.nl/?p=27332 This blog post is part of a series of posts about humantask assignment. You can find the starting point of this series by following the next link. This post gives an example of task assignment via External Routing. I will use the same BPM process as in most of the other posts. The implementation of [...]

The post Humantask Assignment: Assignment via External Routing appeared first on AMIS Technology Blog.

]]>
This blog post is part of a series of posts about humantask assignment. You can find the starting point of this series by following the next link.

This post gives an example of task assignment via External Routing. I will use the same BPM process as in most of the other posts.
Screenshot12
The implementation of the External Routing is done in a custom java class that implements the IAssignmentService interface.
Screenshot-5
The following picture shows the implementation of this class. The task is assigned to taskGroup1 in the OnInitiation method. This method is executed when the task is activated for the first time. The OnOutcomeUpdated method is executed every time an outcome is selected in the task. Depending on the user who handled the task, the task is reassigned in this method to taskGroup2 or the task stops by assigning the task to nobody (task is handled by taskUser3).
Screenshot-14
After creating and compiling the class, It must become available for use. For this copy the class to the following location: /Oracle_SOA1/soa/modules/oracle.soa.ext_11.1.1/classes. You must restart the WebLogic Server after you put your class files there.
Screenshot
On the assignment tab of the humantask, click the pencil in the upper right corner to attach the class to the humantask.
Screenshot-9
The Configure Assignment screen appears. Select Use External Routing.
Screenshot-6
Enter the class name.
Screenshot-7
After selecting OK, you get the following warning. Select Yes to continue.
Screenshot-8
Now it’s time to do some testing. After deployment of the process we can start a new instance via the EM.
The following image shows the situation where the task is only handled by taskUser3.
Screenshot-11
The following image shows a situation that the task is first handled by taskUser1 and after that by taskUser3 (which will finish the task).
Screenshot-10
This brings me to the end of this example. The example shows a very simple and straight forward implementation of the External Routing. The example shows the situation where the task is handle by one representative and a situation where it is handled by two representatives. This dynamic length routing is a very powerful feature of the External Routing functionality.
From here you can download the sample project.

The post Humantask Assignment: Assignment via External Routing appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2014/04/06/humantask-assignment-assignment-via-external-routing/feed/ 2
Humantask Assignment: Assignment with Dynamic Approval Group http://technology.amis.nl/2014/03/24/humantask-assignment-assignment-with-dynamic-approval-group/ http://technology.amis.nl/2014/03/24/humantask-assignment-assignment-with-dynamic-approval-group/#comments Mon, 24 Mar 2014 22:55:02 +0000 http://technology.amis.nl/?p=27139 This blog post is part of a series of posts about humantask assignment. You can find the starting point of this series by following the next link. This post gives an example of task assignment with a Dynamic Approval Group. I will use the same BPM process as in most of the other posts. The [...]

The post Humantask Assignment: Assignment with Dynamic Approval Group appeared first on AMIS Technology Blog.

]]>
This blog post is part of a series of posts about humantask assignment. You can find the starting point of this series by following the next link.

This post gives an example of task assignment with a Dynamic Approval Group. I will use the same BPM process as in most of the other posts.
Screenshot12
The implementation of the Dynamic Approval Group is done in a custom java class that implements the IDynamicApprovalGroup interface.
Screenshot
The following picture shows the implementation of this class for this post. The group consist of the users taskUser1 and taskUser5. This means that one of these users must handle the task.
Screenshot13
After creating and compiling the class, It must become available for use. For this copy the class to the following location: /Oracle_SOA1/soa/modules/oracle.soa.ext_11.1.1/classes. You must restart WebLogic Server after you put your class files there.
Screenshot-1
And of course you must assign the class to the humantask.
Screenshot-4
And finally you must add the dynamic approval group from the Business Process Workspace. Go to the Administration page. Under Task Administration, select Approval Groups. Click the Add (+) button and select Create Dynamic Approval Group.
Screenshot-2
Give the group a name and specify the class name. Click Save to finish the step.
Screenshot-3
After deployment of the process we can start new instances via the EM.
Screenshot14
This brings me to the end of this example. The example shows a very simple and straight forward implementation of the Dynamic Approval Group. In a real business implementation you will probably never see a hard coded implementation like this. For example it would be more obvious as the users were loaded from a database table. I will show this in a future post of this series. From here you can download the sample project.

The post Humantask Assignment: Assignment with Dynamic Approval Group appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2014/03/24/humantask-assignment-assignment-with-dynamic-approval-group/feed/ 0
Humantask Assignment: Assignment by Names And Expressions http://technology.amis.nl/2014/03/09/humantask-assignment-assignment-by-names-and-expressions/ http://technology.amis.nl/2014/03/09/humantask-assignment-assignment-by-names-and-expressions/#comments Sun, 09 Mar 2014 20:39:28 +0000 http://technology.amis.nl/?p=26039 This blog post is part of a series of posts about humantask assignment. You can find the starting point of this series by following the next link. In BPEL it is not possible to assign a task to a lane participant. The most simple assignment in BPEL is by Names and Expressions. In this post [...]

The post Humantask Assignment: Assignment by Names And Expressions appeared first on AMIS Technology Blog.

]]>
This blog post is part of a series of posts about humantask assignment. You can find the starting point of this series by following the next link.

In BPEL it is not possible to assign a task to a lane participant. The most simple assignment in BPEL is by Names and Expressions. In this post I will show this kind of assignment for both a BPEL and a BPMN process. In fact there is no difference between BPEL and BPMN. In this example I created a composite with a BPM component and a BPEL component. Both the BPEL process and the BPM process only contain a humantask. Actually it is the same humantask as show in the picture below.
composite
The BPM process model
BPM process
and the BPEL process model
BPEL process
The main difference between BPM and BPEL is that when you add a humantask to the process, BPEL automatically creates branches for all possible task outcomes and BPM does not. You have to create them yourself.

The humantask is created with all the defaults settings.
create task
create task implementation
Now the process is ready, so we can assign the task to a representative or group of representatives. For this open the taskfile and select the assignment tab
assignment tab
Edit the default performer entry. Select ‘Names and Expressions’ in the drop-down list for the Participant list.
Assign taskGroup1 by name and the userName which is part of the payload by expression.
taskGroup1 contains taskUser1, taskUser2 and taskUser3. In the process the userName is filled with taskUser4.
participant type
By Name
By Expression
After deployment of the process and assigning the role to an existing user in the BPM workspace ..
users
.. we can start new instances via the EM.
The BPM Instance
trace
And the BPEL Instance
bpel trace
Opening the BPM workspace and login in as one of the assigned users (taskUser1 .. taskUser4) will show both the open BPEL as the BPM humantask.
tasksBPM
And the BPM worklist also shows them both
tasksSOA
The task form is not actually created but the task does exist, and the outcome can be set via the menu.
approve
This brings me to the end of this example. The example shows the most simple method for taskassignment available in Oracle SOA suite and BPM suite. From here you can download the sample project.

The post Humantask Assignment: Assignment by Names And Expressions appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2014/03/09/humantask-assignment-assignment-by-names-and-expressions/feed/ 0
Humantask Assignment: parallel participants http://technology.amis.nl/2014/03/02/humantask-assignment-parallel-participants/ http://technology.amis.nl/2014/03/02/humantask-assignment-parallel-participants/#comments Sun, 02 Mar 2014 08:30:08 +0000 http://technology.amis.nl/?p=26536 This blog post is part of a blog post serie about humantask assignment. You can find the starting point of this series by following the next link. This post gives an example of the parallel participant assignment. Multiple participants can work in parallel on the same task. The following picture shows the assignment tab of the [...]

The post Humantask Assignment: parallel participants appeared first on AMIS Technology Blog.

]]>
This blog post is part of a blog post serie about humantask assignment. You can find the starting point of this series by following the next link.

This post gives an example of the parallel participant assignment. Multiple participants can work in parallel on the same task.

proces

The following picture shows the assignment tab of the humantask.

assignment

As you can see, there are three parallel participants. Each of them is assigned to the current lane participant. Even though this is not a very realistic design (because this results into three tasks at the same time for each representative in the BPM workspace), it really good shows the behavior of parallel assignment.
Lets asume that when two out of the three assignments are handled the process can continue. Handling the third one is not necessary. This functionality can be configured via the routing graph. For this double click the pencil.

Set the voting percentage to any value between 34 and 66 and select ‘Immediately trigger voted outcome when minimum percentage is met’. That’s it.
vote

After deployment of the process and assigning the role to an existing user in the BPM workspace ..

role_group definition

(taskGroup1 contains the users taskUser1, taskUser2 and taskUser3)
.. we can start a new instance via the EM.

trace

Opening the BPM workspace and login in as one of the assigned users will show the open humantask three times (ones for each parallel assignment).

taken1

After approving the task twice, the task has the following trace.

trace

The trace shows that the task is twice approved by taskuser1 and ones (automatically) by the workflowsystem.

This brings me to the end of this very simple example. The example shows the behavior of the humantask in the workspace when applying parallel assignment. From here you can download the sample project.

The post Humantask Assignment: parallel participants appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2014/03/02/humantask-assignment-parallel-participants/feed/ 0
Humantask Assignment: sequential participants (four-eyes principle & sticky user) http://technology.amis.nl/2014/02/23/humantask-assignment-sequential-participants-four-eyes-principle-sticky-user/ http://technology.amis.nl/2014/02/23/humantask-assignment-sequential-participants-four-eyes-principle-sticky-user/#comments Sun, 23 Feb 2014 08:28:17 +0000 http://technology.amis.nl/?p=26460 This blog post is part of a blog post serie about humantask assignment. You can find the starting point of this series by following the next link. If you look at the example in Humantask Assignment: not the same lane participant as previous task (four-eyes principle) you see two sequential humantasks. If these humantasks are both connected [...]

The post Humantask Assignment: sequential participants (four-eyes principle & sticky user) appeared first on AMIS Technology Blog.

]]>
This blog post is part of a blog post serie about humantask assignment. You can find the starting point of this series by following the next link.

If you look at the example in Humantask Assignment: not the same lane participant as previous task (four-eyes principle) you see two sequential humantasks. If these humantasks are both connected with the same task form there might be another method available to model the four-eyes principle. Namely: assigning participants sequentially to the same humantask. This means that there will be only one humantask in the process model.

processmodel

Open the task file and add a sequential participant block by clicking the green plus sign and then selecting the ‘sequential participant block’ menu option. In the example I used the default name “Stage1.Participant1″. Be sure that both participant are set to the current lane participant. It’s the same as in Humantask Assignment: not the same lane participant as previous task (four-eyes principle). This means that it is possible that both tasks are handled by the same representative. And this is not what we want…

We need to change an overall task setting. For this select the pencil in the right upper corner.
sequential participant block

Select the assignment tab. At the bottom you see the field “Participants Exclusion List”. In here select the “Previous Lane Participant”. This will do the thing. Now the four-eyes principle is implemented. Is it?

configure

After deployment of the process and assigning the role to an existing user in the BPM workspace ..

users

.. we can start a new instance via the EM.

trace

Opening the BPM workspace and login in as one of the assigned users will show the open first humantask.

task in workspace

The task form is not actually created but the task does exist, and the outcome can be set via the menu.

approve

After approving the task, the task has the following trace.

trace1

As you can see the task is assign to the role TaskAssignmentTemplate.FirstTaskRole and is handle by taskuser1. Because of the sequential assignment the task is not closed yet but it is reassigned to the next participant. This means that the second assignment should not be handled by taskuser1. As a result of this, taskuser2 who is also a member of the swimming lane role must handle the task. If we compare it with Humantask Assignment: not the same lane participant as previous task (four-eyes principle) then both taskuser1 and taskuser2 will see the task in there BPM workspace where only taskuser2 can handle the task.
In this case, this is not true. Both participants can handle the task. To me this is an unexpected result. I was expecting the same behavior as in the example with two tasks.
The trace after handling the task by taskuser1 again.

trace2

Lets see if we can change the example to the sticky user example of Humantask Assignment: same lane participant as previous task (sticky user) to find an explanation for this behavior. For this change the assignment of the “Stage1.Participant1″ to “Previous Lane Participant” and redeploy the process. After testing this I became a bit confused. The sticky user seems to work fine. Am I doing something wrong, is it not implemented or is it a bug?

trace3
As a conclusion, using sequential participants assignment simplified the process model, but in this simple form the functionality is limited. Sequential participants assignment is not solving the four-eyes principle requirement. The sticky user requirement is working fine but I do not really can think of a use-case for it.

This brings me to the end of this example. From here you can download the sample project.

The post Humantask Assignment: sequential participants (four-eyes principle & sticky user) appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2014/02/23/humantask-assignment-sequential-participants-four-eyes-principle-sticky-user/feed/ 2
Humantask Assignment: not the same lane participant as previous task (four-eyes principle) http://technology.amis.nl/2014/02/20/humantask-assignment-not-the-same-lane-participant-as-previous-task-four-eyes-principle/ http://technology.amis.nl/2014/02/20/humantask-assignment-not-the-same-lane-participant-as-previous-task-four-eyes-principle/#comments Thu, 20 Feb 2014 07:19:53 +0000 http://technology.amis.nl/?p=26391 This blog post is part of a blog post serie about humantask assignment. You can find the starting point of this series by following the next link. This post handles the assignment of a task to a different participant as the one who handled the previous task (four-eyes principle). This is the opposite of the [...]

The post Humantask Assignment: not the same lane participant as previous task (four-eyes principle) appeared first on AMIS Technology Blog.

]]>
This blog post is part of a blog post serie about humantask assignment. You can find the starting point of this series by following the next link.

This post handles the assignment of a task to a different participant as the one who handled the previous task (four-eyes principle). This is the opposite of the blog Humantask Assignment: same lane participant. The difference is in the definition of the second humantask. For the rest it’s all the same. The following picture shows the resulting composite.

composite

The BPM process model
process

The second humantask is similar to the first humantask. The performer of both the tasks is ‘anyone in role’ / ‘Current Lane Participant’. This means that it is possible that both tasks are handled by the same representative. And this is not what we want…

We need to change an overall task setting. For this select the pencil in the right upper corner.

assignment 4 ogen sprincipe

Select the assignment tab. At the bottom you see the field “Participants Exclusion List”. In here select the “Previous Lane Participant”. This will do the thing. Now the four-eyes principle is implemented.

configure

 After deployment of the process and assigning the role to an existing user in the BPM workspace ..

users

.. we can start a new instance via the EM.

trace

Opening the BPM workspace and login in as one of the assigned users will show the open first humantask.

task in workspace

The task form is not actually created but the task does exist, and the outcome can be set via the menu.

approve

After approving the task, the task has the following trace.

task flow

As you can see the task is assign to the role TaskAssignmentTemplate.FirstTaskRole and is handle by taskuser1. This means that the second task should not be handled by taskuser1. As a result of this, taskuser2 who is also a member of the swimming lane role must handle the task. Both taskuser1 and taskuser2 will see the task in there BPM workspace. Only taskuser2 can handle the task. Taskuser1 does not have the menu options to handle the task.

workspace

The trace of the second task

trace

This brings me to the end of this example. From here you can download the sample project.

The post Humantask Assignment: not the same lane participant as previous task (four-eyes principle) appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2014/02/20/humantask-assignment-not-the-same-lane-participant-as-previous-task-four-eyes-principle/feed/ 2
Humantask Assignment: same lane participant as previous task (sticky user) http://technology.amis.nl/2014/02/16/humantask-assignment-same-lane-participant-as-previous-task-sticky-user/ http://technology.amis.nl/2014/02/16/humantask-assignment-same-lane-participant-as-previous-task-sticky-user/#comments Sun, 16 Feb 2014 12:18:30 +0000 http://technology.amis.nl/?p=26313 This blog post is part of a blog post serie about humantask assignment. You can find the starting point of this series by following the next link. This post handles the assignment of a task to the same participant as the one who handled the previous task (sticky user). To demonstrate this I have extended the [...]

The post Humantask Assignment: same lane participant as previous task (sticky user) appeared first on AMIS Technology Blog.

]]>
This blog post is part of a blog post serie about humantask assignment. You can find the starting point of this series by following the next link.

This post handles the assignment of a task to the same participant as the one who handled the previous task (sticky user). To demonstrate this I have extended the example of the blog Humantask Assignment: current lane participant. A second humantask is added to the process. This task is assigned to the same participant as the previous task. The following picture shows the resulting composite.

composite

The BPM process model
process

The second humantask is created with almost all the defaults settings. Instead of selecting ‘anyone in role’ as performer the ‘previous performer’ is selected. That’s all the difference.

task2create

It is still posible to change the assignment after creating the task. For this open the taskfile.
project tree

Select the assignment tab
assignment tab

Select the ‘Previous lane participant’.
participant type

After deployment of the process and assigning the role to an existing user in the BPM workspace ..

users

.. we can start a new instance via the EM.

trace

Opening the BPM workspace and login in as one of the assigned users will show the open first humantask.

task in workspace

The task form is not actually created but the task does exist, and the outcome can be set via the menu.

approve

After approving the task, the task has the following trace.

task flow

As you can see the task is assign to the role TaskAssignmentTemplate.FirstTaskRole and is handle by taskuser1. This means that the second task also should be handled by taskuser1. The task is assigned to taskuser1. As a result of this, taskuser2 who is also a member of the swimming lane role won’t see the task in the BPM Workspace. Taskuser1 has restricted access to the task.

second assignee approved

This brings me to the end of this example. From here you can download the sample project.

The post Humantask Assignment: same lane participant as previous task (sticky user) appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2014/02/16/humantask-assignment-same-lane-participant-as-previous-task-sticky-user/feed/ 0
Humantask Assignment: current lane participant http://technology.amis.nl/2014/02/13/humantask-assignment-current-lane-participant/ http://technology.amis.nl/2014/02/13/humantask-assignment-current-lane-participant/#comments Thu, 13 Feb 2014 08:44:28 +0000 http://technology.amis.nl/?p=25949 This blog post is part of a blog post serie about humantask assignment. You can find the starting point of this series by following the next link. Assigning a task to the current lane participant is more or less the default setting when using humantasks. To demonstrate the assignment of the humantask to the current [...]

The post Humantask Assignment: current lane participant appeared first on AMIS Technology Blog.

]]>
This blog post is part of a blog post serie about humantask assignment. You can find the starting point of this series by following the next link.

Assigning a task to the current lane participant is more or less the default setting when using humantasks.

To demonstrate the assignment of the humantask to the current lane participant I have created a simple BPM process that only contains a humantask activity. The following picture shows the resulting composite.
composite1

The BPM process model

BPM process

The humantask is created with all the defaults settings (performer is anyone in role).

create task

create task implementation

The process is ready, so we can assign the task to a representative or group of representatives. For this open the taskfile

project tree

Select the assignment tab

assignment tab

Edit the default performer entry. You see the task is assign to the current lane participant. This means the name of the role / swimming lane the task is in. This is as meant, no change required.

participant type

After deployment of the process and assigning the role to an existing user in the BPM workspace ..

users

.. we can start a new instance via the EM.

trace

Opening the BPM workspace and login in as one of the assigned users will show the open humantask.

task in workspace

The task form is not actually created but the task does exist, and the outcome can be set via the menu.

approve

After approving the task, the task has the following trace.

task flow

As you can see the task is assign to the role TaskAssignmentTemplate.FirstTaskRole and is handle by taskuser1.

This brings me to the end of this example. The example shows the most simple method for taskassignment available in Oracle BPM suite. From here you can download the sample project.

The post Humantask Assignment: current lane participant appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2014/02/13/humantask-assignment-current-lane-participant/feed/ 0
Humantask Assignment in Oracle BPM Suite and SOA Suite http://technology.amis.nl/2014/02/13/humantask-assignment-in-oracle-bpm-suite-and-soa-suite/ http://technology.amis.nl/2014/02/13/humantask-assignment-in-oracle-bpm-suite-and-soa-suite/#comments Thu, 13 Feb 2014 08:37:46 +0000 http://technology.amis.nl/?p=25920 This blog post is the starting point of a series of posts about humantask assignment. From here you can find references to all kind of humantask assignments blogs, articles and examples. You can download example projects, and are encourage to supply additional content and improvements. Humantasks can be assigned to an individual user, a group [...]

The post Humantask Assignment in Oracle BPM Suite and SOA Suite appeared first on AMIS Technology Blog.

]]>
This blog post is the starting point of a series of posts about humantask assignment. From here you can find references to all kind of humantask assignments blogs, articles and examples. You can download example projects, and are encourage to supply additional content and improvements.

Humantasks can be assigned to an individual user, a group of users and to a role. Oracle BPM Suite and SOA Suite offer many different ways to assign these humantasks to a respresentative. For example it is possible to use references to lane participants, organizational structures like job-level and supervisory, business rules and external routing components.

The remaining of this starting blog consists of a list with references and backlog topics. The content of this list is periodically updated. All topics are strictly related to humantask assignment.

Humantask Assignment

Task assignment topics

lane participants

by names and expressions

Approval groups

Job Level

  • value based
  • Rule-based

Position

  • Rule-based

Supervisory

  • value based
  • Rule-based

Parametric roles

Management Chain

  • value based
  • Rule-based

Rule base

types

  • Single
  • Parallel
  • Serial
  • FYI

Route tasks to all participants, in order specified

Use Advanced Rules

Use external routing

 

Call for content:

if you like to supply content for this post, you can add a comment to this blog.
You can deliver full content for a (new) list topic. In that case I will add the content to the AMIS Technology blog.
Or you could deliver references to a topic. Then I will add the references to the list.

 

 

The post Humantask Assignment in Oracle BPM Suite and SOA Suite appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2014/02/13/humantask-assignment-in-oracle-bpm-suite-and-soa-suite/feed/ 0
AYTS: Summary of Oracle Business Intelligence Applications – Customizations http://technology.amis.nl/2013/04/01/ayts-summary-of-oracle-business-intelligence-applications-customizations/ http://technology.amis.nl/2013/04/01/ayts-summary-of-oracle-business-intelligence-applications-customizations/#comments Mon, 01 Apr 2013 13:41:32 +0000 http://technology.amis.nl/?p=22317 Three months ago started the Oracle program: Are You The Smartest. For me it is an opportunity to test my current knowledge level and to extend my knowledge. After every session I follow, I will write a brief summary as part of the preparation for the test. I will continue with the summary of the following session. ARCHITECTS TRAINING [...]

The post AYTS: Summary of Oracle Business Intelligence Applications – Customizations appeared first on AMIS Technology Blog.

]]>
Three months ago started the Oracle program: Are You The Smartest.
For me it is an opportunity to test my current knowledge level and to extend my knowledge.
After every session I follow, I will write a brief summary as part of the preparation for the test.
I will continue with the summary of the following session.

ARCHITECTS TRAINING – BUSINESS INTELLIGENCE – Oracle Business Intelligence Applications – Customizations

This 1 hour during session was divided into the following parts:

  • Introduction to customization
  • Types of customizations
  • Typical cases of customization

Introduction to Customization

  • By customization we mean changing the data warehouse structure, ETL logic and OBIEE repository and front-end to cover the customer specific needs that aren’t covered by the out-of-the-box solution
    • Each business has it’s own reporting requirements and they might be very special
    • Business environment changes and new requirements come up constantly
  • The out-of-the-box BI Apps offers a good framework to build custom reporting
  • Best practice customization is additive so we don’t lose the out-of-the-box objects when we customize BI Apps

Reasons for Customization

Transactional Applications Modifications 

The source system might have been customized for customer’s needs
• User Interface
• Data model extensions
• New entities (business components)
• Different relationships between components
• Modified visibility rules
• Different authorization/authentication
• These changes have to be addressed in BI Apps, too, with customization

BI Applications Extensions

When it comes to reporting, these are some of the typical requirements
• Company-specific dashboards, analysis, navigation
• New KPI’s or refining out-of-the-box ones
• Custom hierarchies
• Differences in change data capture logic
• New facts and/or dimensions for unsupported functionality
• Additional source systems or data warehouses which have to be integrated

Typical Effort & Customization Balance

img1

80% of time is spent on dashboards en reports. 20% on more complex things.

OBIEE (Oracle Business Intelligence Enterprise Edition) Dashboard Customization 

Easiest and most frequently done customization, for example

  • Changes of format, structure, navigation etc. in the existing reports, say
    • Data format such as date or currency format
    • Data presentation in pivot table, graph etc.
    • Grand totals, ordering, new filters, selection steps, dashboard prompts
    • Custom navigation from one report to another
  • Adding new out-of-the-box or custom attributes or measures to the reports
  • Building new dashboards and analyses using out-of-the-box or custom objects

img2

OBIEE Metadata Customization

  • Changes in OBIEE repository, the following are some typical changes
  • Changing the structure of subject areas:
    • Drag and dropping more presentation columns
    • Deleting unnecessary columns from the presentation layer
    • Reordering and renaming objects
    • Changing the security (visibility) of subject areas
    • Creating new subject areas with different contents to different user groups
    • With OBIEE 11g combining several subject areas in the same report is so easy that they should be kept small
    • Implement repeating changes ones in the repository and not over and over again in every report.
  • Creating new fact measures
    • OBIEE fact columns can be :
      • Base measures, which come from the data warehouse and do not involve any calculation in OBIEE
      • Derived measures, which are derived in OBIEE repository from base measures
    • New derived measures can easily be calculated from the base measures
      • Level-based measures to create totals on different levels of dimensions are another extremely powerful option in OBIEE
      • Case-statement and filters can often help you create custom measures based on the out-of-the-box measures
  • Sometimes new attributes can also be built in OBIEE based on the existing attributes
  • Changing logical dimensions
    • Adding new levels to the logical dimensions
    • Changing preferred drill-down path
    • Changing drill-down display columns
    • Creating new logical dimensions
  • Adding new logical and physical data sources
    • Mapping new custom columns or custom tables
    • New aggregate tables
    • Aliasing out-of-the-box tables, for example to create new custom date dimensions
    • Adding additional data sources, for example relational databases or Essbase cubes

img3

 ETL Customization

ETL customization involves changes in the data warehouse structure and Informatica mappings

  • The main effort is done in the database and Informatica, but the changes have to be mapped also in DAC and OBIEE repository

Customization Scenarios

  • Type 1 – New columns from source systems added to the data warehouse
  • Type 2 – New fact or dimension tables added to the data warehouse
    • We have to build the corresponding SDE and SIL mappings
  • Type 3 – New data from additional data sources extracted using the universal adapters

Type I Customization

Typical Steps to Extend Mappings

  • Copy the appropriate workflows, sessions and mappings to a custom Informatica folder
    • Only modify objects in the custom folders
    • Update DAC task properties to point to the custom folders
  • Add the new column(s) to staging and target tables
    • Create the column(s) in the database
    • Then import them to Informatica, DAC and OBIEE repository
    • Add new query indexes for the target table columns in DAC, if needed

Adding Columns to Existing Tables

  •  Customize the out-of-the-box SDE and SIL mappings
    •  Modify the extract query to include the new column(s)
    •  If new tables are needed import them and be careful that no rows are lost or unwanted rows returned because of new joins
    •  Take the new column(s) through the two mappings following the path of the placeholder column X_CUSTOM
    •  After changes validate the corresponding Informatica sessions
  • Modify DAC execution plan
    • Generate parameters and set values for the custom DAC folders
    • Re-build the execution plan
  • Map columns in the logical and presentation layer in OBIEE

Safe Path 

  • Most mappings have a single placeholder column, named X_CUSTOM, that marks a safe path through the mapping.
  • All extension logic should follow the same route through the mapping as X_CUSTOM. You can add additional transformations to the mapping, but they should follow the same route through the mapping as X_CUSTOM. The graphic shows the pre-configured logic in grey. You should not modify anything contained within these objects. You should add customizations to the existing mapping, which allows them to run parallel to the existing logic.

img4

Points to Remember

  • Encapsulated objects must never be customized unless directed by Oracle
    • An exception are the extract mapplets in SDE mappings which can be modified
  • Exposed objects can be extended but must never be otherwise modified
  • Minimize the number of changes to exposed objects by using custom objects
    • Custom objects are never changed during an upgrade

Type 2 Customization

Adding Additional Tables

  • Sometimes we have to create new dimension and fact tables
  • Custom SDE and SIL mappings have to be created to populate each custom table

Table Definitions

  • Create new table(s) in database
    • Remember to include the required system columns
    • Then import them to Informatica, DAC and OBIEE repository
    • Add ETL indexes and new query indexes in DAC
    • Define table type and foreign key columns in DAC – important for dependency detection

More on Indices

  • Staging tables typically do not require indices
  • Create indices on all columns that the ETL uses for dimensions and facts
  • Define indices to improve query performance
  • If you create indices in the database be sure to register them in DAC

Custom Mappings

  • Create new mappings in Informatica to contain your ETL logic
    • Always create custom objects in your custom folders
    • There should be only one target table per mapping
    • Thanks to the change capture and update logic we can normally use the same mapping for a full load and incremental load of a table
    • However, if necessary, you can create a different mapping for full and incremental ETL
  • Reuse existing source and target definitions, transformations, mapplets and mappings to save development time and to follow the best practices
    • Take advantage of the out-of-the-box encapsulated logic such as lookups and mapplets to retrieve ETL_PROC_WID, convert
      currencies etc.
    • Adapt the out-of-the-box logic to your custom mappings, for example:
      • Treatment of surrogate keys and system columns
      • Change capture and update strategy logic
      • Creation of unspecified records, slowly changing dimension, aggregates etc.

Custom Workflows

  • Create a session for each mapping
    • Set the appropriate source and target connection values in Workflow Manager
  • Create custom workflows
    • Each workflow should load only one table
    • The workflow name should match a session name that is used inside the workflow
  • You have to create a workflow and session for both full load and incremental load
    • Usually the sessions and workflows can simply be duplicated with two different names

DAC Development 

  • Create new tasks in DAC
    • In the properties of a DAC task you can define the command for incremental and full load – these are the names of workflows in Informatica
    • Other important settings are for example execution type, folder name, source and target and task phase
    • Synchronize the tasks to add the source and target tables
      • Set the properties for the tables, for example the target table truncate options 
  • Create new subject area in DAC
    • If your customization is an enhancement of an existing star then assemble the corresponding DAC subject area again
    • If you’ve built a new star then create a custom subject area in DAC
  • Create new execution plan
    • Reuse existing execution plan or create a new one
      • Add the new subject areas, if any
    • Generate and set the parameters
    • Build

More on Truncating Target Tables

  • Truncating should be done through the DAC
  • A single DAC task has one placeholder for a full load, and one for an incremental load

img5

OBIEE Development

  • New data warehouse tables need to be mapped in OBIEE
    • Tables imported, aliased and joined in the physical layer
    • New logical dimensions, dimension tables and facts defined in the logical layer
    • New subject areas created in the presentation layer

Naming Conventions

Data Warehouse Object Naming Standard
Custom DWH tables WC_<table_name>_<table_type>, for example WC_CUSTOMER_D
Custom column in OOTB table X_<column_name>
  • Separate your custom development as well as possible from out-of-the-box with naming convention in OBAW, Informatica, DAC and OBIEE
    • For example prefixes Custom_ and C_ can be used
    • In OBIEE dummy columns can be used to separate the out-of-the-box and custom columns

The post AYTS: Summary of Oracle Business Intelligence Applications – Customizations appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2013/04/01/ayts-summary-of-oracle-business-intelligence-applications-customizations/feed/ 0
AYTS: Summary of the Introduction of Oracle Business Intelligence Applications http://technology.amis.nl/2013/04/01/ayts-summary-of-the-introduction-of-oracle-business-intelligence-applications/ http://technology.amis.nl/2013/04/01/ayts-summary-of-the-introduction-of-oracle-business-intelligence-applications/#comments Mon, 01 Apr 2013 13:37:25 +0000 http://technology.amis.nl/?p=22348 Three months ago started the Oracle program: Are You The Smartest. For me it is an opportunity to test my current knowledge level and to extend my knowledge. After every session I follow, I will write a brief summary as part of the preparation for the test. I will continue with the summary of the following session. ARCHITECTS TRAINING [...]

The post AYTS: Summary of the Introduction of Oracle Business Intelligence Applications appeared first on AMIS Technology Blog.

]]>
Three months ago started the Oracle program: Are You The Smartest.
For me it is an opportunity to test my current knowledge level and to extend my knowledge.
After every session I follow, I will write a brief summary as part of the preparation for the test.
I will continue with the summary of the following session.

ARCHITECTS TRAINING – BUSINESS INTELLIGENCE – Oracle Business Intelligence Applications – Overview

This 1,5 hour during session was divided into the following parts:

  • BI Challenges
  • What are Oracle BI Applications?
  • Oracle BI Applications Components & Architecture

BI Challenges

img0

Today’s Typical BI Landscape

Hard to Maintain, Duplication and Inconsistency of Tooling

img1
Business questions touch multiple processes.

Building BI Solutions is Challenging

Start from scratch?

img1001

Oracle BI Applications Provide a Single Integrated View of Enterprise Information

  • Integrated enterprise-wide intelligence
  • Summary level to lowest level of detail
  • Data warehousing best practices – conformed dimensions, lowest level of granularity, full change histories for time comparisons, built for speed, extensible

img2
On top we have the datamodel (warehouse) to answer business questions.
ETL: Extraction Transformation Loading

What are Oracle BI Applications?

Prebuilt BI Solutions for EBS, PeopleSoft, Siebel, JD Edwards, Fusion Applications & more.
Customers always have the same kind of questions.

  • Benefits
    • Add insight to CRM and ERP applications
    • Easy to adapt and extend
  • Unique features
    • Tight integration with OLTP systems (OnLine Transaction Processing)
    • Works with existing IT environment
    • Fast time to value; Low TCO
    • Over 4,000 customers

BI Applications – Rapid Performance Insight (samples)

  • Employee Productivity
  • Project Revenue
  • Resolution Rates

Has over 6,500 pre-defined assets (dashboards, dashboard pages, reports and metrics).

Provide Rich Analysis based on best practices  

img3

Analytic Workflows – e.g. Financial Analytics

img4

Overview of what’s in Financial Analytics 7.9.6.3

img5

Alignment Across the Enterprise. eg: Assess impact of product mix and discounts on revenue and margins

More than just dashboards and reports: Value of BI Applications lies under the surface

img6

Conformed dimensions: eq same for sales and finance departments.

Robust Application Infrastructure

  • Prebuilt Integrations: Fusion Applications, E- Business Suite, Peoplesoft, JD Edwards, Siebel, SAP. Action links to click through to a specific ‘order’ in the operational system.
  • Rich Data Model: 10 years of best practices from BI modeling accommodating source system complexities
  • Extensive BI related transformations: Slowly Changing Dimension support, Hierarchy flattening support, Currency Conversion, UOM conversion, Dynamic Data translations, Code standardization (Domains), Historical Snapshots, Cycle and process lifecycle computations, Balance Facts
  • Flexible ETL Architecture: Multi Source, Multi Technology, Simplified but Optimized Orchestration Plan, High availability with ‘Follow the Sun’ support, Near Real Time Support with Micro-ETL
  • Broad Deployment Choices: Heterogeneous Database & Operating System Neutral Deployment Support
  • Support for Custom Configuration and Extensions: Support for Key Flex fields and Descriptive Flex fields, Extensible attribute s(JDE), and Conformed Domains
  • Highly tuned Performance: Optimized for BI and analytic queries, Prebuilt aggregates for scalable end user performance, Incremental extracts and loads, Incremental Aggregate, Automatic table index and statistics management, Parallel ETL loads, Low latency Micro ETL support, Bitmap Indexes, Partitioning support

Speeds Time To Value and Lowers TCO 

img7

Key Benefits

Improve visibility and  insight into  performance, processes, and  customers •   Compare operational results to plans in real-time•   Quickly identify and respond to problems & opportunities•   Drive revenue and profit growth with better targeting•   Increase customer profitability and share of wallet
Align strategy and tactics across  functions •   Manage and execute at all levels based on common view of information and common performance metrics•   Improve efficiency and reduce costs while maintaining good product quality and customer satisfaction•   Identify and replicate operational best practices
Leverage existing data,  applications, and IT  staff •   Add value and insight to CRM and ERP applications•   Get faster time-to-value with lower cost and risk•   Lower the total cost of ownership compared to custom built solutions

Oracle BI Applications Components & Architecture

Oracle BI Applications Components

  • Source system (eBS, Peoplesoft, JDE, Siebel, Fusion, SAP)
  • ETL (Data Warehouse Administration Console (DAC) + metadata, Informatica + metadata) – Probably informatica will be replaced somewere in the future by ODI.
  • Data Warehouse Database (Prebuilt schema)
  • Oracle BI Enterprise Edition (Repository metadata, Web Catalog metadata) – repository contains the mapping of the physical db schema into the logical business attributes,  Web catalog contains reports and dashboards
  • Client Tools to maintain all components

img8

 Oracle BI Applications Architecture 

img9

 ETL – DAC & Informatica

  • Highly Parallel execution
  • Multistage and Customizable
  • Supports Deployment Modularity
What is the DAC?

Tool to manage the prebuilt OBIA data warehouse

  • Create prebuilt data warehouse schema
  • Contains high level semantic ETL metadata
  • Run & Monitor ETL processes (Executes Informatica workflows) Knows the correct execution order.
About DAC Repository Objects
  • Containers / Adaptors
    • Information on source system metadata (per version)
  • Tables
    • Schema information
    • Table relationships
    • Indices (ETL / Query)
  • Tasks
    • Source / Target tables
    • Full and incremental commands
    • Phases
  •  Subject Areas
    • Defined by one or more star schemas
    • Assembling a Subject Area automatically collects the tasks that need to be run to populate the star schemas
  • Execution Plans
    • Defined by one or more Subject Areas from one or more containers/adaptors
    • Building an Execution Plan results in ordered execution graph of the collection of tasks from the Subject Areas

img10

What is Informatica?

Informatica is a Data Integration Platform

  • A platform to define logic to Extract-Transform-Load data into data warehouse

ETL Objects

  • Mappings – define transformation logic to load a certain warehouse table
  • Sessions – Compiled versions of Mappings
  • Workflows – A collection of Sessions
How does DAC interact with Informatica?

DAC Orchestrates ETL routines written in Informatica
Uses the command line interface tools of Informatica to run workflows

  • PMCMD / PMREP

Consolidates runtime / database specific / SQL / application level parameters into a parameter file while invoking the workflows
Collect statistics

  • Workflow status
  • Number of rows processed
  • Read/Write throughputs
Informatica Mappings – 2 Stage-Loading

Source Dependent Extract (SDE)

  • Extracts (changed) data from source(s) to staging table

Source Independent Loads (SIL)

  • Loads data from staging table to warehouse table
Informatica Mappings 

img11

img11c

Data Warehouse 

  • Abstracted Rich Data Model
  • Conformed Dimensions
  • Heterogeneous Database support
  • Database specific indexing
Syntax
  • W_     Warehouse
  • _DS   Dimension staging
  • _D     Dimension
  • _FS    Fact staging
  • _F      Fact

OBIEE – Repository

  • Logical to Physical Abstraction Layer
  • Calculations and Metrics Definition
  • Visibility & Personalization
  • Dynamic SQL Generation
Common Enterprise Information Model

Single Consistent View and User Self-Sufficiency

img12

One more thing…
Even more value under the surface

Metrics used in Reports & Dashboards – Not all measures in presentation layer used in reports & dashboards
Metrics in Subject Areas                       – Subset of logical measures are exposed in presentation layer
Metrics in Logical Layer                        – Aggregations, time series calculations and derived calculated measures extend physical measures
Metrics in Physical Warehouse              – Measures from physical columns in data warehouse

img12,5

OBIEE – Reports & Dashboards 

  • Role Based Dashboards
  • Analytic Workflow
  • Guided Navigation
  • Alerts & Proactive Delivery
  • Security / Visibility
  • Integrated BI

img13

All BI Applications are BI Mobile Certified

Typical Effort & Customization balance

img14

 

The post AYTS: Summary of the Introduction of Oracle Business Intelligence Applications appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2013/04/01/ayts-summary-of-the-introduction-of-oracle-business-intelligence-applications/feed/ 0
BPM PS6: A first brush on the new Case Management functionality http://technology.amis.nl/2013/04/01/bpm-ps6-a-first-brush-with-the-new-case-management-functionality/ http://technology.amis.nl/2013/04/01/bpm-ps6-a-first-brush-with-the-new-case-management-functionality/#comments Mon, 01 Apr 2013 13:29:49 +0000 http://technology.amis.nl/?p=22492 Case management is a way of modeling very flexible and data intensive business processes. Case management enables you to handle unstructured, ad-hoc processes and their contents and information so that you can make optimal business decision. It focuses on unpredictable business processes which rely on worker knowledge and involve human participants. Case management relies on [...]

The post BPM PS6: A first brush on the new Case Management functionality appeared first on AMIS Technology Blog.

]]>
Case management is a way of modeling very flexible and data intensive business processes.

Case management enables you to handle unstructured, ad-hoc processes and their contents and information so that you can make optimal business decision. It focuses on unpredictable business processes which rely on worker knowledge and involve human participants. Case management relies on content and information that help the participants make a decision .

A case can be a collection of information, processes, tasks, rules, services. It requires the worker knowledge, their involvement and active collaboration.

Case management enables you to only define the different activities a user can perform to achieve a goal without defining the workflow process. However it supports dynamic workflows, structured processes and a combinations of both.

A case definition contains various case activities that represent the different work that the user can perform in the context of a case.
ps6_1

                              Case State Model

Creating a Case
ps6_2
ps6_3
ps6_4

Configuring a Case
BPM Studio creates the new case specified and displays it in the Case Editor so that you can configure it.

The case file has the .case extension. There is only one case file per BPM project.

General tab
In this tab you can configure the general properties of a case, the milestones and possible outcomes.
ps6_5

A case can define various milestones. Milestones represent the completion of a deliverable or a set of related deliverables. They are checkpoints that indicate the progress of a case. Stakeholders can use them to obtain a high level idea of the status of the case.

Outcomes are user defined values that are assigned to the case when it is completed. For example in a medical treatment case, the outcomes when it completes can be: treated, no follow up, misdiagnosed, chronic and untreatable.

Creating a Case Activity
A case activity represents a specific work in the context of a case.

Case activities are tasks that you can call from a case. Case activities can be a human task, a BPMN process or a custom case activity.

You can create case activities in the following ways:

  • Promote a BPMN process as case activity
  • Promote a Human Task as case activity
  • Create a custom case activity

The following attributes of a case activity define their behavior:

Automatic case activities are invoked automatically by the system. Manual case activities are available in the task library. Users can invoke manual activities from the library.

Repeatable case activities can be invoked more than once in a case. Non repeatable case activities can be invoked only once. Already invoked manual case activities do not appear in the library.

You must invoke Required activities at-least once before the case is closed.

Non-conditional manual activities are available in library by default until you invoke them. After invocation, repeatable activities are still shown in the library. Conditional manual activities are available in the library if they are activated through business rule. Non conditional automatic activities are invoked after Oracle Business Process Manager starts a case. Conditional automatic activities are invoked if they are activated by rules.

By default the task library contains the following case activities:

  • Simple Workflow to create simple human tasks. You can configure the task title, priority, due date, comment, assignment type and assignees. The supported assignment types are: simple, sequential, parallel, FYI.
  • E-mail Notifications to send email

All case activities can be rated (at the activity definition level) from values 1 to 5.

If you want a case activity to run after another case activity, then you must define a condition in the second activity that indicates it runs after the first activity completes.

You can create a case activity based on a BPMN process. This exposes the BPMN process as a case activity. A case activity is one single item that the case worker can perform.

When you create a case activity Oracle BPM Studio generates output arguments for all the arguments in the multiple end points of the BPMN process. However if you want to cover the input arguments of a process that contains multiple start points, then you must create a case activity for each of the start points.

The BPMN process must already exist. You can use synchronous and asynchronous BPMN processes. The case activity only supports message start and end points.

Promote a BPMN process to case activity
ps6_6
ps6_7
BPM Studio creates the case activity and opens it in the Case Activity editor so that you can configure it.ps6_8

Promote a Human Task to Case Activity
ps6_9
ps6_10

BPM Studio creates the case activity and opens it in the Case Activity editor so that you can configure it.
ps6_11

Create a Custom Case Activity
You can create a custom case activity based on a Java class.

Custom case activities enable users to create their own case activities, for example a schedulers. To the end user there is no difference from the other types of case activities.
ps6_12
ps6_13
The Java class must implement the oracle.bpm.casemgmt.caseactivity.ICaseActivityCallback interface.

The callback class must be part of the composite, or must add it to the workflow customization classpath.

BPM Studio creates the case activity and opens it in the Case Activity editor so that you can configure it.

Input parameters can be of the ‘Case data’ or ‘User input’ type. By default input parameters have the value of case data. You can change this to use user input if the input comes from the user.

You must also define the case data in the .case file. You must define case activity input/output parameters in the same order as of the BPMN process or Human Task. The name of the case data or the input/output data elements must match the name of the BPM process or Human Task argument elements. If the input parameter is of the type user input, then you can save this value as case data. You can save the value of output parameters as case data.To do this, the name of the case activity output parameter must match the root element name of the BPMN process or Human Task argument.
ps6_14

Configuring a Case Activity
You can edit a case activity using the Case Activity editor. After you create a case activity BPM Studio opens the case in the Case Activity editor for you to configure it.

You can configure the following basic properties for the case activity you created:

  • Automatic
  • Required
  • Repeatable
  • Conditionally Available

Global activities are custom case activities that are global and not part of any composite. They apply to all cases regardless of their type. They are identified by global flag true. You cannot design global activities using Oracle BPM Studio. You must add the callback Java class for a global activity to the workflow customization classpath.

After creating the global case activity you must register it using the registerCaseActivity class from the Oracle Fusion Middleware Business Process Management Suite Java API Reference. To do this you must unmarshall the case activity document and pass the CaseActivity as a parameter.

You can choose to store the case documents in an enterprise content manager. To do this you must configure the case with the enterprise content manager data.

Case documents are stored in the folder you specified while developing the case.To perform operations on documents, use the CaseStreamService.

Configure the case data
ps6_15

The document location is the folder in the enterprise content management system where all the documents related to the case instance are stored. This folder may contain other subfolders. The case document folder name is created by concatenating the parent folder name and the case instance folder name you provide.

Configure Enterprise Content Management

By default Oracle BPM Suite is configured to use an Oracle Database document store. You can use the following enterprise content managers for storing case documents:

  • Oracle UCM
  • Alfresco CMIS

Configuring Events

You can define custom events that represent manual actions that can happen while processing the case.

Case workers raise events to indicate that something occurred. The occurrence of an event may trigger the activation of a case activity or mark a milestone as completed. For example, if you are waiting for a fax in a case, when it arrived the case worker can raise an event indicating its arrival.

A case can define various events that represent the manual actions that can occur during the processing of the case.
ps6_16

Defining Stakeholder Permissions
ps6_17

You can define multiple stakeholders for each case you define. Only stakeholders can perform actions on case objects that are part of a case.

The administrator decides which actions each stakeholder can perform. By default, during deployment Oracle BPM grants stakeholders all the available permissions. After deployment the administrator can remove non-relevant permissions.

Future redeployments may add new stakeholder application roles and new permission tag roles, but the existing ones are not affected. Undeploying a case does not affect any grants or application roles.

Default Permissions by Case Object

Number Resource (Case Object) Allowed Actions
1 CASE READ, UPDATE
2 COMMENT READ, UPDATE
3 DOCUMENT READ, UPDATE
4 DATA READ, UPDATE
5 EVENT INVOKE
6 ACTIVITY INVOKE
7 MILESTONE READ, UPDATE
8 STAKEHOLDER READ, UPDATE
9 HEADER READ, UPDATE

Permissions enable you to define which users can update the case. Only users with read/write OPSS permission can see or update case objects tagged with permissions.

You can attach permissions to case objects such as documents and data.

You can define your own set of permissions. The UI shows the default permissions PUBLIC and RESTRICTED. You can modifiy these default permissions.
ps6_18

Using Business Rules
You can use business rules to decide which case activities to activate for automatic or manual initiation. You can also use rules to mark a milestone as achieved or revoked.

Oracle BPM fires business rules on every case event. Case events are logical events that occur while running the case. The following list enumerates the available case events:

Case Events that can fire a business rule

Name Description Attributes
CaseLifeCycleEvent Life cycle event state, lifecycleEvent
CaseMilestoneEvent Milestone event milestone, type
CaseActivityEvent Activity event activityName, type
CaseDataEvent Data event dataName
CaseDocumentEvent Document event document, documentName, type
CaseCommentEvent Comment event Comment
UserDefinedEvent User event eventName, event

The business rule dictionary created when you create the case is linked to a common base dictionary in Oracle MDS. The business rule dictionary of a case supports the following operations:

  • Automatically invoke conditional automatic activities from a business rule
  • Publish conditional manual activities to the task library from a business rule
  • Withdraw an activity from a business rule
  • Achieve and revoke milestones from a business rule

When you create a case, Oracle BPM automatically generates an associated business rule dictionary. This case business rule dictionary enables you to define business rules with rule conditions based on the case.

Table 31-3 Rule Functions

Rule Function Description Parameters
activateActivity(String activityName) Invokes conditional automatic case activities and conditional manual case activities. activityName: the name of the activity to invoke.
withdrawActivity(String activityName) Withdraws a case activity. activityName: the name of the activity to withdraw.
reachMilestone(String milestoneName, String comments) Marks a milestone as achieved. milestoneName: the name of the milestone to mark as achieved.

comments: a comment stating the reason to mark this milestone as achieved.revokeMilestone(String milestoneName, String comments)Revokes a milestone.milestoneName: the name of the milestone to revoke.

Any stakeholder can close a case. Closing a case is a logical operation that marks its status as closed. You can close a case by invoking the closeCase method in the CaseInstanceService class. You can provide an optional outcome parameter and a comment when you close a case.

Invoke a case from a BPMN process:
Add a service task that invokes the case and an operation
ps6_19

Available operations are: abortCase, closeCase, reopenCase, suspendCase, resumeCase, attainMilestone, revokeMilestone.

It depends on the operation which input and output variables must be set.
ps6_20
The case management engine publishes events to Oracle EDN. These events capture system and user events in the case. System events include case lifecycle, case activity lifecycle, milestone, document, and comment related events. You can design your process to listen to these events and react to them.

If you want to use correlations with a particular event, then you can trigger a BPMN process from a BPMN based case activity. You must pass the caseId to the message that initiates the process and use it as a correlation key.

At first sight the Case Management functionality seems the be very promising and I see a lot of possible opportunities in the project I’m currently working on.

The post BPM PS6: A first brush on the new Case Management functionality appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2013/04/01/bpm-ps6-a-first-brush-with-the-new-case-management-functionality/feed/ 0