Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 194

http://www.oracleappshub.

com/category/11i/

What is FND_FILE

An API that contains procedures to write text to log and output files which can be viewed
once the Concurrent program get completed in output or log . These procedures can only
be used within PL/SQL Procedures which, are concurrent programs.

Internally its uses the oracle supplied database package UTL_FILE

 utl_file_dir parameter must be set to include the log and out directories for the
applications that will run concurrent requests using FND_FILE
 Database owner must have write privileges on those directories
 Take a note that FND_FILE supports a maximum buffer line size of 32K for both
log and output files.

Here are the list of Options available within API.

 FND_FILE.PUT

Useful for writing text to a file without a new line character. Multiple calls will
concatenate the text .
Does not include new line character

FND_FILE.PUT (which IN NUMBER, buff IN VARCHAR2)


Which - Means LOG file or OUTPUT file.

 FND_FILE.LOG
 FND_FILE.OUTPUT

Buff - Means text to write.

Usage
FND_File.Put(FND_File.Log, ‘This text written to Log file’);

FND_File.Put(FND_File.Output, ‘This text written to Log file’);

 FND_FILE.PUT_LINE

This is used to write a line of text to a file followed by a new line character

FND_FILE.PUT_LINE (which IN NUMBER, buff IN VARCHAR2)

Usage
FND_File.Put_Line(FND_File.Out, ‘This text written to Out file’);
 FND_FILE.NEW_LINE

FND_FILE.NEW_LINE( which IN NUMBER, LINES IN NATURAL:= 1)


Writes line terminators (new line characters) to a file.
Eg. FND_FILE.NEW_LINE(FND_FILE.LOG,2)

 FND_File.PUT_NAMES

This is used to sets temporary log and out file names and directory, which normally used
during test and debug phase.

FND_FILE.PUT_NAMES(p_log in varchar2,
p_out in varchar2,
p_dir in varchar2)
Usage
FND_File.Put_Names(‘Order123.log’, ‘Order123.out’,
‘/usr/temp/outfiles’);

Example
BEGIN
fnd_file.put_names('test.log', 'test.out','‘/usr/temp/outfiles’');
fnd_file.put_line(fnd_file.output,'Called stored procedure');
/* add logic, etc... */

fnd_file.put_line(fnd_file.output, 'transaction locked at point A');


/* More logic, etc... */

 FND_FILE.CLOSE
This will closes open files.

This is normally used only during test and debug phase

Usage:
FND_File.Close;

Sometime you can't understand why user want specific things which really does not have
good cause. The one such case is turning off Horizontal menu in one of the Oracle EBS
forms.

If this is the case, there is no shortcut or profile option, rather you need to take technical
help some who can open the form in Builder.

If you required to eliminate the forms default menu?

Here to go:
In the Form Builder, open the property palette for the Form. Highlight the form name.
Right mouse click to open the property palette. There should be listed a menu - the
default menu is default & smartbar. Just Delete this.compile and restore within the
application top of form sub folder.

Anyone have better idea , to turn off horizontal menu ???

Posted in AOL, Personalizations | 1 Comment »

Moving Personalizations between instances …


FNDLOAD for Form Personalization
Posted on May 10th, 2009 by Sanjit Anand |  Print This Post |  Email This Post

Most of developer always struggle when ever it come to migration of form


personalization component, beacuse of limitation of full access in Production box.
Therefore, It's better to use oracle seeded Migration tool FNDLOAD.

Once you created and done testing for personalizations in your development/test instance,
you can move them to production instances.

As discussed in last post, Personalization is per Function not per form therefore this can
extracted by the loader on a per-function basis.

You should take a note that upon uploading, all prior personalizations for that function
are first deleted, and then the contents of the loader file are inserted. So be careful..)

FNDLOAD - A pain killer for migration

you can either Download for a specific form or specfic function of the form. In both the
case same affrmcus.lct is used.

Download -specific form< /STRONG>

FNDLOAD <userid>/<password> 0 Y DOWNLOAD


$FND_TOP/patch/115/import/affrmcus.lct <filename.ldt>
FND_FORM_CUSTOM_RULES
form_name=<form name>< /FONT>

Download -for all personalizations< /FONT>

FNDLOAD <userid>/<password> 0 Y DOWNLOAD


$FND_TOP/patch/115/import/affrmcus.lct <filename.ldt>
FND_FORM_CUSTOM_RULES function_name=<function name>< /FONT>
 Function_name is a required parameter
 You cann't download lct file with out any supplied value.

Upload
FNDLOAD <userid>/<password> 0 Y UPLOAD
$FND_TOP/patch/115/import/affrmcus.lct <filename.ldt>

Uasge

FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/affrmcus.lct


xxapperiod.lct FND_FORM_CUSTOM_RULES form_name=APXSUMPS

FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/affrmcus.lct


xxapperiod.lct

Because the architecture has built-in support for all languages, you don’t translate ldt
files, but instead you enter multiple Actions for different languages.

Posted in AOL, Personalizations | No Comments »

FNDLOAD: ….exporting Oracle Alert


Posted on May 6th, 2009 by Sanjit Anand |  Print This Post |  Email This Post

Chapters 2 and 7 of the Oracle Alert User Guide covers Transfers Process.

These are command you can use:

1. Command to download

FNDLOAD apps_user_name/apps_password 0 Y DOWNLOAD


$ALR_TOP/patch/115/import/alr.lct my_file.ldt ALR_ALERTS
APPLICATION_SHORT_NAME=FND ALERT_NAME=Alert name to download

Usage

$FND_TOP/bin/FNDLOAD apps/apps 0 Y DOWNLOAD


$ALR_TOP/patch/115/import/alr.lct CMS.ldt ALR_ALERTS
APPLICATION_SHORT_NAME='AR' ALERT_NAME= 'CMSEXCEPTION'

2. Command to upload

FNDLOAD apps_user_name/apps_password 0 Y UPLOAD


$ALR_TOP/patch/115/import/alr.lct my_file.ldt

Usage
$FND_TOP/bin/FNDLOAD apps/apps 0 Y DOWNLOAD
$ALR_TOP/patch/115/import/alr.lct CMS.ldt

You can use some additional parameters such as

 ALR_DISTRIBUTION_LISTS APPLICATION_SHORT_NAME=AD where


APPLICATION_SHORT_NAME represents the Application Alert owner
 ALR_LOOKUPS
 ALR_MESSAGE_SYSTEMS
 ALR_ORACLE_MAIL_ACCOUNTS
 ALR_PROFILE_OPTIONS
 ALR_PERIODIC_SETS APPLICATION_SHORT_NAME=ALR

Further Reading

 Its all about FNDLOAD


 Great FNDLOAD - Part -II
 FNDLOAD for AME’s

Posted in AOL | No Comments »

Oracle terminal releases and terminal patchsets,CPU


Posted on January 25th, 2009 by Sanjit Anand |  Print This Post |  Email This Post

Few reader question..

1. What is the difference and theory behind Oracle terminal releases and terminal
patchsets ?
2. What are Critical patch updates ?
3. What is the terminal release after 11.5.10 CU2? or Do you have 11.5.10
CU3/CU4?

Terminal release means that the version specified is the last point release of that product.
For example, the “terminal release 11.5.10” for the 11i E-Business Suite would mean that
there will not be any further releases of 11i after 11.5.10. Specifically, that would mean
there will not be a release 11.5.11 for 11i.

The terminal patchsets means that would the last patchset provide on that particular
release.

This is very simple as this example:


In 10g Release 2 the last patchset would be 10.2.0.4, upon further there won't be any
more patchset will be released under this version.
In 9.2 release the last patchset is 9.2.0.8, upon further there won't be any more patchset
will be released under this version.
In other word :Terminal meaning no more patchsets are going to be delivered, so you
will be forced to either apply one-offs or upgrade.

Critical patch updates

Oracle provides critical patch updates (CPUs) to its customers to fix known bugs that are
critical in nature also includes security fixes.

Critical Patch Updates are the primary means of releasing security fixes for Oracle
products:(Adpoted-otn )

 A Critical Patch Update is a collection of patches for multiple security


vulnerabilities. It also includes nonsecurity fixes that are required (because of
interdependencies) by those security patches.
 Due to the threat posed by a successful attack, Oracle struongly recommends that
fixes are applied as soon as possible.
 CPUs are released on the Tuesday closest to the 15th day of January, April, July
and October each year

You can find information at Oracle Technology Network .

Q .What is the terminal release after 11.5.10 CU2? or do you have 11.5.10 CU3/CU4?

It's just a matter of terminology.There was the original 11.5.10 install (or upgrade
maintenance pack).Then came 11.5.10.1CU (3240000), 11.5.10.2CU (upg from 1CU
3460000) and 11.5.10.2CU (upg from pre-11.5.10 3480000).

Since there was change in stretegy that why here are the details for ATG Rollup patchsets

 CU3 = ATGRUP3 (4334965)


 CU4 = ATGRUP4 (4676589)
 CU5 = ATGRUP5 (5473858)
 CU6 = ATGRUP6 (5903765) :This is the latest

Oracle EBS 11i Technology support Matrix


Metalink Notes

 738923.1 :Oracle E-Business Suite Releases 11i and 12 Critical Patch Update
