AME Part Two – Components of AME

February 8th, 2010 Matt

In the last blog post, I provided a quick overview of what AME is and what some of the benefits of using AME are. In the second post in my series on AME, I’ll be looking at the different components of AME and how they interact.

Before you start using AME, it is important that you understand exactly what the different parts of the Engine are, what you need to configure, and how they all work together. There is frequently a requirement to modify the seeded components or to create new ones for an organization, in order to develop their business rules.

Transaction Types

A Transaction Type defined the type of transaction for which the business rules and approval routes will be based. This is an eBusiness Suite transaction, for example creating a new vacancy in iRecruitment or creating purchase orders. There are many different Transaction Types seeded within the application to meet the requirements of the most common transactions which occur within the eBusiness Suite that would require an approval to take place. If you are integrating a bespoke application with AME, then new Transaction Types can be defined within AME. However, the creation of new Transaction Types is not a straightforward task, and Oracle discourage this because of the amount of programming effort that is required to integrate a new Transaction Type with AME.

Attributes

Within AME, Attributes can be defined as business variables which represent the value of an element in a transaction. For example, in the case of an invoice approval, a typical attribute would be the supplier name, or the invoice value. When defining the business rule, the attributes that are available to you will help define the rule itself and it’s implementation within AME. The reason for this is that the value of an Attribute for a transaction is usually evaluated as part of the rule in order to determine whether the condition has been met or not – for example, is this invoice worth more than £500? Within AME, Attributes can be created as static (where they have a constant value which remains the same for every transaction associated with the Attribute), or as dynamic (where they use a SQL query to determine the value of the Attribute at run time). Most Attributes that are used within AME are dynamic.

Within AME, there are different types of Attribute available to you:

  • Strings can be alphanumeric and have a maximum length of 100 characters.
  • Numeric attributes can have any numeric value that is acceptable in PL/SQL, including decimals and negative numbers. When using a numeric Attribute within AME, the number must be converted to a canonical form – within the FND_NUMBER package there is a function NUMBER_TO_CANONICAL which will do the conversion for you.
  • Currency Attributes are used when the organization is using multiple currencies. This allows Oracle to perform currency conversions when retrieving the Attribute value. If currency Attributes are used, the SQL query which retrieves the value must include the numeric column, currency and conversion method. Additionally, any AME conditions which use currency Attributes must include a condition for EACH CURRENCY that the transaction might use.
  • Boolean Attributes can only have a valid value of true or false. Any dynamic Attributes which are defined as Boolean MUST return one of these two states – NULL is not a valid value in an AME Boolean Attribute. When using Boolean Attributes, AME provides a format string which should be used – AME_UTIL.BooleanAttributeTrue and AME_UTIL.BooleanAttributeFalse.
  • Date Attributes are commonly used within AME – for example the invoice date, shipping date, and so forth. Again, AME is particular with the format and requires all date Attributes to be in the format YYYY:MON:DD:HH24:MI:SS. There is a format string again provided in the AME_UTIL package – AME_UTIL.versionDateFormatModel which can be used to return a date in the required format.

Read the rest of this entry »

Posted in Functional, Oracle | No Comments »

An introduction to AME

February 4th, 2010 Matt

Recently, I’ve been asked from a number of places about Oracle’s Approvals Management Engine, or AME, so in the next few blog posts, I’ll be taking a look in more detail about what it is and what it can do for you and your organization.

AME is an “easy” way for a business analyst / functional consultant to define business rules for transaction approvals within eBusiness Suite. Not all applications modules support AME, however, in which case you are back to the age-old bespoke method of identifying approvers and including custom logic to ensure that the right people are included within the approvals process. Note that I have used inverted commas for the word “easy” – AME provides the opportunity to include business rules which can vary widely in complexity.

In this post, I’ll be looking at the components of AME which are required for configuration, and in later posts I’ll move onto some practical examples from within iRecruitment and Financials.

AME Basics

As I said earlier, the purpose of using AME is to implement specific business rules within the framework of the application to manage the approval of a transaction. This can always be done outside of AME (and for some modules, this is still a requirement!), but if the approvals process can be captured within AME then this makes for a more straightforward implementation which (theoretically at least) is easier to maintain over the long-term. When approval is sought, AME uses Workflow notifications to inform the approver that they need to action the request, and to capture their response.

AME (as I said earlier) allows you to implement rules of differing complexity – for example, any invoices which are over £500 must be approved by the requester’s supervisor; all vacancies created in iRecruitment must be approved by Bob in HR; and so forth. Many organizations, however, have much more complicated – for example, any invoice which is matched to a purchase order and has any lines which are over £5000 and include heavy machinery must be approved by the Operations Manager and his immediate supervisor (or the next available supervisor with the appropriate authorization limit). The flexibility that AME brings means that the same method can be adopted for any of these requirements.

So, why bother with AME?

