Login
Register

Home

Trainings

Fusion Blog

EBS Blog

Authors

CONTACT US

Functional Documents
  • Register

Oracle Gold Partners, our very popular training packages, training schedule is listed here
Designed by Five Star Rated Oracle Press Authors & Oracle ACE's.

webinar new

Search Courses

In this article you will understand the basic concept of AME. This article will lay the foundation of some of the AME examples in iRecruitment and SSHR that will be covered in Apps2Fusion.

What is AME?
AME by definition is a Approval Management Engine that Builds a list of approvers for a specific transaction using business rules. However in simple words, AME is a "IF THEN....ELSE....END IF" condition - wrapped into an API.
That's exactly what AME is. It is a IF THEN ELSE CONDITION wrapped up into a lets say Function Call to produce a list of approvers. The complexities are taken care of by the Approval Management Engine itself. However this "IF CONDITION" definition holds true when talking about the simplest possible definition of AME. Therefore if you can understand "IF Condition", then you can understand AME. Further to that, if you know how to write IF Conditions and how to write SQL, then you will be able to implement most of the AME Business requirements with ease. Lets have a look into IF CONDITION from another perspective.

The example below is for explanation purpose only, not the exact definition of AME.
Imagine there is a FUNCTION that returns the approver
FUNCTION get_requisition_approver_id (transaction_id IN INTEGER )  RETURN INTEGER IS
BEGIN
IF get_requisition_amount(transaction_id) < 1000000 THEN
   return 1000 ;-- calculated from person_id from the supervisor_id of the person that created requisition
ELSE
   return 1001,1003 ; --person_id from a static approver group that contains list of people, like Director followed by a CEO to approve orders over 1Million
END IF ;
END get_requisition_approver_id ;

The above function builds a list of approvers for a specific transaction using business rules, and returns one of more approvers.


Understanding the basic building blocks of AME
To understand the building blocks of AME, in the above example, consider the complete FUNCTION definition get_requisition_approver_id as "AME Transaction Type". Let us discuss the basic building blocks of AME using the Function get_requisition_approver_id as listed above.

To this "AME Transaction Type" a parameter named Transaction Id is passed that helps identification of the underlying business transaction, for example this could be requisition_header_id from po_requisition_headers_all.
Consider the IF Statement as "AME CONDITION"

The IF statement will rely upon some variables. Consider that these variables are "AME ATTRIBUTES" for the transaction types. The value for these attributes can be calculated by executing some SQL Statements. Alternately the AME Attribute can be defined with a static value too. In AME Terminology, for a  variable to be used in IF condition you must ensure that its corresponding AME Attribute is registered against the AME Transaction Type. [Note - Some AME Attributes used by AME Engine are globally available to all AME Transaction Types]. The value of the AME ATTRIBUTE can either be static value or dynamic when derived by firing a SQL Statement.

The return statement in above function is nothing but an "AME Action". As per the example above, the "AME Action Type" will return the Supervisor of the person if Requisition amount is less than USD 1 Million. However, the "AME Action Type" will return the person_id of Directory followed by the CEO of the company when requisition amount is greater than USD 1 Million.

The Combination of the IF CONDITION and the RETURN Statement is called "AME Rule". In other words each AME rule is a condition with a result returned.
However it must be noted that you can define an "AME Rule" without any condition. At the time of creating the "AME Rule" you will get a option to wrap a condition around it. You may decide to skip the step of attaching a condition to the rule. Fictitiously if all the Requisitions must be approved by the CEO, then you simply define a AME Rule without any "IF Condition".

The entire return statement i.e. "return 1000" may be deemed as AME Action Type, however the value 1000 or 1001 or 1003 is derived from something known as "AME Approval Group". As you might have guessed, the "AME Approval Group" can either be a static list of people or a dynamically calculated list of people. The dynamic list is of course generated using the results of a SQL Statement.

Therefore "AME Transaction Type" is the encapsulation of the approval business rules relating to a business transaction like Requisition.
You can have as many IF Conditions as you desire to build the logic for approval. Therefore "One AME Transaction Type" can consist of many "AME Rules". In other words "One AME Transaction Type" can consist of various "IF THEN ELSE Statements" and their corresponding actions.