Note (January 2009
 315713.1 :Prior E-Business Suite Security Alerts
 329689.1 :E-Business Suite (Oracle Applications) 11.5.1 through 11.5.6
Desupport Notice
 363827.1 :Rebaselined Oracle Applications Technology Components for Releases
11.5.7, 11.5.8, 11.5.9, and 11.5.10

Refrence Link :

 ATG Blog for support ,desuuport and certify infohttp://blogs.oracle.com/schan


 Oracle Lifetime Support Policy

Posted in AOL | 1 Comment »

User Unable to Export Data to TSV File


Posted on January 23rd, 2009 by Sanjit Anand |  Print This Post |  Email This Post

For new Implementation, certain things never focused by implementation team


i.e user desktop configuration which might be a big reason that is reported by end user
once Business switch to new system. This is specially true, when your client belong to
SME's (Small and medium enterprise).
Lets me summarize few issue with File ->Export

1. User Unable to Export Data to TSV File


2. Export functionality does not prompt for saving the file.
3. Data export from Oracle form is missing some rows in the output file , specially
from AP Invoice workbench , Gl account enquiry screen and AR Transaction
workbench

Some of them are purely desktop issue, still you need to do such steps if such things
being reported by remote users.

Do verify the following:

1. You should have the following Viewer Option entry: File Format Mime Type
Description Allow Native Client Encoding
-------------- -------------------------------- -------------------- -----------------------
Excel application/vnd.ms-excel Microsoft Excel Checked
2. Check out the table FND_MIME_TYPES_TL entry. A row contains an entry for
FILE_FORMAT_CODE = "EXCEL" and MIME_TYPE ="application/vnd.ms-
excel"

Next you need to verify these details:

1. What is the windows OS on your computer (XP, W2000, etc...)? Which service
pack?
i.e.: Microsoft Windows XP - Profesionnel - Version 2002 - Service Pack 2 check
the comptability matrix.
2. Version of excel on user computer.
3. Version of Internet Explorer in user computer.
4. Deactivate any pop-up blockers in windows XP or in Internet explorer
5. You need to do a try to compare the two computers? (The computer where you
have the issue and the computer where the export is working)
6. Try the following as part of quick check:
In the Tools -> Internet options, set the following:
o Open Internet Explorer and choose Tools-->Internet Options
 Click on the Security Tab
 Click the Custom Level button
 Scroll down to the "Downloads" options
 Enable the option "Automatic prompting for file downloads"
 Enable the option "File Download"

Once you done, close browser, open browser than try to export again.

If still getting an error , you need to verify these details too.


 In Internet Explorer select the Tools menu - Internet Options - Security -
Custom Level
 Adjust all the settings for ActiveX Controls and Downloads to be either 'enable'
for the following zones :
o - Internet
o - Local Intranet
o - Trusted Zones
 Try to add the site of instance to Trusted Zone and adjusted Security level to Low
protection.
 Restart the browser and now test.

99% chances that you can able to resolve 1 and 2 , else not, ask Oracle with SR and wait
for a day.

For 3,you need to check with Oracle, there might be chances the version of form is bit
lower.

Similar Post

 ‘File ->Export’ Function is troubling


 Setting default to Excel for Exported file from “File ->Export “
 File -> Export : Enabling or disabling

Posted in AOL | No Comments »

File -> Export : Enabling or disabling


Posted on November 16th, 2008 by Sanjit Anand |  Print This Post |  Email This
Post

User may request you for enabling or disabling menu for File -> Export in Oracle
Forms.

Take a note, File ->Export works itself on the basis of User Cursor Control.

1. If Cursor control is at block where we can view multiple records at a time, the Export
function is enabled.

2. If Cursor control is at block where we can view single record at a time, the Export
function is disabled.

The reason for providing this functionality is that if there are many records in a block,
then it might be difficult for the user to scroll down to view all the records in that block.
So, the user can actually export them using the Export function.

Moreover there is no profile option which gives you control for this function.
Posted in AOL | 1 Comment »

Setting default to Excel for Exported file from “File


->Export “
Posted on November 14th, 2008 by Sanjit Anand |  Print This Post |  Email This
Post

Oracle Applications allows you to export data that you see on the form to a file - like
excel - which can be then be used as a normal excel file. These are really useful when
you want a quick dump of the data for reference or are trying to trouble-shoot some issue.

The File - Export option allows you to dump the data you see on the form (or data set you
have queried).

The default is a file type called "tsv", that means tab separated values and can be opened
by default in Notepad in most cases, but can also be configured to open in Excel, which is
a choice for most of user.

Problem : How Can you do a Setup File->Export as an XLS Type File default?

Here are the steps

1. Go to Explore(not IE) ->Tool -> Folder Options

Fig 1

2. Check out for TSV File format , if not exist , create a new type by Pressing NEW
button.
Fig 2

3. Now you need to setup default to excel, go to change Button in fig 2, and point to
Microsoft Excel
Fig 3

Posted in AOL | 7 Comments »

‘File ->Export’ Function is troubling


Posted on November 13th, 2008 by Sanjit Anand |  Print This Post |  Email This
Post

Hard Time this week for me ,struggling with Finance user from another entity to see
unexpected things reported , Out of the box File -> export function was not working
properly, some of them reported Browser crashing some of them reported data not
exported 100% from form, some of them reported longer duration to export for nearly
500 records from Invoice Inquiry or Invoice Entry form.

There are few cases which user can experience

 File - Export does not bring up a Save As prompt


 File -Export may leads to Browser crashes
 File - Export takes long time to export into Excel
 File - Export not exporting 100% data from form
 File - Export creates zero byte file
 File -Export on selecting "Continue to End" causes system to hang
More less, these problems are encountered by some additional setup requirement in IE .
Here are few troubleshooting points, if you are using IE 6 or 7.

1. Make sure your browser will have setup completed for these 2 categories:

 ActiveX controls
 Downloads

You should follow these Steps:

 Go to IE Tools menu - Internet Options - Security - Custom Level


 Adjust all the settings for ActiveX Controls and Downloads to be either 'enable' or
prompt for zones Internet, Local Intranet, and Trusted Zones
 Restart the browser and now test if the export process works

2. Make sure if users desktop are using a proxy server to access the web via MSIE. If you
set "Bypass proxy server for local addresses" in Internet Options -> Connection -> LAN
Settings check if the File > Export works without error.

3. Make sure you have set System Profile Options 'Export: Mime type' to 'text/tab-
separated-values' or or 'application/vnd.ms-excel'

4.Delete Browser Cache > Tools > Internet Options > zone=temporary internet files :
delete files {checked offline content}

5. You should also delete C:program files/oracle/jinitiator<version>/jcache/*

6. Make sure you disable Pop-up Blocker

7. If you have still an issue , try this based out of note :338545.1

 Make sure you have checked step 1,2,3.


 Login to AP responsibility and try exporting from the data from Invoice
workbench after search for invoice batch.
Are you able to export?
 If not ,Go to (Tool Bar) Help -> Diagnostics -> Examine
Set Block = ENVIRONMENT
Set Field = FND_EXPORT_DEBUG
Set Value = TRUE
 Export and observe the messages that are generated during the export process.
What is the last pop up message ?
 Try to run the following piece of code in SQLPLUS*

declare
db_file number;
mime_type varchar2(255) :='text/plain' ;
out_string varchar2(32767) :='Just some plain text that is stored' ;
web_server_prefix varchar2(500);
url varchar2(500);
begin
fnd_global.apps_initialize(user_id => <put your user id>,resp_id => <put your resp
id>,resp_appl_id => <put your appl id>);
DBMS_SESSION.SET_NLS('NLS_LANGUAGE','AMERICAN');
db_file :=fnd_gfm.file_create(content_type =>mime_type,program_name=> 'export');
fnd_gfm.file_write_line(db_file,out_string);
db_file :=fnd_gfm.file_close(db_file);
url:=fnd_gfm.construct_download_url(fnd_web_config.gfm_agent,db_file,TRUE);
dbms_output.put_line(url);
end;

If still not able to fix, ask Oracle for further resolution.

8.If you are not able to 100% export in excel do a quick check

Run this query immediatly after Export get completed


select count(*) from fnd_lobs where program_name='export';

If counts not matches then you need to recreate the index using script
$FND_TOP/sql/aflobbld.sql. This is because the File/Export functionality of EBS uses
system LOB columns to store temp data before it is outputed to a browser. If that temp
data becomes large enough as the result of large export query set, then the max_extents
limitation of the column is reached thereby causing the export to fail.

Most of my user experinces these issues with WIN2K or XP SP1 and SP2, but not with
SP3.No clue for me with service pack.

Is there any linkage with window XP or 2000 .Net Framework installation and Service
pack in client desktop for this feature? Do share some thoughts if anyone got such kind of
issue in past.

Posted in AOL, SEPA | 3 Comments »

Quick note for Banking Details for Supplier in Release


12
Posted on October 29th, 2008 by Sanjit Anand |  Print This Post |  Email This Post

Here is the quick note for Banking Details for Supplier in Release 12, which can be
assigned at the following four levels:

1. Supplier
2. Site
3. Address
4. Address-Operating Unit

New accounts can be created using existing bank and branch details or new
bank/branches can also be entered.

Banking Details page to define the bank accounts used for making payments to suppliers.

You can select the name and number of the bank account from the list of values that
includes all active supplier type bank accounts or you can create a new bank account. For
each supplier and supplier site that has bank account assignments, you must designate a
primary bank account. The primary bank account is used by Payables as a default when
you pay this supplier electronically.You may override the default if necessary.

You can also do setup for bank accounts for a supplier can also be setup from iSupplier
portal

Using iSupplier Portal, suppliers can access their banking information and, if given the
appropriate security privilege, make changes to the details. The buyer administrator can
either approve the account or set the status to Verify. You can use the Verify status while
you prenote the account or perform other activities for verifying an account with your
bank.

You can find more details for supplier bank here.

Similar Post

 R12 Supplier Bank - Techno Functional Guide


 R12 : Bank & Trading Community Architecture(TCA)
 R12 : EBS Banking Model in demanding and Changing World
 Welcome to R12 Account Payable
 A bit on SEPA - IBAN & BIC

Posted in Oracle Diagnostics, Oracle Payable | 1 Comment »

Understanding the Oracle Diagnostics


Posted on October 6th, 2008 by Sanjit Anand |  Print This Post |  Email This Post

I have posted a number of previous notes defining and discussing Oracle diagnostics.
This tool is enhanced because of new security model.Let's take a quick look on revisiting
this utility.

Six reason why 'Everyone like Oracle Diagnostic'


Oracle E-Business Suite Diagnostics is a framework and a repository of diagnostic tests.
These are six top reason why every one liked this product.

1. This is shipped product within the box


2. This is FREE ...
3. This utility based out of common known problems
4. Test Result with corrective actions information
5. Available for most of the products
6. You will get enough documentation on metalink.

Changes in R12.1

 Diagnostics now have role-based security


 Customizable security layer implemented using Role- Based Access Control
(RBAC)
 The name got changed to "Oracle E-Business Suite Diagnostics" from 'Support
Diagnostic Tools"
 The access is now taken care by Grant via Diagnostics Roles.
 'Application Diagnostics' responsibility is new Navigational menu.
 Within new security model Sensitivity Levels is now being introduced which
have three value 1,2,3.
 In other word Sensitivity is basically an attribute of the test that indicates the kind
of data it is dealing with.
 Oracle Diagnostic is now a high performing tool coupled with Multi-threaded
execution engine.
 Oracle Diagnostic have capability to includes Data masking.
 You can design your Custom roles based out of your business need.
 Oracle Diagnostic output is tagged with your SR, by passing SR number.

Search@Epicenter

Incompatibility and Request Sets


Posted on August 21st, 2008 by Sanjit Anand |  Print This Post |  Email This Post

ISD team of client side was struggling with such requirement.

Scenario :They have two request set name say 'X' and request set name 'Y'.

Their requirement was to make these two incompatible to each. So that when X
runs Y should wait for X to complete or vice versa?

This might be very similar requirement for other so thought to bring into post.
Lets understand ..... "INCOMPATIBLE"

So left hand side figure , is what defined in m-w.com

Lets revisit in Oracle Context..

INCOMPATIBLE means: Two incompatible reports or request set are not allowed to
run in parallel. Incompatible reports /program can only run sequentially, the first one
must terminate before the other is allowed to start.

So, it can happen that a report is pending for a long time, when it is waiting for the
incompatible report to finish.

In Oracle Context you have to know that INCOMPATIBLE type may be global or
domain . If you choose Domain, the incompatibility is resolved at a domain-specific
level. If you choose Global, then this concurrent program will be considered globally
incompatible with your concurrent program, regardless of which domain it is running
in.Make sense.. Lets take a look how documentation define:

Example of Program Incompatibilities

You can understand like this: Oracle General Ledger's Posting program,which is used to
post journal entries.

If the Posting program's incompatibility with other concurrent programs were not
enforced, other financial reports running simultaneously with the Posting program could
contain incorrect account balance information.

Definition of incompatible type "Domain" VS "Global"

If you choose Domain, the incompatibility is resolved at a domain-specific level.


If you choose Global(Fyi..The concept of "Global" incompatibilities was introduced with
Patch 2364876), then this concurrent program will be considered globally incompatible
with your concurrent program, regardless of which domain it is running in.

You can define a concurrent program to be globally incompatible with another program
that is, the two programs cannot be run simultaneously at all; or you can define a
concurrent program to be incompatible with another program in a Conflict Domain.
Conflict domains are abstract representations of groups of data.

They can correspond to other group identifiers, such as sets of books, or they can be
arbitrary.

Concurrent Conflict Domains Concept

As per Oracle system admin user guide, If two programs are defined as incompatible with
one another, the data these programs cannot access simultaneously must also be
identified.

In other words, to prevent two programs from concurrently accessing or updating the
same data, you have to know where, in terms of data, they are incompatible. A Conflict
Domain identifies the data where two incompatible programs cannot run simultaneously.

In Oracle Applications, data is stored in database tables that belong to a particular


application. Each table may also contain information used to determine what conditions
need to be met to access the individual records. These conditions may consist of one or
more of the following data groupings:

 Set of books : This is based out of underline profile option


i.e..GL_SET_OF_BOOKS
 Multiple Operating units :This is based out of underline profile option
MO_OPERATING_UNIT)
 Multiple Orgs :This is based out of underline profile option ie.
INV_ORGANIZATION_ID Manufacturing Applications
 HR may use business group as a conflict domain
 Fixed asset may use Fixed asset dep. book(FA)

A conflict domain is an abstract representation of the groupings used to partition your


data. There is no limit to the number of domains that can be defined, but excessive
domains may hurt performance.

More on Oracle Conflict Domains

A conflict domain is a set of related data stored in one or more ORACLE schemas and
linked by grants and synonyms. Do not confuse logical databases with your ORACLE
database. The ORACLE database contains all your Oracle Applications data, with each
application's data usually residing in one ORACLE schema. You can think of a logical
Defining database as a line drawn around a set of related data for which you wish to
define concurrent program incompatibilities. In other words, logical databases determine
which concurrent programs cannot run at the same time.Make sense:)

Profile Options as part of standard setup

 Concurrent:Conflicts Domain :This option identifies the domain within which


all the incompatibilities between programs has to be resolved.
The profile can be set at Site, Application, Responsibility and User levels.This
can be an operating unit name, a legal entity name, or a set of books name as the
domain name. You are allowed to define as many as domains as you need. Since
you cannot delete conflicts domains, you should keep the domains to a necessary
minimum.

DEFINING CONFLICTS DOMAINS

Navigate to Concurrent > Conflicts Domains

How its Conflict Domains Works with conflict resolution manager

All programs are assigned a conflict domain when they are submitted. If a domain is
defined as part of a parameter the concurrent manager will use it to resolve
incompatibilities. If the domain is not defined by a parameter the concurrent manager
uses the value defined for the profile option Concurrent:Conflicts Domain.

Lastly, if the domain is not provided by a program parameter and the


Concurrent:Conflicts Domain profile option has not been defined the 'Standard' domain is
used. The Standard domain is the default for all requests.

All programs use the Standard conflict domain unless a value is defined for the profile
option Concurrent:Conflicts Domain or a conflict domain is defined through a program
parameter.

Each request submitted uses parameters which identify the records that it will access.

For programs that are defined with incompatibility rules an additional parameter (conflict
domain parameter) is used. The conflict domain may be set automatically based on such
variables as a login ID, set of books, or the organization the user is working in. The
conflict domain parameter may in some cases be selected in the parameters field of the
Submit Requests form. Once the parameter is determined the Conflict Resolution
Manager (CRM) uses the domain to ensure that incompatible programs do not run
simultaneously in the same domain.

Read the rest of this entry »

Posted in AOL | No Comments »


Concurrent: Report Access Level and R12
Posted on July 27th, 2008 by Sanjit Anand |  Print This Post |  Email This Post

Oracle Applications does not allow users to view other's output. Internally Report Review
Agent allows(RRA) only the user who submitting the report to view the report output.
For those who are very new to Oracle can understood RRA as a default text viewer that
Oracle Applications provides, which allows users to view report output and log files.
Very often report Review Agent is also referred by the executable FNDFS.

That mean the output cann't be utlized by another user unless untill you have provided the
profile option setup for another user.

Sometime business user wants to see other user report submitted by another?

Minimum you have do is you need to alter the value of seeded profile options
"Concurrent:Report Access Level".

Business case

Within Oracle installation , lets say you have four different user profiles been maintained:

1. Super User : the one who has access to everything


2. Supervisor : the one who does not have access to all the functions but access to
most of Function expect few setup.
3. User : the one who has access to limitted screens based on their responsibility
4. Inquiry :one who has access to limitted screens based on their responsibility.

Read the rest of this entry »

Posted in AOL | No Comments »

‘File-Export” ..why not ‘Report - Export’


Posted on July 7th, 2008 by Sanjit Anand |  Print This Post |  Email This Post

Many of EBS users take advantage of the ‘File-Export’ functionality. This functionality
was specifically designed for use on ‘Folder’ forms so users could export the data
displayed on the screen to Excel.

This is one of the option that allows users to export information from a row based data set
into a desktop file so that they can utilize these data's sheet for there own reference or any
other reporting or feeding purpose .
This is yet another story of some basis functionality differences in two ERP
Products(Oracle EBS and SAP), Here are some sets of of Q & A with core user
discussion.

 Can the system export all data from all modules to external applications?
o Oracle: In Oracle you can export all the data directly from form, where as
you can't export all report data into Excel.
o SAP : The SAP situation is opposite, that mean you a need interface for
exporting data from modules where as for reports you can can be
downloaded in Excel.
 Is the export tool easy to use? What user skill-set is required?
o Oracle :In oracle you do it From the menu it is FILE/EXPORT
o SAP :Yes, the method for exporting reports is via menu paths from within
the report overview. This method is common throughout SAP. An
understanding of Microsoft products is required.
 Can exports be set with run-time parameters?
o Oracle:Yes but only limited for Forms
o SAP : , answer is Yes,ie exports can be defined to run at specific times,
this would run the appropriate report in SAP and download to the
necessary network location or printer.
 Export Functionality from Custom Form?
o Oracle:If your form is based out of Template.fmb, you can get use of
Export Functionality.
o SAP : Not sure about this
 Integration with Other Non Oracle and Oracle system like Hyperion , Third Party
Tax or Other Product for Forecasting and Budgeting?
o Oracle:Depends , what format is used by these application. As per industry
practice .csv format is standard , there fore all Exported can be saved
into .CSV that will be easily recognize by other application.

Exporting Apps Reports Into Excel sheet

There is no such seeded functionality that you can get from EBS for exporting into Excel.

There are several options available which depends upon the usage and volume of data
into Report.

1. You cannot directly see the output in Excel from view -> Request -> output.
You need to make changes to report so that the output is saved as delimited text
file and then open with excel with the delimiter. This way at least some data get
into excel, easy but ugly format, if have header and report title details.
2. Use Oracle XML Publisher.
It should give you an option for output in Excel files.But make sure, if you are
pulling Financial data, you must tell financial and Controllers that there are
certain limitation for:
o Number of rows generated exceeds the Excel maximum
o Use of formulae or macros can't done in the Excel output

o They can't get Pivot sort of report into Excel based XMLPub.

o Amount alignment because of numeric value ( Seems this should be fixed


by assuming string value)

o Decimal Placement

Data loading and formatting into excel . as whenever you have lot of rows then it will
take some more time to dump into Excel , because of XHTML with the mime type set to
get Excel to open it.

3.) Seeded Functionality of Excel Output

1. Login to apps, using "System Administrator" responsibility


2. Navigate to Install -> Viewer Options
3. Add the entries as below
File Format=Text Mime Type=application/vnd.ms-excel Description=Microsoft
Excel
File Format=Text Mime Type=application/vnd.ms-word Description=Microsoft
Word
4. Save the changes
5. Bounce Apache (Not sure if it works without bouncing Apache)
6. View the concurrent requests log (view log button)
7. Goto Tools -> Copy File. It will open a new window viewer option with the
choices to select the Viewer to open the logfile. Select Microsoft Excel here and
press ok.

4) Use concurrent program output format as XML. Change the output format to EXCEL
in this path
Submit Request--> Options-->Layout-->Format.

Additional Issue which user might encounter

1. User can't get Save Prompt


o Check the version of the IE in desktop and do these additional Internet
Explorer settings.
o Tools>Internet Options>Security>Custom Level>Downloads
o Automatic prompting for file downloads needs set to Enable
2. Another issue File-Export does not work in some pc's many times. Not sure, what
is Oracle Solutions. I had a trick , whenever such issue I told me user to Press
CTRL key and then do the file export. This works...

In summary
Any thoughts

Disclaimer : SAP Functionality which is discussed is based out of Personal observation


and discussion with SAP user, which they are using bit older version.Any Conflicts with
SAP functionlity must be validated. Oracle Version which is used for reference is
11.5.10.2/R12.

Posted in AOL | 3 Comments »

FNDLOAD for AME’s


Posted on June 12th, 2008 by Sanjit Anand |  Print This Post |  Email This Post

Oracle Approvals Management (AME) is a self-service Web application that enables


users to define business rules governing the process for approving transactions in Oracle
Applications .This enables development of custom rules to manage transaction approvals
that is integrated with multiple Oracle EBS applications such as HR, PO, AP and UMX.

If you want to migrate the AME setup like rules,conditions,approval groups etc. from one
instance to another instance, you can use some of them by mean of FNDLOAD utility.
The process is similar to what we are regularly using for other AOL Objects.

FNDLOAD will have such ldt file through which you can use.

You should read the lct first before using any FNDLOAD Command. In the lct, there is
an Entity section, where the Entity details are mentioned.Newcomer in OracleApps if you
are not familiar with lcts, i would suggest you to go through the DOWNLOAD section
and find the bind variables, which are mandatory.
Here are the details steps for each setup's availability till date.

Read the rest of this entry »

Posted in AOL, Cash Management, Oracle Treasury, Tool | 8 Comments »

Step by Step : ‘AuditTrail’


Posted on May 16th, 2008 by Sanjit Anand |  Print This Post |  Email This Post

Previous Post:

 Are seeking auditing ability in EBS…use ‘AuditTrail’

Steps by step: Enabling audit trial

As per the below example the 'Define An application user' is a user table name for
FND_USER,the same steps you can follow for your own tables.

Read the rest of this entry »

Posted in AOL, EBS Suite, Oracle Application, Tool | No Comments »

Are you seeking auditing ability in EBS…use


‘AuditTrail’
Posted on May 15th, 2008 by Sanjit Anand |  Print This Post |  Email This Post

What is an AuditTrail?

An AuditTrail is one of functionality for retaining a history of changes to data. What


,who and when can be identified on a particular table or column if the functionality is
enabled.

When you enter or update data in your forms, you change the database tables underlying
those forms. An audit trail tracks which row in the database was updated at what time,
and which user was logged in using the associated form(s).

If you are seeking auditing ability to track changes on a particular table of Oracle this
post might helpful to you.

Enabling the Functionality of AuditTrail

You can turn AuditTrail on or off (Yes or No). Normally the default setting is No (Off).
When you enter or update data in your forms, you change the database tables underlying
the forms you see and use. AuditTrail tracks which rows in a database table(s) were
updated at what time and which user was logged in using the form(s). Also..

 Several updates can be tracked, establishing a trail of audit data that documents
the database table changes.
 AuditTrail is a feature enabled on a form-by-form basis by a developer using
Oracle's Application Object Library.
 All the forms that support AuditTrail are referred to as an audit set. You should
also note not all forms may be enabled to support AuditTrail.
 To enable or disable AuditTrail for a particular form, you need access to Oracle
Application Object Library's Application Developer responsibility.
 Users cannot see nor change this profile option.
 This profile option is visible and updatable at the site and application levels.

The internal name for this profile option is AUDITTRAIL:ACTIVATE.

Setting Up AuditTrail(>11i )

You can choose to store and retrieve a history of all changes users make on a given table.
Auditing is accomplished using audit groups, which functionally group tables to be
audited. For a table to be audited, it must be included in an enabled audit group.

The steps for setting up AuditTrail include:

Yuu need to verify Select Privileges on SYS.DBA_TABLES

Have your database administrator grant SELECT privileges on SYS.DBA_TABLES to


the APPLSYS account. Normally, this step would Normally taken care during the
installation of Oracle.

Define Audit Groups

This is very very important.These are groups of tables and columns, where you do not
necessarily need to include all the columns in a given table. You enable auditing for audit
groups rather than for individual tables. You would typically group together those tables
that belong to the same business process (for example, purchase order tables see at the
end).
A given table can belong to more than one audit group. If so, the table is audited
according to the highest "state" of enabling for any of its groups, where Enabled is the
highest, followed by Disable Dump Data, Disable No Growth, and Disable Purge Table,
in that order.

Navigation: Security -> AuditTrail -> Groups

Define Audit Installations

You choose the registered Oracle IDs at your site that you want to audit. This allows you
to audit across multiple application installations. When a table is added to an audit group,
auditing will automatically be enabled for all installations of the table for which audit is
enabled.

Navigation: Security -> AuditTrail -> Install

Run the Audit Trail Update Tables Report to Enable Auditing

Your AuditTrail definitions (and auditing) do not take effect until you run the Audit Trail
Update Tables Report. If you change any of your definitions later, you must rerun this
program. You run the Audit Trail Update Tables Report from the standard submission
(Submit Reports) form.

Audit Trail Update Tables Report

This program creates database triggers on the tables in your audit groups for your
installations. It also creates shadow tables, one for each audited table, to contain the audit
information. If you have changed your audit definitions or disabled auditing for an audit
group, the program drops or modifies the auditing triggers and shadow tables
appropriately.

The program also builds special views you can use to retrieve your audit data for
reporting.

You can check SQL*Plus to see if the Shadow Tables have been created or not. Shadow
Table name is the same 26 Characters of the Table being audited followed by a suffix of
"_A" ,suffix of "_AI" for Insert Triggers, "_AU" for Update triggers , "_AD" for Delete
Triggers,suffix of "_AIP" for Insert Procedures "_AUP" for Update Procedures and
"_ADP" for Delete Procedures.

AuditTrail Limitations

These are limitation of AuditTrail:

 Your table should consist of maximum 240 columns


 You cann't use the column for audit trail whose data type is LONG, RAW, or
LONG RAW
 Your audit group must include all columns that make up the primary key for a
table; these columns are added to your audit group automatically.
 Once you have added a column to an audit group, you cannot remove it.
 AuditTrail requires two database connections. If your operating platform does not
automatically support two database connections
(e.g., VMS or MPE/XL), then add the environment variable 'FDATDB=<database
connect string>' to your environment file.
 Because the structure of the audited table may change between product versions,
AuditTrail does NOT support upgrading existing shadow tables or audited data.
Before an upgrade, you should archive the shadow tables and perform all
necessary reporting on the audited data.
 Oracle recommended Disabling AuditTrail feature Prior to Upgrade to higher
version.
 If your plan is to use some auditTrail on table which name is bit longer(> 26
characters), you can't achieve this. As there is Bug(#3872242
) reported by Oracle that restrict you from this, as AuditTrail Update Tables
Errors out on audited tables that are > 26 characters.

Sometime back we found while enabling this on these tables.

 PO_REQUISITION_HEADERS_ALL
 PO_REQUISITION_LINES_ALL
 PO_REQ_DISTRIBUTIONS_ALL

What are the primary Auditing Tables?

 FND_AUDIT_COLUMNS
 FND_AUDIT_GROUPS
 FND_AUDIT_SCHEMAS
 FND_AUDIT_TABLES

Client Dilema : HOW TO ENABLE AUDITING AT "FORMS" AND "USER"


LEVEL TOGETHER

Customer has set the profile "Sign-on: Audit Level" to FORMS to collect information
about the forms sessions at a particular time .
By default the value for this profile was USER. Since he has set the value to Forms can
he collect the User related information

Yes you can ...


If the profile "Sign-on: Audit Level" is set to FORMS then it will collect Form sessions
information in addition to user session information.
So you will get information related to User session as well as forms session. There is no
harm in setting this profile value to FORMS.
Posted in AOL, Cash Management, EBS Suite, Oracle Application, Oracle Treasury,
Tool | 1 Comment »

R12 AOL : ‘Server-Responsibility Profile Hierarchy


Type’
Posted on April 19th, 2008 by Sanjit Anand |  Print This Post |  Email This Post

In Release 12, profile options can now be defined to have a hierarchy type of server-
responsibility.

1. Site
2. Server + Responsibility
3. User

What does it mean?

...Simply you can understand like ,when you are choosing this type, the profile can be set
at Site level, User level, or a new combination Server+Responsibility. This hierarchy type
is set in the profile definition, and cannot be changed at runtime.

At the Server+Responsibility level, both the server and responsibility are considered as a
pair. Profile values can be set for combinations of a specific server with a specific
responsibility, or for only a server or responsibility with a default for the other.

Oracle documentation clearly states "at runtime, the profile value is determined by
looking for the value set at the most specific level"

1. A value set at the user level over-rides all others


2. If no user level value is set, look for value matching the current server and
responsibility.
3. If no value is set matching both the current server and responsibility, look for a
value matching the responsibility with a default server.
4. If no value is found there, look next for a value matching the server with a default
responsibility.
5. Finally, if no value is set at any lower level, look for a site level value.

You can also do this in the hierarchy type can be chosen on the Profile Definition page.
On this page, you can see that a type of “Server+Responsibility” is chosen. Once
this hierarchy type is chosen, the profile can be made visible and updatable at the Site,
Server+Responsibility, and User level. In this example, the profile could be set for Site or
Server+Responsibility, but not User.
Posted in AOL | No Comments »

Great FNDLOAD - Part -II


Posted on August 25th, 2007 by Sanjit Anand |  Print This Post |  Email This Post

I have already posted note on FNDLOAD utility for doing movement of application
setup data from one database to the other.There are instances when we need to move
some AOL and seeded data from one Environment to another Environment, thus at that
time it is necessary to understand what are different options Available within the Oracle.
Here is extensive list for some of the objects , that should be migrated by FNDLOAD.
Posted in AOL, Oracle Application | 1 Comment »

..Bit on DFF Context Synchronization


Posted on August 24th, 2007 by Sanjit Anand |  Print This Post |  Email This Post
What is Descriptive Flexfield Context Synchronization

Descriptive Flexfield Context Synchronization allows the runtime descriptive flexfield


(DFF) context to be determined from a current reference field value for the entity
instance (current record) instead of a previous value of the reference field

How/where this can be actioned?

Typically as per AOL documentation it is enable by providing new check box


"Synchronize with Reference Field" on the Descriptive Flexfields
Segments form (FNDFFMDC)

What is meant by Checking and unchecking

 Value of "Yes" means context is always synchronized with reference field value.
 Value of "No" denotes that context will be defaulted from reference field value,
the first time the record is created and the DFF is touched. Thereafter, context
would never be synchronized by the flex engine.Context prompt treated
differently by DFF view generator.

Reference:

 Metalink Note:455659.1
 Refer ATG Schan's Blog for more details for DFF context Synchronization

Posted in AOL | 3 Comments »

How to use Descriptive Flex Fields (DFF) in forms


Posted on August 24th, 2007 by Sanjit Anand |  Print This Post |  Email This Post

Implementing DFF in Form consist of two steps Process. The first steps consist of
designing the table structure and registration and step 2 consist of enabling in the form.

Steps 1:

 Define DFF fields in the custom tables

ATTRIBUTE1…ATTRIBUTE15 and ATTRIBUTE_CATEGORY are the normal fields


used for DFF

 Register the table with Oracle AOL


 Register the DFF with Oracle AOL

For this you have to login into application with :


Application Developer -> Flex Field -> Descriptive -> Register

Then you should specify the name of the DFF (Say BTL_AR_DFF) and specify the
associated table.

Step 2:

 Create DFF fields in the custom form

1. Create a form based on the custom table

 Copy TEMPLATE form has example descriptive flexfield which we can use
 Use the TEXT_ITEM_DESC_FLEX property class
 Attach ENABLE_LIST_LAMP_LOV for the field

2. Create a non-base table text item in the block with property class
TEXT_ITEM_DESC_FLEX
3. Make sure that DFF is mapped to fields (ATTRIBUTE) of the table and is enabled.

 Next is to call Flexfield Routines to add DFF built-ins in the form to invoke DFF.
o This consist of these steps:

1. Write, a form level trigger WHEN-NEW-FORM-INSTANCE to invoke the DFF


as

FND_DESCR_FLEX.DEFINE(
Block => 'Name of the DFF block',
Field => 'BTL_DFF',
Appl_short_name => 'AR',
Desc_flex_name => 'BTL_AR_DFF',
Title => 'BPL AR More Info' );

2. Write, block level triggers PRE-QUERY and POST-QUERY as

 FND_FLEX.EVENT('PRE-QUERY');
 FND_FLEX.EVENT('POST-QUERY');
 FND_FLEX.EVENT('Pre-Query');
 FND_FLEX.EVENT('When-Validate-Record');
 FND_FLEX.EVENT('Post-Query');
 FND_FLEX.EVENT('When-New-Item-Instance');
 FND_FLEX.EVENT('Pre-Insert');
 FND_FLEX.EVENT('When-Validate-Item');
 FND_FLEX.EVENT('Pre-Update ');

Search@Epicenter
12 Steps for Enabling Flexfields in Oracle Report
Posted on August 24th, 2007 by Sanjit Anand |  Print This Post |  Email This Post

If any one want to use Flexfield in report, there is minimum steps you
have to follow to make things Functional. These are the standard steps as per AOL guide.

Step 1 Define your Before Report Trigger

Here you suppose to call FND SRWINIT from the Before Report Trigger like :

SRW.USER_EXIT('FND SRWINIT');

This user exit sets up information for use by flexfields, user profiles, the concurrent
manager, and other Oracle Applications features as discussed in one of previous post.

Step 2 Define your After Report Trigger

Next, is you need to call FND SRWEXIT from the After Report Trigger like :

SRW.USER_EXIT('FND SRWEXIT');

Step 3 Define your required parameters

In this step you need to define the parameters your report needs by using the Data Model
Painter. You use these parameters in the user exit calls and SQL statements.

Lexical Parameters

 P_CONC_REQUEST_ID
 P_FLEXDATA

You must always create the P_CONC_REQUEST_ID lexical parameter. "FND


SRWINIT" uses this parameter to retrieve information about the concurrent request that
started this report.

The P_FLEXDATA parameter holds the SELECT fragment of the SQL query. The initial
value is used to check the validity of a query containing this parameter and to determine
the width of the column as specified by the column alias. Its initial value is some string
that contains columns with a cumulative width more than the expected width required to
hold the data. Make sure the width of this column is sufficient. If there are total 30
segments in the table then the safest initial value will be:
(SEGMENT1||'\n'||SEGMENT2||'\n'||SEGMENT3 ... SEGMENT30)
You determine the width by determining the length of that string. That length is roughly
the number of characters in the table alias plus the length of the column name, times the
number of segments your code combinations table contains, times the number of
structures you expect, plus more for delimiter characters as shown in the string above.

Step 4 Define your rest other parameters

You define the rest of the parameters your report needs by using the Data Model Painter.
You use these parameters in the user exit calls and SQL statements.

Step 5 Call FND FLEXSQL from your Before Report Trigger to populate
P_FLEXDATA

Next, given that you want to display flexfield information like concatenated values and
descriptions, and arrange them in order, you make one call to FND FLEXSQL from the
Before Report Trigger specifying the lexical parameters. This call changes the value of
the lexical parameter P_FLEXDATA at runtime to the SQL fragment that selects all
flexfields value data. For example, the parameter changes to (SEGMENT1||'\n'||
SEGMENT2||'\n'||SEGMENT3||'\n'||SEGMENT4).

When you incorporate this lexical parameter into the SELECT clause of a query, it
enables the query to return the concatenated segment values that are needed as input to
other AOL user exits. These exits then retrieve the actual flexfield information for display
purposes.

Here is an example FND FLEXSQL call. Notice that the arguments are very similar to
other flexfield routine calls; CODE= and NUM= designate the key flexfield and its
structure, respectively. For a report on a different key flexfield (such as the System Items
flexfield), you would use a different CODE and NUM.

SRW.REFERENCE(:P_STRUCT_NUM);
SRW.USER_EXIT('FND FLEXSQL
CODE="GL#"
NUM=":P_STRUCT_NUM"
APPL_SHORT_NAME="SQLGL"
OUTPUT=":P_FLEXDATA"
MODE="SELECT"
DISPLAY="ALL"');

You should always reference any source column/parameter that is used as a source for
data retrieval in the user exit. This guarantees that this column/parameter will contain the
latest value and is achieved by "SRW.REFERENCE" call as shown above.

Step 6 Call FND FLEXSQL from your Before Report Trigger to populate other
parameters
What you suppose ti do here is just need to call FND FLEXSQL once for every lexical
parameter.

Step 7 Define your report query or queries


Define your report query Q_1:

SELECT &P_FLEXDATA C_FLEXDATA


FROM CODE_COMBINATIONS_TABLE
WHERE CODE_COMBINATIONS_TABLE.STRUCTURE_DEFINING_COLUMN
= &P_STRUCT_NUM

The query fetches the data required to be used as input for the FLEXIDVAL user exit
later.

When the report runs, the call to FND FLEXSQL fills in the lexical parameters. As a
result the second query would look something like:

SELECT (SEGMENT1||'-'||SEGMENT2||'-'||SEGMENT3||'-'||
SEGMENT4) C_FLEXDATA
FROM CODE_COMBINATIONS_TABLE
WHERE CODE_COMBINATIONS_TABLE.STRUCTURE_DEFINING_COLUMN =
101< /FONT >

Step 8 Create formula columns

Now create columns C_FLEXFIELD and C_DESC_ALL (and any others your report
uses) corresponding to the values and descriptions displayed in the report. They all are in
group G_1.

Step 9 Populate segment values formula column


Now you need to retrieve the concatenated flexfield segment values and description
which you incorporate the flexfields user exits in these columns. In the column definition
of C_FLEXFIELD, you incorporate the FND FLEXIDVAL user exit call in the formula
field. You pass the concatenated segments along with other information to the user exit,
and the user exit populates the concatenated values in this column as specified by the
VALUE token. A typical call to populate segment values in this column looks as follows:

SRW.REFERENCE(:P_STRUCT_NUM);
SRW.REFERENCE(:C_FLEXDATA);
SRW.USER_EXIT('FND FLEXIDVAL
CODE="GL#"
NUM=":P_STRUCT_NUM"
APPL_SHORT_NAME="SQLGL"
DATA=":C_FLEXDATA"
VALUE=":C_FLEXFIELD"
DISPLAY="ALL"');
RETURN(:C_FLEXFIELD);

Refer this how to enable user exits in reports.

Step 10 Populate segment descriptions< /STRONG>

To populate the segment description use DESCRIPTION="C_DESC_ALL" instead of


VALUE="C_FLEXFIELD" as in the previous call. The user exit call becomes:

SRW.REFERENCE(:P_STRUCT_NUM);
SRW.REFERENCE(:C_FLEXDATA);
SRW.USER_EXIT('FND FLEXIDVAL
CODE="GL#"
NUM=":P_STRUCT_NUM"
APPL_SHORT_NAME="SQLGL"
DATA=":C_FLEXDATA"
DESCRIPTION=":C_DESC_ALL"
DISPLAY="ALL"');
RETURN(:C_DESC_ALL);

You have created parameters and columns that are containers of all the values to be
displayed. Now, in the following steps, you create the layout to display these values on
the report.

Step 11 Create your default report layout

First choose Default Layout to generate the default layout. Deselect C_FLEXDATA.
Specify a "Label" and a reasonable "Width" for the columns you want to display.

Step 12 Finish your report By adjusting report layout.

Posted in AOL, Technical | 5 Comments »

How to use Key Flex Fields (KFF) in forms


Posted on August 23rd, 2007 by Sanjit Anand |  Print This Post |  Email This Post

These are the steps required to implement KFF in customization.

 Define KFF fields in your database tables.

The custom table should contain a field named as XXX_ID (where XXX means the
entity. For ex. PART_ID, CODE_COMBINATION_ID etc) to capture the selected code
combination ID.
 Register the table with Oracle AOL.
 Register the KFF with Oracle AOL

Logon as

Application Developer -> Flex fields -> Key -> Register


Existing KFF can also be used. Ex. Accounting FF

 Create KFF in the custom form

1. Create a form based on the custom table.

2. In the block, create two non-base table text items of data type CHAR (2000). One text
item is to store the code combinations (Say BTL_KFF ) and other one is to store
description of the code (Say BTL_KFF_DESC. Make this item as non-updateable).

 Add KFF standard built-ins in the form to invoke KFF

The custom table should contain a field named as XXX_ID (where XXX means
the entity. For ex. PART_ID, CODE_COMBINATION_ID etc) to capture the
selected code combination ID.

this is typical registration of KFF. For Customization in custom development here are the
steps:

1. Write a form level trigger WHEN-NEW-FORM-INSTANCE to invoke the KFF


as

Fnd_Key_Flex.Define(
Block => ‘block_name’,
Field => ‘concatenated_segments_field_name’,
[Description => ‘description_field_name’,]
[ID => ‘Unique_ID_field’
Appl_Short_Name => ‘application_short_name’,
Code => ‘key_flexfield_code’,
Num => ‘structure_number’,

In above defination take a note,

 These arguments specify location


 All fields must reside in same block
 ID is for Key Flexfields only
 These arguments indicate which flexfield is being used
 Short name is application where flexfield is registered
 SQLGL is Oracle General Ledger
 SQLAP is Oracle Payables
 Code identifies Key Flexfield
 GL# is Accounting Flexfield
 Num is Key Flexfield structure number. Default is 101

Usage

FND_KEY_FLEX.DEFINE(
block => 'Custom block',
Field => 'BTL_KFF',
Description => 'BTL_KFF_DESC',
ID => 'XXX_ID',
Appl_short_name => 'SQLGL',
Code => 'GL#',
Num => '101',
Vrule => 'GL_GLOBAL\nDETAIL_POSTING_ALLOWED \nE\nAPPL=''SQLGL'';
name=Parent Values are not allowed\nN'
);

2. XXX_ID will store the code combination ID for each selection.

3.Invoke Flexfield functionality by calling FND_Flex.Event(event) from:

 PRE-QUERY
 POST-QUERY
 PRE-INSERT
 PRE-UPDATE
 WHEN-VALIDATE-RECORD
 WHEN-NEW-ITEM-INSTANCE
 WHEN-VALIDATE-ITEM

3. Write an item level trigger WHEN-NEW-ITEM-INSTANCE on BTL_KFF as

FND_FLEX.EVENT('WHEN-NEW-ITEM-INSTANCE')

4. Write an item level trigger KEY-EDIT on BTL_KFF as

FND_FLEX.EVENT('KEY-EDIT');

5. Write an item level trigger WHEN-VALIDATE-ITEM on BTL_KFF as

FND_FLEX.EVENT('WHEN-VALIDATE-ITEM');

IF :CUSTOM_BLOCK.XXX_ID = -1 THEN
FND_MESSAGE.SET_STRING('You Have Selected An Undefined Code
Combination !');
FND_MESSAGE.SHOW;
RAISE FORM_TRIGGER_FAILURE;
END IF;

These steps makes you flexfield enable in your form.

A NOTE FOR FLEX FIELD DEFINATION

Lets take a close scan to understand some of the paramater used in Flex Field
defination.

1. [Validate=> ‘{FOR_INSERT|FULL|PARTIAL|NONE|
PARTIAL_IF_POSSIBLE}’,]

 This is used only for Key FlexFields only


 “For_Insert” used in a block where the code_combinations table is the base
table
 “Full” used where the code_combination_id is a foreign key in the base
table
 “None” when any value is allowed, such a range flexfield for query
purposes
 “Partial” validates segment values but not the full combination
 “Partial_If_Possible” only used when the flexfield has dependent segments

2.[Vdate => ‘date’,]

 Validation date compared to segment value start/end dates

3.[Required=>’[Y|N’,]

 This is applicable only in the case for key flexfields only


 ‘Y’ requires user to enter a valid value for every required segment, even if
the flexfield is never navigated to
 ‘N’ only requires required segments to be entered when the flexfield has
been updated

4.[Displayable => ‘{ALL | flexfield_qualifier | segment_number} [\0{ALL|


flexfield_qualifier|segment_number}]’,]

 Key Flexfields only. Default is “ALL”


 Naming flexfield qualifier or segment number causes only those segments to
appear.
 Toggle this parameter by specifying more than one value separated with \0
 Display all but the first segment by specifying:
 DISPLAYABLE=>’ALL\01’
 Same parameters for Updateable and Insertable
5.[COPY=>’block.field\n{ALL|flexfield qualifier|segment number}
[\0block.field\n{ALL|flexfield qualifier|segment number}]’,]

 Again, key flexfields only.


 Copy a form field value into the segment indicated by flexfield qualifier or
segment number
 Value must be valid for segment or it will be erased
 Copy works in reverse when flexfield pop-up window closes
 Example copies a form global variable into the natural account segment of the
Accounting Flexfield:
 COPY=>’GLOBAL.default_expense_obj\nGL_ACCOUNT’

6.[VRULE => ‘flexfield qualifier\n


segment qualifier\n
{I[nclude] | E[xclude]}\n
APPL=application_short_name;
NAME=Message Dictionary message name\n
Validation value1\n
Validation value2…
[\0flexfield qualifier\n
…

 Key or range flexfields


 Impose additional validation
 ‘\n’ is delimiter between parameters
 ‘\0’ is delimiter between groups of parameters

Posted in AOL, Beginner | No Comments »

AOL - Descriptive Flex Field ( Deep Drive)


Posted on August 22nd, 2007 by Sanjit Anand |  Print This Post |  Email This Post

As we have seen DFF provide customizable expansion space in the form to capture
additional information, which are not provided at present. A DFF describes an application
entity, providing form and database expansion space that can be customized.

Why Descriptive Flex fields

 Customers require more data to be stored than what Oracle provides


 Oracle gave us additional “space” in most tables to store this data
 Descriptive Flexfields will survive an upgrade

Global vs Context Sensitive


 Global Data Elements mean the question will be asked for every occurrence of the
Descriptive Flexfield.
 Context Sensitive Elements are questions asked “depending” on the answer
to some other question. This “other” question can use a Reference field from
above for its answer.

How Segments Use Underlying Columns

 A DFF uses columns that are added onto a database table. The table contains any
columns that its entity requires.
The DFF columns provide ‘blank’ columns that you can use to store
information which is not already stored in another column of that table.
 A DFF requires one column for each possible segment and one additional column
in which to store structure information(i.e. The context value).
 You can define as many segments in a single structures as you have DFF columns
in your table.
The DFF columns are usually named as ATTRIBUTEn, where n is a number.

Implementing Descriptive Flexfileds


For implementing DFF it requires five steps:

 Define DFF columns in your Database table


 Register your table with AOL/ Pl/SQL scripts
 Register Your DFF with Oracle AOL
 Create Your DFF in Your Form
 Add DFF routines to Your Form

Drawbacks of DFF

1. Disk space is wasted.


2. DFF has limited segment for global as well as context-sensitive attribute.
3. No query possible on DFF segment values.
Posted in AOL, Beginner | No Comments »

AOL - Key Flex Field ( Deep Drive) - Part -II


Posted on August 22nd, 2007 by Sanjit Anand |  Print This Post |  Email This Post

In last post he have seen most businesses use codes made up of meaningful segments
(intelligent keys) to identify accounts, part numbers and other business entities. For
example a company might have a part number 'PAD-NR-GRN' indicating a Notepad,
Narrow Ruled and Green. Another might have a different code structure for the same
Notepad, Narrow Ruled and Green as 'GRN-NR-PAD'. Hence KFF provides the
flexibility to define the code structure of any business entity in the customer-desired
format without reprogram the application.

We all know , oracle GL uses a KFF called Accounting flex field to uniquely identity a
GL account. Oracle have customized this KFF to include 6 segments like Company
Code, Cost Center, Product, Product Line and sub account. Valid values are available to
each segment and cross validation rules are provided for segment combinations. This
KFF can be customized depends upon the business needs.

When to use a KFF

 Used to uniquely identify an application entity with an intelligent key, where the
key can be multipart and each part can have some meaning.
 Use KFF that Oracle Applications provides to integrate your applications
seamlessly with Oracle Applications.

What End User’s want there business Perspective

These are the things normally any business user want if implementation team and
management avoiding any customization.

 Customize the Flex fields Appearance


o Flexfield title
o Number and order of segments
o Prompts
o Value sets, values, and value description.
 Use Flexfield Functionality for Validation
o Individual segment validation
o Cross-segment validation
 Customize to the Situation
o Flexfields allow the application to adjust to fit specific business needs.
o Use multiple structures to match different needs in different situations.

The good things is that the above can be easily control and managed from screen, without
any extra(Ordinary) skill
Types of Key Flexfield Forms

In oracle application key Flexfield


appears on three different types of
application form :

1. Combinations Form
2. Foreign Key Form
3. Range Form

These form types correspond to the


types of tables that contains key
flexfield data.

Create Key Flexfield Combinations

A combination is a particular complete code or combination of segment values that


makes up the code that uniquely identifies an object. For example, each part number
would be a single combination, and if you had ten parts you would define ten
combinations. A valid combination is simply a combination that may currently be used.

Combinations Table
Each key Flexfield has one corresponding combinations table, known as the
Combinations table, where the flexfield stores a list of the complete codes, with one
column for each segment of the code, together with the corresponding unique ID
number(a code combination id number or CCID) for the code. Then the other tables in
the application have a column that stores just the unique ID for the code

 
Foreign Key Form

 Use the flex field code combinations from a form with a foreign key reference to
the combinations table.
 Internally the underlying Table Uses a Foreign Key
 The unique ID primary key column of the combinations table serves as a foreign
key column here.
 Often the foreign key table contains a structure ID column as well. It can be best
represented as figure below,

Range From
 Here table Contains Two Columns For Each Possible Segment
 Often the table contains a structure ID column as well.
 This form does not require actual combinations, and so does not need a foreign
key link to the combinations table.
 Perform operation on ranges of combinations using this form.

Create New Combinations Dynamically

Allow the defination of new flexfield combinations from forms with a foreign key
references, as mention in the following diagram.

Describe The Values In A Segment


 A segment qualifier is like the segment asking each value a question “What
type of value are you?”
o For example, assign an account type of “Expense” to the Account
segment value 3003.
 Uses Segment Qualifiers with the Accounting Flexfield
o Detail Budgeting Allowed.
o Detail Posting Allowed.
o Account Type: Asset, Expense, Liability, Ownership/Stockholde’s
Equity, or Revenue.

Dynamically Insert Allowed

 Set and change this property while defining the flexfield structure on the Define
 Key Flexfield Segments form.
o Sometimes this property is not technically feasible
o If the combinations table includes mandatory columns that can not be
filled by the flexfield.
o Who columns, CCID columns, and enabled/activation date information
can be filled by the flexfield.

This is all about the key flex field. Hopefully it would be good to start with , If you want
to learn more about the concept, please do refer Flexfield user guide. Next will take
another deep drive for DFF.

Posted in AOL, Beginner | No Comments »

AOL - Flex Field (Part -1)


Posted on August 21st, 2007 by Sanjit Anand |  Print This Post |  Email This Post

Some one requested last week to provide some information about flex fleld
concept. Thought its good to take all into one.Next couple of post will focus on Flex field
concept, need and design for custom requirement.

Oracle applications use key flex field to represent intelligent keys with unique ID
numbers. ID numbers require only one column while intelligent keys will require
multiple columns (one for each section or segment of the code).

Flexfield - A field made up of one or more segments. A segment corresponds to a


column in an Oracle table.
Each segment has an assigned name and may have assigned data validation rules
(Validation Sets).

Key Flexfield - A Key Flexfield represents an intelligent key that uniquely identifies an
application entity. These keys identify accounts, part numbers etc. Each key flexfield has
an assigned name and a specified set of valid values.
Examples: in G/L we have the Accounting Flexfield (Chart of Accounts); in Inventory it
is the Item Flexfield, in Projects the Job Flexfield.

Descriptive Flexfield - Allows for the capture of additional information not stored in the
default application, or strictly for reference when viewed on a screen.
You may create a Flexfield using any of “Attribute(n)” columns. Oracle reserved
“Attribute(n)” columns on most of the tables to be setup during installation. These
columns are not used by Oracle standard functionality.
You may expand the number of Flexfield values by using “context sensitive”
feature.

Flexfield Types /What is the difference between a key flexfield and a descriptive
flexfield?

Key Flexfield:

An intelligent key that uniquely identifies an application entity. Each key flexfield
segment has a name you assign, and a set of valid values you specify.

Descriptive Flexfield

A field that your organization can extend to capture extra information not otherwise
tracked by Oracle Applications. A descriptive flexfield appears in your window as a
single character, unnamed field. Your organization can customize this field to capture
additional information unique to your business. (Example: capturing state codes on
selected journal lines)

Flexfield Key Terms


 Accounting Flexfield : The code you use to identify a general ledger (GL)
account in Oracle.
 Segment: A subcomponent of a flexfield. Company and natural account are
examples of possible segments in the accounting flexfield.
 Flexfield Qualifiers : Balancing segment, cost center segment, natural account,
inter-company segment.
 Segment Values : Numbers or codes attributed to each segment.
Value Set: A list of values for one segment, such as the list of companies, list of
accounts, or the list of departments.
 Code Combination : One full accounting flexfield with all segment values.
 Dynamic Insertion / Cross-Validation : Automatic creation of account code
combination based on rules defined with code combinations.

What is Accounting Flexfield

 Accounting (Key) Flexfield segment one of up to 30 different sections of the


accounting flexfield, which together make up a GL account code.
 Accounting Flexfield structure - the combination of key flexfield segments
defined to make up the account code combinations. If a segment(s) is added or
removed or re-arranged, the result is a different structure.

When to use a KFF

 Used to uniquely identify an application entity with an intelligent key, where the
key can be multipart and each part can have meaning.
 Use KFF that Oracle Applications provides to integrate your applications
seamlessly with Oracle Applications.

Will take a deep drive for KFF and DFF in next post.

Posted in AOL | 1 Comment »

Enabling Folder - 9 Steps


Posted on August 21st, 2007 by Sanjit Anand |  Print This Post |  Email This Post

In oracle Applications' GUI includes unique features to enhance the productivity of


Oracle's application users. Folder is one the features, that enhance the feature for high
productivity.

What is Folder..

As per documentation is say .."A folder is a special kind of window that allows users to
customize the set of fields and records displayed for a particular business entity without
programming. Using the folder customization menu or tool palette, users can specify the
records and the fields they wish to see, as well as field sequence, field prompts, and field
display widths. Users can customize folders at any time, saving them for personal use or
sharing them with others."

The most common use of folder technology is in the gateway to a key applications entity.
Users can customize the folder window to display the set of fields and records that are
most relevant to the business at hand. From the folder window, users can perform an
action involving one or more of the returned records. Or, they can select a single record,
open a detail window that shows all the fields for that record, and perform an action
involving that record.

Here are the 9 steps to enable folders in custom forms.

These Changes will make sure that folder can be saved and its query criteria are also
saved.

1. Pick up Template.fmb from your $AU_TOP/resource directory on server where


forms are residing.

2. Check out all the libraries get loaded successfully along with the Template.

3. Check for APPDAYPK.pll loaded fine, else copy it from APPSTAND.fmb

4. Attach APPFLDR library/pll

APPFLDR can be found in $AU_TOP/Resource directory on server where forms are


residing.

5. Copy the STANDARD_FOLDER Object Group

STANDARD_FOLDER Object group can be referenced from APPSTAND form which


resides in $AU_TOP/Resource. This will also copies the dependent objects required for
object group.

This will copy Folder Related Blocks,Canvases and other necessary objects.

6. Let us say we have One Main block, Not concerned with Control Blocks
Main Block:

XXPH_RCPT_HIS then

Create <BLOCKNAME>_RECORD_COUNT parameter


as XXPH_RCPT_HIS_ RECORD_COUNT parameter
where BLOCKNAME is the name of the block containing columns to be displayed. Data
Type should be Number and Put default Value of 2.
Canvas
You need two canvas- one content and one stacked. Let us name content canvas as
XXPH_RCPT_HIS_CONTENT and stacked canvas as XXPH_RCPT_HIS_STACKED.
Both the canvas have same window.

Windows
Create One Window. Name it XXPH_RCPT_HIS_WIN with view name as
XXPH_RCPT_HIS_WIN

Blocks
Main Block:
XXPH_RCPT_HIS contains database columns. Items should be on Stacked canvas
(XXPH_RCPT_HIS_STACKED).

7. Create following eight triggers:

WHEN-NEW-BLOCK-INSTANCE
app_folder.event('WHEN-NEW-BLOCK-INSTANCE');

KEY-PREV-ITEM
if (:parameter.XXPH_rcpt_his_record_count = 1) then
previous_item;
else
app_folder.event('KEY-PREV-ITEM');
end if;

KEY-NEXT-ITEM
if (:parameter.xxph_rcpt_his_record_count = 1) then
next_item;
else
app_folder.event('KEY-NEXT-ITEM');
end if;

PRE-BLOCK
app_folder.event('PRE-BLOCK');

POST-BLOCK
app_folder.event('POST-BLOCK');

PRE-QUERY
app_folder.event('PRE-QUERY');

KEY-EXEQRY
app_folder.event('KEY-EXEQRY');
POST-QUERY
app_folder.event('POST-QUERY');

8. PROMPT Block:

Create new block XXPH_RCPT_HIS_PROMPT: which will contain prompts for the
column displayed in upper block.

Make subclass information as DYNAMIC_PROMPT.

This block should contain:

Items which will be Prompts for above block columns (Item name should be same as
Column name in above block). Prompt Items should be on Stacked canvas
(XXPH_RCPT_HIS_STACKED).

Create new Items specified below:


Item Name: FOLDER_OPEN, Item Type: Button, Canvas:
XXPH_RCPT_HIS_CONTENT,Subclass:Dynamic_Title
Item Name: FOLDER_DUMMY, Item Type: Text Item , Canvas: TOOLBAR
,Subclass:Folder_Dummy
Item Name: FOLDER_TITLE, Item Type: Display Item, Canvas:
XXPH_RCPT_HIS_CONTENT,Subclass:Dynamic_Title

Item Name: ORDER_BY1, Item Type: Button, Canvas: XXPH_RCPT_HIS_STACKED


Item Name: ORDER_BY2, Item Type: Button, Canvas: XXPH_RCPT_HIS_STACKED
Item Name: ORDER_BY3, Item Type: Button, Canvas: XXPH_RCPT_HIS_STACKED
Item Name:Folder_Switcher, Item Type:Text,Canvas:
XXPH_RCPT_HIS_CONTENT,Subclass:SWITCHER

Check out your Both Canvases for setting these new buttons,prompts.

9. Form Level Triggers

FOLDER_ACTION
--
-- Remove the message and uncomment the line after it to activate the folder actions
--
-- message('You must modify the FOLDER_ACTION trigger in your form!');
app_folder.event(:global.folder_action);

WHEN-NEW-FORM-INSTANCE
app_folder.define_folder_block(' XXPORCHUK ', -- 'Object Name'
' XXPH_RCPT_HIS ', -- 'folder_block',
' XXPH_RCPT_HIS_PROMPT ', -- 'prompt_block',
'XXPH_RCPT_HIS_STACKED', --'stacked_canvas',
'XXPH_RCPT_HIS_WIN', --'window',
NULL); --'disabled functions');

Posted in AOL | 12 Comments »

Beginner’s Guide : Concurrent program/Manager


output and log file- Part - IV
Posted on August 19th, 2007 by Sanjit Anand |  Print This Post |  Email This Post

Once Concurrent program get complete, there are two file generated as follow:

 The Log File

Log files are stored under $APPLCSF/$APPLLOG if $APPLCSF is set and under
$APPLLOG for each application if $APPLCSF is not set. The log file naming convention
is the letter L, followed by the concurrent request ID, followed by the extension .req .

 The output File

Output files are stored under $APPLCSF/$APPLOUT if $APPLCSF is set and under
$APPLOUT for each application if $APPLCSF is not set. The output file naming
convention is Application User name.Request ID.

For the Information purpose, here are few for your interest.

 APPL_TOP - this is the top level directory for the Applications


 APPLCSF - the top level directory where the concurrent manager stores the log
and out files of concurrent requests
 APPLLOG - concurrent request log files( As describe above)
 APPLOUT - concurrent request out files( As describe above)
 APPLTMP - Applications temporary files
 APPLPTMP - PL/SQL temporary files

Is there any naming conventions for the log file and output file?

Request log files: l<request id>.req


Output files:

 If $APPCPNAM is not set: <username>.<request id>


 If $APPCPNAM = REQID: o<request id>.out
 If $APPCPNAM = USER: <username>.out

Where: <request id> = The request id of the concurrent request And: <username> = The
id of the user that submitted the request

Where are the managers logfiles goes:

Similar to concurrent requset output and log, the concurrent manager does also generate
some files and typical naming convention are as below:

ICM logfile: Default is std.mgr, can be changed with the mgrname

 Concurrent manager log: w<XXXXXX>.mgr


 Transaction manager log: t<XXXXXX>.mgr
 Conflict Resolution manager log: c<XXXXXX>.mgr

Where: <XXXXXX> is the concurrent process id of the manager.

Posted in AOL | 6 Comments »

Beginner’s Guide : Understanding Concurrent


Managers - Part - III
Posted on August 19th, 2007 by Sanjit Anand |  Print This Post |  Email This Post

Here is the explanation how you can define concurrent managers and specify when a
manager is enabled.

A concurrent manager is itself a concurrent program that starts other concurrent programs
running. When an application user submits a request to run a program, the request is
entered into a database table that lists all of the requests. Concurrent managers read
requests from the table and start programs running. See: Concurrent Managers.
Next , we explain how to specify when a manager is enabled, how to use managers to
balance your applications processing workload across different time periods, and how to
associate a library of immediate concurrent programs to be called by your manager.

Defining new managers

You can define as many concurrent managers as you want. When you define a manager,
you:

 Assign a predefined library of immediate concurrent programs to your manager.


o Immediate concurrent programs are subroutines associated with
concurrent managers. All other concurrent programs are spawned as
independent processes at run time.
 Assign work shifts to your manager, which determines what days and times the
manager works.
 For each work shift, you define the maximum number of operating system
processes the manager can run concurrently to read requests (start programs)
during the work shift.
 Specialize your manager to read only certain kinds of requests.

Program Libraries

For a program that is spawned, a concurrent manager initiates or spawns another


operating system process. A program that is immediate runs as part of the concurrent
manager's operating system process.

A program library contains immediate concurrent programs that can be called by your
manager.

An immediate concurrent program must be registered with a program library. Application


developers using Oracle Application Object Library can register concurrent programs
with a program library.

The Oracle Application Object Library FNDLIBR program library contains Oracle
Applications immediate concurrent programs, and is assigned to the Standard concurrent
manager. In most cases, you will include the FNDLIBR library with your manager's
definition.

The Concurrent Manager Managing request

A typical Concurrent manager is managing request in typical the flow which is described
below.
And if Concurrent manager is having work shift set up , one the top of above process, the
best can be described as:

How many Concurrent Managers available in oracle Apps

Similar to other products in there are seeded, Transaction and Other Concurrent
Managers available. The Creation of custom manager is also possible , I am unable to
throw some light, as i hadn't exposed to setting up of these area . In a typical
implementation , it would be taken care by DBA's , and you can find some documents in
system admin user guide for further details.Here , I am going to list of the concurrent
manager which are used for some of processing within the product.Lets start to explore
options for managers in EBS Suite:

The Seeded Concurrent Managers


Oracle seeds the Internal Manager and Conflict Manager with every implementation.
Here are the list of some of them:

 Internal Manager

The internal manager is the highest level manager that controls all the other managers

 Conflict Resolution Manager

Resolves request conflicts. When programs are defined with incompatibilities with other
programs, both programs will show up in the Conflict Resolution Manager if they are
both trying to run at the same time. Programs that are submitted but have no place to run
because of incorrect setup choices for the concurrent managers will also show up under
the Conflict Resolution Manager.

The Transaction Managers

 Inventory Manager
o Runs Inventory Programs. As seeded, the Inventory Manager has a
number of individual programs assigned to it
 MRP Manager
o Runs the Planning Manager. The MRP Manager is seeded by Oracle to
only run the Planning Manager program. You may consider assigning a
small number of other concurrent requests, including the MRP processes,
to this manager if you are a heavy manufacturing user, to pull these critical
processes out from under the Standard Manager.
 PA Streamline Manager
 Standard Manager
o The general queue for handling requests. The Standard Manager was set
up to run all concurrent requests.

You can find the details in earlier post.

Posted in AOL | No Comments »

Beginner’s Guide : Administering Concurrent Program


- Part - II
Posted on August 19th, 2007 by Sanjit Anand |  Print This Post |  Email This Post
In last post I have already discussed about Concurrent program and bit on Concurrent
manager. Concurrent program are one of core functionality that oracle offered to handle
some internal process without affecting other processing. So let take a deep drive for
Concurrent Program. Lets start the definition once again.

 A “Concurrent program” is an executable file that gets executed by Oracle


Applications with the ability to run simultaneously and in the background with
other programs.
 Typically, a concurrent program is a long-running, data-intensive task, such as
posting a journal or generating a report.
 The execution of these programs is controlled by the Concurrent Manager.

The Flow

Typical flow of concurrent processing can be best describe in above diagram as discussed
in Developer guide

3 W and 1 P for concurrent program

When A concurrent program actually starts ?

... Best answer is Concurrent Program normally running based on:

 When it is scheduled to start


 Whether it is placed on hold,
 Whether it is incompatible (cannot run) with other programs
 Its request priority

The priority of a concurrent request is determined by application user name, and is set by
the System Administrator using the Concurrent:Priority user profile option.

The first available concurrent manager compares the request's priority to other requests it
is eligible to process, and runs the request with the highest priority.
When choosing between requests of equal priority, the concurrent manager runs the
oldest request first.

Often, several programs may be grouped together, as in a request set. Submitting the
request set as a whole generates a request ID, and as each member of the set is submitted
it receives its own request ID. The set's request ID identifies the Parent request, and each
of the individual programs' request ID identifies a Child request.

Life Cycle of a Concurrent Request

A concurrent request has a life cycle consisting of the following phases:

 Pending Request is waiting to be run


 Running Request is running
 Completed Request has finished
 Inactive Request cannot be run

Within each phase, a request's condition or status may change. Below appears a listing of
each phase and the various states that a concurrent request can go through.

Concurrent Request Phase and Status

This is chart which shows the conditions by stage.


Posted in AOL | Comments Off

Beginner’s Guide : Administering Oracle Application -


Part - I
Posted on August 18th, 2007 by Sanjit Anand |  Print This Post |  Email This Post

Administrating Oracle application, its important to understand the core components.In


oracle application, lets take some of them start with some of the

 Responsibilities
 Menus
 Profile Options
 Concurrent Manager
 Security Concepts
 Responsibility

A responsibility defines and address these:


o What functions a user can use
o What data a user can access
o What “Set of Books” a user can access
 Normally in oracle application a “Set of Books” describes as
significant piece of the enterprise that has a different currency,
calendar, or chart of accounts
 Is the top level in the hierarchy that a responsibility is assigned to
o What “Organization” a user belongs to
 An organization is a sub-set of the “Set of Books”, which is
used to further restrict the data a user can access Multi-org ,which
allows a subsidiary ledger, such as AP, to process invoices that
will reside in multiple sets of books.
 Users normally are assigned to multiple responsibilities.
o The R12 there is concept called MOAC which describe the access over
different OU level. Will discuss this in details some other day.
 Menus
o A menu is a hierarchical arrangement of functions and menus of functions.
Each responsibility has a menu assig ned to it.
You should take a note functionality of a responsibility can be customized
by modifying the menu associated with the responsibility.
o The same menu can be used by many different Responsibilities.
o In oracle application,menus can not be copied. New menus have to be
built from scratch.
o While creating a new menu hierarchy, create the lowest-level menus first.
A menu must be defined before it can be selected as an entry on another
menu.
o When a menu’s name is changed, the menu entries are not affected.
Other menus calling the menu by its old name, automatically call the same
menu by its new name.
o Menu structure can be documented by printing a Menu Report.
o Use the Define Menu Form in the System Administration responsibility to
create new Menus
o You can create and define Menu Form in the System Administration
responsibility to create new Menus.
 Profile Options

 These are a set of changeable options that affect the way your application runs.
 These can be set at different level, from 11.5.10 there are 6 different level where
you can make take the options.
 Further control security by assigning a set of books to a
responsibility,Application,or Site.
 Set of books is a company or group of companies that uses Oracle Applications
that share a common Chart of Accounts,Currency,and Calendar.

Profiles are established at six different levels:

1. Site Site level profile values are used when the profile option can have only one
value for the entire instance of Oracle. (example- EDI Input file path lets say if
the entire server is using one directory to accept inbound files from EDI,then you
would just set the profile option at the site level, then it flows down to all levels,
and there is no need to set this at other levels).
2. Application
3. Server
4. Organization
5. Responsibility
6. User


oIf you are very new to oracle application , it should be noted that system
Profile Options are set by the System Administrator and affect the
behavior of the Application and its modules for everyone.
o Personal Profile Options are set by the individual user and cover that
individual’s interaction with the system.
 Concurrent Manager
o In Oracle Applications, concurrent processing simultaneously executes
programs running in the background with online operations. with system
Administrator, you can manage when programs are run and how many
operating system processes Oracle Applications devotes to running
programs in the background.
o When a user runs a report, a request to run the report is generated. The
command to run the report is a concurrent request. The program that
generates the report is a concurrent program. Concurrent programs are
started by a concurrent manager.
o Every time your users request a concurrent program to be run, their
request is inserted into a database table, and is uniquely identified by a
request ID. Concurrent managers read requests from this table.
o Part of a manager's definition is how many operating system processes it
can devote to running requests. This number is referred to as the manager's
number of target processes.

A concurrent program actually starts running based on:


o
 When it is scheduled to start
 Whether it is placed on hold,
 Whether it is incompatible with other programs
 Its request priority
o The priority of a concurrent request is determined by application user
name, and is set by the System Administrator using the
Concurrent:Priority user profile option.
o The first available concurrent manager compares the request's priority to
other requests it is eligible to process, and runs the request with the highest
priority.
o When choosing between requests of equal priority, the concurrent
manager runs the oldest request first.
o Often, several programs may be grouped together, as in a request set.
Submitting the request set as a whole generates a request ID, and as each
member of the set is submitted it receives its own request ID. The set's
request ID identifies the Parent request, and each of the individual
programs' request ID identifies a Child request.
 Security Concept

In oracle application security can be classified in two broad area viz:

 Database Security
o Each Oracle application module database objects ( tables, views etc.,) are
owned by a different Oracle ID. For example, all General Ledger objects
are owned by the Oracle ID called GL, all Accounts Payables objects are
owned by AP and so on.
o All programs under a responsibility are executed using these Oracle IDs.
For example, the
General Ledger
responsibilities use the
GL database user-id.
o Custom tables created
to interface with
Oracle Applications
should be placed in a
separate Oracle id to
facilitate upgrading the
application when
necessary.
 Function Security
o Function security is the
mechanism by which
user access to
application
functionality is
controlled. Function is
a part of an
application’s functionality that is registered under a unique name for
the purpose of assigning it to, or excluding it from, a responsibility.
o Two types of functions: Form function ( known as a form) and non-form
function ( known as a sub-function).
A form function invokes an Oracle Forms form. Forms appear in the
Navigate Window and can be navigated to. Forms can exist on their own.
o A non-form function ( sub-function) is a function executed from within a
form. These are frequently associated with buttons or other graphical
elements in the form. Sub-functions do not appear on the Navigate
window.

AOL Integration

In AOL , Forms, Menus, Responsibilities, Profiles, Users are inter related. Here are
diagram which best describe the dependency among each other.

Search@Epicenter
Know some of the concurrent managers
Posted on August 12th, 2007 by Sanjit Anand |  Print This Post |  Email This Post

The key types of concurrent managers in EBS are:

 Internal Concurrent Manager (ICM)


 Conflict Resolution Manager (CRM)
 Product Specific Managers
 Transaction Managers

The Internal and the Standard concurrent managers

 Oracle System Administration predefines two managers for you:


 The Internal Concurrent Manager, which functions as the "boss" of all the other
managers.
 The Internal Concurrent Manager starts up, verifies the status of, resets, and shuts
down the individual managers.
 The Internal Concurrent Manager also enforces program incompatibility rules by
comparing program definitions for requested programs with those programs
already running in an Oracle username designated as a logical database (i.e., an
Oracle account where program incompatibility rules are enforced).
 You cannot alter the definition of the Internal Concurrent Manager.

Conflict Resolution Manager (CRM)

 CRM enforces any incompatibility rules.

Product Specific Managers

 It includes inventory, MRP, PA and any user defined managers

Transaction Managers

 It supports synchronous request processing


 A small pool of server-side transaction manager processes service a large number
of clients
 Ex. of this manager is approval of an order

Posted in AOL | 3 Comments »

Applications User Exits in Reports


Posted on August 12th, 2007 by Sanjit Anand |  Print This Post |  Email This Post
We can integrate Oracle reports with Oracle Application Object Library, and run them as
concurrent programs from your forms or through standard request submission.

These are the user exits available in Oracle Reports that makes AOL integration.

• FND SRWINIT


• FND SRWEXIT
• FND FORMAT_CURRENCY
• FND FLEXIDVAL
• FND FLEXSQL

 FND SRWINIT
o This is a User Exit which sets your profile option values and allows Oracle
AOL user exits to detect that they have been called by oracle repots.
o FND SRWINIT also allows your report to use the correct organization
automatically.
o Can be used in BEFORE-REPORT Trigger.
 FND_SRWEXIT
o This user exit ensures that all the memory allocated for AOL user exits has
been freed up properly.
o Can be used in AFTER- REPORT Trigger
 USER EXITS
o are used in Oracle APPS to access user profile values and perform proper
calculation.
o Ex. of Other AOL User exits available in Reports are given below.
 FND FORMAT_CURRENCY
o To format the currency amount dynamically depending upon the precision
of the actual currency value, standard precision, users profile values and
location (country) of the site.
o You obtain the currency value from the database into an Oracle Reports
column. Define another Oracle Reports column, a formula column of type
CHAR, which executes the FORMAT_CURRENCY user exit to format
the currency value. A displayed field has this formula column as its source
so that the formatted value is automatically copied into the field for
display.

Syntax
FND FORMAT_CURRENCY
CODE=”:column containing currency code”
DISPLAY_WIDTH=”field width for display”
AMOUNT=”:source column name”
DISPLAY=”:display column name”
[MINIMUM_PRECISION=”:P_MIN_PRECISION”]
[PRECISION=”{STANDARD|EXTENDED}”]
[DISPLAY_SCALING_FACTOR=””:P_SCALING_FACTOR”]
 FND FLEXSQL
o This user exits allows you to use Flex fields in Reports.

Syntax:
FND FLEXSQL
CODE="flexfield code"
APPL_SHORT_NAME="application short name"
OUTPUT=":output lexical parameter name"
MODE="{ SELECT | WHERE | HAVING | ORDER BY}"
[DISPLAY="{ALL | flexfield qualifier | segment
number}"]
[SHOWDEPSEG="{Y | N}"]
[NUM=":structure defining lexical" |
MULTINUM="{Y | N}"]
[TABLEALIAS="code combination table alias"]
[OPERATOR="{ = | < | > | <= | >= | != | "||" |
BETWEEN | QBE}"]
[OPERAND1=":input parameter or value"]
[OPERAND2=":input parameter or value"]

 FND FLEXIDVAL

 This user exits allows you to use Flex fields in Reports

Syntax:
FND FLEXIDVAL
CODE="flexfield code"
APPL_SHORT_NAME="application short name"
DATA=":source column name"
[NUM=":structure defining source column/lexical"]
[DISPLAY="{ALL|flexfield qualifier|segment number}"]
[IDISPLAY="{ALL|flexfield qualifier|segment
number}"]
[SHOWDEPSEG="{Y | N}"]
[VALUE=":output column name"]
[DESCRIPTION=":output column name"]
[APROMPT=":output column name"]
[LPROMPT=":output column name"]
[PADDED_VALUE=":output column name"]
[SECURITY=":column name"]

This is an AOL user exit available to populate key flexfields for display

CODE means Key flexfield code(GL# is for Accounting Flex field, for all other
check the table FND_ID_FLEXS)
NUM is the structure of the key flex field(Chart of Accounts Number)
DATA is where you store the retrieved data (your sql output).

Example

SRW.USER_EXIT('FND FLEXSQL CODE="GL#"


NUM=":P_STRUCT_NUM"
APPL_SHORT_NAME="SQLGL"
OUTPUT=":P_SEC_SEG"
MODE="SELECT"
DISPLAY=":P_SEC_SEG_VAL" ')

The userexit call FND FLEXIDVAL :

SRW.REFERENCE(:SEC_SEG);
SRW.USER_EXIT('FND FLEXIDVAL CODE="GL#"
DATA=":SEC_SEG"
APPL_SHORT_NAME="SQLGL"
VALUE=":SEC_SEG_DISP"
DISPLAY="ALL"
NUM=":P_STRUCT_NUM" ');
return(:sec_seg_disp);

Posted in AOL | 1 Comment »

Know the Calender feature in EBS


Posted on August 9th, 2007 by Sanjit Anand |  Print This Post |  Email This Post

You can enter a value directly to a date field or use the calendar facility in APPS.
Calendar lets you the following needs.

 Represent date and time graphically so that you can make a quick selection
without typing.
 Select only those dates or date ranges that are suitable for the current field.

How to invoke a calendar in a form

To invoke a calendar in a custom form you need to do the following.

 Create a text item with data type DATE in the form.


 Set the LOV of the text item to ENABLE_LIST_LAMP in the property sheet.
 Set the LOV for Validation property of the text item to FALSE.
 Create an item level trigger KEY-LISTVAL as CALENDAR.SHOW

Posted in AOL, Beginner | 1 Comment »


AOL : Valueset - Advanced Validation Options
Posted on August 5th, 2007 by Sanjit Anand |  Print This Post |  Email This Post

In oracle application there are several advanced techniques by which we can use when
defining value sets for validating input. Normally such techniques use values obtained
from a location other than a list specifically defined for the value set. These locations
may includes:

 Values retrieved from an application table


 The current value for a particular profile option
 A value used earlier in a field on the form
 A value used earlier in another value set

Here are some information with advance validation options.

• Using $PROFILES$

This is used to reference the current value of a profile option in a WHERE clause by
prefixing the name of the profile option with $PROFILES$.

Usage:

:$PROFILES$.profile_option_name

A typical example with the use this keyword in a WHERE clause to reference a profile
option value.

....WHERE SET_OF_BOOKS_ID = :$PROFILES$.GL_SET_OF_BOOKS_ID

so what happen when ever the SET_OF_BOOKS_ID need to pass the $PROFILES$
options simply reference the value which is retrived at form level.

A list of available Profile options can be found in one of the last post.

• Using :Block.field

This is used to references the value of an earlier appearing field on the same form

Using :block.field is different from using a descriptive flex field reference field in that the
flex field structure does not change based on the
different :block.field values.

By Using this value set only with flex fields on windows that have the same block.field
available.
• Using $FLEX$

This is used to references the value from a value set used earlier on the same form

You can refer to the current value of a previously used value set on the same form by
using $FLEX$.value_set_name.

Usage

......WHERE JOURNAL_TYPE = :$FLEX$.GL_SRS_JOURNAL_TYPE

Posted in AOL | No Comments »

AOL : Valueset - A Beginner Guide


Posted on August 4th, 2007 by Sanjit Anand |  Print This Post |  Email This Post

What is value set in Oracle application AOL

 Value set is primarily a ”container” for your values, you define your value
set such that it can control the types of values that are allowed into the value set
(either predefined or non–validated). You can specify the format of your values.
 Oracle Application Object Library uses value sets as important components of
key flexfields, descriptive flexfields, and Standard Request Submission (value
sets for report parameters for your reports that use the Standard Request
Submission feature).

When to defining Values for Value Sets

 After you register your Flexfields & report parameters, if you are using
independent or dependent value sets, you can enter values into each
corresponding value set using the Segment Values form.
 Values for the Value Sets, we are defining will be kept in the Oracle Application
Object Library’s tables.

How many Format Types the value set have

 Character
 Number
 Time
 Standard Date, Standard Date Time
 Date, Date Time

You should take a note that Date and Date Time value set formats will be obsolete now
and are provided for backward compatibility only. For new value sets, use the the format
types Standard Date and Standard Date Time.
What is Security type in value set?

 By Security Rules window, we can define value security rules for ranges of
flexfield and report parameter values.

There are two levels where you must activate Security, the one at value set level and
other at individual segment or parameter level. You make Flex field Value Security
available for your value set by choosing Hierarchical Security or Non-Hierarchical
Security for the Security Type. When you make security available for a value set, all
segments and report parameters that use that value set can use security. You then enable
security for a particular segment or parameter.

 Choose Hierarchical Security, If you want Security on a parent value to


“Cascade down” to its child value or else you can choose Non-Hierarchical
Security.

How many Character Formatting Options have for value set?

 Numbers Only (0–9)


o We cannot prevent users from entering a value that contains the radix
character.
o Cannot be used in Translatable Independent and Translatable Dependent
value sets.
 Uppercase Only
o Here also we cannot use in Translatable Independent and Translatable
Dependent value sets.
 Right–justify and Zero–fill Numbers
o If you have selected Numbers Only (0–9) flag, then it wont allow you to
affect this flag.
o We are recommended to use this in Accounting Flex fields.
 Minimum and Maximum Value Range
o Your Minimum/maximum value may not be longer than the maximum
size you specify for this value set.
o Once you specify a range of values, you cannot define a new valid value
that falls outside this range.
o The Minimum Value and Maximum Value fields can therefore allow you
to create a value set with a validation type of None.

How many validation Type does value set have?

There are several validation types that affect the way users enter and use segment or
parameter values:

 None (not validated at all).


o Allow users to enter any value.
o Only Format Validations will be done.
 Independent.
o Provides a predefined
list of values.
o Independent values are
stored in an Oracle
Application Object
Library table.

 Dependent.
o Same like Independent Value Set, except the List of Values shown to you
will depends on which the Independent value you have selected in the
Prior Segment.
o Must define your independent value set before you define the dependent
value set that depends on it.
o Advisable to create your independent values first.
o Must create at least one dependent value for each independent value, or
else it wont allow you to enter into that segment or field.
 Table.
o It use your own application tables as value sets for flex field segments and
report parameters instead of the special values tables which Oracle
Applications provides.
o You can also use validation tables with other special arguments to make
your segments depend on profile options or field values.
o You can use any existing application table, view, or synonym as a
validation table.
o If we are using non–registered table for our value set, then we have to
Create the necessary grants and synonyms to APPS Schema.
o The value column and the defined ID column in the table must return a
unique row for a given value or ID.
o If the Hidden Id column is provided the value passed to the report will be
Hidden and not the Value column.
o Similarly, when you specify :$FLEX$.Value_Set_Name, your flex field
segment or report parameter defaults to always use the hidden ID column
to compare with your WHERE clause .
o We can use Special BIND variable such as :$PROFILES$.Option_name, :
$FLEX$.Value_set_name, :block.field in the WHERE clause.
o We can also display additional columns.
Ex: Column_name1 “Column Title” (Width), ……
org_id “Organization” (30)
 Special.
o Special validation value sets allow you to call key flex field user exits to
validate a flex field segment or report parameter using a flex
field–within–a–flex field mechanism. You can call flex field
routines and use a complete flex field as the value passed by this value set.
 Pair.
o Pair validation value
set allows user to pass
a range of
concatenated Flex field
segments as
parameters to a report.
 Translatable Independent &
Translatable Dependent
o These value sets are
similar to Independent
and Dependent value
sets except that
translated values can
be displayed to the
user. Translatable Independent and Translatable Dependent value sets
allow you to use hidden values and displayed (translated) values in your
value sets. In this way your users can see a value in their preferred
languages, yet the values will be validated against a hidden value that is
not translated.
o We can convert the Independent value set to a Translatable Independent
value set, or a Dependent value set to a Translatable Dependent value set.
These are the only types of conversions allowed.

Which Oracle table store Value sets and underline information

 FND_FLEX_VALUE_HIERARCHIES
 FND_FLEX_VALUE_SETS
 FND_ID_FLEX_SEGMENTS
 FND_FLEX_VALUE_NORM_HIERARCHY
 FND_FLEX_HIERARCHIES
 FND_FLEX_VALUE
 FND_FLEX_VALIDATION_EVENTS
 FND_FLEX_VALUE_RULE_LINES
 FND_FLEX_VALUE_RULE
 FND_FLEX_VALUE_RULE_USAGE
 FND_RESPONSIBLITY
 FND_TABLES
 FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield value?

Yes, FNDLOAD is utility which can be used for moving value set across different
environment.See the FNDload post.

Do we have any restriction on value set?


Yes, here are some listed one:
 Table Validated Value Sets
o We cannot use table-validated id value sets for any accounting flexfield or
any other key flexfields.
o We cannot use :$FLEX$, :$PROFILES$ in table name, value and id of
table validated value sets.
o We cannot use DISTINCT clause in any of the column fields or in the
WHERE clause of a table validate value set.
o In an id value set, the value can be non-unique but id should be unique. In
a non-id value set, value should be unique.
o We can only use columns selected for the table-validated value set must be
of type NUMBER, DATE or VARCHAR2.
o Support for SQL expression in columns of Table Validated value sets will
be obsolete in future release.
 Translatable Independent and Translatable Dependent Valuesets
o The Numbers Only and Uppercase Only option cannot be used.
o Must have "Char" format type.
 Special/Pair valuesets
o Special/Pair value sets are user-exit value sets . PL/SQL APIs will not be
able to validate them.

Posted in AOL | 5 Comments »

AOL : Valueset - Validation Comparison


Posted on August 3rd, 2007 by Sanjit Anand |  Print This Post |  Email This Post

Here is the comparison of the various validation types.

The various AOL tables name for value set can be referred in one of the last post.

Posted in AOL | No Comments »

4 Steps for Host based concurrent program


Posted on June 18th, 2007 by Sanjit Anand |  Print This Post |  Email This Post
These are the few steps which is required to make a host based Concurrent Program.

The first steps would be , you have to create a script and save as .prog extension and put
into your application top bin folder.
If your custom application is XX then the scripts should goes to $XX_TOP/bin
For example, call the script CUSTOM.prog and place it under

Step 2
Now,you have understood , the execution of unix program is bit different in oracle
application. The only things you have to notice is you need to pass 4 mandatory
parameter to execute host program.
The other way around is ,you can use fndcpesr and link with your host program.It means
the fndcpesr will take care of your 4 mandatory parameter.

You have to simply create a soft link with $XX_TOP/bin folder.

ln -s $FND_TOP/bin/fndcpesr <script>

This link should be named the same as your script without the .prog extension.

Step 3
Next you have to make into system administrator responsibly follow 3 steps from these
menu

 sysadmin -> concurrent-> program -> executable


 sysadmin -> concurrent-> program -> define
 sysadmin ->security -> responsibility -> request

Register the concurrent program, using an execution method of 'Host'.


Use the name of your script without the .prog extension as the name of the executable.

Step 4

Your script will be passed at least 4 parameters, between $1 and $4.


These are:
orauser/pwd,
userid,
username,
and request_id

Any other parameters you define will be passed in $5 and higher.


Make sure your script returns an exit status also.

What additional piece need to incorporate in code


you need to simply
ORA_USER_PASS=$1
USERID=$2
USERNAME=$3
REQUESTID=$4

With or without extn '.prog'


You can register an host application without the prog extension. Your script will not have
any extension. However in order to make this work you must have logic in your host
application that parses the parameter string passed to it and extract the individual
parameters out of it. This is required because the Concurrent manager passes 1 string
containing all the parameters, to the host program. In programs linked to the fndcpesr
program, the fndcpesr parses it into the individual parameters.

How can you return an error status of the concurrent programs?

Yes, By default, a shell script returns success (status code 0). In case of error script traps
an error, use the UNIX exit command 'exit 1' to return
failure (status code 1) to the concurrent manager running the program."

Final Note of 'fndcpesr'


fndcpesr is a standard utility available in $FND_TOP directory. Its mainly used by the
application to parse arguments for shell scripts.

Posted in AOL | 27 Comments »

Its all about FNDLOAD


Posted on August 15th, 2006 by anand |  Print This Post |  Email This Post

What is Data Synchronization ?

Data Synchronization is a process in which some setup data would be synchronized, and
this would be more important when you are working in oracle application
development/implementation project? The equally important that AOL data Migration
takes place necessary to synchronize the data across databases instance during

 Installations (New desc. flex field creations etc)


 Upgrades (Apps upgrade etc)
 Maintenance (Value set changes etc)

Then… What.. FNDLOAD

Yes, that is one and only oracle solution. It can be defined as a concurrent program that
can move Oracle Applications data between database and text file representations. Or
this can be defined as FNDLOAD can download data from an application entity into an
editable text file, which can be uploaded to another database.

How it works
Conversion between database format and text file format is specified by a configuration
file. Oracle does provide confirmation file and it is important to just pass the
configuration file name and then just call the loader and leave everything .The schematic
visual representation of the loader is like:

What can be done?

These are the extensive list which can be done through FNDLOAD

 Concurrent Programs, Executables


 Request Groups, Request Sets
 Profile Options
 Key and Descriptive Flexfields
 Menus and Responsibilities
 Forms and Form Functions
 Attachments
 Messages
 Value Sets and Values
 Lookup Types
 User Responsibilities
 Printer Definitions
 FND Dictionary
 Help Configuration
 Document Sequences
 Concurrent Manager Schedules

Then…what are advantages when using FNDLOAD are :

1. Because downloaded data is stored in a text file, version administration is


possible
2. There is nothing to worry to go to purchase because..Investment = 0$
3. No learning curve. this is relief for developer/dba’s
4. Fully supported and recommended by Oracle
5. Capture the migrations in a file and use it during installations, clones etc. to
migrate in batch
6. Pin-point when something happened and where (database) easily
7. Your AOL data migration process is now simplified and streamlined – goal
attained!!

And these are some Disadvantages also :

1. Applications patching mechanisms use FNDLOAD heavily – possibility of


negative impact is not zero
2. UPLOAD_MODE=REPLACE only for menus
3. No validation against migrating database/instance sensitive data

The Syntax

To use FNDLOAD, the following syntax is needed.

FNDLOAD apps/appspwd 0 Y mode configfile datafile entity [parameter1…..]

As you can see, some info is needed.- First you will need to know the Apps password.

 The mode is either DOWNLOAD or UPLOAD.


 The configfile is the file that Fndload needs to download on upload data.
 T he data file is the output file, in which the downloaded data is written
 The entity is the entity you want to download,
 Parameters van is passed to download a certain Alert

Modes of Operation

This is important because it would drive the whole flow, and it always be two mode ..
Upload and Download…

Example of download:

FNDLOADapps/pwd 0 Y DOWNLOAD ${FND_TOP}/patch/115/import/afcpprog.lct myfile.ldt \


PROGRAM CONCURRENT_PROGRAM_NAME= concurrent_program_short_name>
APPLICATION_SHORT_NAME=<application_short_name>

Example of Upload

FNDLOAD apps/pwd 0 Y UPLOAD ${FND_TOP}/patch/115/import/afcpprog.lct


myfile.ldt - CUSTOM_MODE=FORCE undocumented parameter

WHAT IS FNDLOADLoad Options:

 Application level OR single entity level download


o (Example) Download all the profile options of Inventory or just the INV:
Default Primary UOM
 Entire OR Partial upload of a data file
o (Example) Upload the entire myfile.ldt or just a single enity indicated by -
and mode UPLOAD or UPLOAD_PARTIAL
o Entity name required for UPLOAD_PARTIAL mode
 Custom mode force update
o To override Oracle's upload algorithm and update the custom AOL data
regardless, use CUSTOM_MODE= FORCE
o UPLOAD_MODE= REPLACE (only for menus)
 Support for NLS uploads
o NLS data uploads for translated columns are supported, use
UPLOAD_MODE= NLS

Then ..Where is Config File Located

By default Oracle delivers most of configuration files you can use to download certain
entities.

 Configuration files with extension .lct


o On Unix - all the configuration files are in $FND_TOP/patch/115/import
directory
o On Unix – Oracle also places the original configuration files in
$FND_TOP/admin/import directory
 Data files with extension .ldt

and..FNDLOAD File Structures is

 The config files (.lct) are delivered and maintained by Oracle


 It has entity definitions, parent-child relationships and user input parameters
identified by :NAME
o Downloading a parent automatically downloads all children - (Example)
Concurrent Program download

Take a note FNDLOAD File Structures

 The data files (.ldt) have both entity definition and the data
 It also shows the version and the location of the config file (.lct) that was used
 Without the config file, data file is useless
 Without the data file, config file is meaningless

..Remember regarding FNDLOAD Files

 Key files: .lct and .ldt


 You must run the FNDLOADas apps user not as applsys or any other, otherwise
you will receive Ora-6550
 Both are easily readable, editable and portable
 DO NOT MODIFY Oracle’s .lct files
 Use your favorite editor (I would suggest Textpad or Editplus) to manipulate only
the .ldt files but be cautious about data type, length, delimiter placements etc.
 Use the log file outputs or .ldt file contents creatively for quick file comparisons
and answer questions faster (Why can’t I access that? What is that profile
option name, value and level? What is the value set used for that DFF segment
attribute10 etc.)
 Partial string searches (which value set has Priority “something” in its
where clause? etc)
Sample Script Code for these Objects :

1 - Printer Styles

FNDLOAD apps/apps@seed115 O Y DOWNLOAD $FND_TOP/patch/115/import/afcppstl.lct


file_name.ldt STYLE PRINTER_STYLE_NAME="printer style name"

2 - Lookups

FNDLOAD apps/apps@seed115 O Y DOWNLOAD $FND_TOP/patch/115/import/aflvmlu.lct


file_name.ldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME="prod"
LOOKUP_TYPE="lookup name"

3 - Descriptive Flexfield with all of specific Contexts

FNDLOAD apps/apps@seed115 O Y DOWNLOAD $FND_TOP/patch/115/import/afffload.lct file_name.ldt


DESC_FLEX P_LEVEL=?COL_ALL:REF_ALL:CTX_ONE:SEG_ALL? APPLICATION_SHORT_NAME="prod"
DESCRIPTIVE_FLEXFIELD_NAME="desc flex name" P_CONTEXT_CODE="context name"

4 - Key Flexfield Structures

FNDLOAD apps/apps@seed115 O Y DOWNLOAD $FND_TOP/patch/115/import/afffload.lct


file_name.ldt KEY_FLEX P_LEVEL=?
COL_ALL:FQL_ALL:SQL_ALL:STR_ONE:WFP_ALL:SHA_ALL:CVR_ALL:SEG_ALL?
APPLICATION_SHORT_NAME="prod" ID_FLEX_CODE="key flex code"
P_STRUCTURE_CODE="structure name"

5 - Concurrent Programs

FNDLOAD apps/apps@seed115 O Y DOWNLOAD $FND_TOP/patch/115/import/afcpprog.lct file_name.ldt


PROGRAM APPLICATION_SHORT_NAME="prod" CONCURRENT_PROGRAM_NAME="concurrent name"

6 - Value Sets

FNDLOAD apps/apps@seed115 O Y DOWNLOAD $FND_TOP/patch/115/import/afffload.lct


file_name.ldt VALUE_SET FLEX_VALUE_SET_NAME="value set name"

7 - Value Sets with values

FNDLOAD apps/apps@seed115 O Y DOWNLOAD


$FND_TOP/patch/115/import/afffload.lct file_name.ldt VALUE_SET_VALUE
FLEX_VALUE_SET_NAME="value set name"

8 - Profile Options

FNDLOAD apps/apps@seed115 O Y DOWNLOAD $FND_TOP/patch/115/import/afscprof.lct


file_name.ldt PROFILE PROFILE_NAME="profile option" APPLICATION_SHORT_NAME="prod"

9 - Requset Group
FNDLOAD apps/apps@seed115 O Y DOWNLOAD $FND_TOP/patch/115/import/afcpreqg.lct
file_name.ldt REQUEST_GROUP REQUEST_GROUP_NAME="request group"
APPLICATION_SHORT_NAME="prod"

10 - Request Sets

FNDLOAD apps/apps@seed115 O Y DOWNLOAD $FND_TOP/patch/115/import/afcprset.lct


file_name.ldt REQ_SET APPLICATION_SHORT_NAME="prod" REQUEST_SET_NAME="request set"

11 - Responsibilities

FNDLOAD apps/apps@seed115 O Y DOWNLOAD $FND_TOP/patch/115/import/afscursp.lct file_name.ldt


FND_RESPONSIBILITY RESP_KEY="responsibility

12 - Menus

FNDLOAD apps/apps@seed115 O Y DOWNLOAD $FND_TOP/patch/115/import/afsload.lct


file_name.ldt MENU MENU_NAME="menu_name"

13 – Forms/Functions

FNDLOAD apps/apps@seed115 0 Y DOWNLOAD $FND_TOP/patch/115/import/affrmcus.lct


file_name.ldt FND_FORM_CUSTOM_RULES The Upload syntax for all styles: FNDLOAD
apps/apps@seed115 0 Y UPLOAD $FND_TOP/patch/115/import/affrmcus.lct file_name.ldt

14. User/Responsibilities

FNDLOAD apps/apps@seed115 0 Y DOWNLOAD @FND:patch/115/import/afscursp.lct file_name.ldt FND_USER


Then UPLOAD FNDLOAD apps/apps@seed115 0 Y UPLOAD [UPLOAD_PARTIAL]
@FND:patch/115/import/afscursp.lct file_name.ldt FND_USER [<USER>]

Search@Epicenter

A Newbie’s Guide to E-Business Suite Integration (by


Custom Code using API’S!”)
Posted on September 8th, 2008 by Sanjit Anand |  Print This Post |  Email This Post

How can we Integrate OracleApps with Custom code by using


public API's? What skill is required for E-Business Suite Integration with API's?

These are the question asked by someone who never exposed to OracleApps development
environment.
This was topic I discussed with client IT department folks which includes people who
recently inducted in Oracle Group from other technology area, college pass outs and
other group like Middleware who are also responsible to putting some nut and bolts in
Oracle.Thoughts to convert this in post for newbie and Inhouse IT folks who always
struggling for right information for the API Integration.So here to go:

Important Points for those working first time with API's

 First and foremost Important, you need to understand API Definition, which
includes purpose, input parameter, output parameter, in/out parameter as well as
default values for parameter
 Next is mapping : This is where you map input data from source/staging/temp
table to input parameter
 Next is development of code , you should use cursor/temporary table to load data
from user's table and use Debugging information to detect and diagnose errors.

Read the rest of this entry »

Posted in API Integration | 3 Comments »

API’s or Open Interface


Posted on February 12th, 2008 by Sanjit Anand |  Print This Post |  Email This Post

I was recently asked by a reader if I would be willing answer his questions, which was :

"Most of us are / have had worked with API’s & Open Interfaces. Both do the similar
job, but have we ever wondered why would we use API’s when it can be done using
Open Interface or vice versa? And, which is better" ?

....So, here you go.

..My dear friend, there is hardly any difference the way both is working,do check my
previous post. Anyway here is back to basic :

What are Open Interfaces?


The term Open Interfaces actually refers a programming interface, usually a database
table, that automates the execution of Oracle APIs.

Open Interfaces provide a single, simple interface for a specified business procedure.

What are the Oracle APIs?

These are called as a collection of “Black Box” interfaces that provide programatic
access into the Oracle ERP database.
The term API refers to stored procedure driven interfaces, where you call a stored
procedure to perform an action within an Oracle Module, and the data from your external
application is passed through the stored procedure’s parameters.

Why use Open Interfaces?

 In EBS one Open Interface may run many API calls.


 Open Interface run asynchronously.
 The good is that if there is failure of record, they remain in the table until either
fixed or purged.
 They automate the interface into the APIs.
 This requires less work and less code as few SQL DML would simply .

Why use APIs?

 When there is no corresponding Open Interface.


 Normally all Oracle APIs run synchronously, and provide immediate responses,
therefore machism to be provided to handle such situation.
 That requires custom error handling routine.
 This may requires lot more effort as these need fine grain control approach.

Remember, the APIs are also used by the front end screens, and in the same way, will
require all the appropriate prerequisites to be implemented.

Important to note, you cannot use APIs as an alternative to implementation.

Releated Post:

 Data Conversion,Migration and interface ..Why important


 EBS - Integration/Interface options
 The world of Oracle API
 E-Business Suite Integration Repository

Posted in API Integration | 9 Comments »

The world of Oracle API


Posted on February 12th, 2008 by Sanjit Anand |  Print This Post |  Email This Post

There are 3 types of APIs exist in EBS.

Private APIs : Private API's are one which Oracle normally using internal, development
purpose only. Details are not provided to anyone outside of the immediate development
environment, nor are they intended for use by anyone outside of the e-Business Suite
development environment.
Public APIs : These are designed for customers and Oracle consultants to integrate non-
Oracle systems into Oracle e-Business Suite or to extend the functionality of the base
products. Oracle does not support public APIs unless they are published in a reference
manual.

Public, published APIs : These are one which Oracle guaranteed to remain valid from
release to release, and patches will not alter the API behaviour. Public, published APIs
are supported by Oracle to the same extent as released software.

Is there any way find out whether a standard API is PUBLIC or not in Oracle
Application?

Yes, there is way, what you have do ,once you are able to find the information for API
from irep, the next you have to find the file name and then you need to pull all
information from specification header to know which one is public.

Take a simple case, you need to find API FND_USER_PKG which is defined in file
AFSCUSRB.pls

logon to Unix box, and release this sort of command

grep -i public $FND_TOP/patch/115/sql/AFSCUSRB.pls

Based on the above result one can determine whether API is PUBLIC or not.

Simple example for checking AR Public APIs for finding the status
grep -i public $AR_TOP/patch/115/sql/ARXPRELB.pls
grep -i public $AR_TOP/patch/115/sql/ARXPRELS.pls
grep -i public $AR_TOP/patch/115/sql/ARXPRECS.pls
grep -i public $AR_TOP/patch/115/sql/ARXPRECB.pls

Important to Note:

For non-published APIs, Oracle expressly does not provide any guarantees regarding
consistency of naming, usage, or behaviour of any API (public or private) between
releases.

It Might be possible that a patch could alter any characteristic of any non-published e-
Business Suite API.

Where are APIs located ?

For Oracle release 10.7, the APIs are located in the operating system directories such as:

$APPL_TOP/patchsc/107/sql

For Oracle release 11 and release 11i, the APIs are located in the operating system
directories:

$APPL_TOP/patch/xxx/sql

where xxx represents the release 110 or 115.

Is there any tracking mechanism for API versions in different Applications


releases?

As confirmed by some time back by Oracle support team , there is no such database
object in Oracle Applications that keep such kind of information.

All APIs are owned and managed by different product groups within Oracle.

Normally each release comes with either product update notes, or and "About" note. You
would need to review these documents for each E-Business Product.

The most comprehensive are the family pack "About" notes, as they in turn reference
each individual product "About" note, which lists things like "Changes".

Posted in API Integration, EBS Suite | 12 Comments »

Oracle API Availability -Oracle Assets (FA)


Posted on October 21st, 2007 by Sanjit Anand |  Print This Post |  Email This Post
Importing of Asset information into the Oracle Assets module is achieved by the transfer
of the following five segments of data:

1. Adjusted current earnings (ACE) information


2. Budget data
3. Mass additions of Assets
4. Production Information which is typically related to depreciation
5. Physical Inventory data.

Each of the procedures are described in detail below.

Budget Data

The budget information can be entered manually, or it can be maintained in another


system and the information uploaded using the budget interface. The budget information
is prepared and analyzed on any feeder system and then automatically transferred into
Oracle Assets. This information can be used to project depreciation expense for the
capital budgets and to compare actual and planned capital spending in Oracle Assets.

 Manual Loading of the Budget Data

Manual loading of Budget Data is achieved by the following five step process: Open the
Capital Budgets window. Choose the budget Book, asset Category, and general ledger
Expense Account for which you want to budget. Enter or update the budget amounts for
this period. The budget amount is the amount you plan to spend on new assets in this
category in this period for this expense account. Save your work. Review the capital
budget for the year using the Budget Report

 Automatic Loading of the Budget Data:

Transfer of Budget information is achieved by transferring the data using a file transfer
method. The Budget information from various systems is first copied into an ASCII file
which is transferred into the Budget interface file FA_BUDGET_INTERFACE. This
file is used to load the Budget data into the Oracle Assets system.

Uploading budgets from other systems (such as a spreadsheet on a personal computer)


into Oracle Assets is a five step process. A file transfer program is used to upload the
ASCII budget file from any personal computer to the computer where Oracle Assets
resides. SQL*Loader is then used to move the budget data into the Budget Interface. The
Upload Capital Budget window is used to move the budget into the Budget Worksheet.
'Delete Existing Budget' needs to be checked if replacing an existing budget. The Capital
Budgets window can be used to review or change the budget. The Capital Budget
window is then used to move the budget into a budget book.

ACE Information
Oracle Assets looks at the asset's financial information in either the Alternate Minimum
Tax(AMT) or the federal book to determine new ACE information. If an asset is
depreciating in the federal tax book using ACRS, Oracle Assets uses the federal book
information. If the asset is depreciating in the federal book using MACRS, Oracle Assets
uses the AMT book information. Oracle Assets automatically updates your assets when
you run the Update ACE Book program.

For transferring the ACE information from the legacy system, it can either be entered
manually, or it can be calculated by the Oracle Assets program. The difference is the
process of populating the ACE interface table.

 Automatic population of the ACE conversion table

Manually, create an ACE tax book with ACE depreciation rules. Using the Mass Copy
program, the assets are copied into the ACE book from the corporate book. The ACE
conversion table (FA_ACE_BOOKS) is populated using the Populate ACE Interface
Table program. The Update ACE Book program is then run to update the information in
the ACE conversion table.

 Manually Loading the ACE conversion table

Manually, create an ACE tax book with ACE depreciation rules. Using the Mass Copy
program , the assets are copied into the ACE book from the corporate book. The ACE
conversion table is populated by loading the table manually with the ACE information
from the previous system. The Update ACE Book program is then run to update the
information in the ACE conversion table.

Mass Addition of Assets

The mass additions process lets the addition of new assets or cost adjustments from other
systems to your system automatically without reentering the data. For example, new
assets can be added from invoice lines brought over to Oracle Assets from Oracle
Payables, or from CIP asset lines sent from Oracle Projects. Oracle Assets is already
integrated with Oracle Payables; and it can easily be integrated with other payables
systems. The mass additions process can also be used to convert assets from an outside
system to Oracle Assets. Assets data can be transferred in one of the following three
methods, depending on where the source is located.

 Creating Assets From Oracle Payables

The Create Mass Additions program creates mass additions from invoice information in
Oracle Payables. The concurrent process places the new mass additions in a holding area
(the table FA_MASS_ADDITIONS) interface tables, so that the mass additions are
reviewed and approved, before they become asset additions.

 Creating Asset Additions From Another Payables System


To integrate Oracle Assets with another system, a program is created to add mass
additions to the FA_MASS_ADDITIONS table. This new Custom Concurrent process
has to be defined and added to the Oracle Assets menu in order to run it, when needed.

 Converting Assets From Other Systems

Oracle Assets allows the conversion of assets data from non-Oracle asset systems by
using mass additions. Instead of loading the asset information into multiple Oracle Assets
tables, the information is loaded into the FA_MASS_ADDITIONS table and the mass
additions process is used to simplify the work.

Production Information

Typically, production information relates to the depreciation of assets in a production


environment, where assets are depreciated depending on the number of units produced by
the asset.
The production information can be entered manually, or it can be maintained in another
system and the information uploaded into the Oracle Assets, using the production
interface. Oracle Assets uses the information to calculate the depreciation of the units of
production assets.

 Automatic Loading of the Production Information

The automatic loading is achieved in the following 4-step process:

1. An import program or utility is used to export data from the feeder system to
populate the FA_PRODUCTION_INTERFACE table.
2. The Upload Production program is run to move the production information into
Oracle Assets.
3. The Production History report is run to review the status of all imported items.
4. The Periodic Production window can be used to review or change the production
information.

 Manual Loading of the Production Information

The manual entry involves the following tasks: Open the Periodic Production window;
Find assets within a corporate Book for which you the production information is being
entered; Enter the from and to date and the total Production for an asset; Optionally enter
production for multiple non-overlapping date ranges within a single period; Save your
work.

Physical Inventory

Physical inventory is the process of ensuring that the assets a company has listed in its
production system match the assets it actually has in inventory. A company takes
physical inventory by manually looking at all assets to ensure they exist as recorded, are
in the appropriate locations, and consist of the recorded number of units. The Physical
Inventory feature in Oracle Assets assists in comparing and reconciling your physical
inventory data. The physical inventory data can be loaded into Oracle Assets using one of
the following methods:

 Importing data from an Excel spreadsheet using ADI

The physical inventory data is entered into an Excel spreadsheet and exported to Oracle
Assets using the Applications Desktop Integrator (ADI). ADI is a spreadsheet-based
application that allows the user to format data inside a Microsoft Excel spreadsheet and
then upload into Oracle Applications. ADI uses Wizards and Templates to simplify the
data entry.

 Entering data in the Physical Inventory Entries window

Data for each asset is entered directly into Oracle Assets using the Physical Inventory
Entries window. The limiting factor is that data for only one asset can be entered at a time
when using this method

 Importing data from a non-Oracle system using SQL*Loader

SQL Loader is used to import the Physical inventory data in the following way: A single
interim table it be used, if possible. Multiple tables may be used if the data exists in
multiple tables or files in the system from which data is being loaded. In either case, the
data must eventually be placed in a single table, the FA_INV_INTERFACE table. If
preferred, data can be loaded directly into the FA_INV_INTERFACE table, but it is more
difficult due to the complexity of the table SQL*Loader is used to import information
from outside the Oracle database. SQL*Loader accepts a number of input file formats
and loads the physical inventory data into the interim table. If the data already resides
within an Oracle database, there is no need to use SQL*Loader. The physical inventory
information is consolidated in the interim table using SQL*Plus or imported by any other
method.

Posted in API Integration, Asset, Finance | 2 Comments »

Oracle API Table Definitions Fixed Assets


Posted on October 20th, 2007 by Sanjit Anand |  Print This Post |  Email This Post

Here is reference note for API table definitions based out of my for previous
article for Oracle API Availability -Oracle Assets (FA).

FA_ACE_BOOKS

FA_ACE_BOOKS, the ACE conversion table, is organized into the following columns
which store ACE information:
 

 
 

FA_BUDGET_INTERFACE

FA_BUDGET_INTERFACE, the budget interface table, is organized into columns in


which Oracle Assets stores budget information.
FA_INV_INTERFACE

To use the Physical Inventory feature in Oracle Assets, you must load physical inventory
data that you have collected into the FA_INV_INTERFACE table in Oracle Assets.
 

 
 

FA_PRODUCTION_INTERFACE

FA_PRODUCTION_INTERFACE, the production interface table, is organized into


columns in which Oracle Assets stores production information. Enter values for the
following required columns

Name Null? Type


ASSET_NUMBER NOT NULL VARCHAR2(30)
PRODUCTION NOT NULL NUMBER
START_DATE NOT NULL DATE
END_DATE NOT NULL DATE

Posted in API Integration, Asset, Technical | 1 Comment »

EBS - Integration/Interface options


Posted on September 7th, 2007 by Sanjit Anand |  Print This Post |  Email This Post

Some time back in last post we have already seen the definition of interfaces and there
types.Just to summarize here are the high points for interface :

 Import data from any environment , including own system or old system or from
data collection device or external system or any others in the easier way possible,
 This consist of review the result of import run which as whole include verification
,validation, review, reimport and error identification

Guess the next question in your mind will be what are the options available for
interfacing with oracle ERP or any other ERP? The way integration and interfacing
works in typical commercial application have almost similar in nature. Lets emphasize
some options that technology offer in Oracle application. But the option will be drived on
the basis of nature of system and process how its works , moreover Cost is yet another
driving factors. From the integration and interfacing these important factors are :

 Frequency
 Mode
 Volume
 Technology
 Security ( accessing data)

Is this really driving the integration decisions for choice.? ...The answer is YES, on the
top of other factors like cost, support etc...etc.But how...lets understand what is really
means and how they really affect in :

 Frequency - The frequency is important in term of running the interface. Many


times a interface need to run during month end processing, many times it runs in
nightly basis as most of airlines industry updations happen in night only, or may
be weekly only.
 Batch - It should be real time, one time in day or one in batch ...somehow it is
linked with Frequency.
 Volume - This is yet another important to understand what volume data need to
interface. This is very very important which is affect how technology is helpful in
handling such a big volume.
 Technology : This is based out of all above three factors ,
 Accessing data :What access is there to the data? Typically points considered here
are like;
o One way sync (Read Only)
o vs. bi-directional (Read Write)
o vs. access in place

Under these set of schema , a developer and designer have to take a call which options
should he/she can go for interfacing?? Lets take some of the options :

Before exploring the some options, note that integration is broadly categorize into two
types:

 Data Integration
 Application Integration
We are not going to discuss details
her, lets take some of the options as
for integration and interfacing in
EBS.

Options 1: Open Interface Table


(OIT)?

This is the the most standard way for doing interfacing in oracle application till day.This
consist of developed interface table and programs. The underline interface table allow
you to load data and then call concurrent program if any else use the standard AOL API's
and have a custom concurrent program. The standard/custom concurrent program will
take data from the interface table validate it and the data into application base products
table.

This kind of Open Interface Table satisfy in most of time, as design and development
does not requires much efforts.In oracle each product has number of OIT available to
cater most of interfacing/integration need.

Options 2 : Application Programming Interface(API's)

Many time we need a tighter integration to oracle application that can be provided with
interface table. In those cases, Oracle Application API's are indeed a good Options .APIs
allow for tight integration into oracle application product. There are also 3rd party
products that need to bolt-on into oracle apps with its integration capability. A typical
API's works as figure in the right.

Options 3 : Enterprise Application Integration Tools (EAI) /Middleware Tools

When there is no standard Oracle process (no interface tables) as well no API's to import
data.In that case, you have to write a program that inserts data directly into the Oracle
Base Tables.Though this is not recommended by oracle as it any changes from oracle
standard functionality may malfunction during patch or upgrade version. So there is
another options where we can use some EAI or middle ware tool . EAI/Middle ware tools
typically works as adaptor or connector which then take care of any insert /update in
oracle base table without any risk.There are number of adapter available to integrate with
oracle application.

These tools normally provide robust visual development GUI as well as have strong
functionality to provide integration monitoring and alerting tools. I personally know
Taviz( How good this is..i really like this ..sorry guys i am not sells person but Still i will
recommode). Normally these tools are higher-quality than a options discussed in OIT or
API's.
There are EAI vendors which has capability with interface and integrate with oracle
application. Some of them are oracle cerified partners.

 Cast Iron
 WebMethods
 Tibco
 Informatica
 Blue Wolf
 Taviz(formerly SmartDB)
 Crossroads
 SeeBeyond (formerly STC)
 Vitria

Normally most of EAI products provide a tool called "Studio" which uses a graphical
environment for you to design integration process flows called orchestrations
(integrations). Integrations are deployed to a provided ‘Application Router’, which
is an integration appliance pre-configured before it is installed at the customer’s
site.Provides native ‘Connector’ to Oracle E-Business Suite.

Options 4 : EDI

EDI (Electronic Data Interchange) uses industry standard data


definitions(US/ANSI/X.12) for transmission of documents such as PO’s, Invoices,
Sales Order, etc.Oracle provides some EDI transactions through EDI Gateway.This is
also a good options. More details can be found in my last post.1.2

A bit on other options

Options 5 : BPEL Process Manager

 BPEL stands for Business Process Execution Language (This was developed by
IBM, BEA, and MSFT)
 Development tools and server acquired with Oracle’s purchase of Collaxa Inc.
 Requires extra licenses beyond Oracle application licenses
 Uses industry standards, web services, and business process design to orchestrate
integration development
 Marketed very heavily by Oracle as their current and future integration standard

It is typically as similar to EAI but i personally found bit simpler. It Provides


“Dashboard” for server maintenance and monitoring and moreover this is exposes
Oracle APIs as web services. Only drawback is extra license and relatively higher
learning curve may lead to higher initial costs

Options 6 : other Oracle Technology

By means of making a either PL/sql or stored procedure or hybrid process.


 PL / SQL
o Oracle Corporation's proprietary server-based procedural extension to the
SQL database language
o Relatively sophisticated procedural programming language
o Compiled to DB; allows for syntax checking and high-performance DB
integration
o Myriad of purposes in Oracle applications: application logic, integration
logic, exception handling
o Exposes an API layer to Oracle application logic
 Stored Procedures
o Can be implemented as server-side Java
o Capable of calling PL/SQL using JDBC; capable of being called by
PL/SQL
o Higher computational performance than PL/SQL
o Allows for use of an industry standard technology instead of proprietary
PL/SQL
o Often coupled with PL/SQL as a hybrid approach to Oracle application
integration
 Oracle Advanced Queuing (AQ)
o Database Integrated Messaging
o Integrated data, message, and message history
o Recoverability(any point in time recovery)
o Auditing,Tracking, Non-repudiation
o Business Intelligence on message store
o High Performance
o Integrated with MQSeries via Oracle Messaging Gateway

Will take some deep drive for options 4 and options 5 in some other post.

Posted in API Integration | 4 Comments »

Oracle API Availability - Input/Output


Posted on August 11th, 2007 by Sanjit Anand |  Print This Post |  Email This Post

What is FND_FILE

An API that contains procedures to write text to log and output files which can be viewed
once the Concurrent program get completed in output or log . These procedures can only
be used within PL/SQL Procedures which, are concurrent programs.

Internally its uses the oracle supplied database package UTL_FILE

 utl_file_dir parameter must be set to include the log and out directories for the
applications that will run concurrent requests using FND_FILE
 Database owner must have write privileges on those directories
 Take a note that FND_FILE supports a maximum buffer line size of 32K for both
log and output files.

Here are the list of Options available within API.

 FND_FILE.PUT

Useful for writing text to a file without a new line character. Multiple calls will
concatenate the text .
Does not include new line character

FND_FILE.PUT (which IN NUMBER, buff IN VARCHAR2)


Which - Means LOG file or OUTPUT file.

 FND_FILE.LOG
 FND_FILE.OUTPUT

Buff - Means text to write.

Usage
FND_File.Put(FND_File.Log, ‘This text written to Log file’);

FND_File.Put(FND_File.Output, ‘This text written to Log file’);

 FND_FILE.PUT_LINE

This is used to write a line of text to a file followed by a new line character

FND_FILE.PUT_LINE (which IN NUMBER, buff IN VARCHAR2)

Usage
FND_File.Put_Line(FND_File.Out, ‘This text written to Out file’);

 FND_FILE.NEW_LINE

FND_FILE.NEW_LINE( which IN NUMBER, LINES IN NATURAL:= 1)


Writes line terminators (new line characters) to a file.
Eg. FND_FILE.NEW_LINE(FND_FILE.LOG,2)

 FND_File.PUT_NAMES

This is used to sets temporary log and out file names and directory, which normally used
during test and debug phase.
FND_FILE.PUT_NAMES(p_log in varchar2,
p_out in varchar2,
p_dir in varchar2)
Usage
FND_File.Put_Names(‘Order123.log’, ‘Order123.out’,
‘/usr/temp/outfiles’);

Example
BEGIN
fnd_file.put_names('test.log', 'test.out','‘/usr/temp/outfiles’');
fnd_file.put_line(fnd_file.output,'Called stored procedure');
/* add logic, etc... */

fnd_file.put_line(fnd_file.output, 'transaction locked at point A');


/* More logic, etc... */

 FND_FILE.CLOSE
This will closes open files.

This is normally used only during test and debug phase

Usage:
FND_File.Close;

Posted in API Integration | 2 Comments »

Oracle API Availability - Concurrent Program


Posted on August 7th, 2007 by Sanjit Anand |  Print This Post |  Email This Post

Many times, we need to submit concurrent requests and request sets from non SRS
window like operating system or PL/sql . In Oracle Applications there are API’s to
take these options. Here are some of the API's function and usage..

 FND_REQUEST
o This API is used Submit concurrent requests from backend. As we know
there are couple of options avaible in oracle application to submit a
concurrent requset like SRS, CONSCUB and FND's API. This is API
offers some great functionality to use via PL/sql or any other technology
like , Host Program or java program.
 FND_CONCURRENT
o Retrieve information about concurrent requests
o Set information about concurrent requests
 Set_Options ·
o This is a function of boolen type
o Set request options
o This is Call before submitting the request

usage:

FND_REQUEST.SET_OPTIONS(IMPLICIT = > 'ERROR');

 Set_Repeat_Options ·
o Function, returns TRUE or FALSE
o Set repeat options
o Call before submitting the request
 Set_Print_Options ·
o Function, returns TRUE or FALSE
o Set print options (note, some options can not be over-ridden)
o Call before submitting the request

Called before submitting request if the printing of output has to be controlled with
specific printer/style/copies etc., Optionally call for each program in the request set.

Usage :

fnd_submit.set_print_options(NULL,NULL,NULL,TRUE,'N');

or

 fnd_request.set_print_options (printer =>'<printer name>',


style =>'LANDSCAPE',
copies=>1,
save_output => TRUE,print_together => 'N')

 Add_printer
o Called after set print options to add a printer to the print list.Optionally
call for each program in the request set.
o Returns TRUE on successful completion, and FALSE otherwise

Usage

Function FND_SUBMIT.ADD_PRINTER (printer =>'Printer Name',


copies => null) ;

 Submit_Request
o Function, returns Request Id or 0·
o If submitting from a form, all Arguments must be specified
 Set_Mode (server only)
o Function, returns TRUE or FALSE
o Must use if request is submitted from a database trigger.
o Call before submitting the request
o Failure in the database trigger call of FND_SUBMIT.SUBMIT_SET does
not rollback changes
 Get_Request_Status
o Function returns TRUE or FALSE
o Returns status information in function output parameters
 Wait_For_Request

When submitting concurrent requests using PL/SQL, it is often desired to have the parent
process wait until all the child processes have completed before completing itself.

This function Wait for the request completion, then return the request phase/status and
completion message to the caller. Also call sleep between database checks.

 Function, returns TRUE or FALSE


 Returns status information in function output parameters

FUNCTION WAIT_FOR_REQUEST (request_id IN number default NULL,


interval IN number default 60,
max_wait IN number default 0,
phase OUT varchar2,
status OUT varchar2,
dev_phase OUT varchar2,
dev_status OUT varchar2,
message OUT varchar2) return Boolean;

This API Wait for the request completion, then return the request phase/status and
completion message to the caller. Also call sleep between database checks.

 Arguments (input)
o request_id :The request ID of the program to wait on.
o interval :Time to wait between checks. This is the number of seconds to
sleep. The default is 60 seconds.
o max_wait :The maximum time in seconds to wait for the requests
completion.
 Arguments (output) :
o phase :The user friendly request phase from FND_LOOKUPS.
o status :The user friendly request status from FND_LOOKUPS.
o dev_phase :The request phase as a constant string that can be used for
program logic comparisons.
o dev_status :The request status as a constant string that can be used for
program logic comparisons.
o message :The completion message supplied if the request has completed.

Usage
IF request_id = 0 THEN
fnd_file.put_line(fnd_file.log, 'Request Not Submitted.');
ELSE

call_status := fnd_concurrent.wait_for_request(request_id, v_interval, v_max_wait,


request_phase, request_status, dev_request_phase, dev_request_status,
request_status_mesg);

END IF;

IF call_status = TRUE THEN


IF dev_request_phase!= 'Completed' OR
dev_request_status IN ('Cancelled','Error','Terminated') THEN
DBMS_OUTPUT.PUT_LINE('STATUS=JOB FAILED');
END IF;
ELSE
DBMS_OUTPUT.PUT_LINE('WAIT FOR REQUEST FAILED - STATUS
UNKNOWN');
DBMS_OUTPUT.PUT_LINE('STATUS=JOB FAILED');
END IF;

 Set_Complete_Status (server only)


o Function, returns TRUE or FALSE
o Called from a concurrent program to set its own completion status
o These have three status
 NORMAL
 WARNING
 ERROR
 Add_notification
o Called before submission to add a user to the notify list.
o Optionally call for each program in the reques set.
o ReturnsTRUE on sucessful completion, and FALSE otherwise.

Usage
FND_SUBMIT.ADD_NOTIFICATION (user ==>'ANAND') ;

Make sure the name should be from fnd_user table

 SET_NLS_OPTIONS
o Called before submitting request to set request attributes.
o Optionally call for each program in the request set.
o Returns TRUE on successful completion, and FALSE otherwise.

Usage
FND_SUBMIT.SET_NLS_OPTIONS (language =>'US',
territory => NULL);
Posted in API Integration | 6 Comments »

Oracle API Availability - Profile


Posted on July 25th, 2007 by Sanjit Anand |  Print This Post |  Email This Post

In oracle user Profile functionality is provided in the FND_PROFILE package and the
FNDSQF library.

What is inside this API:

 Retrieve user profile values for the current run-time environment


 Set user profile values for the current run-time environment

There are various Objects that can be used with this API's. These are discussed below:

1. Put :This can be used to put a value to the specified user profile option.

Usage:

 FND_Profile.Put('PROFILE_NAME','New_Value')
 FND_Profile.Put('USERNAME', Usr_Name)
 FND_Profile.Put('RESP_ID', Resp_ID)
 FND_Profile.Put('RESP_APPL_ID', Resp_App_ID)
 FND_Profile.Put('USER_ID', User_ID)

2.DEFINED : this is function returns TRUE if a value has been assigned to the specified
profile option.

Usage:

 SELECT fnd_profile.defined('ACCOUNT_GENERATOR:DEBUG_MODE')
ACC_GEN_DEBUG_SESSION_MODE FROM DUAL;

3.GET :This is used to retrieve the current value of the specified user profile option

Usage :

Different type of options can be retrieved like

 FND_Profile.Get('PROFILENAME', Profile_name);
 FND_Profile.Get('CONC_LOGIN_ID', Conc_login_id);
 FND_Profile.Get('LOGIN_ID', loginid);

4.VALUE : This is function which returns a character string. Used to retrieve the current
value of the specified user profile option.
Usage:

 fnd_profile.value('PROFILEOPTION')
 fnd_profile.value('MFG_ORGANIZATION_ID')
 fnd_profile.value('login_ID')
 fnd_profile.value('USER_ID')
 fnd_profile.value('USERNAME')
 fnd_profile.value('CONCURRENT_REQUEST_ID')
 fnd_profile.value('GL_SET_OF_BKS_ID')
 fnd_profile.value('ORG_ID')
 fnd_profile.value('SO_ORGANIZATION_ID')
 fnd_profile.value('APPL_SHRT_NAME')
 fnd_profile.value('RESP_NAME')
 fnd_profile.value('RESP_ID')

5.VALUE_WNPS: This is a function, returns a character string. This is Used to retrieve


the current value of the specified user profile option without caching it.

6.SAVE_USER :This is function used to save a value for a profile option permanently to
the database, for the current user level. It is necessary to explicitly issue a commit when
using this function. Returns TRUE if profile option is successfully saved, otherwise
FALSE.

7.SAVE :This is function used to save a value for a profile option permanently to the
database, for a specified level. It is necessary to explicitly issue a commit when using this
function. Returns TRUE if profile option is successfully saved, otherwise FALSE.

Usage

 fnd_profile.save('GUEST_USER_PWD', 'GUEST/ORACLE', 'SITE');

8.INITIALIZE :This is used by internal Applications Object Library to initialize the


internal profile information at the level context.
The cache is first cleared of all database options.

Usage:

 fnd_profile.initialize(user_id);

9.PUTMULTIPLE :This is used by internal Applications Object Library to set multiple


pairs of profile options and values.

Posted in API Integration | 4 Comments »

Oracle API Availability - Messaging


Posted on July 23rd, 2007 by Sanjit Anand |  Print This Post |  Email This Post

In Oracle application messaging is typically handled in different way. If you are working
in Oracle application you may notice different types of alert window you will get
depending upon the condition. In oracle application this would be typical handled by
whole set of bundle API , which is called as FND_MessageAPI.

Then the very next question is what is FND_MESSAGE

In simple word , Messaging functionality controlled by FND_MESSAGE package and in


the FNDSQF library.

What this API's do

-Manipulate messages which normally defined in the Message Dictionary under


application developer responsibility.
-Client and Server-side procedures place messages on the message stack or in the global
area.
-Client-side procedures retrieve messages from the stack and display them from the
currently running form

Depending upon the development need , lets understand the various function in three
different way.

1. Server side
2. client Side

Here are the list of Procedure and Functions which can be used for retrieving and Buffer
Messages at Client Side.

1. Set_Name :Retrieves message from Message Dictionary and sets it on the stack
2. Set_String :Procedure, used to place the passed string on the message stack.
3. Set_Token :Substitutes token with specified value
4. Retrieve :Retrieves a message from the server-side buffer, translates and
substitutes tokens, and sets message on the stack
5. Get (function) :Retrieves a message from the stack. Returns the retrieved
message
6. Clear : Clears the message stack
7. Get_Encoded :This is a function, returns an encoded message from the message
stack.
8. Parse_encoded :This is a procedure used to parse the Application Short Name
and the message Name out of an encoded message

For the retrieving and Buffer Messages at Server Side here are some standard procedure:
1. Set_Name Sets a message name in the global area without retrieving it from the
Message Dictionary
2. Set_Token Adds a token/value pair to the global area without doing the
substitution
3. Clear Clears the message stack
4. Get_Number :This is function, returns number of the specified message.
Function returns 0 if the message has no number, or the message number is zero.
If the message can not be found, function returns NULL
5. Raise_error :This is Procedure that can raises an application error, returning the
message information contained in the package variables

In fact for displaying purpose these are the standard procedures and Functions we can use
from API, these are mostly used for displaying message at Client Side.

 Error :Displays an error message in a forms modal window.


 Show :Displays an informational message in a forms modal window.:
 Warn (function) :Displays a warning message in a forms modal window. Allows
user to accept or cancel the operation. Returns TRUE if user accepts.:
 Question :Displays a message and up to three buttons in a forms modal window.
Similar to a Forms Alert.
 Hint :Displays a message in the forms status line.
 Erase :Clears the forms status line.
 Debug :Used for debugging. Display the specified string.
Example: FND_Message.Debug('here is error…');

Apart from this you may also used few other like:

 WORKING :This is used to display a message in a dialog box without any


buttons. The dialog box must be closed explicitly with WORKING_CLOSE.
 WORKING_CLOSE This can used to close the dialog box invoked by the
WORKING procedure.
 HISTORY :used to display a message in a dialog box, with the History button. If
the user presses this button they see all the
messages on the stack

Is there any way to displaying Messages from Concurrent Programs

Yes, there are two procedure which can be used :

 Show :Displays top message on the stack in the out file. Does not print message
number
 Error :Displays top message on the stack in the log file. Prints the message
number if it is not zero

Hope this would be great help in understanding and utilizing the functionality. Next will
discuss how to implement these.
Search@Epicenter

Oracle API Availability - Cash Management


Posted on July 14th, 2007 by Sanjit Anand |  Print This Post |  Email This Post

In the Oracle API Availability, here is note for Availability in Oracle


cash Management.

Bank Statement

Bank Statements Open Interface: Before reconciliation of transactions against a bank


statement, information about the statement needs to be entered into the Cash
Management system. If the bank provides this information in a flat file, the open interface
is used to load the data. Data is loaded by programs written in SQL loader; one program
for each type of file provided. The Oracle interface tables to be populated are
CE_STATEMENT_HEADERS_INT_ALL, containing header information about the
bank statement, and CE_STATEMENT_LINES_INTERFACE, containing the statement
line information. The header file contains one record for every account in the bank
statement.

Reconciliation
Receipts and payments originating in non-Oracle systems can be reconciled in the Cash
Management system using the Reconciliation open interface. However, the open interface
view, CE_999_INTERFACE_ V, and open interface package, CE_999_PKG, provided
by Oracle, need to be customized first. The Cash Management program automatically
retrieves the necessary information from the open interface view for matching statement
lines. (The Reconciliation Open Interface is not run as a separate program.)

Normally, the CE_999_INTERFACE_V is defined as a view to the legacy application's


database, and implemented to show all open interface transactions and their status. The
view should include available transactions as well as reconciled transactions to bank
statements that have not been purged or archived. The CE_999_PKG needs to be
customized to access the non-oracle database, lock all transactions and perform any
clearing functions so that the open transactions are in sync in both the Oracle and legacy
databases. Once the view and package are modified and complete, the Reconciliation
program is ready to be run. The reconciliation can be done automatically or manually, as
required.

Auto reconciliation: The auto reconciliation program is used to automatically reconcile


any bank statement in Oracle Cash Management, assuming the bank statement has been
imported into the Cash Management system (a different version of this program does the
import of the bank statement, if required). Once the reconciliation program is run, the
auto reconciliation Execution Report is reviewed to identify any reconciliation errors that
need to be corrected. This report is produced automatically, or can be run, whenever
needed.

Manual reconciliation: Manual reconciliation can be used to reconcile any bank


statement, whether imported or entered manually. In addition, new bank statement lines
can be created while reconciling transactions, as well as update the reconciliation
information for a previously manually-or automatically-reconciled statement

Cash Forecasting
Cash forecasting is a planning tool that helps in anticipating the flow of cash in and out of
the business, allowing the projection of cash needs and evaluating the company's
liquidity. The Cash Management Forecasting Open Interface allows the utilization of
external sources of data as cash inflow and outflow data for flexible cash forecasting.

Two cash forecast source transaction types, Open Interface Inflow and Open Interface
Outflow, allow inclusion of external application transaction sources for cash forecasting.
Having two separate source transaction types for external source transactions gives an
easy way to indicate whether the transaction source consists of cash receipts (inflow) or
disbursements (outflow). The Forecasting Open Interface collects cash flow amounts
from the external systems, and the Cash Forecasting module summarizes and calculates
the data to be included in the cash forecasts along with other Oracle Applications data.

Posted in API Integration, Finance | 1 Comment »

Auto lockbox - Let’s connect with Bank


Posted on June 29th, 2007 by Sanjit Anand |  Print This Post |  Email This Post

Overview
Auto Lockbox is a service that commercial banks offer corporate customers to enable
them to outsource their accounts receivable payment processing. Auto Lockbox
eliminates manual data entry by automatically processing receipts that are sent directly to
your bank. You can also use Auto Lockbox for historical data conversion. For example,
you can use Auto Lockbox to transfer receipts from your previous accounting system into
Receivables. Auto Lockbox ensures that the receipts are accurate and valid before
transferring them into Receivables.

Benefit of auto lockbox

 Eliminates manual data entry


 Streamlines the application of receipt to outstanding transactions
 Effectively manages cash flow by reducing turnover for converting checks into
cash
When can I use lockbox

 apply receipt to outstanding invoice


 import historical receipt data
 auto lockbox report , such as the post quick cash Execution Report, are a good
tool to reconcile auto lockbox receipt with the bank transmission

What is inside the lockbox process

This consist of 3 steps process, viz

1. Import: During this step, Lockbox reads and formats the data from your bank file into
interface table AR_PAYMENTS_INTERFACE_ALL using a SQL *Loader script.

2. Validation: The validation program checks data in this interface table for
compatibility with Receivables. Once validated, the data is transferred into QuickCash
tables (AR_INTERIM_CASH_RECEIPTS_ALL and
AR_INTERIM_CASH_RCPT_LINES_ALL) . At this point, you can optionally query
your receipts in the QuickCash window and change how they will be applied before
submitting the final step, Post QuickCash.

3. Post QuickCash: This step applies the receipts and updates your customer's balances.

Process Flow
Here is schematic data flow and process flow of lockbox process

Set Up
These are the Normal Set Required for Auto lockbox. This is part of AR Set up:
 Define Banks
o Define Remittance Bank with Account use Internal where checks from
customer are deposited.
 Define Receipt Class
o Define a Receipt class to determine the required processing steps for
receipts to which you assign payment methods with this class.
 Define Payment Methods
o Define a payment method with all receipt accounts.
 Define Receipt Source
o Define Receipt Batch Source and attach receipt class, payment method
and remittance bank account information to the Receipt Source.
 Define Lockbox
o Define Lockboxes to use the Receivables Autolockbox program.
 Define Transmission Format
o Define the Transmission Format which Auto Lockbox uses when
importing data into Receivables.
 Define AutoCash Rule Set
o autocash rule sets determine how a quickcash receipt is applied to open
debit items.
o enter a sequence for automatiocally applying receipts
o select one or more autocash rules for receipt application from the list of
autocash Rule options
o Define AutoCash Rule Sets to determine the sequence of rules that Post
o QuickCash uses to update Customer's account balances.
 Control file
o Create a control file which is used by SQL * Loader to import the data
into interface table and it is placed in the directory $AR_TOP/bin
 Data file
o data are kept into directory $AR_TOP/bin

Posted in API Integration, Oracle Receivable | 5 Comments »

Oracle API Availability - Oracle Payables (AP)


Posted on June 25th, 2007 by Sanjit Anand |  Print This Post |  Email This Post

This is in continuation to API’s availability,Here are the API’s availability in AP.

Credit Card Transaction Processing

 Manual Credit Card Entry: A form is available for entry through the Oracle
Payables application.
 Credit Card Transaction Interface Table: This process loads transaction data
from the credit card issuer (American Express, Diner's Club, MasterCard and
Visa) into Oracles AP module. Oracle Payable then uses this data to confirm
transactions with employees. Once the transactions have been approved the credit
card transaction lines are imported into Payables Open Interface using the Credit
Card Invoice Interface Summary program. The credit card transactions are then
available for final import to Oracle Payables where the transactions become
invoices.

Creating Invoices
In Oracle Payables four methods are available for entering an invoice into the system.

 Manual Invoice Entry: Two methods for manual invoice entry exist. Using
Oracle Payables system Invoice Workbench which includes the Invoice Batches
window and Distribution window users can enter complex invoices, and invoices
requiring online validation. In addition this functionality is useful in processing
invoices that require special attention such as immediate payment.
 The second method of manual invoice entry, Invoice Gateway, is used when
entering high volumes of invoices. Generally these invoices do not require online
validation or defaulting of accounting information. After entering invoices using
the gateway, the invoice import must be run, at that time validation and defaulting
is performed. This method of entry can be used in lieu of invoice interfaces.
Although, using the gateway can accomplish similar results to that found with an
interface process, manual entry is no substitute.
 Automatic Invoice Creation: Oracle Payables provides functionality to produce
periodically recurring invoices. This functionality may be used to substitute
manual invoice entry or the payables open interface. In the case of recurring
invoices that would normally come from an external system choosing to setup a
recurring invoice formula may be an alternative.
 Using Payables Open Interface: Choose this method for processing large
volumes of invoices that originate in external system. Additionally, this process is
useful in handling employee expense reports generated through self-service
applications, expense reports entered by the Payables Department, invoices for
employee credit card expenses, Oracle Projects billing and time and expenses, and
EDI invoices transferred from the Oracle EDI gateway.

Purchase Order Matching

Oracle Payables can be implemented without Oracle Purchasing, to allow this several
purchasing tables are installed initially which must be populated using custom interfaces.
Only two-way matching is available when data is loaded using the interface method.
Two-way approval verifies that purchase order and invoice information match within
your tolerances as follows: Quantity billed on the purchase order shipment is less than or
equal to Quantity ordered on the purchase order shipment. Invoice price on the purchase
order shipment is less than or equal to Purchase order price on the purchase order
shipment.
Receipts can only be matched in an install that also includes Oracle Purchasing.
The only method for interfacing data into the purchasing tables described in this section
is through a customized interface from an external source. Note: Interfacing this
information is not supported by Oracle.

 Loading PO_HEADERS: Each record in this table represents a purchase order,


which is an order for goods or services from a single supplier. Each purchase
order may have multiple lines (PO_LINES). In addition, each blanket purchase
order may have multiple blanket releases (PO_RELEASES), which release an
amount from the blanket.
 Loading PO_LINES: Each record in this table represents a purchase order line,
which identifies the items and unit price for the goods ordered on a purchase
order. Each purchase order line may have multiple shipments
(PO_LINE_LOCATIONS).
 Loading PO_LINE_LOCATIONS: Each record in this table represents a
purchase order line, which identifies the items and unit price for the goods
ordered on a purchase order. Each purchase order line may have multiple
shipments (PO_LINE_LOCATIONS).
 Loading PO_DISTRIBUTIONS/PO_DISTRIBUTIONS_AP_V: Each record in
this table/view represents a purchase order distribution, which identifies the
account charged for the items on a purchase order shipment.
 Loading PO_RELEASES: Each record in this table represents a blanket release
for a purchase order. A blanket release may create multiple shipments.
 Loading AP_INVOICES/AP_INVOICE_DISTRIBUTIONS: Each purchase
order shipment can be matched to multiple invoices(AP_INVOICES), and a
single invoice may be matched to multiple purchase order shipments. When you
match an invoice to a purchase order shipment, Payables creates an invoice
distribution AP_INVOICE_DISTRIBUTIONS) from each purchase order
distribution on the shipment. When you match an invoice to a single purchase
order distribution, Payables creates a single invoice distribution from the purchase
order distribution.

Vendor Interface

Existing and new vendors must be loaded into the Oracle Payables application to support
payables activities. Two methods may be used to enter vendors into Oracle Applications,
manual entry and direct loading using a customized loader program.

 Manual Vendor Loading: Use the Enter Vendor window. Using this
functionality vendor header information as well as vendor site information can be
entered.
 Vendor Interface: When interfacing vendors into Oracle Applications two tables
must be loaded the PO_VENDORS and PO_VENDOR_SITES_ALL. The vendor
table contains all header information and the site table contains information about
each the vendor locations such as "ship to" and "bill to". Using this method makes
sense when the volume of new vendors is large. Note: Interfacing this information
is not supported by Oracle.
 Those who are in 11.5.10 they will find yet another method ie by interface.
You have to Load data into the staging tables first ie.AP_SUPPLIERS_INT -
Supplier Information
AP_SUPPLIER_SITES_INT - Supplier Sites Information
,AP_SUP_SITE_CONTACT_INT - supplier Contact details This uses Vendor ID,
Vendor Site Code to relate the contacts to specific vendor. Once data get loaded
three interface program should be kicked out which is as
o Supplier Open Interface Import.
o Supplier Sites Open Interface Import
o Supplier Site Contacts Open Interface Import

Posted in API Integration, Oracle Payable | 6 Comments »

Oracle API Availability - Oracle Receivables (AR)


Posted on June 23rd, 2007 by Sanjit Anand |  Print This Post |  Email This Post

This is in continuation to API’s availability,Here are the API’s availability in AR.

Invoices

 Manual Entry and Updating: Manual entry or update of invoices requires the
user to have access to the Oracle Application's Accounts Receivable module and
specifically the Enter Invoices form. You can enter and update invoices for valid
customers. AR uses AutoAccounting to create the revenue accounting
combination based on the invoice line information.
 AutoInvoice Interface: AutoInvoice interface provides a mechanism for
transferring large volumes of invoices, credit memos, debit memos, and on-
account credits from third-party and legacy systems into Receivables. Information
is loaded into the RA_INTERFACE_LINES_ALL (which stores information
about each interface line imported) and
RA_INTERFACE_SALESCREDITS_ALL (containing the sales credit
information) tables then imported into the Oracle Applications by the AutoInvoice
Import process.You can also refer my old post for autoinvoice details.

Receipts

 Manual Entry and Updating: Manual entry or update of receipts requires the
user to have access to the Oracle Application's Accounts Receivable module and
specifically the Enter Receipts form. You can enter and update receipts for open
and future accounting periods.
 AutoLockbox Interface: AutoLockbox interface provides a mechanism for
transferring large volumes of payments from bank files or third party systems into
Receivables. Information is loaded into the
AR_PAYMENTS_INTERFACE_ALL table then imported into the Oracle
Applications by the AutoLockbox Import process.
The AR_PAYMENTS_INTERFACE_ALL table stores imported lockbox
information that has not been validated. AutoLockbox creates one row in this
table for each record in a transmission. When the validation step of AutoLockbox
is run, Oracle Receivables transfers the information from the
AR_PAYMENTS_INTERFACE_ALL tables to the
AR_INTERIM_CASH_RECEIPTS_ALL and
AR_INTERIM_CASH_RCPT_LINES_ALL tables.

Customers

 Manual Entry and Updating: Manual entry or update of customers requires the
user to have access to the Oracle Application's Accounts Receivable module and
specifically the Enter Customers form. You can enter and update customers,
multiple customer addresses (sites), and multiple contact(s) for each address.
 Customer Interface: The customer interface provides a mechanism for
transferring large volumes of customers from third party and legacy systems into
Receivables. Information is loaded into the RA_CUSTOMER_INTERFACE,
RA_CONTACT_PHONES_INTERFACE,
RA_CUSTOMER_PROFILES_INTERFACE,
RA_CUSTOMER_BANKS_INTERFACE, and
RA_CUST_PAY_METHOD_INTERFACE tables then imported into the Oracle
Applications by the Customer Import process.
 TCA API's: The customer information can also be loaded into application by
TCA API's.

Sales Tax Rates

 Manual Entry and Updating: Manual entry or update of sales tax data requires
the user to have access to the Oracle Application's Accounts Receivable module
and specifically the Tax Locations and Rates form. You can enter and update
location and rate information through this form.
 Sales Tax Rate Interface: The Sales Tax Rate Interface lets you load sales tax
records into your Oracle Receivables application from your sales tax feeder
system. Information is loaded into the AR_TAX_INTERFACE table then
imported into the Oracle Applications by the Sales Tax Rate Interface process.
The AR_TAX_INTERFACE table is used to import location, postal code and
sales tax rate information into Oracle Receivables. Rows are inserted in this table
and then the Sales Tax Interface Program is run to create records in
AR_LOCATION_VALUES and AR_LOCATION_RATES. Each row can define
a new location and assign to it multiple postal code and effectively date ranges,
and each range may have an optional sales tax rate.

Tax Vendor Extension

Oracle provides a Tax Vendor Extension to integrate external tax calculation programs
with the Oracle Application's Accounts Receivable module. This extension allows you to
provide for complex tax calculation requirements while retaining the full power of
Receivables to create and store other tax data. The tax extension is called whenever a tax
rate is calculated by the Receivables Tax Engine.

Posted in API Integration, Oracle Receivable | 9 Comments »

Oracle API Availability -Oracle General Ledger (GL)


Posted on June 23rd, 2007 by Sanjit Anand |  Print This Post |  Email This Post

This is in continuation to my last post API's availability. Here are the some
keynotes on the API's availability in GL.

Budget Upload
Oracle Applications provides four methods for adding budgeting transactions,
Application Desktop Integrator (ADI) Budget Wizard, manual entry through the
application forms, journal import and budget import.

 ADI: ADI is a spreadsheet-based application that allows the user to format data
inside a Microsoft Excel spreadsheet and then upload into Oracle Applications.
ADI uses Budget Wizards and Budget Templates to simplify the data entry. In
addition, ADI is delivered as standard functionality, as opposed to a custom
interface that would require additional development, maintenance and upgrade
consideration.
 Manual Entry and Updating: Manual entry requires the user to have access to
the Oracle Application's General Ledger module and specifically the enter budget
amounts forms for your accounts to replace any existing budget balances. You
can enter budget amounts for each account in the budget organization one-by-one,
or you can use worksheet mode to enter budgets for several accounts at once.
Budget rules enable you to distribute budget amounts for all periods.
 Budget Interface: Budget interface provides a mechanism for transferring large
numbers of budget data from a third-party budget source system to your General
Ledger application Budget Interface table. Once you load your budget
information into the Budget Interface table, you can run Budget Upload to post
your budget data into your General Ledger application. Budget Upload uses the
Budget Interface table GL_BUDGET_INTERFACE to upload budget
information. The Budget Interface table is organized in such a manner that
provides a column for each budget period in your current open fiscal year in
addition to account and other relevant information on a single budget line.
 GL Interface: GL Interface is another option for uploading large numbers of
budget data from a third-party budget source. With this option the source must
provide a file that mimics the layout found in the GL_INTERFACE table. The
process for uploading a budget through the journal import process is similar to
that found using budget interface functionality. The most significant difference is
found in the format of the budget record. Here the record is formatted in such a
way that each budget line provides an amount for a single budget period within
the open fiscal year. Consequently, assuming a fiscal year has twelve periods, a
full fiscal year budget for one account would require twelve individual lines to be
processed to produce a budget across the full year.

Importing Journals

 Manual Entry and Updating: Manual entry requires the user to have access to
the Oracle Application's General Ledger module. After accessing enter journals
form the user is presented with a choice of either entering a new journal or
searching an existing journal for update. On a new journal the user can choose to
overwrite default information found in header by selecting choices from the drop-
down list, in some cells the data is free form and others the default information
cannot be changed. The bottom area of the form also known as the journal line
detail is used to enter amount, account information and journal line description.
 ADI: Journal Wizard is functionality provided with ADI that allows you to create
journal entries using Excel, then upload them into Oracle GL. With ADI the
Wizard generates the journal entry template to match the systems configuration.
Therefore, in certain cases where the volume is not excessively large this method
may be used to format and upload journal entries to Oracle GL. In addition, ADI
is delivered as standard functionality, as opposed to a custom interface that would
require additional development, maintenance and upgrade consideration.
 GL Interface: Use journal import to load large numbers of journal transactions
from third-party systems such as payroll, accounts payable and accounts
receivables systems. When using the journal import functionality standard and
statistical type journals can be processed. In cases where migration from an older
system to Oracle GL is taking place, GL Interface can be used to facilitate the
process.

Loading Daily Rates

When using General Ledger's Multiple Reporting Currencies feature, your daily rates are
used to convert your primary set of books' journals to the appropriate reporting currencies
when the journals are copied to your reporting sets of books. Your daily rates must be
defined before you post journals in your primary set of books. To load daily currency rate
information two options are available, manual entry using the Daily Rates form or direct
loading through the GL_DAILY_RATES_INTERFACE table.
You should take a note, normally one currency exchange rate is used for all set of books
throughout the organization therefore preventing out-of-balance issues especially in the
case of intercompany transactions.

 Manual Currency Rate Input: This option is used primarily when data volumes are
small and updates occur on a monthly intervals. In most cases the data is extracted
from the internet or another source and someone is required to calculate a month
average then enter the values into the system, using the daily rates form in the
Oracle GL application.
 Automatic Currency Rate Loading: Depending on the frequency and number of
currencies used throughout the business, the volume may become too much to
handle through a manual entry process. Additionally, choosing this option makes
daily updates more practical and accurate. Several services provide daily currency
rate information that can be transferred to Oracle GL. Once the file is received the
data is upload into the GL_DAILY_RATES_INTERFACE and subsequently a
trigger moves the data into a production table.

The GL_DAILY_RATES_INTERFACE is the interface table used to create, update, and


delete daily conversion rates. This table should be used to load rates into the
GL_DAILY_RATES table.

Generating Intercompany Transactions

The Global Intercompany System (GIS) provides a central location for subsidiaries to
enter intercompany transactions, those occurring between set of books. Furthermore, the
process is built in such a manner that an entry requires approval from the sender and
receiver prior to the transaction posting. With this process transaction amounts, dates, and
currencies are confirmed by both subsidiaries and subsequently producing more accurate
results.

The process provides three mechanisms for entering transactions, manual, automatic
transaction line generation and import transactions through the GIS open interface table
GL_IEA_INTERFACE. The main factor for choosing which option to use is mainly
based on data volume and integration with external systems.

 Manual Intercompany Transaction Input: Use the Enter Intercompany


Transactions window to enter, update, approve, reject or mark transactions for
deletion. This process is convenient for quick entry and correction of entries that
may have been interfaced in larger batches.
 Automatic Transaction Line Generation: Using predefined AutoAccounting rules
establishing chart of account relationships between GIS senders and receivers,
GIS can automatically generate code combinations and amounts for any code
combination of the following: sender clearing, receiver distribution, and receiver
clearing transaction lines.
 Intercompany Transaction Import: GIS provides the Open Interface to handle high
volumes of intercompany transactions and integration with external systems. The
AutoAccounting rules are applicable to transactions entering GIS through the
open interface....[]..

Posted in API Integration, Oracle General Ledger | 5 Comments »

Power of Autoinvoice
Posted on May 21st, 2007 by Sanjit Anand |  Print This Post |  Email This Post

Here is note on one of most efficient tool used in Oracle application. It is Auto Invoice, most
industry accepted tool in Oracle apps.
 
What is Auto Invoice??
Auto Invoice is a tool that can be used to import and validate transaction data from other financial
systems from which one can create invoices, debit memos, credit memos, and on-account
credits. It rejects transactions with invalid information to insure the integrity of the data.

Where its fits 


This fits well with in Oracle ERP or to integrate with any third party application< ?xml:namespace
prefix ="" o />
 
What Module data can be integrated?
 Oracle Order Management
 Oracle Project Accounting
 Oracle services
 
To make fully functional what else required
 Loader program
 Validation program

Top 10 reasons for using Auto Invoice


 
1. Powerful Interface Tool
2. Supports Oracle & Non-Oracle Systems
3. Import Large Amount of Data
4. Calculate or Import Tax
5. Group Lines & Invoices
6. Online Error Correction
7 .Lines Validation
8. Derive GL Date
9 .Import Flex fields
10.Import or Derive Accounting Info
 
 
What is inside AutoInvoice
 
AutoInvoice is a tool consists of 3 main programs. Each program will have unique nature of work
to do and they are called internally except Purge program whose execution is derived on the
setup otherwise ready to execute stand alone.
         Master (RAXMTR)
         Import (RAXTRX)
         Purge (RAXDEL)
 
1.       Auto Invoice Master program RAXMTR
Selects and marks records in the interface tables to be processed based on the
parameters the user entered and then calls the AutoInvoice Import program. Auto Invoice
Master program has no report output.
 
•Gathers statistics, it means it gathers the stats on interface tables and set the stats on
certain indices on interface tables
•Marks interface records for processing by marking request_id
•Submits multiple workers for Parallel Processing by creating instances for request.
 
2.       Auto Invoice Import Program Validates the selected record and creates transaction if it
passes validation. Any record that fails validation is left in the interface table with an error
code. Depending on the setup, related records may be rejected as well. This program has an
output file called Auto Invoice Execution report, which you can view by clicking the View
Report button in the Requests window.
 
 Workhorse of Auto invoice
 Validates data
 Inserts records
 Deletes interface data
 Only when system option purge set to ‘Y’

 
3.       Auto Invoice Purge Program Deletes records from the interface tables. If you set the Purge
Interface Table system option to No in Define System Option window, Auto Invoice does not
delete processed records from the interface tables after each run,and we must submit Auto
Invoice Purge Program periodically to clean up the interface tables. This program only
deletes transaction lines that have been successfully imported.
•Deletes all rows where interface_status =‘P’
•Ra_interface_lines
•Ra_interface_distributions
•Ra_interface_salescredits
 
How to start
 
As discussed above, oracle
Receivable’s Auto Invoice program
will be used to import and validate
Invoices.
 
A custom feeder program is
required to transfer data from the
Advantage extract files and
populate the Auto Invoice interface
tables
(RA_INTERFACE_LINES_ALL
and

RA_INTERFACE_DISTRIBUTIONS_ALL).If there is need to run populate sales


credit into RA_INTERFACE_SALESCREDITS_ALL table.
 
When run, AutoInvoice produces the AutoInvoice Execution Report and the
AutoInvoice Validation Report.
Any entries which failed validation can be reviewed in Oracle Receivables’
AutoInvoice Interface Exceptions window. Depending on the error, changes may
need to be made in Receivables, the feeder program or the imported records in
the interface tables.
 
 
 
 
 
 
 
 
 
 
How Autoinvoice Execution works
Normally, Auto Invoice can be divided into three major phases
 
 Pre-grouping: here the validates all of the line level data takes place
 Grouping: groups lines based on the grouping rules and validates header level data
 Transfer :validates information that exists in Receivables tables
 What happen when Auto invoice run
 
Once the Auto invoice Program gets called, the following activity takes place is part of execution
process. This can be analyzed by debug options.
 
 Line, accounting, and sales credit information for each line populates 3 interface tables
 Lines are ordered and grouped
 Tax is calculated
 GL date is determined
 GL accounts are assigned using Auto Accounting
 Tax, freight, commitments, and credit memos are linked to transaction lines
 All transactions are batched
 Validated lines are used to create the transaction

 How Data is flowing


Select, insert and update and delete take place on certain tables once it is logged out.
Selects
– RA_INTERFACE_LINES_ALL
– RA_INTERFACE_DISTRIBUTIONS_ALL
– RA_INTERFACE_SALESCREDITS_ALL
 
Updates/Insert
– RA_INTERFACE_ERRORS_ALL
– RA_CUSTOMER_TRX_ALL
– RA_CUSTOMER_TRX_LINES_ALL
– AR_PAYMENT_SCHEDULES_ALL
– AR_RECEIVABLE_APPLICATIONS_ALL
Inserts
– RA_INTERFACE_ERRORS_ALL
 
 
AutoInvoice Exception Handling
 
Records that fail validation are called ‘Exceptions’
 Exceptions stay in Interface Tables which is RA_INTERFACE_ERRORS_ALL
 Errors can be corrected in the Exception Handling window
 Once corrections are made, Auto invoice must be resubmitted
 Records that pass validation get transferred to Receivables tables 
AutoInvoice Exception Handling Windows
 Interface Exception window displays exception messages associated with all invalid
records
 Interface Lines window displays records that fail validation, provides an error message
and can be used to correct the errors
 The Line Errors windows displays errors associated with a specific line, and can only be
opened from Interface Lines window
 Interface Exceptions window displays Interface Id, Exception Type, Error Message and
Invalid Value associated to the error
 Data cannot be edited in this window, but error can be viewed and corrected by clicking
the Details button
 Error Message and Column name with invalid data are displayed in the Message column,
and the invalid value that needs to be corrected is displayed in the Invalid Value column

 
Next post, I would summarize more information for Transaction Flexfield,Grouping , profile
options and parameter setting.
OracleApps Epicenter

Odyssey of an OracleApps Consultant


 Home
 About The Epicenter
 Resources
 Archives
 SEARCH
 Contact

 Powered Search
Free Oracle Magazine Profit:The Executive's Guide to Oracle Applications
Subscribe

Enter your e-mail address to receive notifications when there are new posts

sign up

Categories
 11i
 AOL
 API Integration
 Asset
 Basic Accounting
 Beginner
 Blogroll
 Cash Management
 Centrestage
 Conversion
 Depot Repair
 EBS Suite
 EDI
 Emerging Technologies
 Finance
 Functional
 General Interest
 HRMS
 Implementations
 Integration
 InterCompany
 JumpStart
 Methodology/Process
 Misc
 News
 OPM
 Oracle Application
 Oracle Diagnostics
 Oracle E-Business Tax
 Oracle General Ledger
 Oracle Legal Entity Configurator
 Oracle Manufacturing
 Oracle Order Management
 Oracle Payable
 Oracle Payment Module
 Oracle Pricing
 Oracle Product
 Oracle Purchasing
 Oracle Receivable
 Oracle TCA
 Oracle Treasury
 Personalizations
 R12
 Release12
 Report Manager
 SEPA
 Subledger Accounting
 Technical
 Tool
 Uncategorized
 Web ADI
 XBRL
 XML Publisher

Archives
 May 2009
 April 2009
 March 2009
 February 2009
 January 2009
 December 2008
 November 2008
 October 2008
 September 2008
 August 2008
 July 2008
 June 2008
 May 2008
 April 2008
 March 2008
 February 2008
 January 2008
 December 2007
 November 2007
 October 2007
 September 2007
 August 2007
 July 2007
 June 2007
 May 2007
 April 2007
 March 2007
 February 2007
 January 2007
 December 2006
 October 2006
 August 2006

Links
 Metalink
 Oracle
 Oracle Integration Repository

Disclaimer
 Disclaimer

Meta:
 RSS
 Comments RSS
 Valid XHTML
 eMail

Ad
 Advance Search
Profit Magazine: The Executive's Guide to Oracle Applications
Search
Search

Powered Search
Recent Posts
 International Financial Reporting Standards (IFRS) Oracle White Paper
 Turn off Horizontal menu in forms
 Batch Control is not showing Decimal place (Rounding issue)
 Moving Personalizations between instances …FNDLOAD for Form
Personalization
 Understanding Form Personalizations Architecture
 New Products in Release 12.1
 Step by Step :Using Receipt API for Miscellaneous Receipt (Scenario 6)
 Step by Step :Using Receipt API ->Apply /Unapply Activity Application (Receipt
Writeoff API’s) (Scenario 5)
 FNDLOAD: ….exporting Oracle Alert
 Oracle E-Business Suite Release 12.1 Now Available
 Step by Step :Using Receipt API ->Reverse Receipt (Scenario 4)
 Step by Step :Using Receipt API ->Apply On Account (Scenario 3)
 Step by Step :Using Receipt API ->Creating cash and apply (Scenario 2)
 Step by Step :Using Receipt API ->Create Cash Receipt (Scenario 1)
 Report Manager-Setting default parameters when uploading template.

Blogroll
 David Haimes
 Floyd Teter
 Steven Chan
 Tim Dexter
 Trioragroup Blog

Total Page View

26 Users Online
Add it

Data Conversion,Migration and interface ..Why


important
Posted on June 9th, 2007 by Sanjit Anand |  Print This Post |  Email This Post

Do you know how many ways; we can enter the data into oracle
application. Most of us can guess three different ways as:
 The Data can be entered using the application Screens.
 The data can be entered using Oracle's Open System Interface.
 The data can be stored in the database table directly

But those who works in some complex business environment may figure out some of
more like:

 3rd Party Software (for the third options)


 Taviz (formerly SmartDB) which is EAI tool.
 Crossroads
 See Beyond (formerly STC)
 Vitria
 Data Loader: They have macro enabled spreadsheet kind of tool
 More4apps

And there are many more, but most of these are used for master data, and few cases for
transaction data via Open interface if available.

Importance of data conversion/migration and interfaces within any ERP implementation


project can't be ignored. Since ERP mostly deals with data which finally leads into
Information , thus it is equally important to understand the aspect how "data" is important
in any ERP system specailly in implementation phase, no matter how simple and unified
operation is. Since I been involved in some big transformation oracle apps project thus It
is a absolute a good cause to share some information about integration touch point,
conversion/migration and interface development to someone who is very new to ERP
world as well as Oracle application.

Let's start with some common situation, we have three cases,

1. The Customer is running there some home grown IT application which cater most
of the company need. Now management has decided to go for any ERP solutions,
then the question what will happen for data which is already in the existing
application?
2. Another situation is already using ERP
a. They want to upgrade to higher version…presuming the structure of some table
get changed? Lets say 10.7 to 11i
b. The company is acquired or merged with some other company, and the whole
data need to move into the parent or child company .
c. They want to enable some additional modules within existing application.
3. There are few data interacting with both the cases irrespective of database
technology for where data is coming and going based out of need.

The answer of the 1 is data migration and 2 is more pronounced as data conversion where
as thirds is popularly known as Interface. The ways these are working haven't much
difference but it is more important to understand definition and need. I never found any
big difference between migration/conversion unless there is huge transformation of data,
the only things figure out is conversion might required some less steps to perform, as
assumption is that set up related stuff been already been taken care before execution of
activity.

Let's understand like this: Data Migration as a process of moving required (and most
often very large) volumes of data from our clients' existing systems to new systems.
Existing systems can be anything from custom-built IT infrastructures to
spreadsheets and standalone databases. Data conversion can be defined as a process
of converting data from one structural form to another to suit the requirements of
the system to which it is migrated.

