12 Using Oracle SOA Composer with Oracle Business Rules at Runtime
Use the Oracle SOA Composer application to work with a deployed dictionary and tasks that are part of a SOA composite application.
12.1 Introduction to Oracle SOA Composer
Oracle SOA Composer is a web-based application that enables you to work with Oracle Business Rules dictionaries and tasks for deployed applications. Oracle SOA Composer accesses a dictionary or a task in an MDS repository.
Oracle SOA Composer supports viewing and editing different types of metadata artifacts, such as DVM documents, SOA composites, and Oracle Business Rules dictionaries. You can view the different types of metadata by Types View or Deployment View, as shown in Figure 12-1.
The Deployment View is the default. Choose the Types View to see artifacts listed by type: Business Rules, Domain Value Maps, Human Tasks, or SOA Composites.
Figure 12-1 Oracle SOA Composer Types View

Description of "Figure 12-1 Oracle SOA Composer Types View "
The Deployment View has two nodes: SOA-Infra and Shared. The default node is a SOA partition created and managed in Enterprise Manager. The Shared folder displays rules or DVMs created in JDeveloper and deployed as shared artifacts.
From either view, click artifacts in the navigation tree to open them in separate tabs.
In SOA Composer, the Verbal Rules and Business Phrases features do not appear if you have not installed BPM.
Use the search field just above the View drop down to quickly find and filter types by name, as shown in Figure 12-2. Click to open artifacts from this page.
12.1.1 Creating and Publishing Sessions
Click an artifact to open it in read-only mode. If you plan to make changes to an artifact, click the Edit Session button. Most action buttons only become active if you are in a session. When you are done making changes, click Publish. All changes in a session are committed to the main repository, can be seen by others, and the server will begin executing. If you have validation errors, you cannot publish, though you can save rules with validation errors and work on them again in another session.
The Discard button enables you to cancel out of changes that you do not want to save. If, after making some changes in a session, you wanted to go back to the original state that you started from, click Exit Session. Click Edit Session again to see the last saved session information.
These icons and buttons provide more information:
Table 12-1 SOA Composer Buttons
Button | Description |
---|---|
|
Hover over this icon to see Session Details. |
|
Click to maximize the tabs section. This increases screen space when writing or editing rules. Click again to restore the view. |
|
Click to validate your changes. The system validates when you save and you can save rules with validation errors, though you cannot publish. For more information about validating, see Validating and Diagnosing an Oracle Business Rules Dictionary. |
|
Click the bookmark if you want to avoid the search/deployment view in a future session. For more information, see Creating a Bookmark. |
Save Changes in Current Tab or Save Changes in All Tabs |
Click to save as appropriate. |
Get Context Sensitive Help |
Click to view the online help file. |
Close All, Close Others |
Click the drop down and select to close tabs. |
|
The Actions drop down enables you to use the compare and merge dictionaries, work with Decision Tables in Microsoft Excel, and review dictionary settings. Diff Merge enables you to compare the currently selected dictionary with the File System, the Published Version, or the Saved Version. If there are differences, you can choose to merge the dictionaries. For more information about comparing or merging dictionaries, see Comparing and Merging Oracle Business Rules Dictionaries. Import From Excel enables you to import decision tables from Excel. Export To Excel enables you to export decision tables and edit them in Excel. For more information about working with Excel, see Editing Decision Tables in Microsoft Excel. Dictionary Settings enables you to set dictionary preferences. For more information about reviewing dictionary settings, see Reviewing Dictionary Settings. |
Diagnostics, History Center, Save Log, Validation Log |
At the bottom of the SOA Composer page are four tabs: Diagnostics, History Center, Save Log, and Validation Log. Use these tabs to validate changes to rules and perform and resolve changes to artifacts. For more information about these tabs, see Validating and Diagnosing an Oracle Business Rules Dictionary. |
12.1.1.1 Publishing Changes for an Oracle Business Rules Dictionary
After you verify dictionary modifications, click Publish to commit those changes to the MDS repository.
To publish changes to an Oracle Business Rules dictionary:
Note:
A dictionary with validation errors can be saved, but it can be committed only after correcting the validation issues.
12.1.1.2 Creating a Bookmark
Create a bookmark to avoid the search or deployment view.
To open a dictionary using a known URL:
12.1.1.3 Reviewing Dictionary Settings
Click the Dictionary Setting button to set preferences.
Table 12-2 Dictionary Settings
Dialog Sections | Settings |
---|---|
Execution section |
Rule Execution Algorithm: choose RETE or Non-RETE. For more information, see 1.3 Oracle Business Rules Engine Architecture. The Rete Algorithm and The Non-Rete Algorithm |
Choices section |
Phrase Suggestions: choose Business Phrases, Auto Suggestions, or All. |
Data Model section |
Global Qualifier Pattern: confirm {member} of {fact}. Translations: click to translate {member} of {fact}. Validate: click to validate {member} of {fact}. |
12.1.2 Using Oracle SOA Composer User Authentication
Figure 12-5 shows the Oracle SOA Composer login page. This page allows Oracle SOA Composer to authenticate the specified user.
Figure 12-5 Oracle Oracle SOA Composer Login Page

Description of "Figure 12-5 Oracle Oracle SOA Composer Login Page"
To login to Oracle SOA Composer:
For information about creating and managing users and groups, see the integrated SOA Composer Console online help.
12.1.3 What You Need to Know About SOA Composer Access Control and User Authentication
Oracle SOA Composer supports user and password access control and only authenticated users can use Oracle SOA Composer. However, Oracle SOA Composer does not provide finer grained access control. For example, Oracle SOA Composer does not support access control for individual rulesets or rules within a dictionary.
Oracle SOA Composer does support access control to metadata. Using Oracle SOA Composer, only users with the SOADesigner application role can access the metadata from Oracle SOA Composer. By default, all users with WLS Administrator privileges have this role.
For more information about assigning the SOADesigner role to a non-admin user who requires access to Oracle SOA Composer, see Managing Application Roles in Oracle Enterprise Manager Fusion Middleware Control Console in Administering Oracle SOA Suite and Oracle Business Process Management Suite.
12.2 Setting Accessibility Options
Accessibility settings help you read all components of the application.
You can set accessibility options in SOA Composer for the current instance, or for all instances.
12.2.1 How to Set Accessibility Features Before Logging In
SOA Composer presents the Accessibility menu on the login page, so you can configure accessibility before you log in. These settings can be persisted for only the current session or for all sessions.
To set accessibility options for the current session only:
12.3 Opening and Viewing an Oracle Business Rules Dictionary
When you open Oracle SOA Composer, it connects to MDS and displays the available composite applications that contain dictionaries. In addition, it lists the shared dictionaries, and these shared dictionaries can also be viewed and edited.
As shown in Figure 12-8, Oracle SOA Composer shows a navigation tree that displays a left-side panel with a list of metadata artifacts. Details for the selected item are shown on the right-hand side. Oracle SOA Composer includes the following tabs:
-
Rulesets
-
Value Sets
-
Globals
-
Business Phrases
-
Tests
-
Explorer
-
Facts
-
Decision Functions
-
Links
-
Translations
Note:
In SOA Composer, the Verbal Rules and Business Phrases features do not appear if you have not installed BPM.
12.3.1 How to View and Edit Rulesets
Oracle SOA Composer displays the rulesets in the dictionary, as shown in Figure 12-9. You can select a ruleset to display a detailed view of the ruleset. You can add and delete rulesets and rules.
Figure 12-9 Using the Oracle SOA Composer Rules Dictionary Rulesets Tab to View Rules

