Académique Documents
Professionnel Documents
Culture Documents
Oracle
Approvals
Management
RELEASE 11i10/AME.A
Are all the AME features mentioned in this guide available within integrating
applications such as iExpenses, SSHR, etc?
How can you ensure that the rules you create are valid?
AME has built-in testing features that enable you to confirm the
behavior of new or edited business rules before live execution.
My customer does not have Oracle HR, but has licensed the financials suite and
wants to use AME. Can they?
Approval Rules
If the transaction's total cost is less than 1,000 USD, and the
transaction is for travel expenses, then get approvals from the
immediate supervisor of the person submitting the transaction.
AME lets you define rules that can express a wide variety of
approval rules. For example rules that:
Require subject-matter-expert approval
Require managerial approval
Create exceptions for rules requiring managerial
approval
Substitute one approver for another in special
cases
Revoke a manager's signing authority in special
cases
Grant a manager extra signing authority in
special cases.
AME also lets you prioritize approval rules, so that only rules of
sufficient priority apply to any given transaction.
Transaction Types
Approval Processes
• List of approvers,
• Set of productions.
Approver Lists
Items
Sub-Lists
• Pre-chain-of-authority
• Authority
• Post-chain-of-authority.
Action Types
Approval groups
Chains of Authority
Approvers
Approver Types
Approver Categories
Productions
Once you have defined a set of rules for a transaction type, and
the application associated with the transaction type is configured
to use AME, the application communicates directly with AME to
manage the transaction type’s approval processes. Typically the
application communicates with AME when a transaction is
initiated in the application, and then each time an approver
responds to the application’s request for approval of the
transaction, until all approvers have approved the transaction.
AME records each approval, and recalculates the approver list
for a transaction each time an approver responds to a request for
approval of the transaction. See How AME Sorts Rules at Run
Time (page 93) for further details.
The reason why AME recalculates the approver list each time an
approver responds is to account for several possible
circumstances that can affect a transaction’s approver list:
• An attribute value changes, thereby affecting which
conditions are true and so which rules apply to the
transaction.
• A condition or rule is added, changed, or deleted, again
affecting which rules apply to the transaction.
• A change occurs in the organizational hierarchy used by
the transaction type’s set of rules, thereby changing the
membership of the applicable chain of authority.
• Currency exchange rates change, thereby affecting which
conditions on currency attributes are true and so which
rules apply to the transaction.
Approver-Notification Order
Ordering Modes
17
Implementing Oracle Approvals Management
Implementing Oracle Approvals Management
Overview
18
Implementing Oracle Approvals Management
It also defines one secured attribute:
• ame_internal_trans_type_id
Application-Administration Responsibility
Business-User Responsibilities
Remaining Steps
19
Implementing Oracle Approvals Management
Single-Valued Configuration Variables
4. Transaction-Type-Specific Variables
20
Implementing Oracle Approvals Management
A representative test case for each business case.
Business Cases
Approvals Cases
All expense reports for travel having totals above $1,000 and not
exceeding $5,000 should be approved by the submitter's two immediate
supervisors.
Parallelization Cases
Item class
Item
Sublist
Action type
Group or chain
Approver
21
Implementing Oracle Approvals Management
approvers generated by the same action type should be ordered
in parallel.
Repeated-Approvers Case
Configuration Variables
Item-Class Usages
You may wish to use item classes other than those that came
with a given transaction type, when implementing your business
cases. There are two possible reasons to do so. First, you may
wish to define attributes that have a distinct value for each item
in the new item class. This would let you define conditions on
these attributes, so your rules could account for per-item
variations. Second, you may want AME to generate an approver
list for each item in the item class. An application administrator
must register an item-class usage for the new item class using the
admin tab's 'Maintain item classes' feature on the transaction-
type-administration menu.
22
Implementing Oracle Approvals Management
Mandatory Attributes
Approval groups
23
Implementing Oracle Approvals Management
exhaustively, even when some of them require no approval, or
merely require requestor approval.)
Travel
1000 to 5000 Two supervisors
Expense Category
Test Cases
24
Implementing Oracle Approvals Management
all attributes that are mandatory, required by an action type used
in a rule that the transaction type uses, or referenced by a
condition used in such a rule). A test case should also specify the
approver list that AME should generate in response to the test
case's attribute values. AME should produce the correct
approval process for all of a transaction type's test cases in a test
environment, before the transaction type goes into production.
Create Conditions
25
Implementing Oracle Approvals Management
Create Approval Groups (Optional)
AME comes with many "seeded" action types and actions for
them. The seeded action types currently support three types of
approvers: HR employees (in the HR supervisory hierarchy), HR
positions (in the HR position hierarchy), and Oracle Applications
(FND) users. The seeded action types ascend the HR hierarchies
in many different ways.
26
Implementing Oracle Approvals Management
supervisory-level action type comes with actions for a
supervisory hierarchy having at most 10 levels. If your
organization has 15 levels, you must create supervisory-level
actions for levels 11-15. An application administrator can add
these action types using the actions tab.
27
Implementing Oracle Approvals Management
reduce the amount of time required to test your transaction type
thoroughly. It can also reveal problems that can arise because of
differences between the security privileges used to execute a
dynamic attribute usage in AME and in an originating
application. And it can suggest whether an unexpected behavior
originates in AME, or in an originating application's AME
integration.
28
Implementing Oracle Approvals Management
3
Attributes
29
Attributes
Overview
Creating attribute names and defining attribute usages are two
important steps in the implementation process for a transaction
type. Often a transaction type will seed all of the attribute names
and attribute usages your organization requires. This chapter
explains: -
What an attribute is
How to decide whether the existing attribute
names and usages are satisfactory
How to create, edit, and delete attribute names
and usages
What is an Attribute?
Attribute Properties
Attribute Names
30
Attributes
Attribute Item Classes
Attribute Usages
An attribute usage tells AME how to get the attribute's value for
a given item and transaction, in a given transaction type. Every
transaction type can define its own usage for a given attribute.
This means several transaction types can share conditions and
rules, so that an organization can define a single set of rules that
applies to several transaction types, thereby implementing a
uniform approvals policy across several applications. It also
means an attribute name can exist without a given transaction
type having access to it, or to conditions defined on it, because
the transaction type has not yet defined a usage for it.
31
Attributes
Static Attribute Usages
A static usage specifies a fixed value for the attribute, for all
items and transactions. A static usage always stores an attribute
value as a string, regardless of the attribute's data type. The
string form of the attribute value should not exceed 100 bytes.
Static usages should not use either single or double quote marks
to demarcate strings.
Static usages may be null. To create a null static usage, leave the
usage field empty on the ‘Create an Attribute’, ‘Edit an
Attribute’, or ‘Mandatory Attribute Query Entry’ form.
select item_quantity
from some_application_table
order by line_item_id
32
Attributes
especially if the transaction type that owns them processes a high
volume of transactions.
Attribute Types
Boolean Attributes
Number Attributes
33
Attributes
String Attributes
String attributes can have any text value up to 100 bytes long.
The text value may include spaces and ordinary punctuation,
and is case-sensitive. AME removes any return characters from
attribute usages. This has two implications. First, a static usage
for a string attribute cannot contain any return characters (or, if it
does, AME will remove them at run time). Second, a string
attribute's dynamic usage can technically have a value that
includes a return character (AME only removes return characters
from the query, not from the query results). Because of the
discrepancy between the behavior or static and dynamic usages
with respect to return characters, and because return characters
do not display well, we encourage you to avoid non-printable
characters such as return characters in string-attribute values.
Date Attributes
Make sure your dynamic usages for attribute dates convert date
columns to strings using ame_util.versionDateFormatModel, like
this: -
select to_char(sysdate,
ame_util.versionDateFormatModel) from dual
Currency Attributes
Upon fetching the attribute’s value, AME finds that the amount
is in British pounds (not U.S. dollars), and that the attribute
34
Attributes
requires the 'Daily' conversion method. AME would use General
Ledger’s currency-conversion functionality to convert the
attribute’s value into U.S. dollars, using the 'Daily' conversion
method. Then it would evaluate the condition using the
converted dollar amount.
‘5000.00,USD,Corporate’
Attribute Usages
35
Attributes
Static Attribute Usages
36
Attributes
Dynamic Attribute Usages
37
Attributes
to) contain the transaction-ID placeholder
ame_util.transactionIdPlaceholder, which is ’:transactionId’.
The transaction-ID placeholder is a true dynamic PL/SQL
bind variable. That is, at run time, AME binds a transaction-
ID value to this variable before dynamically executing the
query. A condition of a where clause referencing this bind
variable must have the form:
transaction ID = :transactionId
where transaction ID is a column that contains the transaction
ID passed to AME at run time by the application whose
transaction type uses the query.
8. Queries for attributes belonging to subordinate-level item
classes must return one row for each item in the item class,
for a given transaction. For example for OIE Expenses the
Item Class line item ID query string is as follows: -
select distribution_line_number
from ap_expense_report_lines_all
where report_header_id = :transactionId
order by distribution_line_number
Attribute Classifications
Mandatory Attributes
38
Attributes
attributes tab's attributes list, which appears as soon as you select
the attributes tab. Following are brief explanations of each
mandatory attribute.
ALLOW_DELETING_RULE_GENERATED_APPROVERS
ALLOW_REQUESTOR_APPROVAL
AT_LEAST_ONE_RULE_MUST_APPLY
REJECTION_RESPONSE
39
Attributes
approval processes of all items other than the item(s) that were
rejected.
40
Attributes
ame_util.stopAllItems currently has the value
'STOP_ALL_ITEMS'. When REJECTION_RESPONSE has this
value, AME stops the approval processes of all of the
transaction's items, including the header.
USE_RESTRICTIVE_ITEM_EVALUATION
EFFECTIVE_RULE_DATE
This is the date that determines which rules are active for a given
transaction, in the following sense. When AME begins to process
a transaction, it first determines which rules have start dates that
precede the effective date; and that have end dates which are
either null or which follow the effective date. These rules are
active for the transaction. AME then evaluates each active rule’s
conditions to see whether the rule actually applies to the
transaction.
41
Attributes
For most transaction types, sysdate is the appropriate
EFFECTIVE_RULE_DATE value. To use this value, give
EFFECTIVE_RULE_DATE a static null (empty) usage. (This will
be more efficient at run time than giving it a dynamic usage that
selects sysdate from dual.)
EVALUATE_PRIORITIES_PER_ITEM
USE_WORKFLOW
WORKFLOW_ITEM_KEY
WORKFLOW_ITEM_TYPE
Required Attributes
42
Attributes
required (by a given action type) is good practice. If a
mandatory eventually becomes non-mandatory, and an action
type requiring it has not listed the attribute among the action
type's required attributes, a transaction type might be created
without a usage for the attribute, and might define rules using
the action type. In this case a runtime exception would occur
when AME tried to apply one of these rules. (AME development
tries to avoid this possibility by adding such attributes to the
appropriate action types' lists of required attributes, when a
mandatory attribute is made non-mandatory. If your
organization has any custom action types, you should account
for this possibility by including mandatory attributes as
necessary in your action types' lists of required attributes.)
ALLOW_EMPTY_APPROVAL_GROUPS
FIRST_STARTING_POINT_ID
SECOND_STARTING_POINT_ID
INCLUDE_ALL_JOB_LEVEL_APPROVERS
This attribute determines if all approvers with the same job level
should be included when building the chain of authority for the
action types that depend on Job Level. See the chapter on
Actions for further information.
JOB_LEVEL_NON_DEFAULT_STARTING_POINT_PERSON
_ID
SUPERVISORY _NON_DEFAULT_STARTING_POINT_ID
43
Attributes
TOP_POSITION_ID
TOP_SUPERVISOR_PERSON_ID
TRANSACTION_DATE
This is the date a transaction was first submitted. Note that AME
always fetches a transaction’s current attribute values, and then
applies the appropriate transaction type’s rules active as of
EFFECTIVE_RULE_DATE, to (re)generate the transaction’s
approver list. It does not use the attribute values or rules existing
at the transaction date. You may however wish to sort your
transactions according to, for example, the financial-reporting
period in which they originate, in your rules. This attribute gives
you a convenient way to do so.
TRANSACTION_GROUP_ID
TRANSACTION_ORG_ID
TRANSACTION_REQUESTOR_PERSON_ID
44
Attributes
TRANSACTION_REQUESTOR_USER_ID
TRANSACTION_SET_OF_BOOKS_ID
Business-Variable Attributes
Active Attributes
45
Attributes
"Representation of Business Cases in AME" section of
Chapter 2 for details.)
3. Edit any usages that don't match your requirements.
4. Create any attribute names (and usages for them) of
attributes that your implementation requires, and which
are not seeded.
5. Use the test tab to compare the attribute values of your
test cases defined with their expected values.
6. Execute your dynamic attribute usages from the
SQL*Plus command line (using the apps account) for
enough of your test cases to verify that the attributes
have the same values in SQL*Plus as on the test tab.
46
Attributes
Maintaining Attributes
You can view, create, edit and delete attributes using the
Attributes tab. This tab is available only to users with the
Application Administrator responsibility.
Note: If the transaction type does not have a line item ID query
string defined, references to attribute level in the following text
should be ignored.
To create an attribute:
47
Attributes
The names of attributes whose values will be person IDs or
user IDs should end in ’PERSON_ID’ or ’USER_ID’,
respectively; for example, ’HR_MANAGER_PERSON_ID’
and ’EMPLOYEE_STOCK_ANALYST_USER_ID’. This
convention signals the Test tab’s test-transaction
functionality to let the end user query for persons and users
by name, and then to display a user-friendly description of
the person or account selected by the end user.
5. Select an attribute type. Remember to use the currency type
for attributes reflecting monetary values.
6. Select the radio button indicating the type of attribute usage
you want to use.
7. Enter the attribute usage. (See Attribute Usages: page 75 for
details of the syntax rules for attribute usages.)
8. Choose the Create Attribute button.
To edit an attribute:
When you are satisfied with your changes, you can choose the
Quit button to return to the attribute list.
If you change an attribute’s type, make sure you also change its
usage (for every transaction type that uses the attribute name) to
provide data of the appropriate type. If you change a usage’s
type from static to dynamic, make sure you change the usage
accordingly.
48
Attributes
To delete an attribute:
1. Display the list of attributes.
2. Select the check box next to the attribute name, in the Delete
column.
3. Choose the Delete Checked Attributes button.
4. Confirm the deletion when prompted.
For example:
49
Attributes
4
Conditions
51
Conditions
Overview
You need to create conditions before you can define your rules.
Condition Types
Ordinary Conditions
attribute_name = approver_name
That is, the condition is true when the attribute's value is the ID
of a specified approver of the type associated with the attribute.
52
Conditions
condition-editing forms. If you create a set of conditions of this
form on the same attribute, make sure each lower or upper limit
is only included in one condition. For example, the conditions
That is, there are two ways a condition on a boolean attribute can
be true. (Some AME users forget the italicized case in the above
truth table.)
Exception Conditions
53
Conditions
List-Modification Conditions
Maintaining Conditions
Viewing Conditions
Creating a Condition
54
Conditions
4. Choose the attribute.
5. Edit the condition's key, if desired. [Note: Condition
Key should be a string that you can easily identify the
condition with.]
6. If the attribute is of type number, and is associated with
an approver type, query for and select an approver of the
type associated with the attribute.
7. If the attribute is of type date or currency, or is a number
attribute not associated with an approver type, enter the
condition's lower and upper limits, and indicate whether
each should be included in the condition's set of allowed
values. (If you leave a lower or upper limit blank, the
range of allowed values is unbounded on that side.) If
the attribute is of type currency, also choose the
denomination of the lower and upper limits. (The limits
must be in the same denomination.)
8. If the attribute is of type boolean, select the condition's
allowed value.
9. If the attribute is of type string, iteratively enter the
condition's allowed values.
10. Select the 'Create Condition' button.
55
Conditions
Creating a List-Modification Condition
Editing Conditions
Deleting Conditions
56
Conditions
5
Actions
57
Actions
Overview
Typically AME provides all of the action types and actions your
implementation will require. There are many action types to
choose from, so even if you don't expect to create a new action
type or action, you should review this chapter's descriptions of
the action types, to make sure you understand how to translate
your business rules into appropriate actions. This chapter
explains:
1. What an action is
2. How to choose an action
3. What each action type does
4. How to create, edit, and delete action types and actions.
What is an Action?
Action Types
Action-Type Handlers
58
Actions
See Chapter 2 of the Oracle Approvals Management Developer's
Guide for more details about action-type handlers.
Action-Type Descriptions
An action type's allowed rule type is the type of rule that can use
the action type's actions. Every action type has exactly one
allowed rule type.
Order Numbers
AME uses the action types' order numbers to decide the order in
which the action types of the applicable rules of a given rule type
are processed at run time. This affects the order in which
approvers are notified. See Chapter 9 for details.
Voting Regimes
59
Actions
responses. See Chapter 9 for details.
Required Attributes
Action Descriptions
Action Parameters
60
Actions
process the action. Each action type has its own approval-
parameter syntax rules. You must adhere carefully to these rules
when you create a new action for a seeded action type. (You can
check your understanding of an action type's syntax rules by
reviewing the parameters of some of the action type's seeded
actions, using the actions tab.)
Choosing an Action
Choosing the right action for a rule requires three choices. The
subsections below explain them.
Most of the rule types have just one seeded action type available
to them. There are two action types available to list-modification
rules; which to use depends on whether you want to grant or
61
Actions
revoke signing authority. List-creation rules have many action
types available to them. Before you can choose one of them, you
must decide which approver type should occur in the chains of
authority your list-creation rule will generate. AME current
supports three approver types: HR employees (sometimes called
persons/HR people in the AME UI), HR positions, and FND
(Oracle Applications) users.
See "Action Types" below for details about each action type.
62
Actions
Action Types
63
Actions
First Approver
JOB_LEVEL_NON_DEFAULT_STARTING_POINT_PERSON_I
D has a non-null value, however, the value identifies the first
approver in the chain. (An originating application can override
both of these first approvers via AME's programming interface.
See Appendix A of the Oracle Approvals Management Developer's
Guide for details.)
Final Approver
64
Actions
of authority one or all of the approvers with job level seven
(depending on the value of
INCLUDE_ALL_JOB_LEVEL_APPROVERS). In this case, the at-
least action is more stringent than the at-most action, even
though the at-most action requires a higher nominal job level.
AME always satisfies the most stringent action, so be aware that
job-level gaps can have surprising consequences.
Action Parameters
n{+,-}
65
Actions
ascend at least to job level five. The action type has the same
required attributes as the absolute-job-level action type, and uses
them in the same way. The action parameters have the same
syntax, with the integer value described as explained above.
{A,R}n{+,-}
First Approvers
66
Actions
chains actions apply to a transaction in pairs, with one action in
the pair for the first chain and the other for the second chain. In
such cases, make each pair of actions part of the same rule. For
example:
If
TRANSACTION_CATEGORY in {TRANSFER}
then
Require approvals at most 3 levels up in the first
chain.
Require approvals at least 2 levels up in the second
chain.
Final Approvers
Action Parameters
{1,2}{A,R}n{+,-}
First Approvers
67
Actions
Final Approvers
Action Parameters
First Approver
Final Approver
Action Parameters
68
Actions
n[-]
First Approver
Final Approver
Action Parameters
69
Actions
Position-Level Action Type
First Approver
The position-level action type starts its chains the same way the
position action type does.
Final Approver
Action Parameters
There are three seeded action types that use approval groups,
one for each sub-list in an item's approver list. All three
approval-group action types require the
ALLOW_EMPTY_APPROVAL_GROUPS attribute. When this
attribute is false, AME raises an exception if a group's has no
members at run time.
70
Actions
who normally lacks it; the other revokes the signing authority of
someone who normally has it.
{A,R}n{+,-}
71
Actions
Production Levels
You can now select the 'Quit' button to return to the list of action
types.
You cannot edit seeded action types' properties; you can only
add and delete non-seeded actions.
You can delete several action types at once. You cannot delete
seeded action types.
Creating an Action
72
Actions
3. Select the name of the action type to which you want to
add actions.
4. Select the 'Add Action' button.
5. Enter the new action's parameter(s) and description.
6. Select the 'Create Action' button.
You can now select the 'Quit' button to return to the list of action
types.
Editing an Action
You can now select the 'Quit' button to return to the edit-an-
action-type form.
Deleting an Action
73
Actions
6
Approval Groups
75
Approval Groups
Overview
When you create an approval group, AME creates for you the
corresponding approvals of the pre- and post-approval approval
types automatically. These approvals are available to all
transaction types.
B = {1, 2}
76
Approval Groups
C = {3, 4, B}
A = {B, C} = {{1, 2}, {3, 4, B}} = {{1, 2}, {3, 4, {1, 2}}} = {1, 2, 3, 4}
If ITEM_CATEGORY in {COMPUTER_HARDWARE}
and ITEM_AMOUNT <= 1,000 USD
then require post-approval from the COMP_APP_1 group.
If ITEM_CATEGORY in {COMPUTER_HARDWARE}
and 1,000 USD < ITEM_AMOUNT <= 10,000 USD
then require post-approval from the COMP _APP_2 group.
If ITEM_CATEGORY in {COMPUTER_HARDWARE}
and 10,000 USD < ITEM_AMOUNT
then require post-approval from the COMP_APP_3 group.
The action types that use approval groups share the required
boolean attribute ALLOW_EMPTY_APPROVAL_GROUPS.
When this attribute has the value 'true', AME allows an approval
group not to have any members at run time. When the attribute
has the value 'false', AME raises an exception if an approval
group does not have any members.
There are action types that let you use approval groups for pre-
approvals, chain-of-authority approvals, and post-approvals.
77
Approval Groups
(See Chapter 5 for details.)
Name
Description
Order Number
78
Approval Groups
Voting Regime
Serial Voting
In serial voting, the members are notified one after the other, in
an order consistent with the members’ order numbers. (AME
breaks ties arbitrarily.) All members must approve for the group
to approve.
Consensus Voting
First-Responder-Wins Voting
Order-Number Voting
Active List
79
Approval Groups
executing an SQL query you enter while creating or editing the
group. Each row fetched by the query must have one of two
forms.
You create, edit and delete approval groups using the groups
tab.
You can now select the ‘Quit’ button to return to the list of
approval groups. The new approval group will appear on the
list in the order of its approver-group order number. Note that
when you create an approval group, AME creates for you the
corresponding approver-group actions automatically.
80
Approval Groups
2. Select the approval group you want to edit.
3. Change the properties of interest.
4. Select the ‘Submit Changes’ button.
You can now select the ‘Quit’ button to return to the approver-
group list.
81
Approval Groups
order number), select ‘unique’; otherwise, select ‘not
unique’. Then select ‘Create Member’.
You can now select the ‘Quit’ button to return to the approver-
group list.
82
Approval Groups
7
Rules
83
Rules
Overview
Creating rules and rule usages is the main step in the AME
implementation process. Rarely will an organization’s business
rules match any rules that are seeded with a transaction type.
Instead, you must translate the business rules you documented
into AME rules yourself.
Rule Types
There are eight rule types in AME. Seven of them provide rules
that participate in generating transactions’ approver lists; these
are the approver-generating rule types. The eighth generates
productions. (See Chapter 1 for an explanation of productions.)
• List-creation rules
• List-creation exceptions
• List-modification rules
• Substitutions
• Pre-list approval-group rules
• Post-list approval-group rules
• Combination Rules
• Production Rules
Rule Priorities
When rule priorities are enabled for a given rule type (within a
given transaction type), the rules tab and the pop-up rules-
details windows display rules' priorities; and one can edit a
rule's priorities as one would edit any other rule property. When
84
Rules
priorities are disabled, they are neither displayed nor editable.
Rule Usages
List-Creation Rules
85
Rules
Rule A
If
TRANSACTION_AMOUNT < 1000 USD
then
require approvals up to at least job level 2.
List-Creation Exceptions
86
Rules
There are several reasons AME does not require that an
exception have the same ordinary conditions as a list-creation
rule that it suppresses. First, one exception may be designed to
suppress several list-creation rules. In this case, the scope of the
exception’s ordinary conditions must be broad enough to
encompass that of each list-creation rule it suppresses. Second,
an exception may be designed to apply to a more narrow set of
cases than a list-creation rule. Third, it is sometimes desirable to
adjust the scope of either the exception or the list-creation rule(s)
that it suppresses, without simultaneously adjusting the scope of
the other(s).
Rule B
If
TRANSACTION_AMOUNT < 500 USD and
Exception: COST_CENTER is in {0743}
Then
require approvals up to at least job level 1.
List-Modification Rules
87
Rules
signing authority. To do this, you tell AME to truncate the chain
of authority after the manager by using the final-authority
approval type. In both cases, you can limit the scope of the list
modification to a broad or narrow set of ordinary conditions.
Rule C
If
PURCHASE_TYPE is in {OFFICE FURNISHINGS, OFFICE
SUPPLIES} and
Any approver is: Kathy Mawson
then
Grant the approver final authority.
Rule D
If
TRANSACTION_AMOUNT > 1000 USD and
The final approver is: Kathy Mawson
then
Require approvals at least one level up.
Substitutions
Rule E
If
TRANSACTION_AMOUNT < 500 USD and
CATEGORY in {MISCELLANEOUS OFFICE EXENSES} and
Any approver is: John Doe
then
Substitute Jane Smith for the approver.
88
Rules
(In Rule E, the third condition is a list-modification condition.)
Rule E delegates John Doe’s authority to Jane Smith, for the class
of transactions defined by the rule’s ordinary conditions.
Rule F
If
TRANSACTION_AMOUNT < 1000 USD and
CATEGORY_NAME in {Marketing Event}
then
Require pre-approval from Marketing Approvals Group.
Combination Rules
Production Rules
Actions
Each rule must have one or more actions. Generally a rule’s type
determines which action types it can use. There are three
exceptions:
1. Production rules can only use the production action
type.
2. All of the approver-generating rule types can have
production actions. (The productions produced by these
rules are approver-level productions.)
89
Rules
3. Combination rules combine actions from different rule
types. (See “Combination Rules” above.)
A rule’s start and end dates determine its lifespan, the period in
which the rule can be used. When you select the current date as
a rule’s start date, AME sets the start date at the current time as
well. When you select a future start or end date, AME sets that
date to 12:00 a.m. (the beginning of the day).
A rule’s start and end dates are not the same as the start and end
dates of a rule usage for the rule. The rule usage’s lifespan
determines when the rule is in force for the rule usage’s
transaction type, not the rule’s lifespan. (See “What is a Rule
Usage” below.) The rule’s lifespan merely determine when the
rule is available for use. Give a rule a future start date if you
want it only to be available in a future period. Give a rule a null
end date if you want it to be available indefinitely, after the rule’s
start date.
Description
Key
Item Class
90
Rules
the former case, the rule would generate a chain-of-authority up
to job-level four for the header item. In the latter case, if the
header-level condition were satisfied, the rule would generate a
chain of authority for the approver lists of cost centers 481 and
6012. Be careful to use rules assigned to the item classes you
intend, when the rules have conditions on multiple item classes.
Transaction Type
Rule
There are two ways to create a rule usage. First, you can create a
usage for a rule when you create the rule. Second, you can create
a usage for a rule that was created previously. In the second
case, you can create a usage for a rule already used by your
current transaction type (for a lifespan that does not overlap with
those of pre-existing usages for the same rule, in the current
transaction type), or for a rule used by another transaction type.
A rule usage’s start and end dates make the rule active for the
usage’s lifespan, in the usage’s transaction type. As for rules’
start and end dates, when you select the current date as a rule
usage’s start date, AME sets the start date at the current time as
well. When you select a future start or end date, AME sets that
date to 12:00 a.m. (the beginning of the day). When you create a
new rule usage, make sure its lifespan does not overlap the
lifespan of another usage for the same rule in your current
transaction type.
Priority
When the current transaction type has enabled rule priorities for
the type of the rule in a rule usage, the usage must define a
priority for the rule. (See Chapter 11’s description of the
rulePiorityModes configuration variable for information about
enabling rule priorities.) The priority must be a counting
number (positive integer).
91
Rules
specifies whether AME should interpret priority values as
absolute or relative. The configuration variable also specifies a
threshold value. How AME interprets the threshold at run time
depends on whether the priority mode is absolute or relative.
In this case, only the first rule (whose usage has priority one)
applies. The second rule (whose usage has priority two) will be
suppressed.
In this case, the first three rules (whose usages all have one of the
two lowest priorities) apply. The fourth rule (whose usage has
priority seven, which is not one of the two lowest priorities) will
be suppressed.
Approver Category
92
Rules
How AME Handles Multiple Requirements for an Approver
93
Rules
process all of the rules of either approval type first. And if
two substitution rules apply to a transaction, AME may
process either rule first. Oracle encourages you to avoid
relying on how your particular AME instance happens to
handle indeterminacy. Instead, try to craft your rules to
avoid indeterminate outcomes.
Example Rule
94
Rules
5. Let the start date default to today.
95
Rules
Maintaining Rules
Creating a Rule
The next steps vary with the rule type you selected in step three
above.
Here again the next steps vary with the item class you selected in
step four above.
Header-Level Rule
Follow these steps if you selected the header item class at step
five above.
96
Rules
The new rule will now appear on the current transaction type’s
rules list.
Subordinate-Item-Class Rule
The new rule will now appear on the current transaction type’s
rules list.
The new rule will now appear on the current transaction type’s
rules list.
97
Rules
Combination Rule
If you choose:
Production Rule
The new rule will now appear on the current transaction type’s
rules list.
98
Rules
4. Select the ‘Add a Rule Usage’ button.
5. On the ‘Add a Rule—Step 1’ form, indicate whether the
usage should be for a rule already in use by the current
transaction type. Then select the ‘Continue’ button.
Now the steps vary, depending on whether the rule is use in the
current transaction type.
The new rule usage will now appear on the current transaction
type’s rules list, together with the other usage(s) for the same
rule.
The new rule usage will now appear on the current transaction
type’s rules list.
99
Rules
Editing a Rule
You can now select the ‘Quit’ button to return to the rules list.
Deleting a Rule
To delete a rule, you must delete all of the usages for it. When
you delete the last usage for the rule, AME automatically deletes
the rule.
100
Rules
8
Item Classes
101
Item Classes
Overview
Item classes have two uses. First, they let you build header-level
rules that are sensitive to item-level business variables such as a
line item’s cost or the total amount billed to a given cost center.
Second, they let you build subordinate-item-level rules that
generate separate approver lists for each subordinate item in a
transaction. This chapter explains
what item classes, items, and item-class usages
are
how to create, maintain, and delete item classes
and item-class usages
Item Classes
Items
Item-Class Usages
102
Item Classes
Order Number
AME uses the item classes’ order numbers at run time to sort
items’ approver lists by item class, for a given transaction. See
Chapter 9 for details.
Parallelization Mode
Sublist Mode
Item-ID Query
103
Item Classes
Creating an Item-Class Usage
The usage will now appear on the list of item-class usages for the
current transaction type.
You can now select the ‘Quit’ button to return to the list of item-
class usages for the current transaction type.
104
Item Classes
4. Select the ‘Delete’ checkboxes of the item-class usages
you want to delete, and then select the ‘Delete Checked
Item Classes’ button.
5. Confirm the deletions when prompted.
105
Item Classes
106
Item Classes
9
Parallel Approval
Processes
107
Parallel Approval Process
Overview
Approval-process parallelization shortens the time that a
transaction’s approval process requires. It does this by imposing
a hierarchical (tree) structure on the transaction’s approver list,
and letting each part of the tree at a given level progress through
its notification-approval cycle asynchronously. This chapter
explains precisely how approval-process parallelization works,
and how you configure AME to achieve the required
parallelization.
(continued)
108
Parallel Approval Process
transaction approver list
item class
header
header
pre-approver-group sublist
pre-approver-group action type
Travel Expenses approver group
Jane Doe
John Smith
chain-of-authority sublist
absolute-job-level action type
chain #1
Bill Right
Laura Lightheart
Fred Flintstone
post-approver-group sublist
[none]
line items
line item 1
pre-approver-group sublist
[none]
chain-of-authority sublist
relative-job-level action type
chain #1
Bill Right
Laura Lightheart
post-approver-group sublist
[none]
line item 2
pre-approver-group sublist
[none]
chain-of-authority sublist
relative-job-level action type
chain #1
Bill Right
Laura Lightheart
Fred Flintstone
post-approver-group sublist
[none]
cost centers
cost center A083
pre-approver-group sublist
[none]
chain-of-authority sublist
[none]
post-approver-group sublist
post-approver-group action type
US Marketing Materials approver group
Barny Rubble
cost center B66
pre-approver-group sublist
[none]
chain-of-authority sublist
[none]
post-approver-group sublist
post-approver-group action type
EMEA Marketing Materials approver group
Jeannette LeBlanc
109
Parallel Approval Process
The above approver-list tree requires 12 approvals (without
suppressing any repeated approvers):
1. Jane Doe
2. John Smith
3. Bill Right
4. Laura Lightheart
5. Fred Flintstone
6. Bill Right
7. Laura Lightheart
8. Bill Right
9. Laura Lightheart
If you decided to start the approval processes for each item class
and again for each item at the same time then there would be
three sub-processes running in parallel. The process for the
header (and the repeated approvers it contains) would start with
Jane Doe. The processes for line items 1 and 2 would be
subsumed in the header’s process (because we suppressed
repeated approvers). The process for cost center A083 would
110
Parallel Approval Process
start (and end) with Barny Rubble. The process for cost center
B66 would start (and end) with Jeannette LeBlanc. Therefore the
longest process would only include five notification-approval
cycles.
1. Jane Doe
1. John Smith
2. Bill Right
2. Laura Lightheart
2. Fred Flintstone
1. Barny Rubble
1. Jeannette LeBlanc
111
Parallel Approval Process
decisions explained above:
1. Jane Doe
1. John Smith
2. Bill Right
2. Laura Lightheart
2. Fred Flintstone
1. Barny Rubble
1. Jeannette LeBlanc
Item Classes
112
Parallel Approval Process
Items
Sub-Lists
Note that all these modes, except the serial mode are only weakly
consistent with the ordering implicit in the pre-approver/authority
approver/post-approver nomenclature. That is, a pre-approver
never follows an authority or post-approver, and an authority
approver never follows a post-approver, under any of the sub-list
modes.
Action Types
Approver groups
113
Parallel Approval Process
Approver-group parallelization is controlled explicitly via the
approver-group order numbers that a transaction type assigns
the approver groups.
Chains of Authority
114
Parallel Approval Process
Approver-group Members
Chain-of-Authority Members
115
Parallel Approval Process
10
Testing
117
Testing
Overview
Your implementation document, showing your approval
policies, should specify test cases sufficient to verify that your
transaction type does the following things according to your
business rules:
Fetch correct item IDs.
Fetch correct attribute values.
Evaluate the rule-usages correctly.
Process rule-usage priorities correctly.
Process production rules and actions correctly.
Produce the correct default approver list.
For real transactions, handle inserted approvers
correctly.
For real transactions, handle suppressed
approvers correctly.
Process repeated approvers correctly.
Parallelize a transaction’s approval process
correctly.
Process forwardings correctly.
You can do most of your testing using AME’s User Interface (UI).
You may also use SQL*Plus and the originating application to
test certain aspects of your implementation. This chapter
explains how to do so. Please complete the tests in the order that
this chapter presents them.
Item IDs
To make sure AME uses the correct lists of item IDs for a
transaction, compare the lists you see in the originating
application and the lists generated by each item-class usage’s
item-ID query string. You can view the lists of item IDs
generated by the query strings either by executing the query
strings in SQL*Plus in the apps account, an account with
comparable query privileges, or by using the test tab.
118
Testing
5. Select an item class to check from the ‘Item Class’ select
list, and then select the ‘Continue’ button.
6. Ensure all of the item class’ item IDs appear in the ‘Item
IDs’ select list on the ‘Choose an Item’ form. Then select
the ‘Quit’ button.
7. Repeat steps 5-6 above for each item class.
Attribute Values
Rule-Usage Evaluation
119
Testing
be what you expect. The reason for this is that the SQL in the
dynamic approval group may be using values from the base
table where the transaction normally resides. Creating a test
transaction does not populate the transaction base tables, hence
will not return the approvers you expect.
9. Repeat steps 6-8 until you have created all the items you
want for the item class you chose in step 5.
Note: Repeat steps 5-9 for each additional item class that
has an item-class usage in the transaction type.
120
Testing
Creating a Real Transaction
Once you have created a test transaction, you view its default
approver list by selecting the ‘View Approval Process’ button at
the bottom of the ‘Test Transaction Header Attribute Values’
form. Select the ‘Continue’ button at the bottom of the ‘Attribute
Values’ form to view a real transaction’s default approval
process. In either case, the transaction’s applicable rules (before
priority processing) appear. Ensure these are the rules you
expect to apply to the transaction before priority processing.
Rule-Usage Priorities
Transaction-Level Productions
121
Testing
Approver-Level Productions
Inserted Approvers
Suppressed Approvers
Repeated Approvers
Approver-List Parallelization
122
Testing
required notifications and observing which approvers AME
notifies at each step in the process.
Forwarding Behaviors
AME does not yet have any test functionality that would let you
update an approver’s approval status (such as the approver
forward). So, to test how AME responds to forwardings, you
must do the forwardings by responding the approval-required
notifications generated by the originating application, and then
viewing the transaction’s approver list on the test tab using Real
Transaction.
11
Administration
123
Testing
Overview
Application Administration
Configuration Variables
124
Administration
3. Select ‘Update the configuration variables’ default
values’ on the ‘Choose an Activity’ form, and then select
the ‘Continue’ button.
4. Select the configuration variable whose default value(s)
you want to set on the ‘Configuration Variables’ form.
adminApprover
allowAllApproverTypes
allowAllItemClassRules
125
Administration
Note: You cannot edit this variable’s value for a specific
transaction type; you can only edit the default value.
allowFyiNotifications
currencyConversionWindow
distributedEnvironment
AME has its own exception log, and in most cases it logs runtime
transactions to that log. If the application that owns a given
transaction type calls AME from within a workflow, AME also
logs exceptions to Workflow (see Runtime Exceptions: page 116
for details); and it uses an autonomous transaction to commit
exception data to its own log, to avoid interfering with
Workflow’s transaction management.
126
Administration
exceptions. This log is less robust than AME’s own log, and so
AME avoids using it where possible.
forwardingBehaviors
AME will seeds default values that are expected to be the normal
usage for each forward type. Oracle Application teams seeding
transaction types can override these defaults to ones more
suitable for the particular business process.
127
Administration
• An ad-hoc approver approves and forwards to an approver
already in the approver list.
helpPath
htmlPath
imagePath
portalUrl
128
Administration
productionFunctionality
purgeFrequency
repeatedApprovers
129
Administration
Once per transaction
Once per item class
Once per item
Once per sublist
Once per action type
Once per group or chain
Each occurrence
rulePriorityModes
There are two sub-values for each rule type. The priority mode
indicates whether priorities are allowed, and if so, how AME
interprets them. The modes that enable priorities use a
numerical threshold. If the mode is disabled, AME does not
allow the transaction type to use rule-usage priorities for the rule
type. If the mode is absolute, rules whose conditions are
satisfied, and which have rule-usage priorities that do not exceed
the threshold, apply.
Transaction Types
130
Administration
Deleting a Checked Transaction Type
131
Administration
1. Select the admin tab.
2. Select ‘application administration’ on the ‘Choose an
Activity Type’ form, and then select the ‘Continue’
button.
3. Select ‘Clear the web interface’s exception log’ on the
‘Choose an Activity’ form, and then select the ‘Continue’
button.
4. Confirm the operation when prompted.
Transaction-Type Administration
132
Administration
4. Select the configuration variable whose value you want
to set from the list of configuration variables..
5. Modify the variable’s value(s) per the instructions under
‘Application Administration’ above, and then select the
‘Submit Changes’ button.
133
Administration
2. Select ‘transaction-type administration’ on the ‘Choose
an Activity Type’ form, and then select the ‘Continue’
button.
3. Select ‘Clear the current transaction type’s exception log’
on the Choose an Activity’ form, and then select the
‘Continue’ button.
4. Confirm the operation when prompted.
134
Administration
uncommon, to edit the usage’s item-ID query. To edit an item-
class usage, follow these steps:
1. Select the admin tab.
2. Select ‘transaction-type administration’ on the ‘Choose
an Activity Type’ form, and then select the ‘Continue’
button.
3. Select ‘Maintain item classes’ on the ‘Choose an Activity’
form, and then select the ‘Continue’ button.
4. Select the item class you wish to edit.
5. On the ‘Edit Item Class’ form, set the parallelization
parameters to the values you desire, and edit the item-ID
query if necessary; then select the ‘Submit Changes’
button.
Runtime Exceptions
135
Administration
What happens when AME raises an exception?
The requesting application may or may not notice that AME has
identified an administrative approver as the next required
approver, or that AME has set the approver’s status to indicate
that an exception has occurred. If it does, it typically will respond
by stopping the transaction’s workflow and notifying a
Workflow system administrator. In this case, the person or user
identified by the adminApprover configuration variable will not
at this time receive a notification regarding this transaction
(unless that person happens to be the Workflow system
administrator as well). The application may elect instead merely
to send a notification to the administrative approver identified
by AME, indicating that an exception has occurred for the
transaction.
136
Administration
How Should an Administrator Respond to an AME Exception?
137
Administration
transaction, 130
138
Administration