As I said earlier, you can already build all of this through custom code – and in versions of the eBusiness Suite that were availably prior to AME, that is what most organizations did. However, there are some clear advantages of managing the approvals process using AME over using bespoke software.

Firstly, in many cases, business rules can be defined and implemented without the need for any code. Now that’s a big one, so I’ll say it again – IN MANY CASES, BUSINESS RULES CAN BE IMPLEMENTED WITHOUT THE NEED FOR ANY CODE. Less code means less things to maintain, and less things to go wrong (assuming that the functional configuration is correct and the code is always the thing to go wrong, but we’ll not go there in this post!!).

Secondly, if there are already hierarchical structures defined in the application, then AME can leverage these as standard – again, there is no need to write custom code to find the next available approver, since AME does it automatically.

Another advantage of using AME is that if there are specific requirements to route an approval to a specific group of people or an individual, then AME provides the person making the functional configuration with the ability to setup specific hierarchies or approval groups which can be used to determine where to route the approval.

The last main benefit (and it’s a good one!) is that AME has the ability to respond to any changes in the approvals process whilst the process is still going on. This includes, for example, a change in the approvals hierarchy (which can be included fairly easily within custom code) but also if the business rules themselves are modified during the process, or even if the values of the transaction themselves change during the process – now that’s clever! Every time an approver for a transaction responds with an approval, AME checks the rules as they stand at that point in time, and rebuilds the approver list to determine who the next approver should be. So, let’s take the simple example above where if the invoice is over £500 then the supervisor must approve the invoice. An invoice for £1500 is created, AME checks the business rules and notifies the supervisor. The business analyst then decides that if the invoice is over £1000, it requires three levels of approval, and so makes the change within AME. When the supervisor responds to the notification, AME rebuilds the approval list using the new rules, identifies who the next approver should be, and then routes the transaction to them for approval.

That’s the end of my very quick overview of what AME is and why you should use it – in the next post, I’ll go into the components of AME and how they work together.

Posted in Functional, Oracle | 2 Comments »

Wordpress Flickr Manager changes for 2.9

January 12th, 2010 Matt