Description of "Figure 12-9 Using the Oracle SOA Composer Rules Dictionary Rulesets Tab to View Rules"
To use the ruleset tab:
For detailed documentation of fields and other UI controls, click Help, Help for This Page from within SOA Composer.
For more information about Decision Tables, see Editing Decision Tables in an Oracle Business Rules Dictionary.
For more information about Verbal and General Rules, see Editing Rules in an Oracle Business Rules Dictionary
For more information about Rulesets, see Working with Rulesets and Rules .
12.3.1.1 How to Add Verbal Rules in SOA Composer
Verbal rules provide a flexible way to author rules using natural language statements to express rule logic in domain specific sentences.
To add verbal rules in SOA Composer:
-
In Oracle SOA Composer, open a Rules file.
-
Click the Rulesets tab, and click the Create Session button. The action buttons are enabled.
-
Select the Ruleset from the drop down list.
-
Click the Rules panel to add Decision Tables, Verbal Rules, or General Rules.
To add Decision Tables, see Adding a Decision Table.
To add Verbal Rules:
-
Click the Add icon and select Verbal Rules.
The Verbal Rules window appears.
-
In the If field, add a test. Once done, add an action in the Then field.
Note that when you add a test or an action, the test or the action becomes editable. Type in a filter in the If field, for example, 'customer number', all related options are displayed in the drop down list.
-
Use the up/down arrow keys to select and use the right arrow key on the selected option to get similar choices.
To get more choices in the list, scroll to the end of the drop down list and select the More option by using either keyboard or mouse.
-
From the list, select existing business phrase or you can instantiate a new business phrase based on what you typed.
Once a choice is set, the text field is no longer editable and the existing parameters become links. The links when clicked becomes editable. To set the value, double-click the links.
Note:
Some of the important keyboard-based interface for Verbal Rules are:
-
Copy: ctrl + c
-
Paste: ctrl + v
-
Cut: ctrl + x
-
Move row up: ctrl + up
-
Move selection up: up arrow
-
Move row down: ctrl + down
-
Move selection down: down arrow
-
Delete row: ctrl + delete
-
Add new row: ctrl + enter
-
Edit row: enter
Important keyboard gestures for setting parameter values:
-
Avoid having a selected row while specifying parameter values. Since 'enter' makes the selected row editable and you may be trying to set a parameter value.
-
Using the Esc button within the parameter text field converts it back to a link without setting the value.
-
Using tab or entering key values does not make the link editable when its in focus. You must use the mouse or use the enter key to activate the link.
-
To set a parameter value, you can tab out of the parameter text field or press enter.
-
-
-
When done, click Save Changes in Current Tab. If you are ready to apply the changes to the runtime version, click Publish.
To add General Rules, see How to Add General Rules.
12.3.2 How to View and Edit Value Sets
When you open a dictionary and select the Value Sets tab, if the dictionary contains value sets, the table shows all available value sets. Value sets from linked dictionaries are also displayed. You can select a linked value set and click the Edit button to view the values. However, a linked value set is not editable even in the edit mode.
For information on the Oracle SOA Composer edit mode, see Getting Started with Editing a Dictionary.
To view value sets in Oracle SOA Composer:
For detailed documentation of fields and other UI controls, click Help, Help for This Page from within SOA Composer.
12.3.3 How to View and Edit Globals
When you open a dictionary Oracle SOA Composer displays the Globals tab. Globals can be final or not and can be edited in SOA Composer.
For the Value field, you can use the expression builder to set the value. To check for validity, you can click the Validate button.
To view globals in Oracle SOA Composer:
12.3.4 How to View and Edit Business Phrases
Use the Business Phrases tab to view and manage business phrases in your rules project.
Note:
In SOA Composer, Verbal Rules and Business Phrases features do not appear if you have not installed BPM.
To edit Business Phrase:
-
In Oracle SOA Composer, open a Rules file.
-
Click the Business Phrases tab, and click the Create Session button. The action buttons are enabled, as shown in Figure 12-13.
Figure 12-13 Using the Oracle SOA Composer Rules Dictionary Business Phrases Tab
Description of "Figure 12-13 Using the Oracle SOA Composer Rules Dictionary Business Phrases Tab" -
Click the action buttons to add, cut, copy or paste.
To add a Business Phrase, enter the following details:
-
Phrase - A phrase can be a test or an action. It can be an English phrase, for example, "calculate premium as {threshold} of {percentage}". You can mark the phrase as a draft to edit later by selecting the Make Draft button.
-
Parameters - You can edit, add, or delete the parameters in the parameters table. You can drag and drop parameters into the phrase field. You can also use the Insert parameter link to drop parameters into the phrase.
-
Mapping - The mapping section is used to map the business phrase to the internal test/action.
-
-
When done with changes, click Save Changes in Current Tab. If you are ready to apply the changes to the runtime version, click Publish.
For more information about business phrases, see Introduction to Verbal Rules and Business Phrases.
12.3.5 How to View and Edit Tests
At runtime, you can use SOA Composer to regression test rules. This enables business users to quickly check if a modified rule changes the existing functionality. The Tests tab only appears if you have a deployed composite and are in a SOA Composer session.
To view and edit tests:
12.3.8 How to View Decision Functions
In Oracle SOA Composer, you can view the decision functions that are available to the current dictionary by using the Decision Functions tab. Currently, even in a session, you can only modify the following fields and options:
-
Description
-
Rule Firing Limit
-
Check rule flow
-
Make stateless
-
Available Rulesets to fire
You cannot create any decision function, rename an existing decision function, or add or delete any input or output.
To view decision function names in Oracle SOA Composer:
- In Oracle SOA Composer, open a Rules file.
- Click the Decision Functions tab.
- You can view information on the following tabs: Inputs, Initial Actions, Outputs, and Rulesets Decision Functions as shown in Figure 12-17.
12.3.9 How to View Linked Dictionary Names
In Oracle SOA Composer, you can view the names of the dictionaries to which the current dictionary is linked by using the Links tab as shown in Figure 12-18. Currently, even in a session, you can view the linked dictionary names, but you cannot link to a dictionary or delete an existing link to any dictionary.
To view linked dictionary names in Oracle SOA Composer:
12.3.10 How to Work With Dictionary Links in an Oracle Business Rules Dictionary
An Oracle Business Rules dictionary can be linked to other dictionaries. The complete data model defined by a dictionary and its linked dictionaries is called a combined dictionary. You can create multiple links to the same dictionary. However, in this case, all but the first link is ignored.
You cannot use Oracle SOA Composer to link dictionaries. However, if a deployed composite already has linked dictionaries, using Oracle SOA Composer, you can view the linked dictionary names and make use of the Globals, Value Sets, and Rulesets of the linked dictionaries across applications. For example, you have an application called App1
that contains a dictionary called Dict1
. Dict1
is linked to another dictionary called Dict2
. Because Dict1
is linked to Dict2
, the objects of Dict2
will be available for use in App1
.
For more information on viewing linked dictionary names, see How to View Linked Dictionary Names.
In Oracle SOA Composer, you can use the Prefix Linked Names check box in the Links table to either display or hide the linked dictionary name that is prefixed to the all the items in the dictionary such as Globals, Value Sets, and Rulesets. Selecting the check box prefixes facts from the linked dictionary with its dictionary name, and deselecting hides the linked dictionary facts prefix. By default, the Prefix Linked Names check box is in selected state as shown in Figure 12-19.
For more information about linked dictionaries, see What You Need to Know About Dictionary Linking.
12.3.11 How to View and Edit Translations
Use the Translations tab to view the phrases included in the selected dictionary and their translated strings.
The translation table contains all translated strings in the current locale as well as earlier locales. For example, the current locale is Japanese and you edit some translations and save them. If you log out, and then log back in with a different locale, for example, English, then the translation table will contain columns for both English and Japanese.
To translate phrases:
12.4 Getting Started with Editing a Dictionary
When you select and open a dictionary, Oracle SOA Composer shows the dictionary in read-only mode. On each tab in read-only mode, use the Session buttons to make changes and then Save them to a work area. To apply the changes to the runtime version of the dictionary, click Publish.
For more information about how to use SOA Composer features, see Creating and Publishing Sessions.
12.4.1 What You May Need to Know About Localized Number Formatting Support in Oracle SOA Composer
In Oracle SOA Composer, number formatting changes based on the browser locale. For example, you are using Oracle SOA Composer with U.S. English as the browser language. You enter a floating-point data, such as 34533223.2345, as a value. If you wish to view the data in any other language, such as French, you need to:
-
Modify the browser locale for the instance to French.
-
Click the Refresh button of the browser to view the number formatting changes
In French, the value should display as 34533223,2345.
Note:
The grouping and decimal separators specified in Oracle SOA Composer overrides the locale-specific ones.
12.4.2 What You May Need to Know About Cutting/Copying and Pasting Rule Elements
You can cut/copy a value set or rule from one dictionary and open another dictionary in composer and paste it. However, cut/copy/paste works between different dictionaries within the same session.
Cutting/copying and pasting feature enables you to quickly create a new rule element based on an existing one, without having to create the new element from scratch.
The buttons in the Figure 12-21 help you with cut, copy and paste options.
Oracle SOA Composer enables you to cut/copy and paste the following elements of a rule:
-
Rules
-
Patterns
-
Conditions
-
Actions
-
Value sets
Cut/copy/paste is not supported for the following:
-
Globals
-
Links
-
Values
-
Decision Functions
Note:
The Paste button is disabled if multiple conditions or actions are selected. The button is enabled only on single selected condition/action. When pasting, the copied/cut items are added at the end of the list.
12.4.3 How to Edit Globals in an Oracle Business Rules Dictionary
In Oracle SOA Composer, selecting the Globals tab shows you a table listing the globals in the dictionary, as shown in Figure 12-22. To edit a global, select the appropriate row, and the entire row becomes editable. Make necessary changes as required.
Figure 12-22 List of Globals in the DIctionary

