Fabiana's Oracle Apps Flap

"There is no off position on the genius switch" (David Letterman)

Transitioning from Account Generators to SLA


The Subledger Accounting Engine represents a major shift in architecture for the accounting component of the Financials product family. In prior releases, the accounting events were stored within individual subledgers. Now a new schema (XLA) exists and the accounting events for each subledger are retained within one data model. One of the new functionalities of the Subledger Accounting Engine is the Accounting Methods Builder which enables users to define accounting rules using standard Oracle forms. With this functionality, we are able to define and maintain custom accounting rules which before were defined in Workflow Account Generators. Users will find several advantages to transitioning custom accounting rules from Account Generators to the Accounting Methods Builder.

There is a number of account generators in R11, that can be replaced by user-defined rules in SLA. Wanna start having some fun? Our old friend Mr. FA Account Generator (FAFLEXWF), used by Assets to generate the Accounting Combinations for each Asset Transaction, is a good candidate. Don’t have a clue where to start? Don’t worry, you are not alone. Please review this tutorial on SLA accounting in Anil Passi’s apps2fusion portal: http://apps2fusion.com/at/58-pv/303-r12-sla-subledger-accounting. Enjoy!


Filed under: Uncategorized

Catching up on ACH functionality in Oracle Apps

Hello again!

Job interviews are an incredible source of spotting opportunities for improvement in your technical, functional and interpersonal skills.

This time I did not do good. They asked me: “Have you worked with ACH transactions?”. And my answer was: “No”. When the interview was over, I started researching on the subject. Following is a brief of my findings.

ACH states forAutomatic Clearing House. is an electronic network for financial transactions in the United States. ACH processes large volumes of credit and debit transactions in batches. ACH credit transfers include direct deposit payroll and vendor payments. ACH direct debit transfers include consumer payments on insurance premiums, mortgage loans, and other kinds of bills. Debit transfers also include new applications such as the Point-Of-Purchase (POP)  check conversion pilot program sponsored by NACHA-The Electronic Payments Association. Both the government and the commercial sectors use ACH payments. Businesses are also increasingly using ACH to collect from customers online, rather than accepting credit or debit cards.

In 2002, this network processed an estimated 8.05 billion ACH transactions with a total value of $21.7 trillion. Note that credit card payments are handled by different networks. The main difference between ACH transactions and credit card transactions is  credit cards guarantee the funds for the payment, while in ACH the funds are not guaranteed. The ACH transaction may reject for several reasons with the most common being NSF (non sufficient funds) or a closed account.

How to set up this method of payment/collection in Oracle Applications?

Payables:  R12 please review Oracle Payment’s Implementation Guide, Chapter 10: Using Oracle Payments with External Payment Systems for Funds Capture.

Receivables:  R12 please review Whitepaper: Automatic Receipts –  A complete Guide for Oracle Receivables Users (ID 745996.1) in Metalink and the Receivables documentation as well.

This post is only a brief introduction on the subject. All contributions are welcome, feel free to comment.

Have  a nice weekend and TGI’s Friday!


Filed under: Functional Tips, Uncategorized

Forms Personalizations: what you can and what you can’t do with FP.

Hi everyone! It’s been a long time. I’ve been really busy moving from Argentina to the US but now I am back on track with my Oracle Apps Flap.

I am actively searching for my next project and I had a few interviews the last few days. In one of them I was asked the following question: “Can you display messages with questions and conditionally execute code based on users response to the question?”. The answer to that one is “No, you can’t”. I got that one right! What you can do is use  code in CUSTOM.pll to achieve this behaviour.

Even though I remembered the answer to that one,  I did some research to refresh what you can and what you can’t do with FP. I found an excellent article in Anil Passi’s book “Oracle E-Business Suite Development and Extensibility Handbook” illustrating the diferences of customizing using CUSTOM.pll or FP.  Following is a copy of that chart:

Task Custom.pll Forms Personalization
Change LOV query Yes Yes
Change field properties such as Mandatory, 

Display, and so on

Yes Yes
Zoom to another screen Yes Yes
Disable a menu entry when certain 

conditions are met

Yes No
Display messages, warnings, hints, 

and so on

Yes Yes
Display messages with questions and 

conditionally execute code based on users’ response to the question

Yes No
Execute PL/SQL stored procedures Yes Yes
Change navigation and navigational 


Yes Yes
Change block properties such as Query 

Where Clause and so on

Yes Yes
Change applicable across multiple screens, 

such as changing the window title for

all screens within one organization or


Yes Yes *
Use a PL/SQL stored procedure that has 

OUT parameters in Condition.

Yes No

* In Forms Personalization, you will need to personalize each and every impacted form separately. However, in CUSTOM.pll this can be achieved with a few lines of code so changes can be effective across all the relevant screens.

Always, when challenged by technical questions, I go back to Anil’s book. This should be like the bible for us developers, we should keep the book in our nite table and read a small passage every nite.

Have a great weekend!


Filed under: Development Tips, Uncategorized

Oldies but goodies: setting the session context

Before R12, the code to set the session context to the desired org_id was:




Where you would replace org_id with the id of the organization you were wanting to query, so queries like

select  *

from po_headers;

Would return values for that org_id.

(you could have also used FND_GLOBAL.APPS_INITIALIZE  to set your context).

Tip: How do you get your org_id value? (works both in R11 and R12)

select org_id,name

from hr_operating_units;

In R12, you can set the context for a single operating unit using the following


execute mo_global.set_policy_context(‘S’,org_id);


Where S is Single mode and org_id is the organization you want to set.

However the following is the preferred method


execute mo_global.set_org_access(p_org_id,security_profile_id,’AP’);


For example, for security_profile_id=34 and Oracle Payables :


execute mo_global.set_org_access(NULL,34,’AP’);


This procedure determines if the application specified (in the example ’AP’ ) has multi-org access control enabled, by querying FND_MO_PRODUCT_INIT  for the application short name. If this is enabled, and a security profile is specified (security_profile_id), then all orgs the user has access to will be populated in MO_GLOB_ORG_ACCESS_TMP. If there are more than one such organizations, the access method will be set to “Multiple”. Otherwise if no security_profile_id  is specified, it will use the value of p_org_id to set the current operating unit value and set the access mode to “Single”.

You can use the following query to retrieve Security profiles and related Operating unit names








where 1=1



Further reading

Oracle E-Business Suite Development & Extensibility Handbook (Anil Passi)

Oracle Applications Multiple Organizations Implementation Guide Release 12 Part No. B31183-02

Filed under: Development Tips, Uncategorized

March 2017
« Jul    

Fabiana Berrozpe