Therefore, by reading the above function based example, it is clear that AME consists of certain building blocks that are
Building Block Name
Purpose
AME Transaction Type
Think of this to be the entire Approval Business Process for a specific transaction type, for example PO Approval or iRecruitment Vacancy Approval. Of course a business process will consist of various rules.
AME Attributes
Think of these as global variables whose values can either be static or derived from SQL Statements. The SQL Statements can reference the transaction id, which for example could be "requisition header id" or "vacancy_id". These Attributes can be used for building the AME Conditions.
AME Conditions
These are IF Conditions that use variables, i.e. AME Attributes
AME Action Type
Action type defines how the action is taken to calculate the result. For example- the action be to use a specific Approval Group based on static list of employees.
Alternately the action can be to use a dynamically built list of Approvers.
AME Approval Groups
Approval groups are used to build the list of approvers, either from Static list or from SQL Statements. Calls to Approval Groups are made from "AME Action Type".
AME Rules
Combines the "AME Condition" and "AME Approval Groups". Indirectly though it references all the building blocks of AME. You can say that every piece of AME building block is glued together in an "AME Rule".

Profile option "AME:Installed" must be set to Yes, at application level to the calling application to be able to use AME.. For example, to make iExpenses use AME, you should set profile to Yes for "Payables" Application.

The "AME Transaction Type" can be defined using a responsibility named "Approvals Management Administrator".
Remainder of the building blocks can be defined and configured using responsibility named "Approvals Management Business Analyst". Oracle eBusiness suite comes seeded with

Given that AME is configurable, you may want to rollout AME to your Super Users or Support Staff. For example, you may have one support team for HRMS product and another support team for Procurement product. In such cases, you do not want the HRMS Support team to modify Approval Rules of Procurement. To achieve this security, AME uses RBAC.
In one of the future articles we will see how to configure RBAC in AME in one of the future articles.

In Next article we will browse through these AME Building blocks in a video demo, in the context of Self Service HRMS.

Anil Passi

Comments   

0 #1 Nawfal Mami 2009-04-29 06:34
Hi Anil,
I'm someone who have learned a lot from you and other contributors specially Kishore Ryali for the apex sessions. Thanks for you all.

I'm waiting for the next article :)

rgds
Nawfal MAMI
SCM consultant, Saudi
Quote
0 #2 Dinesh Chauhan 2009-04-29 11:27
Hi Anil,
Keep up the good work!!! In Oracle EBS approvals are more or less manageg via workflow. How AME is different then workflow ? Does AME is replacement of workflows or will compliment it ?

Dinesh
Quote
0 #3 Anil Passi 2009-04-29 11:36
You are right, AME compliments Workflow, and by no means does AME replace Workflow.
Quote
0 #4 Priya Pusp 2009-05-01 10:14
Hi Anil ,

I really appriciate your work , even I learnt a lot of things from your blog . Now I am feeling a lot of confodence in me . So I want to tell you lot of thanks to you . Do You have Global consolidation system and Global intercompany system doc . If there is a video kind of doc that would be more appreciated .

Regards
PP
Quote
0 #5 Anil Passi 2009-05-01 15:33
Hi PP

I am afraid i do not have any video/docs presentations for Global consolidation system and Global intercompany system

Thanks,
Anil Passi
Quote
0 #6 Priya Pusp 2009-05-02 02:46
Hi Anil,

Can you please tell me , is it necessary to know the JAVA to work in OAF .What are are the basic thing I should know to work in OAF .
However , I am a Techno-Function al consltant of Oracle GL, Oracle Receivable , Oracle Payable . I have also worked on in Forms 6i and reports 6i
for last 8 years . I don't know anything about JAVA . Would I be able to Follow the OAF ?


Regards

Priya Pusp
Quote
0 #7 Anil Passi 2009-05-02 03:37
You can learn your Java while you work on OAF.
But it will be good to read few chapters of any good java book to understand basic object principles first.
Quote
0 #8 Priya Pusp 2009-05-02 04:59
Thanks Anil
Quote
0 #9 Chinna 2009-11-18 16:31
Hi Anil,

How can we get the transaction id from controller object using oaf ?
Quote
0 #10 Anil Passi- 2009-11-18 19:39
Please use the code below