I recently started a new blog for my photos, which I’m starting to advertise for sale through Etsy (links to follow once I have some more things in place :) ) and I added the Wordpress Flickr Manager plugin so that I can easily pull in pictures from my Flickr account into the blog. However, it didn’t work with Wordpress 2.9 :(

So, I made a couple of changes to some files and it seems to be working now – so, if anyone is having the same problems, here’s a list of the files that I changed:

  • wordpress-flickr-manager/js/wfm-lightbox.php
  • wordpress-flickr-manager/js/media-panel.php
  • wordpress-flickr-manager/js/wfm-hs.php

In each of those files, remove any ‘@’ characters that are in the files, for example:

this: wfmJS(‘a[@rel*=flickr-mgr]‘).each(function() {
becomes: wfmJS(‘a[rel*=flickr-mgr]‘).each(function() {

Once you have made the changes, the plugin should work fine.

Posted in General Computing, Non-Oracle | 2 Comments »

Machines running machines!

December 4th, 2009 Matt

There’s a line from C3-PO in Attack of the Clones where he sees robots making battle droids, and he says something like “machines making machines! Huh! How perverse”.

So now that I have VMWare running, here’s my version – Linux running Linux :)

Screenshot

Posted in General Computing, Technical | No Comments »

VMWare user – eek!

December 4th, 2009 Matt

OK – so now I’ve got the VMWare default username for logging in.

It’s “root”.  EEK!

Couple of minor things there – firstly, I’m not too keen on just running these things as the root user.  Secondly, not everyone knows the root password.  And thirdly, not everyone changes the root password from the default that is generated when you install Ubuntu.

Now, in Windows, any Windows user can log into the VMWare console.  In order to get that to work under Ubuntu (and I guess every flavour of Linux), you need to edit the configuration file which can be found in /etc/vmware/hostd/authorization.xml.

So, modify the file and then restart VMWare using

sudo service vmware restart

and you should now be able to log in as your different user.

Posted in General Computing, Non-Oracle | No Comments »

Installing VMWare Server on Ubuntu 9.10 64-bit

December 4th, 2009 Matt

Well, the installfest continues….

Today, I had problems getting the 64-bit version of VMWare server to install correctly.  I uninstalled it, started again, hit errors (some of my own making, some not) and then found out that it was a bug.

Since it took me a while to find out how to fix it, I’ll just give you a link to where I got the info from – it’s here.

Thankyou AcmeLabs – now I just need to find out my username and password to get into it!!

Posted in General Computing, Non-Oracle | No Comments »

Xorg.conf fun and games

December 3rd, 2009 Matt

As I said earlier today, the installfest to get rid of Windows and move to an operating system is under way.

I eventually got three monitors running at the same time after much playing with xorg.conf, but ended up with one screen doing it’s own thing, and a separate desktop spanning the other screens.  Not quite what I wanted, since I want to be able to drag and drop between the screens.

In the end, I’ve given up on the idea of getting the three screens working together, and have gone for the following really basic xorg.conf file which gives me a desktop spanning two of the three screens – something I can live with!

Section "Screen"
	Identifier	"Configured Screen Device"
	Device	"Configured Video Device"
	SubSection "Display"
		Virtual	2560 1024
	EndSubSection
EndSection

Section "Device"
	Identifier	"Configured Video Device"
EndSection

I’m sure that there must be a way to get one big desktop across the three screens, but for now, I’ll settle for the two working properly!

Posted in General Computing | No Comments »

Bye, bye Windows!

December 3rd, 2009 Matt

When Windows 7 was released, I gleefully decided that this was going to be my chance to get away from XP Professional 64-bit, since it crashed reasonably frequently (every day or so).  Not too much of a problem, since it normally happened overnight, but when you are downloading the latest version of eBusiness Suite, then it can be annoying to say the least.

So, I stumped up my £150 for Ultimate edition, and a couple of days after the release date, it duly arrived.  Nice clean install – two new 1.0TB hard drives, two new ATI graphics cards, all ready to go.  No problems with the install (which was only to be expected, since the drives were completely new and hadn’t been used before), and then I started to actually use the system.

And it crashed.

And it crashed.

And it crashed again.  At least once a day, and every night – the PC crashed.  Annoying when you aren’t using it – VERY frustrating when you have just waited 20 minutes for a virtual machine to start and it blue screens.  No help from Microsoft, no help on the net, nothing.

And so, this week, while I was at UK OUG, I decided to leave the machine running a live CD version of Ubuntu 9.10 to see how that went.  Last night, when I got home, it was still running – 5 days of uptime.

So, today it’s goodbye to Windows 7, hello Ubuntu – and the installfest continues :)

Posted in General Computing, Non-Oracle | No Comments »

Invalid package error for a valid package! – Revisited

October 14th, 2009 Matt

A while back, I wrote this post about the dreaded “existing state of the packages” error when recompiling code that is used in a Workflow process.

There is some degree of official guidance on what you need to do now, contained in Metalink note 754993.1 – “How can you Avoid Bouncing the Database after Changing a WF Package”.  The advice is, to be honest, perhaps a little Draconian and unwieldy, but the guidance from Oracle is that all you need to do is:

  1. Shut down the concurrent managers
  2. Flush the shard pool
  3. Update the package
  4. Restart the concurrent managers

Now, that certainly will do it (so would bouncing the database, though!) – the likelihood of a developer shutting down the managers, then flushing the pool, and THEN compiling their code is probably quite low, though :D

Posted in Oracle, Technical | 1 Comment »

What’s your job title?

August 27th, 2009 Matt

Normally, I’m described as wither a “consultant” or a “contractor” depending on what the client is expecting me to do – I much prefer the more consultancy-oriented roles, where there is a genuine interest in your input to help devise the best solution for them, rather than the contractor-oriented roles which tend to be much more of the “here is what you need to do, here is how to do it, now go and do it and don’t ask any questions” variety.

Recently, I found an amusing definition of consultant, contractor and freelancer on The Daily WTF (Worse Than Failure!) blog:

Consultants fill the gap when an organization needs to leverage their collective synergy with a quality-driven approach that focuses on delivering key objectives. Contractors are great when the only remaining solution is throwing more bodies at the problem. And freelancers, they’re perfect for companies on a budget, hoping to build their technology infrastructure ten dollars at a time.

Posted in General Computing, Non-Oracle | No Comments »

« Previous Entries
  • Pages

    • About Us
    • Services From WorkflowFAQ
    • Training
    • Workflow Book
    • Careers
    • Forum
    • Blog
  • Oracle 11i Workflow Certified Expert
    Oracle 11i System Administrator Certified Expert

  • Blog

    Archives

    • February 2010
    • January 2010
    • December 2009
    • October 2009
    • August 2009
    • July 2009
    • March 2009
    • February 2009
    • January 2009
    • December 2008
    • November 2008
    • October 2008
    • September 2008
    • August 2008
    • July 2008
    • June 2008
    • May 2008
  • Categories

    • General Computing (23)
    • Non-Oracle (10)
    • Oracle (45)
      • Functional (3)
      • Technical (43)
    • Uncategorized (1)

  • Links

  • General Computing

    • Computing Magazine
    • Download.com
    • SourceForge.net
    • The Daily WTF
    • The Register
  • Non-Computing

    • BBC News
    • Cuteable
    • My wife’s shop
    • The Guardian
  • Oracle Related

    • AppsDBA
    • Oracle
    • Oracle Apps Blog
    • Oracle Magazine Interactive
    • Oracle Support
    • Oracle Technology Network
    • Oracle UK
    • Oracle Workflow Forum on OTN
    • Oracle WTF
    • OraFAQ
    • Steven Chan
    • Steven Feuerstein

  • Search



WorkflowFAQ is proudly powered by WordPress | Copyright © 2008 TS Fifteen Ltd. All rights reserved.