Lets take a deep drive to understand better:

Why conversion/Migration is more important in ERP?

Before Go-Live in the production environment the required master data, the open
transaction data and the historical transaction data need to be imported from the old
legacy applications to Oracle Applications. Since data structure and data design in legacy
systems are different from those of Oracle Applications, data need to be messaged/
converted satisfying the business rules to suite the Oracle requirement. Initial data can be
migrated by any other means as discussed above depending upon cetain paramater like
Volumn, usage, complexity , business rule etc..

How we Define Data Conversion

 Process where existing data from the client's old system is extracted, cleansed,
formatted, and installed into a new system.
 These can be manual or automated.
 The big difference is that these are One-time only process that requires extensive
testing and preparation.
 They must be executed and performed before a system goes into production.

What Is An Interface then

 These are programs for connection between Two Systems In Order To


Synchronize the Data.
 They can be Manual, Batch or Real-Time.
 Used Repeatedly and Should Therefore Be Designed and Constructed In the Most
Efficient Manner Possible.
 These can Be Triggered by an Event (Such As Running A Concurrent Program)
Or It Can Be Scheduled To Run At A Certain Time.
 Can Be Very Costly To Construct And Maintain.

Does the conversion/migration/interface have Life Cycle


Yes, they have, because they have a significant efforts required in development and
design and implementation

 Functional Designer works with business owners to determine the data mapping