Description of "Figure 12-22 List of Globals in the DIctionary"
To add a global, click the Add Global button on the top. A new empty row is added. Make necessary changes to Name, Description, Value, Value Set, Type, Final, Consent. For more information on adding globals, see Working with Oracle Business Rules Globals.
To delete a global, select a row and click the Delete button.
12.4.4 How to Edit Value Sets in an Oracle Business Rules Dictionary
In Oracle SOA Composer, selecting the Value Sets tab displays a master list on the left which displays the value sets in the dictionary, and a detail section with a table that display the values. To edit a value set, click the appropriate Value Set in the master list and then click the value in the detail section that you want to change.
You can create a Range Value Set by clicking the Add button and selecting a type. This adds a new value set in the master list. Adding a range value automatically adds an end point for a range and a value for an LOV based on the datatype. You can modify the newly added value end point or value. Note that the alias is modified when an end point or value is changed.
For more information on adding value sets, see Working with Value Sets and Associating a Value Set with Business Terms.
To cut or copy a value set, select a row and click Cut or Copy. To paste a copied value set, click Paste.
To delete a value set, select a row and click Delete.
To edit Value Sets:
12.4.5 How to Edit Decision Functions in an Oracle Business Rules Dictionary
In Oracle SOA Composer, the Decision Functions tab displays a table listing the decision functions that are available to the dictionary, both parent and linked.
You can only modify the following fields and options:
-
Description
-
Rule Firing Limit
-
Check rule flow
-
Make stateless
-
Initial Actions
-
Rulesets and Decision Functions
To edit a decision function:
For more information on decision functions, see Working with Decision Functions.
12.4.6 What You May Need to Know About Oracle Business Rules Dictionary Editor Declarative Component
You can use the Oracle Business Rules Dictionary Editor declarative component to leverage the functionality of editing Rules Dictionaries in any ADF-based Web application. It enables you to edit business rules metadata artifacts, such as Globals, Value Sets, and Rulesets, by using the Rules SDK2 API.
For more information on Oracle Business Rules Dictionary Editor, see "Using the Oracle Business Rules Dictionary Editor Declarative Component" in Developing SOA Applications with Oracle SOA Suite.
12.4.7 What You May Need to Know About Oracle Business Rules Dictionary Editor Task Flow
Rules Dictionary Editor Task Flow, which is a wrapper around the Rules Dictionary Editor declarative component is used in ADF-based Web applications that require a task flow instead of a declarative component.
For more information on Oracle Business Rules Dictionary Editor, see Using the Oracle Business Rules Dictionary Task Flow in Developing SOA Applications with Oracle SOA Suite.
12.5 Editing Rules in an Oracle Business Rules Dictionary
SOA Composer provides an interface to the dictionary that enables you to edit most dictionary components, though you can only create and edit some dictionary components at design-time using the Rules Designer extension to Oracle JDeveloper.
In SOA Composer, Verbal Rules and Business Phrases features do not appear if you have not installed BPM.
12.5.1 Using the Rulesets Tab
Use the Rulesets tab to view and edit Rulesets, and the General Rules, Verbal Rules and Decision Tables they contain, in the currently selected Business Rules dictionary, as shown in Figure 12-25.
Figure 12-25 Using Oracle SOA Composer to Edit a Ruleset in a Dictionary