import oracle.apps.per .selfservice.co mmon.SSHRParams ;
.
.
.
.
SSHRP arams sshrparams = new SSHRParams(oapa gecontext.getRo otApplicationMo dule());
String sTrxId = sshrparams.getT ransactionId();

Thanks,
Anil Passi
Quote
0 #11 Chinna 2009-11-19 10:36
Hi

I am in a sitaution that i need to implement the default manager for both NewHire and Associate Status Change in HR. For this i need the org_name, job_name and people_group value for my logic to work. When i am retrieving the values from the VO(AssignDetail VO) the NewHire is working fine but when coming to associate status change when i change any of the value org_name or job_name or people_group i am unable to get the values i changed instead i am getting the values that are already in the database i.e the original values from the VO.

So i want make use of transaction_id for that particular transaction so that i can use that id to retrieve the particular transaction values.

If i do so does that logic work for both NewHire and Asscociate Status Change ???
Quote
0 #12 Anil Passi- 2009-11-19 14:37
Hello Chinna,

The AME kicks off as a PL/SQL engine, therefore I do not understand the connection between OAF View object and your AME calculations?
I f you have the transaction_id, you can get the assignment Id, and from assignment id you can get org,job etc.
Based on that information, you can build SQL for approval group.

I suggest you to go through Part1 to Part9 to get the full picture of AME and SSHR

Thanks,
A nil Passi
Quote
0 #13 abhishek paliwal 2010-02-03 07:32
Hi Anit,
I have done set up in AME for AP invoices. I have defined approval group as static. This statis Approval group definition is not
user friendly whenever user got retired from his/her current Position, we have to update the Approval name in AME. Can't we
make it fully automatic.
I mean when user got retired from current position and other person join that position , system will automatically update the
approval name in AME set up instead of doing it manually.
Now i want to know how i can defined Dynamic Approval Group for AP Invoices. If you any document then please send it to me.

Thanks
Abh ishek
Quote
0 #14 thammineni 2010-09-16 04:35
In AME there is transaction ID. if i am creating customised transaction type and my own work flow for that. where to set this transaction. how it will accessed in AME...
Quote
0 #15 Rakshith Chengappa MK 2011-01-20 23:58
Very helpful article Anil. You Rock!
Quote
0 #16 Guru Narayanan 2011-02-21 08:46
Hello Anil,

I'm in a situation where the approval for educational qualification addition or updation in SSHR has to be sent to HR Manager, Instead it's notifying to Supervisor, Can you please help me out in this regard?

Regard s
Guru.K
Quote
0 #17 emad 2011-04-18 06:11
Hi,

My UAT after 3 days and i am stucking how to build invoice approval workflow, is there any way to build this workflow on invoice beside AME ?? if not can you please send to me the steps to build this cycle ??

BR
Emad
Quote
0 #18 Padmaja 2011-04-19 20:04
Hi Anil,

How can I clear AME cache? We are in the UAT phase and go live is on Monday.
Wheneve r I compile AME custom package (which is a copy of AME_UTIL), AME displace invalid object error in ame_exceptions_ log. It worked some times when we ran the utlrp.sql script with SYSDBA privilege. Can you please help me to find out the where to clear cached object.

Thanks in advance,
Padmaj a
Quote
0 #19 Pavithram 2012-05-11 15:42
Hey Anil...its really a great article that you right on Oracle different functioanlities & their uses...i just read AME & it was really great & understud many things in Oracle AME though not fully but yaa understud upto sum extent.

I wanna thank u for your blogs with information on how to setup & everything.

Ch eers
Quote
0 #20 Yousef 2013-04-21 01:50
Just I would like to thank you for your efforts and for the way that you are explaining, God bless you
Quote
0 #21 Sonic Body Works 2021-07-04 18:56
For latest news you have to pay a quick visit internet and on web I found
this website as a most excellent web page for most up-to-date updates.
Quote

Add comment


Security code
Refresh

Search Trainings

Fully verifiable testimonials

Apps2Fusion - Event List

<<  Apr 2024  >>
 Mon  Tue  Wed  Thu  Fri  Sat  Sun 
  1  2  3  4  5  6  7
  8  91011121314
15161718192021
22232425262728
2930     

Enquire For Training

Related Items

Fusion Training Packages

Get Email Updates


Powered by Google FeedBurner