and complete the functional design using the Design Templates.
 If the interface/conversion is automated, the Technical Designer converts
functional requirements into technical specs for the construction of the interface
programs.
 The developer uses the functional and technical designs to build and test the
interface/conversion programs.
 More rounds of testing are done until the interface/conversion is migrated to the
production environment for deployment.

Conversion is assumed as one time activity but never looks like small activity which
can be performed with couple of days.

How conversion and interface differ?

There are good numbers of parameter on which they can be categorize. Take few of
them:

 Frequency
o conversions are a one time event
o interfaces are ongoing
 Occurrence in the project timeline
o conversions executed before production
o interfaces executed during production
 Manner of execution
o conversions are batch
o interfaces may be batch or real time
 Complexity
o Conversion does have very complex, its totally depends upon the data
mapping activity.
o coordinating with other systems make interfaces more complex
 Maintenance
o Maintence of interface is bit cost intensive task.

Interface Type
You have learned how interface is differ from Conversion/Migration. Now lets take few
types of interfaces:
Normally in any system , there are two kinds of interface as:

Inbound Interfaces

 An inbound interface receives data from one system (legacy) and inserts into
Oracle open interface tables.
 A typical inbound interface would follow these steps:
1. Extract data from legacy system into a flat file.
2. Use SQL*Loader or equivalent tool to upload information into a
temporary table.
3. Write a PL/SQL program to take data from the temp table and insert into
the Open Interface Tables.
4. Through the concurrent manager in Oracle Applications, run the standard
Oracle Interface program to transform interface tables into Oracle data.