Description of "Figure 12-25 Using Oracle SOA Composer to Edit a Ruleset in a Dictionary"
Table 12-3 Rulesets tab
Button | Description |
---|---|
Rulesets drop down |
Click and select a ruleset from the list. |
|
Click to edit properties in the pop-up Advanced Property Editor. |
Add Ruleset |
Click to add a Ruleset. |
Delete Ruleset |
Click to delete a Ruleset. |
In the Rules master list, you can enter an alias and search for rules. Click Clear to clear the Search by Alias field. You can also sort rules--click the Sort Ascending or Sort Descending arrows to sort the IF/THEN detail panel.
Table 12-4 Rules master list buttons
Button | Description |
---|---|
Add |
Click to add a new Decision Table, a Verbal Rule, or a General Rule. |
Delete |
Click to delete. |
Cut, Copy, Paste |
Click to Cut, Copy, or Paste. |
|
Click the Sort Ascending or Sort Descending arrows to sort the IF/THEN detail panel. Click By Type and choose an option to sort by any of these options: Type, Name, Active, Effective Start or End Date, Priority. |
Search by Alias |
Enter an alias name to search for rules by alias name. |
|
Click Clear to clear search results. |
12.5.2 How to Edit Rules in an Oracle Business Rules Dictionary
Oracle SOA Composer enables you to edit the rules in a dictionary.
To edit a rule with Oracle SOA Composer:
12.5.3 How to Add a Rule
In Oracle SOA Composer you can add rules to a ruleset.
To add a rule in a ruleset:
- In a session, the Ruleset tab, select a ruleset of interest.
- In the rule area, click Add Rule and select to add either a Decision Table, Verbal Rule, or General Rule.
- In the IF area, enter search terms to get results and filter them further by pressing the right arrow to create the condition.
- In the THEN area for the rule, click Add Action to add the required action for this rule.
- When done, click Save Changes in Current Tab.
- If you are ready to apply the changes to the runtime version, click Publish.
12.5.4 How to Delete a Rule
In Oracle SOA Composer you can delete rules in a ruleset.
To delete a rule in a ruleset:
- In a session, the Ruleset tab, select a ruleset of interest.
- In the rule detail area, locate the rule you want to delete and click Delete.
- When done, click Save Changes in Current Tab.
- If you are ready to apply the changes to the runtime version, click Publish.
12.5.5 How to Show and Edit Advanced Settings for Rules
In Oracle SOA Composer you can edit advanced settings for rules in a ruleset. For more information on advanced settings, see Using Advanced Settings with Rules and Decision Tables.
To show and edit advanced settings in a rule:
12.5.6 How to Add Rule Conditions
In Oracle SOA Composer you can add conditions to a rule in a ruleset. Conditions within a rule use a tree representation. Use the toolbar at the top of the conditions tree to add, delete, cut, copy and paste. Within the condition tree, you can select a parent node and perform similar actions.
For more information on working with rule conditions, see Working with Rules.
To add rule conditions:
If no condition is selected, the condition is added at the end. If a condition is selected, a sibling to the selected condition is added.
The following are some of the available options for adding a condition:
-
simple test: Adds a simple test condition
-
variable: Adds a variable definition. The variable and its value can be represented as an inline business term definition.
-
(...): Adds a new simple test within a nested parenthesis
-
not(...): Adds a new simple test within a NOT nested parenthesis
Each nesting level provides a list with the preceding options to operate on a nested block.
For more information on tests, see How to Work with Extended Tests.
12.5.7 How to Delete Rule Conditions
In Oracle SOA Composer you can delete conditions for a rule in a ruleset. For more information on working with rule conditions, see Working with Rules.
To delete rule conditions:
12.5.8 How to Modify Rule Conditions
Using Oracle SOA Composer, you can edit conditions in a rule. You can select a rule condition for nesting or modify expression values within the condition. For more information on working with rule conditions, see Working with Rules.
To modify a condition in a rule:
You can use the Expression Builder, Condition Browser, Date Browser, and Right Operand Browser to edit the left and right-side expressions.
In addition to modifying the values, you can also change the form type of a condition. For example, a simple test can be changed to variable definition and so on. To change the form type of a condition, you need to select the condition by using the adjacent check box and select the required form type from the Selected Tests list.
12.5.9 How to Add Rule Actions
In Oracle SOA Composer you can add actions to a rule. For more information on working with rule actions, see Working with Rules.
To add rule actions:
12.5.10 How to Delete Rule Actions
In Oracle SOA Composer you can delete actions in a rule. For more information on working with rule actions, see Working with Rules.
To delete rule actions:
12.5.11 How to Modify Rule Actions
In Oracle SOA Composer you can modify actions in a rule. For more information on working with rule actions, see Working with Rules.
To modify rule actions:
For more information on number formatting in rules, see What You May Need to Know About Localized Number Formatting Support in Oracle SOA Composer.
12.5.12 How to Work with Advanced Mode Rules
In Oracle SOA Composer, you can work with advanced mode rules in a ruleset.
Note:
Advanced Mode capability has been maintained for backward compatibility only. We recommend that you use extended tests in simple mode to create any kind of condition that you need.
Everything that can be done in Advanced Mode can be done in simple mode. Advanced mode rules can be converted to equivalent simple mode rules simply by clearing the Advanced Mode check box.
For more information, see How to Work with Extended Tests.
To show and modify advanced mode rules:
12.5.12.1 Working with Advanced Mode Options
The Advanced Mode rules options enables you to create, modify, and delete patterns, as well as add, modify, and delete conditions and actions within a pattern.
Using the Advanced Mode rule options, you can:
-
Specify a pattern variable and select a fact type for the variable: You can directly enter the name of the pattern variable in the variable field. You can specify the fact type for the variable by using the fact type list as shown in Figure 12-30.
Figure 12-30 Specifying Pattern Variable and Fact Type
Description of "Figure 12-30 Specifying Pattern Variable and Fact Type"In the graphic example,
CustomerOrder
is a pattern variable ofCustomerOrder
fact type. -
Add a pattern: Click the Add Pattern button to create a pattern to the existing rule. Figure 12-31 displays an added pattern. The newly created pattern is blank.
-
Delete a pattern: Click the Delete Pattern button to delete a pattern from a rule.
-
Specify connectives: Two or more patterns are joined by a connective,
and
oror
. You can use the connective link to toggle between the connectives. -
Work with nested patterns: A nested pattern has patterns inside it. These are enclosed within curly braces ({}). The pattern operator list is followed by the open curly brace. You can create a nested pattern by clicking Surround pattern with parentheses button and you can remove the pattern nesting by clicking the Remove parentheses from pattern button as shown in Figure 12-32.
Figure 12-32 Adding and Removing Pattern Nesting
Description of "Figure 12-32 Adding and Removing Pattern Nesting"Inside the open curly brace, you can specify a pattern and then click the Add Test down arrow to add conditions to the nested pattern as well as add another pattern to the same pattern block.
A nested pattern block ends with a closing curly brace. You can have multiple levels of nested patterns, which means that inside a nested pattern, you can have another nested pattern. You can click the Delete Nested Pattern Block button to remove the entire nested pattern block.
When you nest a pattern, an operator list is displayed with (for each case where) selected as the default operator in the operator list. The other items are there is a case where, there is no case where, and aggregate and so on.
The user interface remains the same as (for each case where) when you select there is a case where or there is no case where as the operator. However, when you select aggregate, the user interface changes. For an aggregate operator, you must enter a variable in the available field and select a function from the function list. The function list displays the following:
-
count
-
average
-
maximum
-
minimum
-
sum
-
collection
Except for the
count
function, all the other functions require an expression. You can specify an expression in the available field or launch the Condition Browser window. -
In the Advanced Mode of rules, in the THEN part, you can add any required action ranging from assert
, call
, modify
to even conditional actions such as if
, else
, elseif
, while
, for
, if
(advanced)
, and while
(advanced
.
12.5.13 How to Work with Extended Tests
Extended tests should be used when building complex rules. Extended tests, or Simple Mode, replaces Advanced Mode rules.
Note:
Advanced Mode capability has been maintained for backward compatibility only.
Everything that can be done in Advanced Mode can now be done in Simple Mode. The UI has been streamlined and improved to enable you to more easily create complex rules and tests, as shown Figure 12-33
Advanced mode rules can be converted to the equivalent simple mode rules by clearing the Advanced Mode check box in the Advanced Property Editor.
Extended tests are only applicable to general rules, decision tables, and while defining business phrases. They are not visible in verbal rules.
In addition to the original four tests (shown first in Table 12-5) there are new forms:
Table 12-5 Extended Tests
Forms | Description |
---|---|
simple test |
This is the building block for conditions. Compares a value against another value, range or set. For example: Emp.salary > 1000 |
variable |
Initializes variables. For example: age = Duration.years between(Emp.birthdate,RL.date.get current()) |
nested test |
Encapsulates tests in a containing block. For example: (age > 50 or Emp.salary > 50000) |
negated test |
Negates a test. For example: not(age > 50 and Emp.salary > 50000) |
all of the following |
all of the following are true. For example: (age > 50 and Emp.salary > 50000) |
any of the following |
some of the following are true.For example: IF e is a Emp and there is no Emp where Emp.salary < e.salary <insert test> <insert test>THEN assign e.isLowestPaid = true |
is a |
Defines a fact. For example: e is a Emp |
there is a case where |
This test has 1 or more child tests that are ANDed. The child tests are all true for at least 1 case. A case is a binding of facts to contained is a tests. Must have is a descendant. Example: There is a case where e is a Emp and d is a Dept and e.salary > 1000000 and d.name == "Marketing" and d.employees contains e |
there is a <factType1>,...<factTypeN> where#* This test has N or more child tests that are ANDed |
Hidden <factType> is a <factType> tests as first N children. The child tests are all true for at least 1 case. It is legal to have no visible child tests, in which case the where keyword should be suppressed. Example: IF there is a Emp, Dept where Emp.salary > 1000000 and Dept.name == "Marketing" and Dept.employees contains Emp THEN call print "there is a highly paid marketer!" IF there is a Emp THEN call print "somebody works here!" |
there is no case where |
This test has 1 or more child tests that are ANDed. The child tests are true for no case (no binding of facts to contained is a tests satisfy all the other tests). Must have is a descendant. |
there is no <factType1>,...,<factTypeN> where |
Hidden <factType> is a <factType> as first N children The child tests are true for no case |
aggregation |
This test has 0 or more child tests that are ANDed. Must have is a child (may be hidden). v is the sum|average|minimum|maximum|count|collection of <expression> where Where clause omitted when there are no visible child tests. IF number of employees is the count of Emp THEN call print "number of employees: " + number of employees IF number of male employees is the count of Emp where Emp.gender == "M" THEN call print "number of male employees: " + number of male employees Note that in both rules above, the SDK will create a hidden nested is a test for Emp. You can also use an explicit is a IF number of male employees is the count of e where e is Emp and e.gender == "M" THEN call print "number of male employees: " + number of male employees |
boolean expression |
Captures a boolean expression. For example: isEligible(Emp) |
Figure Figure 12-34 shows an example of "there is a case where" form:
Figure Figure 12-35 shows an example of "there is no case where" form:
For information about how to build complex rules, see How to Add Rule Conditions.
For more information about Advanced Mode, see How to Work with Advanced Mode Rules.
12.5.14 How to Work with Tree Mode Rules
In Oracle SOA Composer you can work with tree mode rules in a ruleset. For more information on working with tree mode rules, see Working with Tree Mode Rules.
To show and modify tree mode rules:
12.5.15 What You May Need to Know About Oracle Business Rules Editor Declarative Component
You can use the Oracle Business Rules Editor composite declarative component to leverage the functionality of editing business rules in any ADF-based Web application. It enables you to edit business rules available in rulesets by using the Rules SDK2 API.
For more information on Oracle Business Rules Editor, see Using the Oracle Business Rules Editor Declarative Component in Developing SOA Applications with Oracle SOA Suite.
12.5.16 What You May Need to Know About Oracle Business Rules Dictionary Editor Declarative Component
The Oracle Business Rules Dictionary Editor is a composite declarative component that can be embedded in any ADF-based web application. It enables you to edit business rules metadata artifacts, such as globals, value sets, and rulesets, by using the Rules SDK2 API.
For more information on Oracle Business Rules Dictionary Editor, see Using the Oracle Business Rules Dictionary Editor Declarative Component in Developing SOA Applications with Oracle SOA Suite.
12.5.17 What You May Need to Know About Oracle Business Rules Dictionary Editor Task Flow
The Oracle Rules Dictionary Editor Task Flow is basically a wrapper around the Rules Dictionary Editor declarative component. The task flow is used in ADF-based web applications that require a task flow instead of a declarative component.
For more information on Oracle Business Rules Dictionary Editor Task Flow, see Using the Oracle Business Rules Dictionary Editor Task Flow in Developing SOA Applications with Oracle SOA Suite.
12.6 Using the Oracle SOA Composer Browser Windows
Oracle SOA Composer provides browser windows that helps you to work with different types of expressions such as rule expressions, XPATH expressions, date expressions, and so on.
The different types of browsers provided by Oracle SOA Composer are:
12.6.1 Expression Builder
Expression Builder is used to build different types of expressions such as XPATH expressions, rule expressions, and so on.
Expression Builder has a field where you can enter the expression directly. It has four tabs: Variables, Functions, Operators, and Constants. Each of these tabs display data in a tree structure. The Variables tab displays all the variables in the rules meta-data. The Functions tab displays all the functions in the rules meta-data. The Operators tab displays operators such as +, -, *, and so on. The Constants tab displays all the constants that exist in the rules meta-data.You can switch between the tabs, select an item in the tree, and click the Insert Into Expression button to insert the selected item at the cursor position in the expression field. When an item is selected in the tree, the Content Preview and the Description areas display more information about the selected item. Once you create the expression and click OK, the newly created expression appears in the field that is available to the left of the expression builder button.
Figure 12-37 displays the Expression Builder browser.
Figure 12-37 The Expression Builder Browser

Description of "Figure 12-37 The Expression Builder Browser"
12.6.2 Condition Browser
The Condition Browser has a field, a hierarchical tree, and an Expression Builder embedded inside it. You can enter the expression directly in the field, or select an item from the tree. Condition Browser supports filtering. For example, when you start entering customer
the tree is narrowed down to items with customer
.
When an item is selected in the tree, the new selection appears in the field immediately. You can also use the embedded Expression Builder to create an expression.
Once the Expression Builder is launched and an expression is created, the new expression appears in the Condition Browser field. Once you create an expression and click the OK button in the Condition Browser, the newly created expression appears in the field that is to the left of the Condition Browser button.
Figure 12-38 displays the Condition Browser.
12.6.3 Date Browser
The Date Browser is used to select a Literal Date or a Date Expression. The Date Browser has two options to switch between a Literal Date and a Date Expression. When one option is selected, the other one is disabled.
Select:
-
Literal Date option to enter a date using a Calendar pop-up.
-
Date Expression option to enter the expression directly in the Date Expression field or to launch the Condition Browser to select a date expression.
Figure 12-39 displays the Date Browser.
12.6.4 Right Operand Browser
The Right Operand browser is used to select multiple right expressions. The browser displays operands in each row. You can enter an expression directly in the operand field or launch the Condition Browser to select an expression. The + button adds a row after the current one. The - button deletes the current row. These buttons are enabled and disabled based on the selected operator. For instance the in operator allows multiple right expressions. So in this case, the buttons are enabled.
Figure 12-40 displays a Right Operand browser.
Note:
Using Right Operand browsers, you can enter multiple values for the right-side expression. However, you can place a Date browser outside a Right Operand browser, and in which case, only one expression can be entered. For both these browsers, you cannot enter values directly in the right-side expression field. Once you have entered values using the browser and clicked OK, the values get added as comma-separated values on the Rules UI.
12.7 Editing Decision Tables in an Oracle Business Rules Dictionary
When Oracle SOA Composer is in a session, you can edit, add, and delete a Decision Table in a ruleset.
For more information on how to use sessions, see Creating and Publishing Sessions.
You can edit the description of a rule/condition or action within a decision table. If you hover over a condition, a right arrow is used to select the condition. If you click on the condition value, a pop-up appears where you can edit the description.
12.7.1 Adding a Decision Table
In Oracle SOA Composer, you can add a Decision Table to a ruleset. For more information on working with Decision Tables, see Introduction to Working with Decision Tables.
To add a Decision Table in a ruleset:
12.7.2 Adding Condition Rows to a Decision Table
Using Oracle SOA Composer, you can add condition rows to a Decision Table.
To add condition rows to a Decision Table:
For more information on adding condition rows, see How to Add Condition Rows to a Decision Table.
12.7.3 Adding Actions to a Decision Table
In Oracle SOA Composer, you can add actions to a Decision Table.
To add actions to Decision Table:
For more information on adding actions to Decision Tables, see How to Add Actions to a Decision Table.
12.7.4 Adding Rules to a Decision Table
Using Oracle SOA Composer, you can add a rule to a Decision Table.
To add a rule to a Decision Table:
Note:
If because of the inadequate column width, you cannot view the complete contents of a cell in a Decision Table, you can roll your mouse pointer over the cell to view the contents. Also, click the Maximize tabs section button in the toolbar to increase the view.
12.7.4.1 Editing Decision Table Cells
Each rule in a Decision Table contains cells pertaining to three sections: Conditions, Conflicts, and Actions.
Working with Condition Cells
In view mode, a condition cell with a "?" symbol indicates that the cell does not have a condition value. If a cell has two or more values specified, a semicolon-separated list of values is displayed in the cell.
In the editable mode the condition cells display specified condition values in multichoice lists. When editing a new rule or when a condition value is unspecified, the condition cell is blank.
If you select All:
-
When the particular condition cell is clicked, the cell displays "All"
-
When the particular condition cell is not selected, the cell displays the "-" symbol
You can select any value that is available in the condition value list.
Note:
When you edit the condition cells, if Order Rules By Bucket is selected, the Decision Table is refreshed and the edited rule column may shift to the left or right depending on the selected condition cell value. Click the Tools drop down to select Order Rules By Bucket.
Note:
You can modify the value set associated with a a condition, by clicking the condition. This enables the value set list and the Edit Value Set button so that you can edit the associated value set.
Working with Action Cells
When you add an action, an action row is created with the specified action type. There are two types of action cells:
-
The Action form cells contain check boxes. When a rule fires, only selected actions are executed. In Figure 12-45, R1 and R3 action check boxes are selected whereas the other action check boxes are cleared. In this case, if R1 fires, the action will be executed, but if R2 fires, then the action will not be executed.
Note:
The Edit Action button is enabled only if the action form cell row is selected. The Edit Action button invokes the Action Editor window.
-
The Action parameter cells contain the parameters of the action form. You can directly enter the action parameter values in the respective field or you can invoke the Condition Browser window to select a value.
Figure 12-45 displays the Action Editor window where you can select the values for an action parameter cell. If you select the Always Selected check box, all the check boxes for the particular action form get selected. All the check boxes pertaining to the action form are also disabled, because the specified action "is always selected".
Note:
You can delete all the condition cells and all the action cells of a Decision Table at one go. Clicking the Conditions or the Actions box selects all the conditions or actions in the Decision Table respectively.
You can then click the Delete button on the Decision Table toolbar to delete the conditions or actions.
12.7.4.2 Controlling the Order of Rules in a Decision Table
By default the Order Rules by Bucket check box is enabled in a Decision Table. This means the order of the values in the value set associated with a condition row determines the order of the condition cells, and thus the order of the rules. Click the Tools drop down to select Order Rules By Bucket.
To change the order of rules in a Decision Table, you need to change the order of values in the value set. For example, you can control rule ordering in a Decision Table by changing the relative position of the values in an LOV value set associated with a condition row. Note, however, that you cannot reorder range value sets.
When the Order Rules by Bucket check box is selected in a Decision Table and you add a rule, by default the new rule is added as the first rule column; the other rule columns move as required to keep the value set values in their defined order. When the Order Rules by Bucket check box is not enabled and you add a rule, the new rule is added as the last rule column. If you now select the Order Rules by Bucket check box, the newly added rule shifts to the first column.
12.7.5 Deleting Rules in a Decision Table
You can delete one or multiple rules in a Decision Table.
To delete rules in a Decision Table:
12.7.6 Defining Tests in a Decision Table
In Oracle SOA Composer, you can define tests in a Decision Table by adding conditions to facts. For more information about defining tests and working with rule conditions, see Working with Rules.
Note:
To add more complex conditions to facts, see How to Work with Extended Tests.
To add tests to a Decision Table:
12.7.7 Splitting and Compacting a Decision Table
You can modify the contents of a Decision Table to create a table that includes a complete set of rules for all cases, or a table that provides the least number of rules for the cases. The split and compact operations enables you to manipulate the contents in a Decision Table.
The split table operation creates a rule for every combination of values across the conditions. For example, in a Decision Table with 2 boolean conditions, 2 x 2 = 4 rules are created. In a Decision Table with 20 boolean conditions, 2**20 ~ 1 million rules are created. So, you only use split table when the number of rules created is small enough that filling in the action cells is feasible.
Using Oracle SOA Composer, split can be applied to an entire Decision Table. However, you cannot perform split operation on an individual condition row or cell.
To split or compact a Decision Table:
- From Oracle SOA Composer, select a ruleset from the Rulesets navigation tab and select the Decision Table that you want to split or compact.
- Click the Split Table button or Compact Table button on the Tools drop down.
Using Oracle SOA Composer, you can compact a Decision Table by merging conditions of rules with identical actions. So, compacting a table enables you to remove conditions from a Decision Table. However, using Oracle SOA Composer, you cannot merge two or more condition cells.
For more information on splitting and compacting Decision Tables, see Introduction to Decision Table Operations.
12.7.8 Checking for Missing Rules in a Decision Table
In a Decision Table, a missing rule is also called a "gap." A gap in a Decision Table occurs when a rule does not cover some combinations of values, one from each condition.
Using Oracle SOA Composer, you can check for missing rules in Decision Tables.
To check for missing rules:
For more information about checking for missing rules, see How to Perform Decision Table Gap Checking.
12.7.9 Performing Conflict Resolution in Decision Tables
Rules in a Decision Table can conflict when they overlap and have different actions. Two rules overlap when at least one of their condition cells has a value in common. However, overlap without conflict is common and harmless. For more information about conflicts in Decision Tables, see Understanding Decision Table Conflict Analysis.
Using Oracle SOA Composer, you can find and resolve conflicts in a Decision Table.
To perform conflict resolution in a Decision Table:
12.7.10 Switching From Rows to Columns
In Oracle SOA Composer, you can turn the rows in a Decision Table to columns by clicking the Switch Rows to Columns link in the detail area. This enables the rules to be displayed as rows, and the conditions, actions, and conflicts to be displayed as the columns.
Switching rows to columns provides ease of navigation when a Decision Table has many rules because you can see all the rules together and you do not need to "page the columns" for viewing the rules.
Figure 12-48 displays a Decision Table before the switch operation.
Figure 12-49 displays the sample Decision Table after switching the rows to columns.
12.7.11 Working with Advanced Mode Options in a Decision Table
In Oracle SOA Composer, you can use advanced mode rules in a Decision Table just like you can work with advanced mode rules in a ruleset. The Advanced Mode rules options enable you to create, modify, and delete patterns, as well as add, modify, and delete conditions and actions within a pattern.
Note:
Advanced Mode capability has been maintained for backward compatibility only. We recommend that you use extended tests in simple mode to create any kind of condition that you need.
Everything that can be done in Advanced Mode can be done in simple mode. Advanced mode rules can be converted to equivalent simple mode rules simply by clearing the Advanced Mode check box.
For more information, see How to Work with Extended Tests.
To show and use advanced mode options:
12.7.12 Deleting a Decision Table
In Oracle SOA Composer, you can delete Decision Tables in a ruleset. For more information on working with Decision Tables, see Introduction to Working with Decision Tables.
To delete a decision table in a ruleset:
- In a session, select a ruleset of interest.
- In the Rules master list, click the Decision Table you want to delete.
- Click Delete.
- When done with changes, click Save Changes in Current Tab. If you are ready to apply the changes to the runtime version, click Publish.
12.7.13 Editing Decision Tables in Microsoft Excel
Business users may find that editing Decision Tables is easier to do in Microsoft Excel. New functionality enables both developers and business users to export and edit Decision Tables in Excel and then import the Decision Tables back into the dictionary.
When exporting Decision Tables in Microsoft Excel, only basic Action types such as Assert New, Modify, Assign, Retract, and Call are supported.
You can export and edit Decision Tables at design-time in Oracle JDeveloper or Business Process Composer. At runtime, you can export and edit in SOA Composer. You can export one or more Decision Tables from a Rule dictionary to the same Excel workbook.
When you import back into the dictionary, you can create a new dictionary, overwrite the existing dictionary, or perform a Diff-Merge. The Diff-Merge enables you to compare dictionaries.
For more information about comparing dictionaries, see Comparing and Merging Oracle Business Rules Dictionaries.
The Excel workbook structure consists of several worksheets: a Readme sheet, a Value Set sheet, and one sheet for each exported Decision Table, as shown in Figure 12-50. Only Rules and Value Sets can be edited in Excel. You can export to .xlsm (default) or .xls.
When you open the spreadsheet, the macros are disabled by default. If you enable the macros, a new tab called Oracle Business Rules, appears. This tab enables you to add or delete rules, merge or split cells, and add or remove values from value sets. You can also disable or enable highlighting, use a simple or advanced mode and hide or show the Readme sheet.
You can edit with the macros disabled, though you will not be able to:
-
Choose values from drop lists for restricted cells.
-
Edit free form cells.
-
Copy and paste a range of cells to add a rule or Value Set.
-
Delete a range of cells to delete a rule or Value Set.
-
Split or merge cells.
-
Create Value Sets automatically.
-
Validate the structure of Decision Tables or Value Sets.
Using the predefined macros, you can:
-
Add and delete rules.
-
Split or merge cells.
-
Add or delete Value Sets.
-
Editable cells include:
-
Description for Rules, Conditions, Actions.
-
Condition and Action nodes.
-
Action state.
-
Parameterized options for Action parameters.
-
-
Non-editable cells include:
-
Condition expressions.
-
Action expressions.
-
Action parameters.
If you try to edit these cells, you will get an error message, as shown in Figure 12-51.
-
12.7.13.1 Understanding What is Exported
In the SDK, there are shared Value Sets that can be associated with multiple conditions across Decision Tables. However, in Excel there are no shared Value Sets--each condition has its own Value Set--so you can only export a Value Set if it is modifiable in Excel. The Value Sets that are non-modifiable include:
-
Linked Dictionary Value Sets.
-
Enums.
-
Internal Value Sets, for example, boolean Value Sets.
In the worksheet, you can only select values from the drop down for the conditions associated with non-modifiable Value Sets. A highlighting mechanism informs you which conditions are associated with non-modifiable Value Sets.
12.7.13.2 How to Export Decision Tables
The export functionality is invoked by using the Export to Excel button in the toolbar options, as shown in Figure 12-52.
To export to Excel:
- In SOA Composer, in a session, click Actions, Export to Excel.
- In the Export Decision Tables dialog box, select the Format and browse to the folder where you want to save the worksheet.
- Select the Decision Table to export and click OK.
- Check the Read Only Value Set check box to make all of the value sets read-only in Excel. There will not be any Value Sets sheet in the Excel workbook. All conditions will have drop down menus from which values can be selected but no values can be added or removed.
- Click Export. You can now open the worksheet and edit the Decision Table.
12.7.13.3 How to Import Decision Tables to the Dictionary
You can only import Excel spreadsheets that have been previously exported.
To import edited Decision Tables back to the Dictionary:
- In Rules Designer, click Actions, Import from Excel.
- In the Import Decision Tables dialog box, click Browse to browse to the folder where you saved the worksheet.
- The Diff-Merge check box is selected by default. For more information about using the Diff-Merge, see Comparing and Merging Oracle Business Rules Dictionaries. Select Create New or Overwrite depending on your requirements.
- Click Import. The decision table is imported into Rules Designer, where you can accept or reject changes. Each changed artifact is flagged with a change icon.
Note:
Merges should be done with caution. See Comparing and Merging Oracle Business Rules Dictionaries
12.7.13.4 How to Edit Decision Tables in Excel
In Excel, enable the macros to view the Oracle Business Rules tab, which provides you with options to author rules, edit Value Sets, and set preferences.
For more information, see Editing Decision Tables in Microsoft Excel.
12.7.14 What You Need to Know About Rule Test Variables
Oracle SOA Composer enables you to define test variables that provide a way to shorten lengthy expressions that occur in rule and decision table conditions and actions. The variable and its value can be represented as an inline business term definition. The test variables are also called inline aliases.
So, instead of writing:
You can write:
In subsequent test conditions, you can use foo
as part of your expressions. The expression can be anything from a simple to a complex expression.
To define a variable, in the IF section of a rule, you need to click the down arrow adjacent to Add Test, and select variable from the list.
Apart from variables, you can also define other test form types, such as simple test, nested tests ((...)
), and not nested tests (not (...)
).
12.8 Comparing and Merging Oracle Business Rules Dictionaries
The Diff Merge feature enables you to review any differences in the latest revision of a dictionary against a previous revision and be able to save or roll back any changes since then. At runtime, in SOA Composer, you can use the Diff Merge feature to compare the File-System, Published Version, or the Saved Version to the dictionary that you have open.
SOA Composer only supports the compare of the edited version with one prior saved version and the ability to select items that have changed since the saved version and to revert them back to their saved values. The differences are viewed from the perspective of the latest revision.
The Merge feature enables you to review any differences between the two versions and be able to resolve or merge the differences among them. The differences are viewed from the perspective of the changed versions.
The Diff Dictionary option is available in the Rules Designer toolbar, as shown in Figure 12-53.
WARNING:
Before you decide to run this feature, you must be ready to resolve all changes because the dictionary becomes read-only when in diff or merge mode.
Merging dictionaries should be done with care.
12.8.1 How to see Differences Between Dictionaries
When you want to compare dictionaries, you have the newer dictionary opened and then use the Diff Merge to select the dictionary to compare with. Anything missing from the newer dictionary is flagged as a deletion from the newer version.
To see differences between dictionaries:
The Diff Merge feature is more fully functional in JDeveloper Rules Designer. For more information, see How to Compare or Merge Two or More Dictionaries.
12.9 Localizing Names of Resources in Oracle Business Rules
Oracle BPM allows you to localize the names of some rules components.
Providing a translated version of these aliases enables users to view these aliases based on the local setting of their browser when using the following applications:
-
Oracle SOA Composer
-
Oracle Business Process Composer
-
Oracle Process Workspace
Note:
Locale dictionaries are stored as resource bundles. You must create the resource bundle using Oracle JDeveloper. They must be deployed as part of the SOA composite application.
Resource bundles cannot be created using Oracle SOA Composer. However, you can use Oracle SOA Composer to edit the localized strings within a resource bundle.
Oracle SOA Composer enables you to localize the aliases of the following rules components.
-
Values
-
Value Sets
-
Decision Functions
-
Decision Function Facts
-
Globals
-
Links
-
Rulesets
-
Rules
-
Patterns
12.9.1 How to Localize the Alias of a Oracle Business Rules Component
Using Oracle SOA Composer, in a session, you can add translated versions of the aliases and their descriptions used to identify rules components.
To localize the alias of a rules component:
Note:
Offline editing of locale files is not supported. When a locale is added, the xml file generated does not contain all the keys by default. They are added when a value is added.
You can also localize from the editor. To localize from the editor click the Translations button.
The Translations Editor enables you to appears enter the Alias for the rule components and click OK.
12.10 Synchronizing Rules Dictionary in Oracle JDeveloper With Runtime Dictionary Updates
Oracle SOA Composer enables you to update rules dictionaries at runtime. However, the modifications made to the dictionaries through Oracle SOA Composer are not automatically reflected in Oracle JDeveloper. To synchronize the dictionary updates made in Oracle SOA Composer with the dictionaries available in Oracle JDeveloper, you must select the Export option in Oracle Enterprise Manager Fusion Middleware Control Console. This utility allows you to export the SOA composite application along with the dictionary.
To select the Export option in Fusion Middleware Control Console:
12.11 Validating and Diagnosing an Oracle Business Rules Dictionary
In Oracle SOA Composer, in a session, you use the bottom tabs to check diagnostics and validate a dictionary for errors. The diagnostics tab is populated after you publish a session.
During the publish of the session, if another user has made any changes to the same artifact (like a dictionary) it will be listed in this section. You then have three options to handle any conflicts.
12.11.1 Understanding the Validation Log Tab
The Validation Log tab lists all the dictionary-level validation errors.
The Validation Log does not get updated automatically. The validation is only run if you click Validate and when you save any changes.
For example, when a new rule is added with errors, the Validation Log tab is not updated automatically. Click the Validate button on the toolbar to update the Validation Log with the new error entries.
12.11.2 Understanding the Diagnostics Tab
Use the Diagnostics tab see if other users are modifying the same artifacts and resolve those conflicts, as shown in Figure 12-59.
To resolve changes made by you or other users:
- For each item in the table, use the Resolution drop down to Ignore, Adopt, or Overwrite changes.
- Adopt will try to merge changes.
- Ignore means your changes will be discarded.
- Overwrite means that your changes will be made, other users changes will be discarded.
- Click Publish when done.
12.11.3 Understanding the History Center Tab
The History Center tab displays any pending changes that you or other users have made in a currently active session. You can discard changes from here, for example, if you want to quickly undo all changes you have made all at once.
12.12 Working with Tasks
Using Oracle SOA Composer, you can view and edit tasks that may be or may not be associated to Approval Management Extensions (AMX) rules. AMX enables you to define complex task routing slips for human workflow by taking into account business documents and associated rules to determine the approval hierarchy for a work item.
Additionally, AMX lets you define multi-stage approvals with associated list builders based on supervisor or position hierarchies. At design time, you can define the approval task in the Human Task Editor of Oracle JDeveloper, and associate the task with a BPEL process. For more information about approval management and tasks, see Using Approval Management in Developing Business Processes with Oracle Business Process Management Studio.
In Oracle SOA Composer, the Task Editor is embedded as a task flow so that you can view and perform all the task metadata lifecycle operations.
12.12.1 How to View Task Metadata
To view task metadata:
You can differentiate between traditional rules and AMX rules depending on the naming convention.
For example, a composite may have the following artifacts:
-
<AMX task name>.tsk
-
<AMX rule name>Rules.rules
12.12.2 How to Configure a Task or an AMX Rule Metadata
Task Configuration enables business users and administrators to review the rules that were configured automatically by the workflow designer. These predefined rules can be changed for a specific customer based on the customer's applicable corporate policies.
In Oracle SOA Composer, Task Configuration enables you to edit the event-driven (only tasks) and data-driven rules (tasks with an associated AMX rules) associated with an approval flow at runtime.
12.12.2.1 Configuring Event-Driven Settings
To configure event-driven settings:
You can configure the following options and settings:
-
Task aggregation
-
Error notification
-
Assignment and routing policy
-
Expiration and escalation policy
-
Notification settings
-
Task access settings
12.12.2.1.1 Setting Approval Aggregation Requirements
Task aggregation requirements can be any of the following:
-
None
-
Once per task
-
Once per stage
12.12.2.1.2 Notifying Errors
You can specify the user and group names that need to be notified in case of an error in the task. You need to click the On Error Notify search button to display the Configure Error Assignees dialog box where you can specify the user or group names.
12.12.2.1.3 Setting Assignment and Routing Policy
You can set the assignment and routing policy by using the options available in Oracle SOA Composer. Click to select the available options for setting assignment and routing policy.
For more information about the assignment and routing options available in event-driven configuration, see Routing Policy Method in Developing SOA Applications with Oracle SOA Suite.
12.12.2.1.4 Setting Expiration and Escalation Policy
You can set the expiration and escalation policy for the task by using the available items in the Expiration and Escalation Policy list. The available list items are:
-
Never Expire
-
Expire After
-
Escalate After
-
Renew After
12.12.2.1.5 Configuring Notification Settings
You can configure notification settings for a task by using the options available in the Notification Settings section of Oracle SOA Composer.
Figure 12-63 displays the different options available to configure notification settings for a task.
Figure 12-63 Specifying Notification Settings

Description of "Figure 12-63 Specifying Notification Settings"
12.12.2.1.6 Configuring Task Access Settings
You can set access-rule settings to control the actions a user can perform. You can also specify content and action permissions based on the logical role of a user, such as creator (initiator), owner, assignee, and reviewers.
In Oracle SOA Composer, you can set access settings by using the options available under Task Access area and tabs, as shown in Figure 12-64 and Figure 12-65.
Figure 12-64 Specifying Task Access Settings

Description of "Figure 12-64 Specifying Task Access Settings"
Figure 12-65 Specifying Task Actions Settings

Description of "Figure 12-65 Specifying Task Actions Settings"
For more information on configuring task access, see How to Define Security Access Rules in Developing Business Processes with Oracle Business Process Management Studio.
12.12.2.2 Configuring Data-Driven Settings (Rule or Condition)
To configure data-driven settings:
You can perform the following actions:
-
Adding, updating, and deleting a rule
-
Changing rule assertions (which depend on the type of list builder for which the rule has been configured)
-
Adding a variable
For more information about editing data-driven settings, see How to Edit Data-Driven Settings in Managing and Monitoring Processes with Oracle Business Process Management.