Outbound Interfaces

o An outbound interface takes data from Oracle tables and inserts it into an external
system (via tables or flat file).
o A typical outbound interface would follow these steps:
- Write a PL/SQL program to extract data from Oracle base tables into a flat file.
- Use a custom program to read that data and post it into the legacy system

Do we have some other standard way to do interface?


 Open Interface is a table based interface registered as a concurrent program
o process records in batches.
o spawned(Pro-C) or PL/SQL based programs.
 API (Application Program Interface) is a parameter based stored procedure
o directly impacts base database tables.
o may be called from Oracle open interfaces,Forms, Reports.
 EDI (Electronic Data Interchange) uses industry standard data
definitions(US/ANSI/X.12) for transmission of documents such as PO's, Invoices,
Sales Order, etc.Oracle provides some EDI transactions through EDI Gateway.(
 Enterprise Application Integration (EAI) solutions are often used when complex
integration requirements exist.

What Is An Open Interface Table (OIT)?

 For inbound interfaces, the interface table is the intermediary table where data
from the source application temporarily resides until it is validated and processed
into an Oracle base table through a standard import concurrent program.
 Open Interface Tables are standard Oracle tables.
o Oracle uses OITs to provide a simple interface to Oracle base tables.
o Oracle has list of all the open interface that oracle offered in there product.

Oracle Interface Program

 Most Oracle modules have standard import programs (concurrent processes) to


facilitate custom inbound interfaces. The specific processing performed varies by
application.
 These programs pull data from the open interface tables, validate the data, and
then insert into one or more Oracle base tables.
 Upon successful completion of processing, the program deletes the processed
rows from the interface table or marks them as completed.
 Depending on the import, errors can be viewed in various ways (exception
reports, error tables, forms, etc…).

Examples of standard import programs:

 GL: Journal Import


 AP: Payables Open Interface
 AR: Customer Interface
 INV : Item Import
 AR - Autoinvoice

Ok, thats is all about Conversion and Interfaces briefing. I will write some more for Tools
used for Conversion/Interface and will discuss some granular details about a
conversion/migration project and share some information about how and where AIM's
documents fits into conversion and Migration projects. So watch out this space for some
more stuff for conversions.. Till than..your comment and requset you to share some

information relaeted to these areas.

EBS - Integration/Interface options


Posted on September 7th, 2007 by Sanjit Anand |  Print This Post |  Email This Post

Some time back in last post we have already seen the definition of interfaces and there
types.Just to summarize here are the high points for interface :

 Import data from any environment , including own system or old system or from
data collection device or external system or any others in the easier way possible,
 This consist of review the result of import run which as whole include verification
,validation, review, reimport and error identification

Guess the next question in your mind will be what are the options available for
interfacing with oracle ERP or any other ERP? The way integration and interfacing
works in typical commercial application have almost similar in nature. Lets emphasize
some options that technology offer in Oracle application. But the option will be drived on
the basis of nature of system and process how its works , moreover Cost is yet another
driving factors. From the integration and interfacing these important factors are :

 Frequency
 Mode
 Volume
 Technology
 Security ( accessing data)

Is this really driving the integration decisions for choice.? ...The answer is YES, on the
top of other factors like cost, support etc...etc.But how...lets understand what is really
means and how they really affect in :

 Frequency - The frequency is important in term of running the interface. Many


times a interface need to run during month end processing, many times it runs in
nightly basis as most of airlines industry updations happen in night only, or may
be weekly only.
 Batch - It should be real time, one time in day or one in batch ...somehow it is
linked with Frequency.
 Volume - This is yet another
important to understand what
volume data need to interface.
This is very very important which is affect how technology is helpful in handling
such a big volume.
 Technology : This is based out of all above three factors ,
 Accessing data :What access is there to the data? Typically points considered here
are like;
o One way sync (Read Only)
o vs. bi-directional (Read Write)
o vs. access in place

Under these set of schema , a developer and designer have to take a call which options
should he/she can go for interfacing?? Lets take some of the options :

Before exploring the some options, note that integration is broadly categorize into two
types:

 Data Integration
 Application Integration

We are not going to discuss details her, lets take some of the options as for integration
and interfacing in EBS.

Options 1: Open Interface Table (OIT)?

This is the the most standard way for doing interfacing in oracle application till day.This
consist of developed interface table and programs. The underline interface table allow
you to load data and then call concurrent program if any else use the standard AOL API's
and have a custom concurrent program. The standard/custom concurrent program will
take data from the interface table validate it and the data into application base products
table.

This kind of Open Interface Table satisfy in most of time, as design and development
does not requires much efforts.In oracle each product has number of OIT available to
cater most of interfacing/integration need.

Options 2 : Application Programming Interface(API's)

Many time we need a tighter integration to oracle application that can be provided with
interface table. In those cases, Oracle Application API's are indeed a good Options .APIs
allow for tight integration into oracle application product. There are also 3rd party
products that need to bolt-on into oracle apps with its integration capability. A typical
API's works as figure in the right.
Options 3 : Enterprise Application Integration Tools (EAI) /Middleware
Tools

When there is no standard Oracle process (no interface tables) as well no API's to import
data.In that case, you have to write a program that inserts data directly into the Oracle
Base Tables.Though this is not recommended by oracle as it any changes from oracle
standard functionality may malfunction during patch or upgrade version. So there is
another options where we can use some EAI or middle ware tool . EAI/Middle ware tools
typically works as adaptor or connector which then take care of any insert /update in
oracle base table without any risk.There are number of adapter available to integrate with
oracle application.

These tools normally provide robust visual development GUI as well as have strong
functionality to provide integration monitoring and alerting tools. I personally know
Taviz( How good this is..i really like this ..sorry guys i am not sells person but Still i will
recommode). Normally these tools are higher-quality than a options discussed in OIT or
API's.

There are EAI vendors which has capability with interface and integrate with oracle
application. Some of them are oracle cerified partners.

 Cast Iron
 WebMethods
 Tibco
 Informatica
 Blue Wolf
 Taviz(formerly SmartDB)
 Crossroads
 SeeBeyond (formerly STC)
 Vitria

Normally most of EAI products provide a tool called "Studio" which uses a graphical
environment for you to design integration process flows called orchestrations
(integrations). Integrations are deployed to a provided ‘Application Router’, which
is an integration appliance pre-configured before it is installed at the customer’s
site.Provides native ‘Connector’ to Oracle E-Business Suite.

Options 4 : EDI

EDI (Electronic Data Interchange) uses industry standard data


definitions(US/ANSI/X.12) for transmission of documents such as PO’s, Invoices,
Sales Order, etc.Oracle provides some EDI transactions through EDI Gateway.This is
also a good options. More details can be found in my last post.1.2

A bit on other options


Options 5 : BPEL Process Manager

 BPEL stands for Business Process Execution Language (This was developed by
IBM, BEA, and MSFT)
 Development tools and server acquired with Oracle’s purchase of Collaxa Inc.
 Requires extra licenses beyond Oracle application licenses
 Uses industry standards, web services, and business process design to orchestrate
integration development
 Marketed very heavily by Oracle as their current and future integration standard

It is typically as similar to EAI but i personally found bit simpler. It Provides


“Dashboard” for server maintenance and monitoring and moreover this is exposes
Oracle APIs as web services. Only drawback is extra license and relatively higher
learning curve may lead to higher initial costs

Options 6 : other Oracle Technology

By means of making a either PL/sql or stored procedure or hybrid process.

 PL / SQL
o Oracle Corporation's proprietary server-based procedural extension to the
SQL database language
o Relatively sophisticated procedural programming language
o Compiled to DB; allows for syntax checking and high-performance DB
integration
o Myriad of purposes in Oracle applications: application logic, integration
logic, exception handling
o Exposes an API layer to Oracle application logic
 Stored Procedures
o Can be implemented as server-side Java
o Capable of calling PL/SQL using JDBC; capable of being called by
PL/SQL
o Higher computational performance than PL/SQL
o Allows for use of an industry standard technology instead of proprietary
PL/SQL
o Often coupled with PL/SQL as a hybrid approach to Oracle application
integration
 Oracle Advanced Queuing (AQ)
o Database Integrated Messaging
o Integrated data, message, and message history
o Recoverability(any point in time recovery)
o Auditing,Tracking, Non-repudiation
o Business Intelligence on message store
o High Performance
o Integrated with MQSeries via Oracle Messaging Gateway
Will take some deep drive for options 4 and options 5 in some other post.

Posted in API Integration |  Email This Post |  Print This


Post

Search@Epicenter

Conversion & AIM’s Deliverables


Posted on August 2nd, 2007 by Sanjit Anand |  Print This Post |  
Email This Post

Do we have any AIM's deliverables during conversion?

Yes..because data need to moved from old system to newer system thus, it is required to
understand how important is during implementation time line. Application
implementation methodology (AIM's) does has categorize conversion and migration as a
separate sub process process and it consist of various deliverables

Here are the list with there document number:

 CV 010 - Conversion Scope, Objectives, and Approach


 CV020 - Conversion Strategy
 CV030 - Conversion Standards
 CV040 - Conversion Environment
 CV050 - Conversion Data Mapping
 CV055 - Conversion Detailed Data Mapping
 CV060 - Manual Conversion Strategy
 CV065 - Design Conversions and Interfaces
 CV070 - Conversion Program design
 CV080 - Conversion Test Plans
 CV090 - Conversion Programs
 CV095 - Custom Software Programs
 CV100 - Conversion Unit Test Results
 CV110 - Conversion Business Objects Test Results
 CV120 - Conversion Validation Test Results
 CV130 - Installed Conversion Software
 CV140 - Converted and Verified Data

A close look on AIMs Tasks and Deliverables in Conversion Process:

The major tasks and corresponding deliverables during conversions are summerzied
below. Please take a note , this is for your information purpose based out of AIM's v3.1.
Posted in Conversion | No Comments »

Conversion Methodology
Posted on August 1st, 2007 by Sanjit Anand |  Print This Post |  Email This Post

In one of previous post , i have discussed the basics of interface ,conversion and
migration.Lets take a more detailed life cycle for data conversion/migration activity. This
activity can not be ignored in any Oracle ERP transformation project.
A conversion does follow there own methodology , being a typically
methodology it consist of certain task and subtask identified at sub
activity level . Here are some of them as discussed below.

1. Movement of Data or Transport of data

This is where you have to plan the movement of data from an external
system/old system to Oracle Applications which normally consider
within a conversion project plan. The more important is developing a
detailed conversion plan for each entity, listing all design, development,
testing, and conversion tasks. You have also include resource,software,
and hardware requirements to successfully convert each entity.

2.Design Process

This is where you have to decide what need to convert. This start with
identifying all objects first there corresponding volume.

 Examine the business objectives and requirements to determine


the data to be converted.
 Specify time constraints for the conversion, especially for transaction data.
 Determine the appropriate conversion method, it is not recommended to go for
manual entry.If data volume is low , try to find alternate product.
 Then need is performing data mapping.
 Then its required to install all hardware and software required for the conversion
process.
 Determine the testing requirements. Identify testing method if available in Oracle
else design a custom query to compare the result.

3.Developing Programs

This process does consist of :

 Writing extract and import programs.


 Scripts to create any interface or translation tables in Oracle RDBMS.
 Writing validation, translation, and migration programs.
 Write verification scripts and reports.

4. Performing Conversion

This is process in which major activity is performed, this consist of:

 Extract and format data.


 Create temporary interface tables.
 Upload data to interface tables.
 Run translation programs & validation programs.
 Migrate data into production tables.
 Run verification scripts.
 Run application reports to verify converted data.

5. Data Verification

In this phase each converted entity, design a conversion process from data extraction
through data verification. Main consideration is business objectives and dependencies for
each point in the process.

Posted in Conversion | No Comments »

Data Conversion,Migration and interface ..Why


important
Posted on June 9th, 2007 by Sanjit Anand |  Print This Post |  Email This Post

Do you know how many ways; we can enter the data into oracle application. Most of us
can guess three different ways as:

 The Data can be entered using the application Screens.


 The data can be entered using Oracle's Open System Interface.
 The data can be stored in the database table directly

But those who works in some complex business environment may figure out some of
more like:

 3rd Party Software (for the third options)


 Taviz (formerly SmartDB) which is EAI tool.
 Crossroads
 See Beyond (formerly STC)
 Vitria
 Data Loader: They have macro enabled spreadsheet kind of tool
 More4apps

And there are many more, but most of these are used for master data, and few cases for
transaction data via Open interface if available.

Importance of data conversion/migration and interfaces within any ERP implementation


project can't be ignored. Since ERP mostly deals with data which finally leads into
Information , thus it is equally important to understand the aspect how "data" is important
in any ERP system specailly in implementation phase, no matter how simple and unified
operation is. Since I been involved in some big transformation oracle apps project thus It
is a absolute a good cause to share some information about integration touch point,
conversion/migration and interface development to someone who is very new to ERP
world as well as Oracle application.

Let's start with some common situation, we have three cases,

1. The Customer is running there some home grown IT application which cater most
of the company need. Now management has decided to go for any ERP solutions,
then the question what will happen for data which is already in the existing
application?
2. Another situation is already using ERP
a. They want to upgrade to higher version…presuming the structure of some table
get changed? Lets say 10.7 to 11i
b. The company is acquired or merged with some other company, and the whole
data need to move into the parent or child company .
c. They want to enable some additional modules within existing application.
3. There are few data interacting with both the cases irrespective of database
technology for where data is coming and going based out of need.

The answer of the 1 is data migration and 2 is more pronounced as data conversion where
as thirds is popularly known as Interface. The ways these are working haven't much
difference but it is more important to understand definition and need. I never found any
big difference between migration/conversion unless there is huge transformation of data,
the only things figure out is conversion might required some less steps to perform, as
assumption is that set up related stuff been already been taken care before execution of
activity.

Let's understand like this: Data Migration as a process of moving required (and most
often very large) volumes of data from our clients' existing systems to new systems.
Existing systems can be anything from custom-built IT infrastructures to
spreadsheets and standalone databases. Data conversion can be defined as a process
of converting data from one structural form to another to suit the requirements of
the system to which it is migrated.

Lets take a deep drive to understand better:

Why conversion/Migration is more important in ERP?

Before Go-Live in the production environment the required master data, the open
transaction data and the historical transaction data need to be imported from the old
legacy applications to Oracle Applications. Since data structure and data design in legacy
systems are different from those of Oracle Applications, data need to be messaged/
converted satisfying the business rules to suite the Oracle requirement. Initial data can be
migrated by any other means as discussed above depending upon cetain paramater like
Volumn, usage, complexity , business rule etc..

How we Define Data Conversion


 Process where existing data from the client's old system is extracted, cleansed,
formatted, and installed into a new system.
 These can be manual or automated.
 The big difference is that these are One-time only process that requires extensive
testing and preparation.
 They must be executed and performed before a system goes into production.

What Is An Interface then

 These are programs for connection between Two Systems In Order To


Synchronize the Data.
 They can be Manual, Batch or Real-Time.
 Used Repeatedly and Should Therefore Be Designed and Constructed In the Most
Efficient Manner Possible.
 These can Be Triggered by an Event (Such As Running A Concurrent Program)
Or It Can Be Scheduled To Run At A Certain Time.
 Can Be Very Costly To Construct And Maintain.

Does the conversion/migration/interface have Life Cycle

Yes, they have, because they have a significant efforts required in development and
design and implementation

 Functional Designer works with business owners to determine the data mapping
and complete the functional design using the Design Templates.
 If the interface/conversion is automated, the Technical Designer converts
functional requirements into technical specs for the construction of the interface
programs.
 The developer uses the functional and technical designs to build and test the
interface/conversion programs.
 More rounds of testing are done until the interface/conversion is migrated to the
production environment for deployment.

Conversion is assumed as one time activity but never looks like small activity which
can be performed with couple of days.
How conversion and interface differ?

There are good numbers of parameter on which they can be categorize. Take few of
them:

 Frequency
o conversions are a one time event
o interfaces are ongoing
 Occurrence in the project timeline
o conversions executed before production
o interfaces executed during production
 Manner of execution
o conversions are batch
o interfaces may be batch or real time
 Complexity
o Conversion does have very complex, its totally depends upon the data
mapping activity.
o coordinating with other systems make interfaces more complex
 Maintenance
o Maintence of interface is bit cost intensive task.

Interface Type
You have learned how interface is differ from Conversion/Migration. Now lets take few
types of interfaces:
Normally in any system , there are two kinds of interface as:

Inbound Interfaces
 An inbound interface receives data from one system (legacy) and inserts into
Oracle open interface tables.
 A typical inbound interface would follow these steps:
1. Extract data from legacy system into a flat file.
2. Use SQL*Loader or equivalent tool to upload information into a
temporary table.
3. Write a PL/SQL program to take data from the temp table and insert into
the Open Interface Tables.
4. Through the concurrent manager in Oracle Applications, run the standard
Oracle Interface program to transform interface tables into Oracle data.

Outbound Interfaces

o An outbound interface takes data from Oracle tables and inserts it into an external
system (via tables or flat file).
o A typical outbound interface would follow these steps:
- Write a PL/SQL program to extract data from Oracle base tables into a flat file.
- Use a custom program to read that data and post it into the legacy system

Do we have some other standard way to do interface?

 Open Interface is a table based interface registered as a concurrent program


o process records in batches.
o spawned(Pro-C) or PL/SQL based programs.
 API (Application Program Interface) is a parameter based stored procedure
o directly impacts base database tables.
o may be called from Oracle open interfaces,Forms, Reports.
 EDI (Electronic Data Interchange) uses industry standard data
definitions(US/ANSI/X.12) for transmission of documents such as PO's, Invoices,
Sales Order, etc.Oracle provides some EDI transactions through EDI Gateway.(
 Enterprise Application Integration (EAI) solutions are often used when complex
integration requirements exist.

What Is An Open Interface Table (OIT)?


 For inbound interfaces, the interface table is the intermediary table where data
from the source application temporarily resides until it is validated and processed
into an Oracle base table through a standard import concurrent program.
 Open Interface Tables are standard Oracle tables.
o Oracle uses OITs to provide a simple interface to Oracle base tables.
o Oracle has list of all the open interface that oracle offered in there product.

Oracle Interface Program

 Most Oracle modules have standard import programs (concurrent processes) to


facilitate custom inbound interfaces. The specific processing performed varies by
application.
 These programs pull data from the open interface tables, validate the data, and
then insert into one or more Oracle base tables.
 Upon successful completion of processing, the program deletes the processed
rows from the interface table or marks them as completed.
 Depending on the import, errors can be viewed in various ways (exception
reports, error tables, forms, etc…).

Examples of standard import programs:

 GL: Journal Import


 AP: Payables Open Interface
 AR: Customer Interface
 INV : Item Import
 AR - Autoinvoice

Ok, thats is all about Conversion and Interfaces briefing. I will write some more for Tools
used for Conversion/Interface and will discuss some granular details about a
conversion/migration project and share some information about how and where AIM's
documents fits into conversion and Migration projects. So watch out this space for some
more stuff for conversions.. Till than..your comment and requset you to share some

information relaeted to these areas.

Posted in Conversion | 51 Comments »

Page 1 of 11
© 2006-2008 OracleApps Epicenter.
OracleApps Epicenter

Odyssey of an OracleApps Consultant


 Home
 About The Epicenter
 Resources
 Archives
 SEARCH
 Contact

 Powered Search
Free Oracle Magazine Profit:The Executive's Guide to Oracle Applications
Subscribe

Enter your e-mail address to receive notifications when there are new posts

sign up

Categories
 11i
 AOL
 API Integration
 Asset
 Basic Accounting
 Beginner
 Blogroll
 Cash Management
 Centrestage
 Conversion
 Depot Repair
 EBS Suite
 EDI
 Emerging Technologies
 Finance
 Functional
 General Interest
 HRMS
 Implementations
 Integration
 InterCompany
 JumpStart
 Methodology/Process
 Misc
 News
 OPM
 Oracle Application
 Oracle Diagnostics
 Oracle E-Business Tax
 Oracle General Ledger
 Oracle Legal Entity Configurator
 Oracle Manufacturing
 Oracle Order Management
 Oracle Payable
 Oracle Payment Module
 Oracle Pricing
 Oracle Product
 Oracle Purchasing
 Oracle Receivable
 Oracle TCA
 Oracle Treasury
 Personalizations
 R12
 Release12
 Report Manager
 SEPA
 Subledger Accounting
 Technical
 Tool
 Uncategorized
 Web ADI
 XBRL
 XML Publisher

Archives
 May 2009
 April 2009
 March 2009
 February 2009
 January 2009
 December 2008
 November 2008
 October 2008
 September 2008
 August 2008
 July 2008
 June 2008
 May 2008
 April 2008
 March 2008
 February 2008
 January 2008
 December 2007
 November 2007
 October 2007
 September 2007
 August 2007
 July 2007
 June 2007
 May 2007
 April 2007
 March 2007
 February 2007
 January 2007
 December 2006
 October 2006
 August 2006

Links
 Metalink
 Oracle
 Oracle Integration Repository

Disclaimer
 Disclaimer

Meta:
 RSS
 Comments RSS
 Valid XHTML
 eMail

Ad

 Advance Search
Profit Magazine: The Executive's Guide to Oracle Applications
Search
Search

Powered Search
Recent Posts
 International Financial Reporting Standards (IFRS) Oracle White Paper
 Turn off Horizontal menu in forms
 Batch Control is not showing Decimal place (Rounding issue)
 Moving Personalizations between instances …FNDLOAD for Form
Personalization
 Understanding Form Personalizations Architecture
 New Products in Release 12.1
 Step by Step :Using Receipt API for Miscellaneous Receipt (Scenario 6)
 Step by Step :Using Receipt API ->Apply /Unapply Activity Application (Receipt
Writeoff API’s) (Scenario 5)
 FNDLOAD: ….exporting Oracle Alert
 Oracle E-Business Suite Release 12.1 Now Available
 Step by Step :Using Receipt API ->Reverse Receipt (Scenario 4)
 Step by Step :Using Receipt API ->Apply On Account (Scenario 3)
 Step by Step :Using Receipt API ->Creating cash and apply (Scenario 2)
 Step by Step :Using Receipt API ->Create Cash Receipt (Scenario 1)
 Report Manager-Setting default parameters when uploading template.

Blogroll
 David Haimes
 Floyd Teter
 Steven Chan
 Tim Dexter
 Trioragroup Blog

Total Page View

27 Users Online
Add it

Search@Epicenter

R12 SLA vis-à-vis AX of 11i


Posted on December 8th, 2007 by Sanjit Anand |  Print This Post |  Email This Post

Read this:

 Understanding Global Accounting Engine ( Product AX)


 Understanding Global Accounting Engine - Dual posting, Tables, Reports
 R12 SLA: From Product Accounting to Subledger Accounting
 R12 SLA: Analyzing Sub ledger Accounting

We have already seen oracle new Oracle Sub ledger Accounting replaces the Global
Accounting Engine, which normally used for European & Regional Localizations need in
earlier versions. SLA itself extends the AX engine functionality by providing
customizable accounting rules via a flexible

Is SLA a clone of AX?


Yes, almost the functionality was derived from there itself, lets see vis-à-vis to uptake
some of the functionality in these two products.
Not only functionality, some of the reports replaces the corresponding reports of the
Global Accounting Engine.

The good is that both the Global Accounting Engine(AX) and Oracle Subledger
Accounting(SLA) generate accounting from a compiled definition of accounting rules
defined by users. Oracle Subledger Accounting further maintains version control on the
rules enabling users to modify the rules while maintaining auditability.

What you say..sounds good

Posted in EBS Suite, Functional, R12, Release12, Subledger Accounting | 1 Comment »

Release 12 : Legal Entity uptake


Posted on December 7th, 2007 by Sanjit Anand |  Print This Post |  Email This Post

We are well aware of some of Oracle E-Business Suite R12 Architectural changes in the
Financials section like:

 Legal Entity
 Ledger Sets
 Accounting Engine (SLA)
 Transaction Based Taxes(E-Tax)
 Inter-company Accounting (AGIS)
 Multi-Organization Access Control (MOAC)
Let’s uptake to Legal Entity:

Financial books defined as “A Legal Entity is an entity identified through the
registration with the legal authority.”

That’s means ,In this compliance world and in Oracle system it corresponds closely
and defined as the system “Legal Entity” corresponds with an independently
identifiable “legal person” a public company, a private business or limited
partnership, a trust, a not-for-profit, a government or a non-government organization
(NGO) - that can operate as if it were a real person in conducting business transactions.

What is meant for with LE?

 Can get the the right to:


o Own property weather its is assets or inventory or receivable
o Trade (borrow, sell, buy, incur expenses, employ)
 And the responsibility to:
o Repay debt (liabilities, equity)
o Pay Taxes
o Account for themselves (legal reports, audits)

Note for R11i with respect to R12

Release 11i GRE/LEs will be upgraded as Release 12 Legal Entities.

Release 11i Operating Units and Inventory orgs will be upgraded as Establishments.

One Legal Entity can have several establishments.

 In Release 12 there is no specific link between Operating Units and Legal Entities
where as in R11 it was.
 The Legal Entity is linked to a Ledger and the Operating unit is also linked to a
Ledger.
 Every Release 12 transaction must be associated with both an Operating Unit and
a Legal Entity.
 The Legal Entity is also required for e-Business Tax to establish which taxes will
be applicable to the transaction.

The New Model called " LEA(Legal Entity Architecture)"

Legal Entity architecture, which is new in this release, provides users with the ability to
model an enterprise’s legal organizational structure and define rules and attributes
specific to legal entities.
Bank Account whether its is remittance bank or internal bank is now owned by the Legal
Entity instead of Operating Unit, and can be used by any of the Operating Units sharing
the same Ledger as that Legal Entity.

As marked (dotted red line) in above figure the relationship between legal Entity and
Operating Unit is no more active. This concept allows Operating Units to be governed by
more than one jurisdiction, but the accounting is still performed in a single ledger.

Multiple Legal Entities can be associated with a single Ledger, allowing the LEs to share
the same ledger and chart of accounts, calendar and currency. Each LE points to one
Ledger.

Multiple Operating Units can also be associated with a single Ledger. Each OU points to
only on Ledger.

Thanks to David, who pointed out last week regarding Bank Uptake in LE side in
reference to my old post. Check his post for further information.

Take a note; in R12 EBS multiple legal entities can be associated with a single Ledger,
allowing the LEs to share the same ledger and chart of accounts, calendar and currency.
Each LE points to one Ledger. Multiple Operating Units can also be associated with a
single Ledger. Each OU points to only on Ledger.

Where it affects:

"Most of the Financial Application Products"

Cash Management (Bank)

As discussed in earlier, in Release 12 Bank Accounts are owned by Legal Entities and
can be accessed by multiple Operating Units.

As we know in 11i the Bank Accounts were Operating Unit Specific.

For all Internal Banks should be assigned to a Legal Entity.


Receivables:

Now all REC activity must have a legal owner, so Legal Entity is stamped on every
transaction. Receivables activity such as transaction whether credit memo or debit memo
or invoice must have stamps on it and receipt header with the Legal Entity information.

Because there can be multiple legal entities using the same ledger, it may be
necessary for the user to assign the LE. Each transaction can only belong to one Legal
Entity, so when multiple legal entities exist, either the system or the user will assign the
LE.

 Transaction

The defaulting hierarchy for a transaction comes from the setup of the Transaction Type
and Transaction Batch Source. Receivables will look first to the Transaction type. If a LE
has not been assigned, then Receivables will look to the Batch Source. The assignment of
the LE to the Transaction Type and Transaction Batch Source is option, so if Receivables
cannot find a default LE, then it is up to the user to provide the LE value.

 Receipts

The LE defaulting for receipts works differently than transactions.

Let’s look at how defaulting occurs for the Receipt Header.


As we know , internal Bank Accounts is not owned by legal entities instead of operating
units, so LE defaults from internal (remittance) bank account.

The Receipt Method in Receivables has the bank account assignment, which determines
what bank account gets assigned to the receipt.

Take a note in version 11 the receipt Method was called the Payment Method. Now in
Release 12 this featured with same name “Payment Method” now used by new
application called Oracle Payments. Therefore in AR, you will now see a Receipt
Method, which is part of receipt setup; and Payment Method, which is part of Payments
setup.Once the bank account is assigned to a receipt header, this information can be used
to find the appropriate LE.Because the LE comes from only one source, the bank
account, there is no special setup to be performed in Receivables.Defaulting of the single
LE always occurs, so the user does not need to assign or update LE on receipts.

How LE affects receipts and there applications and refunds

We seen the receipts inherit the LE from the bank account weather its is manual,
Automatic, Lockbox and Post Quick Cash Programs.There is no way that user can
change the value.
Receipt application across Legal Entities is allowed if the receipt and transactions are in
same OU and Sub Ledgers Accounting will performed by inter-company accounting for
cross-LE receipt applications or cross-LE receipt clearing.

SLA will create inter-company accounting as long as LE is setup as one of the CCID
(Account Code Combination) segment derivation sources in SLA.

Payable

Invoices and Payments indicate the operating unit and the legal entity owner of the
transaction. The legal entity can be used as selection criteria when preparing pay runs.

Projects

As we know in 11i in EBS maintains the default legal context on the Operating Unit.
There is not much impact in Projects model. Earlier in 11i we used to consider the Legal
Entity of the Operating Unit as the Legal Entity of the Projects Transactions. Now the
Legal Entity attached at the Default Legal Context of the Operating Unit is the Legal
Entity of the Projects Transactions.

So the Legal Entity of the Projects expenditure transactions will be the Legal Entity
attached at the Default Legal Context of the Expenditure Operating Unit and the Legal
Entity of the Project will be the Legal Entity attached at the Default Legal Context of the
Project owning operating unit.

LE and TCA

Legal Entity is still dependent on TCA. A party (supplier, customer, bank, student etc) is
an entity that can enter into business relationships. As we know the Oracle TCA's model
supports four types of parties: organization, person, group, and party relationship. Under
the TCA model, Parties (including Legal Entities) exist just once in our E-business Suite
system for single maintenance and consistency. Legal Entities will be stored in TCA as
Parties of party type 'ORGANIZATION'. A Legal Profile, containing specific Legal
Entity attributes, will be associated to the TCA Party. In addition, other TCA components
will be used for Addresses, Contacts, Party Information, etc.

Where to do the setup

There should be no confusion.

May be , some may think if this is just extension of GRE/LE from old version , then Why
this required to do set up from both ASM and HR in R12?

In R12 ,it is separate the legal entity from the GRE which is a HR organization. We did
not link the 2 entities together as they serve 2 different purposes altogether.
The HR model does not look at the new Legal Entity model. It continues to use the
GRE/LE as a legal entity. So the HR requirement can be achieved using the HR
organization of type GRE/LE.

Therefore, Legal Entities do have to be set up in both ASM and HR in R12.

Hope this sound interesting for new change in Financial Architecture.

Suggested Reading

1. Oracle Financials Concepts Guide,Release 12(Part No. B28873-01)


2. David Haimes Blog : How do I define my Legal Entities?
3. Release 12 Financial Applications RCD

Posted in Functional, Oracle Legal Entity Configurator, R12, Release12 | 15 Comments »

Release 12 : What’s New in Oracle Receivables


Posted on December 3rd, 2007 by Sanjit Anand |  Print This Post |  Email This Post

Oracle’s Release 12 of the E-Business Suite is also called the “ Global Business
Release ”, as it has numerous enhancements designed to make it easier to do business
on a global basis. A more flexible, centralized global accounting structure has been
introduced which makes it easier to operate between and across operating units and legal
entities. Overall, R12 contains 18 new modules and 2443 enhancements to existing
functionality.

Oracle's Release 12 (R12) of their E-Business Suite continues to extend the functionality
of the Receivables arena , in addition to incorporated new financial architecture and new
products , Oracle Receivables is now very natured product.As part of this post, we will
look at Oracle's newest/enhanced offerings in Oracle Receivables.

Revenue Recognition

In R12 revenue recognition is based on Rules and Events, and they are:

 Time-Based Revenue Recognition


o Ratably Over Time
o Upon Expiration of Contingencies
 Event-Based Revenue Recognition
o Payment
o Customer Acceptance
 Rule-Based Revenue Recognition
o Payment Term Thresholds
o Refund Policy Thresholds
o Customer Credit worthiness
Lets take a quick look on some of the new changes:

 Daily Revenue Recognition


o Revenue distribution over full as well as partial
accounting periods.
o Fulfills stringent accounting standards
o Accuracy to the number of days in the accounting period.
 Enhanced Revenue Contingencies :
o Fully Supports US GAAP and IAS
o User definable contingencies
o User definable defaulting rules for contingencies assignment
o Supports parent-child (e.g. Product and Service) relationship
o Integration with Order Management and Service Contracts
o User Interface as well as Programming Interface (API) support
o Access control through seeded Revenue Managers Responsibility
 Deferred Revenue Management

Event-Based Revenue Management in Oracle Receivables allows users to define revenue


deferral reasons or contingencies and corresponding revenue recognition events. In
Release 12, revenue contingencies for customer acceptance that are applied to goods sold
in Order Management are now applied to services sold to cover those goods. Revenue is
deferred for service ordered in both Order Management and Service Contracts.
Acceptance contingencies associated with an item instance are automatically applied to
service revenue associated with the item instance when it is covered in a Service Contract
as a Covered Product. Revenue for services on other covered levels, subscriptions and
usage is not impacted by contingencies applied to goods associated with those services.

Global Architecture

As we know, with in global architecture , these new things has been introduced.

 Sub ledger Accounting - Journal Creation takes place prior to GL.


 Bank Model - This unified model enables to park customer Bank as well as
Internal bank information into there new model, so that working capital cash flow
should be enhanced.
 EBusiness Tax - Oracle E-Business Tax is a new product that uniformly delivers
tax services to all Oracle EBusiness Suite business flows. In Release 12,
Receivables is enhanced to support
integration with the E-Business Tax product.
 Intercompany - This is enhanced by automatic balancing,

MOAC Control

This enhance you by enabling and performing tasks across operating Units (OUs), where
you have access to without changing responsibilities.As we know , MOAC enables
companies that have implemented a Shared Services operating model to efficiently
process business transactions by
allowing them to access, process, and
report on data for an unlimited
number of operating units within a
single applications responsibility.

In nutshell, once MOAC is enabled,


then you can:

 Perform Setups for any OU


 Enter invoices across OUs
 Receive Cash for any OU
 Manage Customer Credit across all OU
 Run reports across OUs

Because of this greatly enhanced Role based security options, the ability to access
multiple operating units with a single responsibility can simplify SOX compliance
monitoring from finance controller side.

Line Level Cash Applications

The Line Level Cash Applications solution allows the application of receipts to specific
transaction items such as individual lines, groups of lines, or tax or freight buckets. From
the receipt workbench,you are able choose whether to allocate cash to the entire
transaction or to apply amounts against specific items according to the customer
remittance.

 Apply to specific lines or groups of lines


 Indicate when tax, freight or finance charges only are paid
 Make changes as needed
 Easily view activity against receipts
 Know what historical activity affects your receipt
 See what prior activity affects a new application

Enhanced Customer Screen

We have seen 11i Customer standard forms makes easier by simple navigation. This
times there is clearer separation of the party and account layers, which makes a consist
ant look and feel.More over full backward compatibility with 11i UI Bill Presentment
Architecture has been provided.

The AR Create Customer page in R12 has eliminated the navigation to separate windows.
Now, users can specify the following on a single page:

 Customer Information
 Account Details
 Address
 Account Site Details
 Business Purpose

Refunds

Oracle Receivables is fully integrated with Oracle Payables to deliver a seamless,


automated process to generate check and bank account transfer refunds for eligible
receipts and credit memos.

Late Charges

As we know oracle receivables delivers enhanced Late Charges functionality enabling the
creation of standard late charge policies that can be assigned to customer accounts or
account sites.Flexible policy configurations include multiple interest calculation
formulas, transaction and account balance thresholds, and currency-level rate setups.
With new changes these are the enhanced functionality:

 Expanded assessment and calculation capabilities


 Tiered charge schedules
 Penalty charge calculation
 Integration with Balance Forward Billing
 Centralized setup and maintenance of late charge policies
 Calculation performed independent of Dunning and Statement processing
AR-AP Netting

The matching of open receivables and open payables is automated.

Balance Forward Billing

This makes easy transaction processing.

Balance Forward Billing is an enhanced version of the existing consolidated billing


functionality for industries where customers are billed for all their account activity on a
regular, cyclical basis.

Balance Forward Billing provides the ability to setup cycle-based billing at the account or
account site levels, enable event based billing, and leverage user configurable billing
formats provided by Oracle Bill Presentment Architecture.
A typical case can be best understood as

 Payment Term defaults


 from Site profile if Bill Level = Site
 from Account profile if Bill Level = Account
 Billing Date derived from transaction date and billing cycle
 Due Date derived from billing date and payment term
 Optionally select non-Balance Forward term if Override Terms =
Yes

Posted in EBS Suite, Functional, Oracle Receivable, R12, Release12 | 9 Comments »

MOAC : From Multi-Org….To Multi-Access


Posted on December 2nd, 2007 by Sanjit Anand |  Print This Post |  Email This Post

This new Feature in R12 ,enables companies that have implemented or implementing
shared services operating model to efficiently process business transactions by allowing
them to access, process and report on data for an unlimited number of operating units
within a single applications responsibility. Users are no longer required to switch
applications responsibilities when processing transactions for multiple operating units.

Data security is maintained using security profiles that determine the data access
privileges associated to responsibilities granted to a user.
Because of this you can perform multiple tasks across operating units
without changing responsibilities, the simple case can be best described
as diagram in the left, where 3 user from three difference OU's required three separate
responsibility to perform the task.

MOAC Benefits..

 Multi-Org Access Control feature allows you to enter, process data and generate
reports from a single responsibility
 This is achieved by providing the Operating Unit field on the forms/pages and
while running the concurrent processes
 To Set this feature you need to define the security profile containing operating
units and set it at MO: Security Profile
 You can default the Operating Unit on forms/pages by setting the MO: Default
Operating Unit profile

What are the new changes from Multi Organization(Multi Org) to Multiple
Organization Access Control.

 As discussed above, security Profiles for data security


o MO: Security Profile
o List of operating units for a responsibility
 OU field on UI
o all transactions
o setup data specific to OU, like transaction type
 Enhanced Multi-Org Reporting and Processing
 Ledger/Ledger Set parameter on accounting reports and processes
 OU parameter on other standard reports and processes
o For example: submit the Payables Open Interface Import w/OU param null
to import all records across all OUs

Where and how to define a security profile?

Using Oracle HRMS, you can define your security profile using two forms:

 The Security Profile form


 The Global Security Profile form that is shown here.
The Security Profile Form allows you to select operating units from only one Business
Group. The Global Security profile Form allows you to select operating units from
multiple Business Groups.

The decision on which form to use is really up to you and depends on your HR
implementation and how you want to partition data. All you need to do is enter a name,
and select the Security Type called “Secure organizations by organization hierarchy
and/or organization list”. This allows you to assign multiple OUs. When assigning
operating units, first select classification Operating Unit, and then select the organization
or Operating Unit name. You can assign as many operating units as you want.

Posted in EBS Suite, Functional, R12, Release12 | 10 Comments »

SCM Subsystem
Posted on November 15th, 2007 by Sanjit Anand |  Print This Post |  Email This
Post

In last post we have understood SCM flow. Let's talk in term of SCM IT
requirement. SCM subsystems are important because this is required to support
manufacturing managers in making their decisions so that they can optimize the trade off
between capital tied up in stocks and inventories, versus the ability to deliver goods at
prices and delivery dates agreed with customers.
A typical flow and SCM cycle can be understood as fig below:

Typically A SCM consists of these sub-systems can be categorize and consist of:

Demand Management

This is basically co-ordination sales forecasts from all the players, including sales
representatives at the point of sale through production to raw material suppliers, so that
everyone is working to the same plan, rather than creating unnecessary safety stocks.

Distribution Resources Planning (DRP)

This will Keep track of the status of production and procurement of materials for each
order, where the goods are located, what transport and warehousing is in use, what stock
to keep and when to re-order.

Transport Management Systems (TMS)

This kind of subsystem normally keep the information such as :what modes of transport
at what cost are available to the shipper; what costs and timings are associated with each
route; the order in which to load transport; optimization of multi-segment deliveries;
compliance with documentation required for customs and shippers.

Warehouse Management Systems (WMS)


These are the systems which are used to optimize the storage and picking of goods in a
warehouse, also includes compliance with carrier and customer documentation standards.

Supplier Relationship Management (SRM)

This kind of subsystem keeps the information about suppliers of direct and indirect
materials, such as agreed terms of trade, records of status, records of contacts between the
enterprise and the various points of contact in suppliers.

Component Supplier Management (CSM)

Management of lists of preferred suppliers and preferred parts; terms of trade such as
delivery and price associated with them; rationalization of existing parts to minimize
costs by substituting equivalent parts.

I guess, the next question in mind would what are applications which are going to enable
if anyone is going to roll out SCM functionality in Oracle EBS. Keep watching this
space.

Posted in EBS Suite, Functional, Oracle Manufacturing | No Comments »

KNOW WHAT IS SUPPLY CHAIN MANAGEMENT


(SCM)? : An Overview
Posted on November 10th, 2007 by Sanjit Anand |  Print This Post |  Email This
Post

This is one of the basic areas from management books. In fact lot of people have
requested some more information on SCM, OPM and other manufacturing area.
therefore,I take this opportunity, as this is one of my favorite topic, as I started my first
job in PPC (Production Planning &Control) department of a big steel company a decades
ago, so I hope I will surly help in giving a clear picture of SCM. Let's start with basic and
gradually will move into ERP arena:

SCM
SCM is defined as combination of art and science that goes into improving the way your
company find the raw components that needs to make a product or services and deliver it
to customer. In Business word this art and science become functions that an organization
undertake.

If you are IT guys you can understood SCM as:

Systems that support manufacturing managers in making decisions that optimize the trade
off between capital tied up in stocks and inventories, versus the ability to deliver goods at
prices and delivery dates agreed with customers.
In principle and reality, both inwards logistics operations to acquire materials to make
products and outwards logistics operations shipping finished goods to final customers are
monitored.

WHAT EXACTLY IS SUPPLY CHAIN MANAGEMENT OR WHAT IS BASIC


COMPONENT OF SCM?

As per Supply-Chain Operations Reference-model (SCOR®) which has been


developed by Supply-Chain Council. This model organized and focused on the five
primary management

1. PLAN
2. SOURCE
3. MAKE
4. DELIVER
5. RETURN

1. Plan: This is vital part of SCM philosophy, where the companies normally need to
make strategy for managing all the resource that go towards fulfilling the customer
demand for the product and services that they offers. A big piece of planning is
developing a set of matrices to monitor the Supply chain so that it would be efficient, cost
effective and deliver high quality and value to the customer.

2. Source: It means processes that procure goods and services to meet planned or actual
demand. This part of SCM consists of selecting right suppliers that will deliver the good
and services that need to create your product. Developing a set of pricing, delivery and
payment process with supplier is important. Also this will also take care of managing the
inventory of goods, and services you receive from your suppliers, including receiving
shipping, verifying them, transferring them into various facilities and authorizing supplier
payment.

3. Make: This is basically a step where your company starts fulfilling the request or
BUILT for products into finished state to meet planned or actual demand. Schedule
activity necessary for production, testing, packaging and preparation for delivery.

4. Deliver: This is also called Logistic Process. This is the processes that provide finished
goods and services to meet planned or actual demand, typically including order
management, transportation management, and distribution management.

5. Return - This is real pain of SCM model, which defined as processes associated with
returning or receiving returned products for any reason.

Typical model can be best described as:


WHO IS THE STAKEHOLDER OF SUPPLY CHAIN

These are considered as stake holder of SCM:

 Customers
 Your Company
 Design Partners
 Material Suppliers
 Contract Manufacturers
 Logistic Providers

WHAT ARE DRIVERS OF THE SUPPLY CHAIN?

These are the main drivers :

 Production
 Inventory
 Location
 Transportation
 Information

1. Production
This driver addressing these questions: what products does the market want? How much
of which products should be produced and by when?
This activity includes the creation of master production schedules that take into account
plant capacities, workload balancing, quality control, and equipment maintenance.

2. Inventory
This driver addressing these questions: What inventory should be stocked at each stage in
a supply chain? How much inventory should be held as raw materials, semi finished, or
finished goods?
The primary purpose of inventory is to act as a buffer against uncertainty in the supply
chain.

3. Location
This driver addressing these questions: Where should facilities for production and
inventory storage be located? Where are the most cost efficient locations for production
and for storage of inventory? Should existing facilities be used or new ones built?
Once these decisions are made they determine the possible paths available for product to
flow through for delivery to the final consumer.

4. Transportation
This driver addressing these questions: How should inventory be moved from one supply
chain location to another? Air freight and truck delivery are generally fast and reliable but
they are expensive. Shipping by sea or rail is much less expensive but usually involves
longer transit times and more uncertainty.

5. Information
This driver addressing these questions: How much data should be collected and how
much information should be shared?

Timely and accurate information holds the promise of better coordination and better
decision making. With good information, people can make effective decisions about what
to produce and how much, about where to locate inventory and how best to transport it.

GET FAMILIAR WITH TOP 10 TERMS, DEFINITIONS AND TERMINOLOGY


IN SCM

Master Demand Schedule - MDS

The MDS is a consolidation of demand by product and time bucket

Master Production Schedule- MPS

The MPS is a statement of supply required to meet the demand for the items contained in
the MDS. The master production schedule defines the anticipated build schedule for all
products. The master production schedule also provides the basis for order promising
(ATP) function

Material Requirements Plan-MRP

The Material requirements planning (MRP) calculates net requirements from gross
requirements by evaluating:

 The master schedule


 Bills of material
 Scheduled receipts
 On-hand inventory balances
 Lead times
 Order modifiers

Advanced Supply Chain Plan- ASCP

Constrained Based and optimized version of MRP

Planned Order

Automatically suggested action from planning engine

Consumption

The process of "relieving" the forecast to prevent double counting of demand

Drop Ship

Having an order ship directly from the vendor to the customer without physically being in
your inventory.

Vendor Managed Inventory- VMI

The process of giving the vendor the authority and visibility to determine what your
inventory should be

Customer Owned Inventory- COI

Where you are managing the customers inventory on your premises and supply as
required

Work Order/Sales Order

The request that you received from the customer for fulfilling there demand.

SIMPLE PLANNING CYCLE WITHIN AN ORGANIZATION

A typical planning cycle would start by loading the sales orders, forecast and other
demand such internal orders into the master demand schedule (MDS). That demand
statement would then be used as the schedule that drives the Master Production Schedule
(MPS) . Take a note in regular MRP implementations the MPS is used as the schedule for
ATP. Once the MPS is reviewed and updated is used as the schedule to drive the MRP
process. The result of the MRP process is planned orders and exception messages. When
released from MRP the planned orders for "buy" items become requisitions or purchase
orders in the purchasing module and the "make" items become discrete jobs in the Work
In Process Module. Once the finished
goods are received into inventory it is
shipped to satisfy customer orders.

Scenario I :Sales Order - Forecast Planning Cycle

This is the scenario where normally we are building to stock and satisfying sales order
demand from stock. Here you will see the difference as planned orders are released to
become purchase requisitions for components and work orders for sub assemblies and
finished goods. The finished goods are then shipped to satisfy the sales orders.

Scenario II : Planning - Procurement Cycle

In the Planning-Procurement cycle we normally start where the first part of the planning
cycle is complete and we have a planned order for a buy item from MRP. The planned
order is released and becomes a requisition or purchase order in the purchasing module.
A purchase order is then created from the requisition and sent to the vendor. The vendor
would supply the materials. The materials would be received into inventory and the
purchase order would be closed.

Scenario III :Planning - Drop Ship Cycle

In the Drop Ship cycle the process is as follows:

 A sales order is received from the customer.


 After the sales order is entered a process is run that creates a purchase order that
matches the sales orders
 The item, quantity and required date information on purchase order matches that
information on the sales order.
 The ship to address on the purchase order is the ship to address of the customer.
 The vendor ships the product directly to your customer. Once the vendor ships the
product you receive" the purchase order and that creates the shipping transaction
to satisfy the sales order.
 Matching accounting transactions complete the process

You can also see technical details for drop ship cycle in my earlier post.

Scenario IV :Planning - WIP Cycle


In the Work In Process cycle after the planning cycle is complete a planned order is
released to create a discrete job. Material/components is issued the job or back flushed
from inventory. The job is completed from Work In Process to Inventory.

Scenario V : Planning - Outside Processing Cycle

With Outside Processing you could be buying a service, an item or capacity from an
outside vendor. The setup for each of these scenarios will be described in the training
sessions to follow, however they all follow a similar process. A routing with an outside
processing operation is setup.

After the planning cycle is complete a planned order is released to create a discrete job.
Once the Discrete job is moved to a outside processing operation, a purchase requisition
is triggered. The requisition is imported to Purchasing and a purchase order is created.
The details of the discrete job such as job number, assembly number and quantity is tied
to the purchase order. The purchase order is sent to the vendor. When the purchase order
is received its destination will be shop floor and the assembly will be returned to the next
operation on the work order.

This make an end of this discussion. In Next post we will see what are the different
subsystem SCM will have and what are the modules which comes under SCM
Implementation. Any comment is welcome

Posted in EBS Suite, Functional, Oracle Manufacturing | 14 Comments »


Understanding Global
Accounting Engine - Dual
posting, Tables, Reports
Posted on November 10th, 2007 by Sanjit Anand |
 Print This Post |  Email This Post

Continuing my last post for AX , here is some more


information for Global accounting Engine's Dual
posting and Reporting need. Lets start with Dual
posting.

Global Accounting Engine (AX) Dual Posting

The Global Accounting Engine's dual posting functionality allow simultaneous posting
into two sets of books (a main and a secondary sets of books).The AX Dual posting (or
multiple posting) functionality lets you meet reporting and accounting requirements when
you have multiple sets of books with different charts of accounts, calendars, and rules
sets.

 Control Accounts
The Global Accounting Engine automatically creates detailed balances for control
accounts. The balances are calculated for each account with the control account
status by period and third party when you run a subledger report. Control accounts
are printed on summary and detail balance reports provided by the Global
Accounting Engine.
 Documents Sequencing
A document sequence uniquely numbers documents generated by an Oracle
Applications product. Using Oracle Applications, you initiate a transaction by
entering data through a form and generating a document, for example, an invoice.
Document sequences can provide proof of completeness. For example, document
sequences can be used to account for every transaction, even transactions that fail.

Document sequences can also provide an audit trail. For example, a document sequence
can provide an audit trail from the general ledger into the subsidiary ledger, and to the
document that originally affected the account balance.

Table Details

These are the additional tables which keeps the events data.

 AX_SETUP_GLOBAL
 AX_SETUP_POSTING_BOOKS
 AX_TRANS_PROGRAMS
 AX_EVENTS
 AX_DOCUMENT_STATUSES
 AX_SLE_HEADERS
 AX_SLE_LINES
 AX_BALANCES
 GL_INTERFACE
 GL_JE_LINES

AX Reporting

Below is a list of the most important AX Reports:

 The Daily Journal Book - Line Descriptions report displays fiscal year totals for
specified sequences. For both manual and imported journals in General Ledger,
the report shows the General Ledger accounting sequence number assigned at the
time of posting, instead of the General Ledger document sequence number.
 The Daily Journal Book - Header Descriptions report is sorted by sequence
name, General Ledger date, and accounting sequence number within the range of
requested balancing segments. The report provides totals for the range of
balancing segments requested, but not subtotals for each balancing segment.
 The Final Daily Journal Book - Header Descriptions report allow the review of
all accounting entries for your set of books by sequence name and period.
 The Supplier/Customer Balance by Account/Accounting Flexfield report
allows reviewing information about balances and period activities by account and
supplier/customer for one or more accounting periods. This report lets you justify
your balances in General Ledger, Payables, and Receivables.

Limitations of AX

 It has been designed based on primary transactions in Local GAAP.


 Its needs same calendar in primary and secondary set of books
 The other limitation is that no user access to account transformation rules that
mean very limited functionality.
 Intensive setup and maintenance, that makes a technical difficulty.
 Separate release and patch sets. This support issue is yet another limitation.
 Non-Standard as it is replaced by GL posting process,separate additional tables.
 Not Complete as only limited to few like AP, AR and in some case France can
use INVENTORY as sub-ledger modules

Posted in Functional, Oracle General Ledger, Oracle Product | 2 Comments »

Understanding Global Accounting Engine ( Product


AX)
Posted on November 9th, 2007 by Sanjit Anand |  Print This Post |  Email This Post

Why is the Global Accounting Engine needed?

The Global Accounting Engine is needed for European foreign subsidiaries as they are
required to do reporting in foreign countries.

The Global Accounting Engine produces European reports not available in the standard
accounting applications.

It is Legal compliance tool for some international accounting and audit requirements.

 Accounting transformation for inventory/purchasing


 Audit Trail:
o adds required sub-transactions (cash reversals,adjustments, and others)
o additional GL sequences across AR/AP
o Control accounts for sub-ledger-GL reconciliation

What is functionality of the Global Accounting Engine ?

The Global Accounting Engine provides you with features to satisfy the following basic
business needs. You can:

1. Comply with accounting regulations of any country. Some accounting entries are
legal in one country but not in another.
2. The Global Accounting Engine lets you choose the right accounting schemes for
your country.
3. Define accounting rules per set of books.
4. Post different accounting rules to different sets of books.
5. Generate different accounting entries from the same business transaction into
different sets of books.
6. Perform synchronous multiple set-of-book accounting. The multiple set-of-book
accounting is synchronous because it ensures that a Business transaction is either
posted in all related set of books or is not posted in any set of books.
7. Comply with legal and fiscal audit trail requirements.
8. Store all accounting entries in the same structure and format for all applications.
An accounting entry always consists of a header and two or more accounting
entry lines. The Global Accounting Engine uses this information to provide
accurate reconciliation reports in applications such as Payables and Receivables.
9. Reconcile your subledger accounting system with General Ledger. The Global
Accounting Engine provides additional reports such as daily journal reports.
Reports are used when a company needs to match the amounts in the subledgers
such as Payables, Receivables, and General Ledger.
10. Define journals rather than using hard-coded categories. These journals are
numbered sequentially to comply with legal requirements.
11. Assign sequential numbers to the defined journals across applications.
12. Each accounting entry has a unique identifier as well as other header information.
This accounting number is the primary key for your accounting lines. You can use
the same numbering in applications such as Payables and Receivables.
13. Audit and control period and fiscal year closing procedures.
14. The Global Accounting Engine provides a new mechanism for closing periods
that ensures a complete and gapless numbering is generated as required in some
countries.
15. Create journal entries and detailed balances for control accounts.
16. Control accounts are General Ledger accounts that you can access only from
subledger applications such as Payables and Receivables. The balances are
calculated for each account with the control account status and third party period
and identification. A third party can be a supplier in Payables or a customer in
Receivables. The Global Accounting Engine uses these structures to provide legal
balance reports that are the same across all applications.
17. Secure subledger accounting entries. You can either secure accounts individually
or secure the procedure to create accounting entries. To secure subledger
accounting entries, use control accounts to define accounts. A control account is
only accessible from the subledgers. Securing your entries ensures a valid audit
trail is on paper. The secured posting makes sure that you are only given access to
a range of steps involved in the posting cycle.
18. Print reports that correspond to country-specific accounting practices.
19. Print legal subledger accounting reports .

Which are potentially implementation using global accounting Engine(AX)?

AX is mainly used to comply with the European legislations mainly.Any European


Implementation which is operating in more countries will have options to use.

Is Global Accounting Engine mandatory for Italy, France, Greece or Portugal?

Oracle has suggested for 6 countries (France, Italy,Greece, Portugal, Spain, Austria)

 AX has replaced localizations for France, Italy.


 AX provides legal report formats for specified countries.

How Global Accounting Engine works:

Operationally, the Global Accounting Engine changes the way in which transactions are
posted from the sub-ledger to the General Ledger. For transactions from AR, AP, the
standard GL Interface is switched off and postings are done via the Accounting Engine
translator. A sub-ledger accounting entry is created for each Event, which represents a
change in state of a document, e.g. an Invoice. Accounting Rules are used to translate
these events and to create entries in the AX tables. A report is run to create the sub-ledger
balances in AX by Third Party and accounting period. After AX translation is run, the
accounting entries are transferred to the General Ledger via the normal GL interface
tables.
The big difference in using AX is that instead of posting transactions direct to the GL
Interface table, they are transferred via the AX Engine where they are translated before
being transferred to the General Ledger. This can be shown as:

This ends of Global Accounting Engine(Product AX) discussion, will see some more
information on dual posting and some important technical details in next post. Till than
keep watching this space

Posted in Functional, Oracle General Ledger, Oracle Product | 5 Comments »

Deep Drive : Customer Interface in AR


Posted on November 8th, 2007 by Sanjit Anand |  Print This Post |  Email This Post

Lot of people requested some more information for customer import. So I decided to
clubbed together, so here to go:

Lets start with Customer ..why it is important in your business.

As per encyclopedia the customer is defined as:


"A customer is someone who makes use of or receives the products or services of an
individual or organization." Its means it is one who become a entity in your business
world, irrespective of your line of business. If you are manufacturer the customer is one
to whom you provide the product and get the money or services for which your get paid.

Time to time the customer definition has been changed and now in today economy it can
be redefined as:

A customer..may include users, consumers, demanders, commanders, and requestors.


Any person or entity who interacts directly or indirectly with any business system, thus it
can be a client within internal departments, a supplier from the procurement process, an
employee, or someone who is ringing up the cash register.

What information is important to keep in Business?

Typical information required for any customer is address, contact, bank , profile,class.
Oracle standard form does have more than 8 tabs which hold most of the information. A
typical flow of customer setup in Oracle is as;

Fig: Standard Setup process for customer


Fig : Entity Model for Customer Setup

What is Customer Interface ?

Customer Interface is a oracle seeded tool that is used to import and validate current or
historical customer information from other systems into Receivables. Once customer
information is imported into the system, you can use Customer Interface to import
additional data for that customer (such as additional contacts or addresses) and to update
existing information. This is yet another options to enter Customer information other than
manually update and enter new information using the Customer windows.

Customer Interface and Customer in pre 11i and 11i

If you are coming from some old version, if have been noticed few things has been
changed:
 Customer tables have changed, to move customer in TCA model, it means
o The HZ tables
o The role of Parties
 Note:Added in order to track prospective customers Due to CRM
integration and adds “benefit” of having all customer
“groups” stored in one location.

11i tables used by Customer Interface

 Pre 11i versions used only 12 tables


 11i version uses 23+ tables
 Only 4 of those tables remain the same
 Main Customer tables have changed
 Revised look and feel to Customer screen, too

The Change

Here is significant changes has been noticed from pre 11i and r11i version.

FIND screen

in 11i Find window automatically appears while calling customer screen.


most important , the Match Results window now is included in 11i, and it represnt
multiple lines due to Parties and Accounts:

Customer screen
Customer Tables

 Previous Tables that have changed


o RA_CUSTOMERS
o RA_ADDRESSES
o RA_SITE_USES
o RA_PHONES
o RA_CONTACTS
o AR_CUSTOMER_PROFILES
o RA_CUSTOMER_RELATIONSHIPS
o AR_CUSTOMER_PROFILE_AMOUNTS
 Tables that remain the same
o RA_CUST_RECEIPT_METHODS
o AP_BANK_BRANCHES
o AP_BANK_ACCOUNTS
o AP_BANK_ACCOUNT_USES

TCA model - how its drived

 RA_CUSTOMERS, previously the main customer table is now a view.This


become view which consists of data in HZ_CUST_ACCOUNTS and
HZ_PARTIES tables.
 New Customer Tables - also known as HZ Tables
 The new HZ Customer Tables have tables for Customer Accounts and Parties

Customer Table Vs HZ Tables

Here is summarize information for both for them:


Considering Customer as Parties

 HZ_PARTIES stores information about organizations, groups, and people.


 If a party becomes a customer then the information for the customer is stored in
the HZ_CUST_ACCOUNTS table.
 A Party record in the Parties table can have multiple customer account records in
the Customer Accounts table.
 One row is created in HZ_PARTIES for every customer record that is imported
through the Customer Interface.
 CRM uses the customer module making it a requirement for all customers to have
a party id and customer id.
Customer Interface : The Flow:

The following diagram shows how customer information is imported into the customer
tables.

11i Customer Interface Vs Oracle Base table

Here is summarize information for interface Vs base table. Once Customer Import get
completed successfully , the data moved to these tables:
Please take a note, the bank model has been changed in r12, this will have till 11.5.10.2.
If you are looking for R12 , refer to trm guide.

Where to start for Customer Interface

1.The first steps would be your is preparing Receivables setup activity

 Be sure to set up new data in Receivables that the Customer Interface should
import. For example:
o AutoCash Rule Sets
o AutoInvoice Grouping Rules
o Collectors
o Customer Addresses
o Customer Bank Information
o Customer Exemptions
o Customer Profile Classes
o Demand Classes
o Dunning Letter Sets
o Freight Carriers
o Payment Methods
o Payment Terms
o Statement Cycles
o Tax Codes
 Be sure to also set up Lookups in Receivables that the Customer Interface should
import. These are the lookups:
o Countries
o Site Use Codes
o Credit Ratings
o Risk Codes
o Account Statuses
o Communication Types
o Customer Classes

2. Next is to map the Interface Tables

 RA_CUSTOMER_INTERFACE_ALL
o ORIG_SYSTEM_CUSTOMER_REF
o CUSTOMER_NAME
o CUSTOMER_STATUS
o INSERT_UPDATE_FLAG
o CUSTOMER_NUMBER
o ORIG_SYSTEM_ADDRESS_REF
o PRIMARY_SITE_USE_FLAG
o SITE_USE_CODE
o ADDRESS1
o COUNTRY
o LOCATION
 RA_CUSTOMER_PROFILES_INT_ALL
o CUSTOMER_PROFILE_CLASS_NAME
o ORIG_SYSTEM_CUSTOMER_REF
o INSERT_UPDATE_FLAG
o CREDIT_HOLD
o ORIG_SYSTEM_ADDRESS_REF
 RA_CONTACT_PHONES_INT_ALL
o ORIG_SYSTEM_CUSTOMER_REF
o ORIG_SYSTEM_TELEPHONE_REF
o TELEPHONE
o TELEPHONE_TYPE
o INSERT_UPDATE_FLAG
o ORIG_SYSTEM_ADDRESS_REF
o ORIG_SYSTEM_CONTACT_REF
o CONTACT_LAST_NAME
 RA_BANKS_INTERFACE
o ORIG_SYSTEM_CUSTOMER_REF
o PRIMARY_FLAG
o START_DATE
o BANK_ACCOUNT_NAME
oBANK_ACCOUNT_CURRENCY_CODE
oBANK_ACCOUNT_NUM
oBANK_BRANCH_NAME
oORIG_SYSTEM_ADDRESS_REF
 RA_CUST_PAY_METHOD_INTERFACE
o ORIG_SYSTEM_CUSTOMER_REF
o START_DATE
o PAYMENT_METHOD_NAME
o PRIMARY_FLAG
o ORIG_SYSTEM_ADDRESS_REF

3. RUN the Import Program

 Run Import after AR Customer Interface tables have been populated


 Program will validate the data in the interface table before creating records in
Receivables
 Run the Customer Interface process through the Submit Request window
 But, a separate navigational path is also provided
Interfaces -> Customer
 Check output file for errors

 Make corrections and repeat import process

Not Surprise , if you get these....Common Errors..very common


 a3: Bill_To_Orig_Address_Ref is not a valid bill-to address
o Verify the Bill-To address reference is valid. Keep in mind that when
using the bill-to reference with a ship-to address record... the bill-to must
already exist in Receivables.
o Note: Ran into this issue. Try running bill-to records through the interface
first and ship-to records as second batch - this will resolve the error. Do
not Interface with both in the same batch.
 a1:Customer record for insert must have validated profile record defined
o New customers and each Bill-To record must have a customer level
profile in the RA_CUSTOMER_PROFILES_INT_ALL table.
 a8: Conflicting profile classes specified for this customer/site
o Profile classes for customer and bill-to must be the same. Sites cannot
have a profile class different from the customer.
 J1: Site_USE_CODE is not updateable.
 J3: LOCATION is not updateable.
 J2: PRIMARY_SITE_USE_FLAG is not updateable.
o Keep in mind that site_use_code, primary_use_flag, and location may not
be updateable through the Customer Interface
 A3: Customer reference for insert is already defined.
 A5: Customer Number already assigned to a different customer.
o Customer reference and Customer number are values that must be unique.
Verify the customer reference or customer number does not already exist
for another customer.

Tips and Technique

1. Check out some of the Profile Options hitting Customer Import

 HZ: Generate Party Number


o This the profile option can be updated at Site, Application, Responsibility
and User levels.This profile option determines whether party number
should be auto-generated. If value is 'No',means party number must be
passed in by the user else if 'Yes' or if the value is not set, party number
will be auto-generated.
 HZ: Generate Party Site Number
o same as above for party site number set at all leval.
 HZ: Internal Party
o This profile option is used as a part of CRM setup. This must be set if
CRM is installed. It is used for data migration purpose.
 HZ: Generate Contact Number
o This profile option determines whether contact number should be auto-
generated.If the value is 'No', contact number must be passed in by the
user. If the value is 'Yes' or if the value is not set, contact number will be
auto-generated.

2. Automatic sequence number for customer number


Many times AR department is not like oracle seeded number which start by default
1000.Options are there:

From R11 and 11i, you cannot change the sequence via the forms and therefore any
change that you make to the sequence would have to be
through SQLPlus and that would not be supported.

To set the sequence number

Step 1. In the Application Developer responsibility,


Menu: Application=>Database=>Sequence
Step 2. Query on sequence RA_CUSTOMERS_NUM_S
This will bring up the sequence for the customer numbers and you can enter the number
that you want it to start from.

To set automatic numbering for customer after setting the sequence:

Step 1. Menu:=>System=>System Options


Step 2. Region - Invoicing and Customers
Step 3. Check the box for Automatic Customer Numbering.

3. When doing Migration from other system, adviced to use TRIM Function

 When loading interface tables remove all trailing spaces from import data.
Example: LTRIM(RTRIM(customer_name))

4.If importing large number of customers, run in smaller batches instead of all at
once.

Oracle benchmark is about 10,000 records per batch is ideal, it is suggested to keep the
batch size small.

5.When rolling out in Multi-Org , then you must populate the org_IDs in the
interface tables and run the customer interface for each organization set-up
responsiblity.

Posted in Functional, Oracle Receivable, Technical | 45 Comments »

FSG - What Is It?


Posted on November 7th, 2007 by Sanjit Anand |  Print This Post |  Email This Post

Do you know many financial reports have been written using Oracle's Financial
Statement Generator in Oracle EBS since very begining. This is one of robust tool that
allows us to create reports which meet user defined criteria. Lets take quick overview of
FSG and its usage.

What Are Oracle FSGs?

FSG is short form of Financial Statement Generator.

In brief , is a powerful reporting engine that supports interchangeable report objects,


server-based processing for high performance, and report scheduling for efficient use of
system resources.

A user defined report that allows for the rollup of GL Account Balances (i.e.
combinations of accounting segments –GL Code Combinations) into logical groupings
for reporting

The FSG allows you to?

 This is End user tool , which enables end business user for financial reporting
without any programming
 Most of these reports are oriented toward financial statements
 These are very very easy to use
 Transfer accounting information to a popular spreadsheet if you prefer to use your
personal computer for analysis and planning.
 Report on both translated and entered foreign currency amounts.
 Access a wide variety of standard management and accounting reports for the
detail information you need, including chart of account listings, journals, general
ledgers and trial balances.
 Define the complex financial statements you need to analyse your
business,including responsibility reports for business units, profit centres and cost
centers.
 The good things is that all these reports run through concurrent manager
 Most important there is no additional setup required
 We can design our reports to meet your business needs
 Design to print directly to MS Excel
 Schedule reports to run directly from the application

“You can’t do what with FSG?”

 Limited flexibility in formatting


 Access GL balances only - no details
 Minimal security

What are the reports which is based out of FSG Reports

 Financials-P&L, Bal Sht, Cash Flow, Rev/Exp detail, cost center detail
 Auditor Schedules - trial balance mapped to financial stmts
 Income tax workpapers
 Partial trial balances
 Income Statement

What are the FSG Component or Structure

 Row Sets
 Column Sets
 Content Sets
 Row Orders
 Display Sets
 Reports
 Report Sets

Row Set

 Description to appear on left hand side


 Define accounting flexfield ranges or summary accounts here
 Define row calculation - total, etc.

What are the Column Set

1. Column Sets typically define the format and content of the columns in an FSG
report
2. Oracle provides seeded column sets, or you can build your own

Column Set Attributes


-The commonly assumed attributes for a column set are:
-Time period (PTD, QTD, YTD, etc)
-Account type (Actual, Budget or Encumbrance)
-These two elements are defined by an Amount Type

What is Column Set: Proforma

Proforma is an accounting term that refers to an annual fiscal amount that is comprised of
actual amounts and budget amounts together.

What is a Content Set?

 Content Sets are used to override row/column account assignments and display
types to create multiple variations of existing reports
 You can generate many similar reports in a single run by using content sets
 Use to “expand” a range to give multiple values on one report OR separate
reports for each value in the range
 Override applied separately to each segment in flexfield
What is a Row Order?

 Row Orders are used to control how detail rows are displayed and/or sorted on a
report
 Used with Row Set expand and Content Sets
 Allow user to expand detail of a row
 Can display
o Segment value
o Segment description
o Both
 List alphabetically or numerically

Report Display Group

 Grouping of rows or columns i.e. “hide column 20”


 Specify a sequence number range from your row set or column set i.e. from 20 to
20
 Used in your display set

Report Display Set

 Assign Display Group(s) to your Set i.e. “display column 1, 3, 4”


 Can assign multiple row and/or column groups to one set i.e. “hide column
20”
 For each assignment, can specify whether to display the values on the report
(Display = Yes) or (Display = No)

The Rule of Thumb for FSG

One FSG = One row set + one column set + one content set

Underline technology of FSG?? any guess , C, SQL, Java...

Important to know FSG reports are created from a program written in 'C' code, not from
Oracle Reports, as is the case with standard reports. Many modules and tables are used to
create reports based on the definition and component of a particular FSG.

What is FSG (Financial Statement Generator) Controller Program?

The FSG (Financial Statement Generator) Controller runs when you generate an FSG
with a content set 'Type' set to Parallel. The FSG Controller kicks off the sub requests for
the FSG's that are created with the content set.

What is in Background–The FSG Query


As these report are developed in C, it's impossible to break the code, but if you do some
trace on you will find , the code is based out of GL balances table, addition to the some
other tables which keeps the structure on the front end.

here is the hidden query:

SELECT
nvl(bal.PERIOD_TYPE, ''),
nvl(bal.PERIOD_YEAR, -1),
bal.PERIOD_NAME,
nvl(bal.PERIOD_NUM, -1),
nvl(bal.PERIOD_NUM, -1),
bal.ACTUAL_FLAG,
decode(cc.TEMPLATE_ID, NULL, 'N', 'Y'),
nvl(bal.BUDGET_VERSION_ID, -1),
nvl(bal.ENCUMBRANCE_TYPE_ID, -1),
bal.CURRENCY_CODE,
bal.SET_OF_BOOKS_ID,
nvl(bal.TRANSLATED_FLAG, ''),
nvl(bal.PERIOD_NET_DR, 0) -nvl(bal.PERIOD_NET_CR, 0),
nvl(bal.PERIOD_NET_DR, 0),
nvl(bal.PERIOD_NET_CR, 0),
nvl(bal.QUARTER_TO_DATE_DR,0)-nvl(bal.QUARTER_TO_DATE_CR, 0),
nvl(bal.QUARTER_TO_DATE_DR, 0),
nvl(bal.QUARTER_TO_DATE_CR, 0),
nvl(bal.BEGIN_BALANCE_DR, 0) -nvl(bal.BEGIN_BALANCE_CR, 0),
nvl(bal.BEGIN_BALANCE_DR, 0),
nvl(bal.BEGIN_BALANCE_CR, 0),
nvl(bal.PROJECT_TO_DATE_DR, 0) -nvl(bal.PROJECT_TO_DATE_CR, 0),
nvl(bal.PROJECT_TO_DATE_DR, 0),
nvl(bal.PROJECT_TO_DATE_CR, 0) ,
nvl(SEGMENT1,''),
nvl(SEGMENT2,''),
nvl(SEGMENT3,''),
nvl(SEGMENT4,''),
nvl(SEGMENT5,''),nvl(SEGMENT6,''),nvl(SEGMENT7,'')
FROM GL_BALANCES bal,
GL_CODE_COMBINATIONS cc
WHERE bal.CODE_COMBINATION_ID= cc.CODE_COMBINATION_ID
AND cc.CHART_OF_ACCOUNTS_ID= 118
AND bal.SET_OF_BOOKS_ID= 1
AND nvl(bal.TRANSLATED_FLAG, 'x')in('Y','N','x')
AND cc.TEMPLATE_IDis NULL
AND ( (nvl(SEGMENT3,'') >= '4001'
AND nvl(SEGMENT3,'') <= '5999')OR (nvl(SEGMENT3,'') >= '6020' AND
nvl(SEGMENT3,'') <= '6370') OR (nvl(SEGMENT3,'') >= '6390'
AND nvl(SEGMENT3,'') <= '7250')OR (nvl(SEGMENT3,'') >= '7510' AND
nvl(SEGMENT3,'') <= '9100') OR (nvl(SEGMENT3, '') in ('9310','9320')))AND
( (nvl(SEGMENT2,'') >= '000'
AND nvl(SEGMENT2,'') <= '01'))
AND((bal.period_name in ('Jun-07','Jun-07')
AND ((nvl(bal.period_name,'') = 'Jun-07'
AND((bal.ACTUAL_FLAG= 'B'
AND bal.BUDGET_VERSION_ID= 1111
AND(bal.PERIOD_NET_DR!= 0 or bal.PERIOD_NET_CR!=
0))OR((bal.ACTUAL_FLAG= 'B'
AND bal.BUDGET_VERSION_ID= 1111)OR((bal.ACTUAL_FLAG= 'A')) )))
OR(nvl(bal.period_name,'') = 'Jun-07'
AND((bal.ACTUAL_FLAG= 'A')
OR
( (bal.ACTUAL_FLAG = 'A'
AND (bal.PERIOD_NET_DR != 0 or
bal.PERIOD_NET_CR != 0))))))
) ) < /P > < /P >

The data is loaded into memory, and then sorted according to report format

How do you define a FSG Report?

 Reports are created by specifying a combination of report components (ie Row


Set, Column Set, etc). Typically, values specified when defining a report override
values specified at the individual component level
 The value entered in the Title field will appear at the top of the report

Where to run FSG Reports:

In Oracle EBS Running FSG Reports can be achieved from 3 different ways:

 Run Financial Reports form


 Concurrent Manager
o The name of the request is "Program -Run Financial Statement Generator"
 ADI’s Request Center

Few more to know

Online Report Requests


You can request FSG reports on-line using only a few keystrokes. For example, you can
choose from a list of report sets or predefined reports that Oracle General Ledger displays
in a pop-up window. Or, you can create an ad hoc report by selecting from a list of
predefined report components.
Exception Reporting
The Financial Statement Generator Exception Reporting feature allows you to highlight
information requiring special attention. You can define the exception criteria and how
you want to flag the rows in your report that you want noticed. This makes it easy to
choose to display only the exception rows in your reports.

Responsibility Reporting
It is possible to construct one report to serve the summary reporting needs of multiple
managers. With Responsibility Reporting you can ensure that each level of management
spends time reviewing only the necessary level of detail.

Posted in Finance, Functional, Oracle General Ledger | 3 Comments »

Page 2 of 4«1234»

« Previous Entries Next Entries »

© 2006-2008 OracleApps Epicenter.

You might also like