statistics collection enhancements
DESCRIPTION
Statistics CollectionTRANSCRIPT
Statistics Collection Enhancements
Muhammad Rafi Aamiri Madani on Monday, June 30, 2008
Pending Statistics
In previous database versions, new optimizer statistics were automatically published when they were gathered. In
11g this is still the default action, but you now have the option of keeping the newly gathered statistics in a pending
state until you choose to publish them.
The DBMS_STATS.GET_PREFS function allows you to check 'PUBLISH' attribute to see if statistics are
automatically published. The default value of TRUE means they are automatically published, while FALSE indicates
they are held in a pending state.
SQL> SELECT DBMS_STATS.get_prefs('PUBLISH') FROM dual;
DBMS_STATS.GET_PREFS('PUBLISH')
-------------------------------------------
TRUE
1 row selected.
The 'PUBLISH' attribute is reset using the DBMS_STATS.SET_TABLE_PREFS procedure.
-- New statistics for SCOTT.EMP are kept in a pending state.
EXEC DBMS_STATS.set_table_prefs('SCOTT', 'EMP', 'PUBLISH', 'false');
-- New statistics for SCOTT.EMP are published immediately.
EXEC DBMS_STATS.set_table_prefs('SCOTT', 'EMP', 'PUBLISH', 'true');
Pending statistics are visible using the
[DBAALLUSER]_TAB_PENDING_STATS and
[DBAALLUSER]_IND_PENDING_STATS views.
The DBMS_STATS package allows you to publish or delete pending statistics, as show below.
-- Publish all pending statistics.
EXEC DBMS_STATS.publish_pending_stats(NULL, NULL);
-- Publish pending statistics for a specific object.
EXEC DBMS_STATS.publish_pending_stats('SCOTT','EMP');
-- Delete pending statistics for a specific object.
EXEC DBMS_STATS.delete_pending_stats('SCOTT','EMP');
The optimizer is capable of using pending statistics if the OPTIMIZER_PENDING_STATISTICS initialization
parameter, which defaults to FALSE, is set to TRUE. Setting this parameter to TRUE at session level allows you to
test the impact of pending statistics before publishing them.
ALTER SESSION SET OPTIMIZER_PENDING_STATISTICS=TRUE;
Pending statistics can be transfered between database by exporting this using the
DBMS_STATS.EXPORT_PENDING_STATS procedure.
Extended Statistics
Multi-Column StatisticsIndividual column statistics are fine for working out the selectivity of a specific column in a
where clause, but when the where clause includes multiple columns from the same table, the individual column
statistics provide no indication of the relationship between the columns. This makes working out the selectivity of the
column group very difficult.
Oracle uses workload analysis to generate column groups, but they can also be manipulated manually using the
DBMS_STATS package. The CREATE_EXTENDED_STATS procedure is use to explicitly create multi-column
statistics.
-- Create a columnn group based on EMP(JOB,DEPTNO).
DECLARE
l_cg_name VARCHAR2(30);
BEGIN
l_cg_name := DBMS_STATS.create_extended_stats(ownname => 'SCOTT',
tabname => 'EMP',
extension => '(JOB,DEPTNO)');
END;
/
PL/SQL procedure successfully completed.
The column group name is returned using the SHOW_EXTENDED_STATS_NAME function.
-- Display the name of the columnn group.
SELECT DBMS_STATS.show_extended_stats_name(ownname => 'SCOTT',
tabname => 'EMP',
extension =>'(JOB,DEPTNO)')AS cg_name
FROM dual;
CG_NAME
------------------------------
SYS_STU3VG629OEYG6FN0EKTGV_HQ6
1 row selected.
Manually created column groups can be deleted using the DROP_EXTENDED_STATS procedure.
-- Drop the columnn group.
BEGIN
dbms_stats.drop_extended_stats(ownname => 'SCOTT',
tabname => 'EMP',
extension => '(JOB,DEPTNO)');
END;
/
PL/SQL procedure successfully completed.
Setting the METHOD_OPT parameter to "FOR ALL COLUMNS SIZE AUTO" allows the GATHER_% procedures to
gather statistics on all existing column groups for the specified object.
BEGIN
DBMS_STATS.gather_table_stats(
'SCOTT',
'EMP',
method_opt => 'for all columns size auto');
END;
/
Alternatively, set the METHOD_OPT parameter to "FOR COLUMNS (column-list)" and the group will automatically be
created during the statistics gathering.
BEGIN
DBMS_STATS.gather_table_stats(
'SCOTT',
'EMP',
method_opt => 'for columns (job,mgr)');
END;
/
The [DBAALLUSER]_STAT_EXTENSIONS views display information about the multi-column statistics.
COLUMN extension FORMAT A30
SELECT extension_name, extension
FROM dba_stat_extensions
WHERE table_name = 'EMP';
EXTENSION_NAME EXTENSION
------------------------------ ------------------------------
SYS_STU3VG629OEYG6FN0EKTGV_HQ6 ("JOB","DEPTNO")
SYS_STULPA1A#B6YL4KQ59DQO3OADQ ("JOB","MGR")
2 rows selected.
COLUMN col_group FORMAT A30
SELECT e.extension col_group,
t.num_distinct,
t.histogram
FROM dba_stat_extensions e
JOIN dba_tab_col_statistics t
ON e.extension_name=t.column_name
AND t.table_name = 'EMP';
COL_GROUP NUM_DISTINCT HISTOGRAM
------------------------------ ------------ ---------------
("JOB","DEPTNO") 9 FREQUENCY
("JOB","MGR") 8 FREQUENCY
2 rows selected.
Expression Statistics
The optimizer has no idea what the affect of applying a function to column has on the selectivity of the column. Using
a similar method to multi-column statistics, we can gather expression statistics to provide more information.
Expression statistics can be created explicitly using the CREATE_EXTENDED_STATS procedure, or implicitly by
specifying the expression in the METHOD_OPT parameter of the GATHER_% procedures when gathering statistics.
DECLARE
l_cg_name VARCHAR2(30);
BEGIN
-- Explicitly created.
l_cg_name := DBMS_STATS.create_extended_stats(ownname => 'SCOTT',
tabname => 'EMP',
extension => '(LOWER(ENAME))');
-- Implicitly created.
DBMS_STATS.gather_table_stats(
'SCOTT',
'EMP',
method_opt => 'for columns (upper(ename))');
END;
/
Setting the METHOD_OPT parameter to "FOR ALL COLUMNS SIZE AUTO" allows the GATHER_% procedures to
gather existing expression statistics.
BEGIN
DBMS_STATS.gather_table_stats(
'SCOTT',
'EMP',
method_opt => 'for all columns size auto');
END;
/
The [DBAALLUSER]_STAT_EXTENSIONS views display information about the expression statistics, as well as the
multi-column statistics.
COLUMN extension FORMAT A30
SELECT extension_name, extension
FROM dba_stat_extensions
WHERE table_name = 'EMP';
EXTENSION_NAME EXTENSION
------------------------------ ------------------------------
SYS_STU3VG629OEYG6FN0EKTGV_HQ6 ("JOB","DEPTNO")
SYS_STULPA1A#B6YL4KQ59DQO3OADQ ("JOB","MGR")
SYS_STU2JLSDWQAFJHQST7$QK81_YB (LOWER("ENAME"))
SYS_STUOK75YSL165W#_X8GUYL0A1X (UPPER("ENAME"))
4 rows selected.
SQL>
COLUMN col_group FORMAT A30
SELECT e.extension col_group,
t.num_distinct,
t.histogram
FROM dba_stat_extensions e
JOIN dba_tab_col_statistics t ON e.extension_name=t.column_name
AND t.table_name = 'EMP';
COL_GROUP NUM_DISTINCT HISTOGRAM
------------------------------ ------------ ---------------
("JOB","DEPTNO") 9 NONE
("JOB","MGR") 8 NONE
(LOWER("ENAME")) 14 NONE
(UPPER("ENAME")) 14 NONE
4 rows selected.
Expression statistics are dropped using the DROP_EXTENDED_STATS procedure.
-- Drop the columnn group.
BEGIN
dbms_stats.drop_extended_stats(ownname => 'SCOTT',
tabname => 'EMP',
extension => '(UPPER(ENAME))');
END;
/
PL/SQL procedure successfully completed.
Enhanced Statistics Collection for Partitioned Objects
Oracle 11g includes improvements to statistics collection for partitioned objects so untouched partitions are not
rescanned. This significantly increases the speed of statistics collection on large tables where some of the partitions
contain static data. Where partition exchange load (PEL) is used to add data to the a table, only the newly added
partition must be scanned to update the global statistics.
Posted by Muhammad Rafi Aamiri Madani
Reactions:
Email This BlogThis! Share to Twitter Share to Facebook
Labels : Oracle 11g
Diagnoise Forms Using Trace
Muhammad Rafi Aamiri Madani on Saturday, February 7, 2009
Some times we need to diagnose the issue or error coming in forms. For such situation we need to get more
information about the issue we are facing in forms. One of the best way to get such information is using tracing.
Many types of tracing are available in forms. We will discuss couple of methods for enabling the tracing and see how
that can help us in diagnosing the issue.
Enabling SQL Tracing
First we see how to enable a normal SQL tracing. In my case I have a forms where I am entering few values and then
saving the form. This will have some insert and updates command in the backend which will get executed when we
save the form. SQL tracing is used to track those DML queries to debug the issue. When we open the form we can
see on the menu option
Help -> Diagnostic -> Trace ->
Here we have many options available (default is ‘No Trace’). We can enable tracing by selecing on of the options
from here. ‘Regular Trace’ gives the least information and ‘Trace with Binds and Waits’ (level 12) gives maximum
information. Be careful while enabling SQL trace with wait and binds as this will make the trace file huge.
Also we can start the tracing in the middle of forms sessions also. Example in my case I wanted to check the last
insert/update DML statements that gets fired when we save the form. So after we fill all the values in the fields, we
can start the tracing so that the initial select statement does not come in trace file.
When we enable the trace it will give the trace file location (This location will be the location of
USER_DUMP_DESTINATION parameter of database).
After you save the form you can stop tracing by selecting ‘No Trace’ again from
Help -> Diagnostic -> Trace -> No Trace
Use tkprof to covert trace file in readable format.
-bash-2.05b$ tkprof md9ys210_ora_20412_MFG.trcoutput = trace_sql.txt
TKPROF: Release 10.2.0.4.0 - Production on Mon Jul 28 23:54:31 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.
-bash-2.05b$
Enabling Forms Tracing
Another way for debugging is to enable tracing at forms level for a particular user. This method is also explained in
metalink note ID 373548.1. By default, it will trace errors only. To utilize the full flexibility of Forms Trace, the
record=forms parameter must be used in conjunction with the tracegroup parameter.
Applications Development has created several recommended levels of tracing, which are predefined in the file
$ORA_CONFIG_HOME/10.1.2/forms/server/ftrace.cfg
· light (0-71,192): Records user actions, error messages and form service events.
· medium (0-97,192,194,195): Includes events in the light tracegroup also captures built-in and user-exit events.
· full (0-98,100-199): Captures all information that is currently available through Forms Tracing.
· dbsql (32,64,98,100,101,136,137,192): All events related to the database and forms interaction with it
· network (64,32,128,129,131,130,132,133,134,192): All events related to communications between client tier and
Forms server.
In my case I am enabling the tracing for SQLs.
Please follow below steps to enable form level tracing.
1. Sign on to Oracle Applications as a user with the System Administrator responsibility.
2. Select the System Administrator responsibility.
3. Select the Profile -> System function (this will launch Forms).
4. Search for the Applications user and the profile option Forms Runtime Parameters.
5. Add the required parameters, using the syntax: record=forms tracegroup=dbsqlYou can use any other value also
for tracegroup depending on your requirement. Examples:
record=forms tracegroup=medium
Note the space between the parameter/value pairs.
6. Commit the changes and log out of Applications.
7. Restart the Forms OC4J group using either adformsctl.sh (servlet) or adformsrvctl.sh (socket).
8. Log in to Applications as the user whose Forms Runtime Parameters profile option was amended.
Before doing this, metalink note ID also mention to append “record=forms” at the end of ICX: Forms Launcher profile
for that user. Example
http://rafi.oracle.com:8080/forms/frmservlet?record=forms
But when I tried that I got following error.
FRM-90926: Duplicate Parameter on command line.
So I removed record=forms and I was able to generate the trace files without any issue. This may be some issue with
my instance.
Once you set the profile “Forms Runtime Parameters”, bounce the forms and try to accecss forms, it will generate a
trace file at the location defined by FORMS_TRACE_DIR. After you finish the navigation in form and exit, your trace
file will get created FORMS_TRACE_DIR location.
This file will be in binary format and cannot be read. You need to convert this into .txt or .html format using following
command
java -cp $ORACLE_HOME/forms/java/frmxlate.jar oracle.forms.diagnostics.Xlate datafile=forms_8842.trc
outputfile=forms_trace1.html outputclass=WriteOutHTML
Here,
datafile=forms_8842.trc is the name of trace file that got created due to activities on forms.
outputfile=forms_trace1.html is the name of output file that will get created. You can use html
or .txt outputclass=WriteOutHTML parameter decides if the output file should be HTML or TXT.
If you use just WriteOut then output file will be TXT.
If you use WriteOutHTML then output file will be HTML.
Posted by Muhammad Rafi Aamiri Madani
Tables of ADPATCH Utility
Muhammad Rafi Aamiri Madani on Tuesday, February 17, 2009
AD_APPL_TOPS
This table holds the various APPL-TOP’s in the Oracle Applications installation that have ever been patched.
AD_APPLIED_PATCHES
AD_APPLIED_PATCHES holds information about the “distinct” Oracle Applications patches that have been applied.
If 2 patches happen to have the same name but are different in content (eg. “merged” patches), then they are
considered distinct and this table will therefore hold 2 records.
AD_BUGS
AD_BUGS holds information about the various Oracle Applications bugs whose fixes have been applied (ie. patched)
in the Oracle Applications installation.
AD_PATCH_DRIVERS
This table holds information about the patch drivers that comprise a patch.
AD_FILE_VERSIONS
This table holds the various versions of Oracle Applications files (real files, not “pseudo-files”), that have ever been
patched or executed in the Oracle Applications installation.
AD_FILES
AD_FILES is the “files repository”. It contains information about the various files that have been patched in the Oracle
Applications installation. Some entries are “pseudo-files” and not real files, (eg. directories) in which case some of the
columns are not applicable and would then hold the value “DUMMY”
AD_PATCH_DRIVER_LANGS
NLS patches (or more specifically, NLS patch drivers) pertain to a language or multiple languages. This table holds
that language (or multiple languages).
AD_PATCH_DRIVER_MINIPKS
This table holds information about the various Mini Packs contained in a patch (driver)
AD_PATCH_RUN_BUG_ACTIONS
holds the various actions present in “applied” bug (fix).
If Autopatch determined not to apply a bug (fix), then this table will not hold any records for that “unapplied” bug fix.
AD_PATCH_RUN_BUG_ACTIONS
Even though a patch may have been applied on an Oracle Applications installation, some actions in some of its
included bugs (fixes) may not have got executed if the “Autopatch” utility determined that it was not necessary to
execute those actions. In such cases, EXECUTED_FLAG is set to N.
AD_PATCH_RUN_BUGS
This table holds information about the bugs fixed in a specific run of Autopatch.
AD_PATCH_RUN_BUGS holds information about the various bugs fixed in a specific run of Autopatch.
Even though a patch may have been applied on an Oracle Applications installation, some bugs (fixes) contained in it
may not get applied due to some reason. In such cases, the REASON_NOT_APPLIED column holds the reason.
AD_PATCH_RUNS
AD_PATCH_RUNS holds information about the various invocations of Autopatch for applying Oracle Applications
patches to a specific release of an Oracle Applications installation.
If multiple drivers are run in one invocation of Autopatch, they result in multiple records in this table. These multiple
records will all have the same SESSION_ID (because they arose from one Autopatch invocation), but different
TASK_NUMBER’s. The TASK_NUMBER’s in this case will be numbered sequentially as 1, 2, 3, etc.
Note that when the database driver of a Maintenance Pack is applied, it bumps up the release version by creating a
new record in AD_RELEASES, which is then pointed to by the UPDATED_TO_RELEASE_ID column of the old
record.
AD_RELEASES
AD_RELEASES holds the various Oracle Applications releases that an installation of Oracle Applications has gone
through in its entire life cycle.
It should be noted that START_DATE_ACTIVE, END_DATE_ACTIVE and BASE_RELEASE_FLAG are loosely-
maintained informational columns and are not accurately maintained,
and therefore should not be relied upon heavily.
AD_PATCH_COMMON_ACTIONS
This table holds distinct information about the various actions that are (often repeatedly) performed by Autopatch as
part of applying patches.
Posted by Muhammad Rafi Aamiri Madani
Compiling JSP Pages in APPS
Muhammad Rafi Aamiri Madani on Wednesday, February 18, 2009
Step 1 - Copy the jsp file to $COMMON_TOP/webapps/oacore/html
(this location translates to $OA_HTML).
Placing the file under $OA_HTML enables end users to access the file
using the url http://hostname.domain:port/OA_HTML/[jspfile.jsp]
Step 2 - export PATH=$PATH:$FND_TOP/patch/115/bin
Step 3 - ojspCompile.pl -compile -s ‘[jspfile.jsp]‘
There is no need to bounce apache server after compiling the file to access the new content.
Below is the command line help for ojspCompile.pl command
ojspCompile.jsp command help
syntax: ./ojspCompile.pl COMMAND {ARGS}COMMAND
– compile update dependency, compile delta
– create rebuild entire dependency file
– delta.out update dependency, list delta to file
– dep.out update dependency, output heirarchy to file
ARGS -s matching condition for JSPs filenames
– p number of parallel compilations- log to override logfile from ojspCompile.conf
It is recommended to set the log file location outside of any network file system shared (NFS) area/drive.
– conf to override ojspCompile.conf– retry retry previously failed compilation attempts
– flush forces recompilation of all parent JSPs
– quiet do not provide an actively running progress meter
– fast instantly fail jsps that are *possibly* invalid
example1 : ojspCompile.pl –compile -s ‘jtf%’ -p 20 –retry
example2 : ojspCompile.pl –compile -s ‘jtflogin.jsp,jtfavald.jsp’ –flush
example3 : ojspCompile.pl –compile –fast –quiet
Posted by Muhammad Rafi Aamiri Madani
Overview of Auto Invoice
Muhammad Rafi Aamiri Madani on Saturday, February 21, 2009
AutoInvoice is a program which is used to import and validate transaction data
from other financial systems from which one can create
INVOICES
DEBIT MEMOS
CREDIT MEMOS
ON-ACCOUNT CREDITS
Features of Auto Invoice Program
Supports Oracle & Non-Oracle Systems
Import Large Amount of Data
Calculate or Import Tax
Group Lines & Invoices
Online Error Correction
Lines Validation
Derive GL Date
Import Flex fields
AutoInvoice is a program set 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)
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.
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 we can view by clicking the View Report button in the
Requests window. Working of Auto invoice , Validates data, Inserts records, Deletes interface data Only when system
option purge set to ‘Y’
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
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 AutoInvoice 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 three interface
tablesLines are ordered and groupedTax is calculatedGL date is determinedGL accounts are assigned using Auto
AccountingTax, freight, commitments, and credit memos are linked to transaction linesAll transactions are
batchedValidated lines are used to create the transaction.
Flow of Data
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
Posted by Muhammad Rafi Aamiri Madani
Submit the Concurrent Program from backend
Muhammad Rafi Aamiri Madani on Thursday, February 26, 2009
The following is the Sample Code to Submit the Concurrent Programfrom the backend.
Note:- This is the Concurrent Program, not the RequestSet. To Submit the Request Set from the backend, We have
different API.
DECLARE
l_success NUMBER;
BEGIN
BEGIN
fnd_global.apps_initialize( user_id=> 2572694, resp_id => 50407, resp_appl_id => 20003);
-- If you are directlyrunning from the database using the TOAD, SQL-NAVIGATOR or SQL*PLUS etc. Then you need
to Initialize the Apps.
-- In thiscase use the above API to Initialize the APPS. If you are using same code insome procedure and running
directly fromapplication then you don't need to initalize.
-- Thenyou can comment the above API.
l_success:=
fnd_request.submit_request
('XXAPP',-- Application Short name of the Concurrent Program.
'XXPRO_RPT', --Program Short Name.
'Program For testing the backendReport', -- Descriptionof the Program.
SYSDATE, --Submitted date. Always give the SYSDATE.
FALSE, --Always give the FLASE.
'1234' --Passing the Value to the First Parameter of the report.
);
COMMIT;
--Note:- In theabove request Run, I have created the Report, which has one parameter.
IFl_success = 0
THEN
-- fnd_file.put_line(fnd_file.LOG, 'Request submission For this store FAILED' );
DBMS_OUTPUT.PUT_LINE('Request submission For this store FAILED' );
ELSE
-- fnd_file.put_line(fnd_file.LOG, 'Request submission for this store SUCCESSFUL');
DBMS_OUTPUT.PUT_LINE('Request submission For this store SUCCESSFUL' );
ENDIF;
--Note:- If you arerunning directly from database, use DBMS API to display.
--If you are running directly fromApplication, then Use the fnd_file API to write themessage in the log file.
END;
Write message in Log or Out file
Muhammad Rafi Aamiri Madani on Thursday, February 26, 2009
PROCEDURE write(p_type IN VARCHAR2, p_message IN VARCHAR2)IS
/************************************************************************
Purpose : Procedure writes to the log file or output file based on type.
O=Output File, L=Log File
*************************************************************************/
BEGIN
IF p_type = 'L' THEN
fnd_file.put_line (fnd_file.log, p_message);
ELSIF p_type = 'O' THEN
fnd_file.put_line (fnd_file.output, p_message);
END IF;
END write;
The above write procedure can be used in other Procedure/Function in the package to write any information in the
Log or Out files.
PROCEDURE main(errbuf OUT VARCHAR2, retcode OUT NUMBER, p_par1 IN NUMBER)
IS
v_errbuf VARCHAR2(1000) := NULL;
v_retcode NUMBER := 0;
v_file_name VARCHAR2(100);
BEGIN
v_retcode := 0;
v_file_name := fnd_profile.value('XYZ');
IF v_file_name IS NULL THEN
write('O','Profile XYZ is not defined or the value is not set');
retcode := 2;
RETURN;
END IF;
END;
Note:- In the above Procedure, I am using the write Procedure and returning 2 for the retcode (0 - Complete, 1-
Warning and 2 will be for Error).
This is one time process and you will realise, how much helpful it will be when ever you have to right something in log
or out file.
Posted by Muhammad Rafi Aamiri Madani
Create accounitng and transfer JE's to GL using SLA
Muhammad Rafi Aamiri Madani on Wednesday, March 4, 2009
I Create Accounting Program
The Create Accounting program processes eligible accounting events to create subledger journal entries. To create
the subledger journal entries, the Create Accounting program applies application accounting definitions that are
created in the Accounting Methods Builder (AMB).
The Create Accounting program,
Validates and creates subledger journal entries
Optionally transfers the journal entries to GL
Optionally posts the journal entries in GL
Generates the Subledger Accounting Program Report, which documents the results of the Create Accounting
program
Draft Accounting
When you select draft accounting, Subledger Accounting creates the relevant journal entries in draft mode. Draft
entries are not posted to General Ledger. You can review the resulting entries, update the transactions, or update the
accounting rules. Any changes will be reflected when the transaction is processed again for accounting.
Online Accounting (Final)
Final entries are ready to be transferred to General Ledger and cannot be modified. The transactions are considered
as processed for accounting. Any changes to the rules will not impact final entries.
Straight-Through Accounting (Final - Post)
If you select Final Post, Subledger Accounting posts the journal entries all the way through to General Ledger. This
means that you can update GL balances straight from the invoice entry (or any other transaction entry) window.
Create Accounting Program
The Create Accounting program creates subledger journal entries. In general, the parameters described in the table
above determine which accounting events are processed.
Navigation Paths (example Payables)
Payables: Other > Requests > Run
Receivables: View > Requests (B) Submit a New Request
Paramaters
1. Ledger - Required; limits accounting events selected for processing to those of a particular ledger. This program is
run for primary ledgers or valuation method enabled secondary ledgers. Any reporting currency or secondary ledger
associated with the selected primary ledger is also processed; i.e. entries are generated for the selected primary as
well as reporting currencies and non-valuation method secondaries.
2. Process Category - Optional; restricts the events selected for accounting to a particular process category. For
example, Invoices.
3. End Date - Required; end date for the Create Accounting program; processes only those events with event dates
on or before the end date
4. Mode (Draft/Final) - Required; determines whether the subledger journal entries are created in Draft or Final mode
5. Errors Only (Yes/No) - Required; limits the creation of accounting to those events for which accounting has
previously failed
6. Report (Summary/Detail/No Report) - Required; determines whether to generate a report showing the results of the
Subledger Accounting program in summary or detail format
7. Transfer to General Ledger (Yes/No) - Required if Mode is set to Final; determines whether to transfer the
subledger journal entries to General Ledger
8. Post in General Ledger (Yes/No) - Required if Mode is set to Final; determines whether to post subledger journal
entries in General Ledger
9. General Ledger Batch Name - Optional; user-entered batch name that appears on the transferred General Ledger
subledger journal entries. Transfer to GL option must be set to Yes.
10. Include User Transaction Identifiers (Yes/No) - Required; controls whether the report displays user identifiers'
names and values.
Create Accounting Program
The Create Accounting program generates one or more accounting programs depending on the volume to be
processed. The Subledger Accounting Program report is generated by the Create Accounting program and
documents the results of the Create Accounting program. It lists the following:
Successful events and the subledger journal entries created for those events
Errors for failed events
You can run the report in summary, detail, or no report mode which are described as follows:
Summary mode provides a summary of events processed and detailed information about their errors.
Detail mode provides details of subledger journal entries generated from the processing of completed events and a
detailed error report.
No report mode will show an error count without actually generating the report.
II Transfer Journal Entries to GL Program
The Transfer Journal Entries to GL program enables you to transfer any eligible journal entries to General Ledger,
including those from previous runs that have not yet been transferred to General Ledger.
Note: This program is used if you run accounting online in Final mode (not Final Post) or if you run the Create
Accounting program and set the Transfer to GL parameter to No.
The only reason you would want to run the Create Accounting program and set the Transfer to GL parameter to No is
if you want to run accounting at different intervals than the GL transfer, for example, you may run accounting every
hour but only transfer to GL nightly.
The Transfer Journal Entries to GL program consists of a subset of parameters used in the Create Accounting
program as listed below:
–Ledger
–Process Category
–End Date
–Post in General Ledger
–General Ledger Batch Name
III Oracle Subledger Accounting Program Report
The Subledger Accounting Program Report is generated by the Create Accounting program and lists the following:
•Successful events and the subledger journal entries created for those events
•Errors for failed events
You can run the report in summary or detail mode as follows:
•Summary mode provides a summary of events processed and detailed information about any errors.
•Detail mode provides details of subledger journal entries generated from the processing of completed events and a
detailed error report.
Transfer Journal Entries to GL Report
The Transfer Journal Entries to GL report is generated by the Transfer Journal Entries to GL program and lists the
following:
Transfer to GL Summary
Errors
Setting Profile Options
The profile options listed above relate to data access and security and impact how accounting is generated through
SLA in R12.
1. SLA: Enable Subledger Transaction Security in GL
Use this profile option to combine subledger transactions security with data access security for General Ledger
responsibilities when drilling down to multi-organization enabled subledger application. Transaction security in the
respective subledger application is always applied when drilling down from subledger transactions to subledger
journal entries.
2. SLA: Enable Data Access Security in Subledger
This profile option determines whether the General Ledger Access Set security mechanism is applied for a subledger
application responsibility when viewing, reporting, or creating subledger journal entries associated with a given
ledger. The General Ledger Access Set security mechanism is always applied for responsibilities associated with the
General Ledger application.
The profile option enables you to combine data access security with subledger transaction security and therefore
control access to subledger journal entries depending on the ledger to which they belong. For example, you can
implement a Multi-Org Security Profile that allows you to create Oracle Receivables Invoices for two different
operating units each associated with different ledgers but restrict drill-down from the subledger transaction to the
associated subledger journal entry based upon the destination ledger contained in the Access Set.
3. SLA: Additional Data Access Set
The SLA: Additional Data Access Set profile option, in conjunction with the GL: Data Access Set profile option,
controls which ledgers and balancing or management segment values you can access when logging onto a
responsibility. If SLA: Enable Data Access Security in Subledgers is enabled for the responsibility, you have access
only to the ledgers and balancing or management segment values included in the data access sets assigned to the
SLA: Additional Data Access Set and GL: Data Access Set profile options.
4. SLA: Allow Reports Journal Source Override
This profile option applies only to the following reports:
-Open Account Balances Listing
-Third Party Balances Report
Enable this option to change the Journal Source parameter during report submission. If the option is set to No, then
you cannot change the value defaulted during report submission.
For example:
Should the general ledger data access set security be enforced when generating accounting? For example, should
journal entries be created if the user does not have ledger clearance even if they may have multiorg access to the
operating unit?
Should the transaction security model be applied when drilling down from GL? For example, should the user be
allowed to inquire on journal entries of certain operating units if they do not have MO access, but have ledger
clearance?
If there are secondary ledgers and data access set security is enforced in the subledger module, then an additional
data access set needs to be assigned to the user to enable access to the secondary ledger.
Should the user be able to run certain reports across data from multiple subledger applications?
Posted by Muhammad Rafi Aamiri Madani
Configure and use Credit Card Chargeback features
Muhammad Rafi Aamiri Madani on Wednesday, March 4, 2009
Credit Card Chargeback
A credit card chargeback takes place when a credit card holder disputes a charge with the credit card company (e.g.
VISA) and the credit card company issues a chargeback to the customer for the disputed amount and notifies the
vendor that they have issued a chargeback to the customer.
A cardholder can request a charge back for many reasons including, but not limited to:
Charges for undelivered goods
Charges for goods or services different from what was ordered or if they received the wrong quantity of the goods or
services ordered.
Charges for goods that were not timely delivered
In release 11i, we already have the functionality for the vendor to issue a chargeback directly to the customer. The
customer can however also request a chargeback from the credit card issuer, so in release 12 - we are introducing
the functionality for the vendor to also be able to register and process a chargeback that a card issuer has already
issued to the customer.
Benefits:
Reduce costs by automating the credit card chargeback process
Credit Card Chargeback Process
After having received the credit card chargeback notification from the card issuers, the vendor will:
Find the receipt for which the chargeback was requested.
Un-apply the application line and subtract the amount of the credit card chargeback.
Apply the credit card chargeback activity on a new application line on the receipt. This automatically generates a
negative miscellaneous receipt to the value of the chargeback.
If the vendor finds the chargeback to be valid, the vendor creates a credit memo to credit the invoice with the amount
charged back.
If the vendor can prove to the credit card company that the chargeback was not valid, the vendor reverses the
application of the credit card chargeback by:
Finding the receipt
Un-applying the credit card chargeback activity from the receipt. This automatically reverses the negative
miscellaneous receipt
Restoring the original amount on the application line.
It is important to understand how our new Credit Card Chargeback functionality differs from the Credit Card Refunds
we already have in 11i:
Credit card refunds: The merchant needs to refund the customer. So the negative misc. receipt must be remitted.
Credit card chargebacks: The customer has already received the chargeback, so the vendor will just need to record
that a chargeback has taken place. The purpose of the misc. receipt is just to keep the accounting in place.
Business Process Steps
The business process that takes place when a credit card chargeback needs to be recorded is a three step process:
1.The vendor receives the receipt, records it and applies it to the invoice.
2.The vendor receives the Credit Card Chargeback notification and records the credit card chargeback by applying
the credit card chargeback to the receipt
3.The vendor then needs to investigate if the Credit Card Chargeback is valid or not.
Based on the outcome, the vendor can choose to either:
-Acknowledge the credit card chargeback and credit the invoice, or
-Prove that the credit card chargeback was not valid, and after acknowledgement un-apply the credit card
chargeback from the receipt
Credit Card Chargeback Process Receive Receipt
Example:
A customer visits a web store and orders goods for $100 using their credit card
The credit card company authorizes the payment and notifies the vendor of the receipt of $100
The vendor processes the receipt and applies it to the invoice.
Please note that there are no changes in how these activities are carried out in R12.
Let’s now take a look at the credit card chargeback process.
The customer receives the goods, but finds that goods for $25 are missing.
The customer files a dispute with the credit card company for $25
The credit card company credits the customer $25 and notifies the vendor that a chargeback of $25 has taken place.
The vendor applies the credit card chargeback to the receipt which generates a miscellaneous receipt to decrease
cash with $25
Here we can see how the clearing account for the receivable activity of type ‘Credit Card Chargeback’ is used. It gets
credited when the credit card charge back is applied and gets debited when the misc. receipt is generated.
Accounting Entries
Un-apply the receipt
–DR Receivables $25
–CR Unapplied $25
Apply the credit card chargeback
–DR Unapplied $25
–CR Credit Card Chargeback $25
Misc. receipt is generated
–DR Credit Card Chargeback $25
–CR Cash $25
Chargeback Process for Vendor:
1.Find receipt
2.Un-apply the receipt
3.Decrease the value on the receipt application line to $75
4.Apply $25 to receipt activity ‘Credit Card Chargeback’ (creates a negative misc. receipt of $25)
Validate Credit Card Chargeback
After the vendor has analyzed the credit card chargeback, the vendor can find the credit chargeback to be either valid
or invalid.
The vendor can now either:
Acknowledge the credit card charge back and credit the invoice.
Prove to the credit card company that the credit card chargeback was invalid and un-apply the credit card chargeback
from the receipt once it has been acknowledged by the credit card company that the credit card chargeback was
invalid.
If the vendor acknowledges the credit card chargeback, the vendor simply credits the invoice by creating a credit
memo for $25.
Credit the invoice by creating a credit memo
–DR Revenue $25
–CR Receivables $25
Vendor proves the chargeback to be invalid:
Un-apply the credit card chargeback
–DR Credit Card Chargeback $25
–CR Unapplied $25
Misc. receipt is automatically reversed
–DR Cash $25
–CR Credit Card Chargeback $25
Reapply the receipt
–DR Unapplied $25
–CR Receivables $25
Credit Card Chargeback Setup
Responsibility: Receivables
Navigation: Receipts > Receipts > (B) Apply > Applications > (B) Chargeback
Release 12 comes with the seeded Receivables Activity Type of ‘Credit Card Chargeback’.
The only setup step required is to create a new receivables activity of type credit card chargeback and specify the GL
clearing account for the new activity.
Note: Only one activity of this type can be active.
Posted by Muhammad Rafi Aamiri Madani
Self Assessed Tax in Oracle Payables
Muhammad Rafi Aamiri Madani on Thursday, March 5, 2009
Self-Assed Tax
Self Assessed tax differs from regular taxes in one way: as a purchaser, you are responsible for reporting and paying
the tax and the supplier is not. This was also known as USE TAX in previous releases.
For example,
You receive an invoice for $1000 which is due to be paid to the supplier. Tax A for 10% was not charged on the
invoice however, as the purchaser, you recognize that you are responsible to pay tax A. You would self-assess Tax A
for the $100 and include it in your filings to the corresponding tax authority.
Features
The flexibility to have self assessed tax automatically assessed (based on tax setup) or to manually mark the
calculated tax as self assessed during invoice entry.
An ability to have recoverable and non-recoverable portions of self assessed tax amounts based on your invoice
details.
The ability to report and account detailed recoverable and non-recoverable self assessed tax AND the corresponding
Self Assessed Tax Liabilities when the transaction is accounted.
Benefits
Improved Fiscal Discipline
Automatic reporting and accrual helps maintain an audit trail for the tax amounts and the invoices they tie to.
Separate liability accounts for self assessed taxes translate to more granular and accurate accounting.
Improved Operational Excellence
By automating previously manual processes and providing functionality available during invoice entry, the propensity
for human error or delayed information is reduced.
Self Assessed Tax Predetermined Process
During Invoice Entry, Validation, and Import, Payables gathers information known as “tax drivers’ entered on the
invoice header and lines and passes that information to the new E-Business Tax module.
Based on these tax drivers and additional information derived by E-Business Tax such as the supplier’s party tax
profile and buyer’s and supplier’s tax registrations, the engine determines if any self assessed tax is applicable to the
invoice.
The self assessed tax will be passed back to Payables along with the recoverable and non-recoverable tax amounts
and the General Ledger Accounts for the recoverable tax and self assessed liability.
Payables displays the self assessed tax amount in a column on the Invoice header in the Invoice Workbench.
Payables will also derive the accounts for the non-recoverable portion of the self assessed tax then store all accounts
to be used later when the invoice is accounted.
When the Invoice is Accounted, the self assessed tax and corresponding self assessed tax liabilities will be
accounted along with the rest of the invoice.
Self Assessed Tax Manual Determination Process
This slide illustrates the process for an invoice where the calculated tax returned by the E-Business Tax engine is
expected to be paid to the supplier and the Payables’ user updates the it as Self Assessed instead.
Just like the first example, Payables gathers tax drivers entered on the invoice header and lines and passes that
information to the E-Business Tax module.
Based on these tax drivers and additional information derived by E-Business Tax, the engine calculates the tax that is
expected to be paid to the supplier (in other words: Non-self assessed taxes)
Self Assessed Tax: Predetermined Set Up – First Party, Party Tax Profile
To enable the application to automatically assess self assessed taxes for the First Party or for certain Third Party
Suppliers, you need to first set up the Party Tax Profile. The Party Tax Profile is party specific, tax related information
that can be associated to 1st and 3rd parties. It includes information such as defaults, tax registrations, classifications
and tax reporting codes.
Using the Tax Managers responsibility, navigate to the Parties, Party Tax Profiles page. Search based on the Party
Type of First Party Legal Establishment and the desired party name.
You have the flexibility to configure First Party Establishments for Self Assessed Taxes at the following levels based
on your needs:
Registration, Regime
Registration, Regime, Tax
Registration, Regime, Tax, Tax Jurisdiction
From the Tax Summary Window, the Payables user marks the tax as self assessed. E-Business Tax updates their
records and returns the tax details to Payables.
Payables stores the GL Accounts, displays the self assessed tax amount in a column on the Invoice header and the
validated invoice is ready for accounting.
Self Assessed Tax: Predetermined Set Up – First Party, Party Tax Profile
Enable Self Assessment on the Party Tax Profiles tab
By checking the Set for Self Assessment/Reverse Charge option at a particular level, E-Business Tax returns
applicable taxes for supplier invoices that fall within the level
–For example, if you enable this option at the Registration – Regime level, all invoices to be taxed within that regime
will be considered Self Assessed tax
You can also set up a particular supplier’s Party Tax Profile by doing either of the following:
Use the Tax Managers responsibility to query a Third Party
Navigate to the Tax Details page from the Supplier (Entry) pages from the Payables Responsibility
Implementation Considerations
E-Business Tax is a common module available with Oracle Financial Applications.
The E-Business Tax engine is responsible for calculating tax amounts applicable to invoices.
It also assists in automatically identifying taxes as self assessed and allows setting options for manual determination.
Subledger Accounting is also a common module available with Oracle Financial Applications.
Subledger Accounting is not specific to this feature but a general tool to configure accounting entries and to provide
accounting reports to meet your needs.
Posted by Muhammad Rafi Aamiri Madani
Balance Forward Billing in Oracle AR
Muhammad Rafi Aamiri Madani on Thursday, March 5, 2009
Balance Forward Billing
Balance Forward Billing replaces Consolidated Billing feature with enhancements to bill creation and presentation.
Billing Cycles
-Billing cycles are no longer just monthly. Easily create daily, weekly, monthly, bi-monthly, quarterly, and annual
billings
-Bill on specific days of the month. User can not only specify the day of the month for the billing date, or even multiple
days like “every 15th and last day of month”. User can also elect to bill on a specific day of the week, such as every
Friday.
-Choose to exclude weekends. User can skip weekends when determining billing dates, so billing dates only fall on
workdays
-For importing transactions with specific dates, there is an External Billing Cycle
Consolidate invoices at different customer levels
Activity can be consolidated across account sites, or by each billing site. This means one bill can be sent for each
billing location, or a single bill can be sent incorporating all invoices for that customer account within an organization
Not all billing sites for a customer must consolidate their invoices. A site can be excluded from the account level bill. If
a site prefers to receive individual invoices, that site can be excluded from the Balance Forward bill.
Specific invoices can be excluded from the Balance Forward Bill. By changing the payment term on an invoice, it can
be printed separately
Enhanced viewing and printing
Balance Forward Billing integrates with Oracle Bill Management, which provides formats with a more appealing layout
that can be easily modified. In 11i, there are five consolidated bill programs. The new feature consolidates these
programs into three.
Benefits
1. Flexibility
In 11i, you had to choose between consolidating all invoices for a customer into one monthly bill, or printing all
invoices separately. Plus, if you needed different billing formats that meant customizing print layouts.
Now you have expanded billing periods definition by using the new billing cycle concept; varied levels of
consolidation; the ability to exclude specific invoices, and unlimited formats that are easily created and maintained
and selected automatically by a rules engine
2. Clearer communication with the customer
User views the balance forward bill online exactly as the customer sees it
3. Accurate Aging
In 11i Consolidated Billing, the payment term assigned to the transaction was ignored if consolidated billing was
enabled. This meant that the due date on an individual invoice may be different then on the consolidated bill if the
payment term assigned to the invoice was different than the default payment term assigned to the customer. Aging is
based on due date of the individual invoice, while payment due date was based on the payment term assigned to the
customer. This caused aging to be out of sync with bills due date. Now all Invoices that are consolidated on the same
bill have the same payment term and due date, guaranteeing the individual invoices will age simultaneously.
Setup and Process
The key setup steps are:
1.Define a Billing Cycle
2.Define or update the Payment term and assign it the Billing Cycle
3.Enable Balance Forward Billing for customers wishing consolidated bills at either the site or account level.
The process is then executed as follows:
1.Enter transactions or import them using AutoInvoice or Transaction API
2.Run the Generate Balance Forward Bill Program to create the bills as either draft or final, or set it up to run
automatically
The generate program will kick off the print program in BPA to create either draft or final bills.
In Draft format, they can be reviewed before sending.
If the process is mature, you may elect to run Generate Balance Forward Bill Program in the create Final Bill format.
In which case, the BPA program will create final bills.
3.If you create bills in draft mode, you can either reject or accept the bills using the Confirm Balance Forward Bills
Program.
You can choose to reprint draft bills via the BPA Print Program by selecting the concurrent request ID.
Balance Forward Billing Setup - Define Billing Cycle
Responsibility: Receivables
Navigation: Setup:Print > Balance Forward Billing Cycles
For Daily, you can pick the number of days before the next bill. Also choose whether to include weekends in the
number of days. For example, you can choose a daily cycle that is every 5 days, not including weekends in the daily
count.
For Weekly, you can pick the number of weeks before the next bill. Also, choose the day of the week the bill will be
created. For example, you can choose bi-weekly billing that occurs every other Friday.
Balance Forward Billing Setup - Define Billing Cycle
For the monthly cycle, choose the number of months before the next bill. For example, choose 3 months if you need
quarterly billing, or 6 months if you need bi-annual billing.
Also choose the day of the month to create the bill. This option allows you to choose more than one date so billing
can occur bi-monthly on the same days each month. For example, you can set it so billing occurs on the 15th and last
of day of each month.
By choosing Type of Day, you can elect to create the bills only on the workdays Monday through Friday. When you
chose “Exclude Saturdays and Sundays”, if the billing date falls on a Saturday or Sunday, the billing date
automatically changes to the date of the following Monday.
Balance Forward Billing Setup - Define Payment Term
Responsibility: Receivables
Navigation: Setup : Transactions > Payment Terms
Billing Cycle is a new attribute of the Payment term and must be assigned to the payment term to process balance
forward billing. This field is not updateable if the payment term has been used.
Cutoff Date information is now setup on the billing cycle, therefore the Cutoff Date block has been removed from the
payment term setup window.
The payment schedule dates:
-Due Date is calculated based on the cycle and billing date therefore, the Due Date is not enterable for Balance
Forward Bills
-The Due Days field can indicate how many days after the billing date the bill is due for daily and weekly cycles
-Day of Month and Months ahead can be used with the Monthly billing cycle. It is recommended that these only be
used when a single bill day is used otherwise the due date will be the same for all the bills created during the
calendar month.
After a balance forward billing payment term has been attached to a customer profile, the cycle will not be
updateable.
Existing payment terms cannot be updated to balance forward billing payment terms and vice versa.
Consolidated or Proxima billing terms created in 11i will automatically be updated to balance forward billing payment
terms.
Balance Forward Billing Setup - Customer Profile Class
Responsibility: Receivables
Navigation: Customers > Profile Classes
The customer profile class can be updated with the Balance Forward Billing information, which can then default to the
profile on the customer account record.
This region replaces the Consolidated Bill region in 11i.
The Enable Checkbox must be checked to select a payment term with a Balance Forward Billing cycle.
Balance Forward Bills can be created in summary or detail format: summary is at invoice total level; detail is at the
invoice line level. Imported is used for the Imported Billing Number feature that was introduced in 11i.
-Note: The default print formats use this customer profile. If you do not want to use this option, you can create rules in
BPA to ignore this value. When creating a rule, use the attribute “Display Format” to look at the value in this field.
The Payment Term field allows you to choose either a Balance Forward if the Enabled checkbox is selected, or a
Non-balance forward term if the Enable checkbox is not selected.
The Override Terms checkbox means that the default Balance Forward bill payment term on an invoice can be
changed. You can only select a non-balance forward payment term if you are overriding the default. Changing the
payment term on the invoice means that you do not want this invoice to be included on the bill.
Note: This is different functionality then 11i Consolidated billing which included all in voices on the bill regardless of
the payment term assigned if consolidated billing was enabled.
Oracle BPA Rules Setup
Rules in BPA determine which template is used for printing and viewing Balance Forward Bills. Rules are created and
then the templates get assigned to them.
If you wish to have similar functionality as was provided by Consolidated Billing, use the default rules delivered with
the feature. If you wish to create new BPA rules, and you want to use the Summary/Detail Type assigned to the
customer profile option, use the BPA attribute called “Display Format”.
BPA uses the following information to create the default rules:
-The Primary Data Source must be Oracle Receivables Balance Forward. Use this source when creating your own
BPA rules.
-There are two Default rules: 1) one rule uses the attribute “Display Format” = Detail, 2) another rule uses the
attribute “Display Format” = Summary
-These rules are then included in the rule hierarchy.
-Templates are assigned to each of rules. You can use the delivered summary and detail templates provided by BPA,
or create and use your own templates
When you run Generate Balance Forward Bills, BPA looks at the customer profile for the value assigned to the
Summary/Detail Type to determine which template to choose.
Posted by Muhammad Rafi Aamiri Madani
Overview of HRMS
Muhammad Rafi Aamiri Madani on Friday, March 6, 2009
Oracle Applications for Human Resources enable an organization to hire, train, and deploy, assess, motivate and
reward its people more effectively than ever before, turning HR into a strategic-level function and key contributor to
an organization's success. By automating its administrative duties, providing self-service for non-HR professionals,
and managing information more efficiently, HR professionals can devote their energy and creativity to delivering the
maximum value for the organization's investment in people.
The Oracle HRMS application modules include:
Oracle Human Resources
Oracle Payroll
Oracle Training Administration
Oracle Time Management
Delivering Integrated HRMS Functionality
The Oracle HRMS applications are part of the integrated, enterprise-wide solution Oracle ebusiness Suite for
information management that includes software for managing finance, sales and marketing, the supply chain and
manufacturing. The HRMS software, for example, is linked to the financial applications to streamline such processes
as employee compensation and managing training costs and expenditures.
All the Oracle HRMS applications use the Oracle database as their single source of information, which eliminates
data redundancy, reduces the possibility of conflicting data in different databases, and creates a consistent,
complete, reliable picture of every employee.
All the Oracle HRMS applications offer a sophisticated, easy-to-use graphical user interface to give users fast, easy
access to all HR data. The intuitive windowing, mouse actions, icons, and built-in drill downs allow transactions and
inquiries to flow naturally and quickly. Everyone involved in managing a workforce benefits from easy access to the
information needed to make timely and informed decisions.
Oracle Human Resources
Oracle Human Resources is a proactive management solution that helps control costs while developing and
supporting an effective workforce for the enterprise. Oracle HR can be configured to match the organization's
business objectives and processes and be automated to complete a variety of tasks including: organization and
position control, recruitment processing, employee profiling, career development and the management of
compensation and benefit policies.
Implementing these practices can help turn HR departments into a strategic function that is highly valued within the
enterprise.
Oracle Training Administration
Oracle Training Administration ensures that the organization improves the abilities of its employees or external
students to meet current and future objectives in a cost-effective and targeted way. The module allows organizations
to manage any event-based development activities which improve skills, such as remote site learning, work
experience, formal class tuition, external seminars and conferences. Training events can be scheduled and tracked
based on many combinations of criteria. In addition, enrollment information can be extensively tracked so that student
competencies are available for career planning as well as candidate placements, performance appraisals, and other
activities. Oracle Training Administration is fully integrated with Oracle Human Resources and the Oracle Financials
applications to enable organizations to harness training delivery to the skill requirements of jobs and positions.
Oracle Payroll
Oracle Payroll is a high-performance, graphical, rules-based payroll management system designed to keep pace with
the changing needs of the enterprise and its workforce. Each company's unique payroll requirements demand the
ability to configure its payroll solution without losing the benefits of a standard, supported package. Oracle Payroll
offers that capability via a unique, data-driven approach that enables organizations to define and manage its diverse
payroll requirements.
Oracle Time Management
Time collection and processing is a complex and time consuming task that must be 100 percent accurate to generate
a correct paycheck. Automated, accurate time management can benefit other functions within an organization. Oracle
Time Management enables organizations to manage complex pay structures, track total hours worked, job
classifications, vacation time, and a range of company and union pay organization.
It provides an automated and/or manual time collection interface that directly accepts, consolidates, and processes
employee time against employer-specific parameters and legal requirements ("organization. Ot permits an employer
to monitor any violation of its rules and take appropriate steps to resolve the problem prior to incurring further
inefficiencies and/or the production of an inaccurate organization. On addition, earning policies can be created that
apply to groups of people such as union workers, temps, full-time and part-time organization.
Oracle Time Management ensures that the correct number of time entries and hours are received from remote
locations, which in turn produces a valuable analysis of employee productivity.
Advantages
Each module is designed to deliver key benefits that reflect the most current thinking in the HR field.
a. Best Practice in HR Management
The HRMS modules cover all the functions an HR department performs to enable more efficient management of HR
procedures, saving time and decreasing organization. Ohe applications are structured around proven procedures, yet
allow organizations to make modifications to suit its unique organization. This flexibility is vital to effectively manage
the HR function, enabling organizations to choose best practices as it sees fit, without having them imposed on its
existing HR procedures.
b. Rapid Business Policy Adoption
The Oracle HRMS applications make it easy for organizations to change HR practices to reflect changes in business
policy, regulations, and organization. Ohanges can be implemented through the rules-based payroll engine, business
events defined with workflow functions, and flexibility of data access and data entry is ensured for increased
organization. Configuration puts real choice in the hands of the day-to-day user by enabling them to make changes
quickly and implement them immediately.
c. Direct Access
Oracle understands both the HR function and the possibilities of the organization. Oirect access is about providing a
low-cost, convenient solution to multiple audiences within the organization on demand; this greatly improves the
service the HR department provides and frees them up to deliver strategic value to the organization.
Then employees themselves can conveniently access records to perform such tasks as updating personal
information or completing self-assessment forms, HR staff members have more time to devote to such tasks as
strategic planning, defining core competencies, and creating more effective incentive organization. Complementing
Oracle HRMS applications enables the HR staff to provide more autonomy to employees while retaining control over
information and ensuring the organization complies with all organization. This process of "consultative HR" positions
the HR department as an information provider and involves employees in planning and shaping their careers.
d. Competency-Based Skills Improvements
The applications take a competency-driven approach to managing human organization. Ohe Oracle HRMS system
supplies individual knowledge and skills information to enable users to properly position employees within the
organization, with a close fit between an employee's competencies and the requirements of a organization. Oy
providing a framework for the HR department to hire, train, and compensate employees based on competency and
performance, Oracle HRMS applications improve the capacity of the HR group to help meet enterprise goals.
e. Global Reach on a Global Foundation
Oracle recognizes the importance of building multinational capabilities into business-critical organization. Oesigned
from the start with a global perspective, Oracle HRMS software is localized to the currency structure, taxation
policies, and reporting conventions of the United States, United Kingdom, Canada, Japan, and parts of organization.
Oracle works with local employees and partners to ensure the HRMS applications accurately reflect not only the
legislative requirements of each country, but also the HR processes commonly practiced, different methods of
inputting and using data, language differences, different policy rules, and cultural differences.
f. Rapid Response to Industry Trends
The Oracle HRMS applications offer unparalleled flexibility, which derives from the structure of the organization. Each
module consists of a set of "core" functions, which are used by the majority of HR departments, regardless of their
organization or organization. Oround that core, Oracle adds a layer of other functions, which allows for a rapid
response to industry trends that affect any or all organization. Ohe result is that all users benefit from powerful core
functionality and users in specific industries benefit, such as the government sector,from custom enhancements.
Unique Features and Benefits
Easy-to-use Configuration Options -- There are many configuration options to tailor the features and functions of the
organization. Oonfigurations are easy to perform via a Forms interface; they are fully supported by Oracle, preserved
when upgraded, and date-effective so they can be changed as needs change. Configuration options allow users to
specify access to forms, define security functions that control information available to different users, create menus
that facilitate user navigation, and create forms that display data on groups of people, assignments or events in easily
updated lists, among other choices. Web applications can be configured directly for display on Web screens.
Web-based Administrative Automation -- By increasing self-sufficiency and empowering employees to manage
personal HR information, Oracle's Web-based applications benefit organizations in a variety of ways, including:
automating business rules and policies, reducing errors, minimizing paper handling, reducing administrative costs,
eliminating bottlenecks, and adding convenience for organization. Ohe cumulative effect of these benefits is to greatly
reduce the time the HR organization spends on administrative tasks and enable it to operate in a strategic capacity.
Effective Training To Meet Corporate Goals -- Once the organization defines its goals and the core competencies
required to meet them, Oracle Applications enable HR departments to hire employees with the right competencies
and train existing employees so that their skills remain aligned with the organization's organization. Applying this
approach in a consistent, systematic way across the enterprise--for appraisals, assessment, recording
accomplishments, and other activities--results in a workforce equipped with the skills and knowledge to give the
organization a competitive advantage.
Best Global Solution
Multilingual capabilities enable applications to communicate in one language while generating documents in
organization. This capability enables organizations to quickly convert and consolidate records from worldwide
organization. Omong the software's key global features are: multi-currency; multilingual; multiple address styles for
any country for any person, no matter what their country of employment; multiple legislations on the same database,
so that a U.S. and a U.K. organization may both be represented, with their appropriate legislative, cultural, and
functional rules; structures common among countries are stored in the core HRMS software to facilitate global inquiry
and reporting; ability to create global views of data across business groups which represent different legislations.
Oracle Applications is the leading provider of packaged client/server solutions for the enterprise. In an extremely
competitive marketplace, Oracle Applications "best in class" differentiation is achieved through several strong
technology advantages:
Oracle's core technology stack, comprising enterprise-caliber database server software, development tools and
packaged applications; customized critical applications solutions; and, the delivery of total solutions which leverage
Oracle's Web-enablement, online analytical processing (OLAP), and modular, "rapid solutions assembly"
technologies.
By providing customers with assurance, accountability and flexible end-to-end solutions, Oracle Applications is
establishing new standards for excellence in enterprise applications and extending its leadership in the applications
arena.
Posted by Muhammad Rafi Aamiri Madani
Overview of Oracle Payables
Muhammad Rafi Aamiri Madani on Sunday, March 8, 2009
Payables Workbenches
Oracle Payables includes two fully integrated workbenches, the Invoice Workbench and the Payment Workbench.
You can perform most of your transactions in Payables using the Invoice Workbench or the Payment Workbench.
You enter, adjust, and review invoices and invoice batches in the Invoice Workbench. You create, adjust, and review
payments and payment batches in the Payments Workbench.
Payables workbenches let you find critical information in a flexible way. For example, in the Invoice Workbench, you
can find an invoice based on supplier, purchase order number, status, or other criteria. Then, for that invoice, you can
review distributions, scheduled payments, payments, holds, and other detailed invoice information. You can also
perform matching, submit invoice validation, apply and release holds, or initiate payment. You can query an invoice
then perform several transactions without having to find the invoice again. You can also keep multiple windows open
at one time.
Invoice Workbench
The Invoice Workbench is a group of windows that you use to enter, adjust, and review your invoices and invoice
batches. The following is the window hierarchy in the Invoice Workbench:
Invoice Batches
Find Invoice Batches
Invoices
Find Invoices
Calculate Balance Owed
Distributions
Find Invoice Distributions
Invoice Actions
Apply/Unapply Prepayments
Invoice Overview
The following diagram shows how you can navigate between the windows in the Invoice Workbench. You navigate
into the Invoices window or Invoice Batches window through the Navigator, and navigate to most regions by choosing
tabs. You can access the Find windows from the View menu, and the Apply/Unapply Prepayment window by
selecting the appropriate check box in the Invoice Actions window. You access the matching windows from the
Invoices window by selecting Invoice, Purchase Order, or Receipt from the match poplist and then choosing the
Match button.
Posted by Muhammad Rafi Aamiri Madani
Change Default APPS password
Muhammad Rafi Aamiri Madani on Sunday, March 8, 2009
1. Shutdown concurrent manager
2. Logon as sysadmin
3. Goto sysadmin-->security-->Oracle-->Register
4. Query for APP%
5. Change the APPLSY & APPS Password (Both the Password should be same)
6. Logon to TOAD as system/manager and run the command
1. Alter user APPS identified by >
1. Alter user APPLSYS identified by >
1. Commit
7. Edit startup and shutdown scripts in the following lines:
1. sh adstrtal.sh apps/<> -- Startup script
1. sh adstpall.sh apps/<>-- Shutdown script
8. Edit the following files (change the path according to your instance)
8. /applvis/testappl/admin/TEST_cctcal/out/templbac/wdbsvr.app -- Optional
8. /applvis/testappl/admin/TEST_cctcal/out/02111859/wdbsvr.app -- Optional
8. /applvis/testora/iAS/Apache/modplsql/cfg/wdbsvr.app
Find the word password and type the new password against the password field where the original value is APPS.
There might be many password fields in these files. Do not change other password fields where the default password
is not APPS.
9. Use vi command to open the aforementioned files
:set ic
/password – This will take the cursor to the first password fieldIf this password field has default value as APPS,
change it. If this is not the field then press “n” to go to the next password field. Do this till you get the correct field.
Save the file once the change is made.
There will be only one password field with default value as APPS in each of the files. So you need to make only one
change per file. Restart all the services (bounce the DB & restart all services) Login to application and test whether
you can enter into the forms.
Posted by Muhammad Rafi Aamiri Madani
OAF Features
Muhammad Rafi Aamiri Madani on Tuesday, August 11, 2009
SERVICE INTERFACE
The service interface is a Java interface that is designed to support both web services and local Java APIs. The service interface provides consistent APIs and error handling behavior across the different application products. Included is support for the new Service Data Object standard to increase interoperability in a Service Oriented Architecture. Service data objects are used to represent business objects in a standardized manner.
SERVICE TESTERThe service tester user interface is used to create unit and integration tests. The tests are recorded in documents as structured XML data. For integration testing, each test file can contain multiple test suites, and each test suite can have multiple test cases. As part of periodic system tests, service tests can be played back from either JDeveloper or from the operating system command line. The service tester supports the following features: Field masking, so that variable data such as the current date does not cause a test failure Pipelining, where the output of one test is used as the input of a subsequent test An option to suppress the commit of test data.
“Swan” USER INTERFACE
The new “Swan” user interface (UI) greatly improves the look and feel of the Oracle E-Business Suite, significantly enhancing usability and productivity. The “Swan” UI brings together some of the best UI concepts from Oracle E-Business Suite, PeopleSoft, and JD Edwards applications. Oracle E-Business Suite will use only the “Swan” look and feel for Release 12.
PERSONALIZED SPEL BINDINGS
SPEL (simple expression) bindings can be used to substitute or override the base SPEL bindings for rendered, required, and read-only properties.
ORACLE JDEVELOPER 10g RELEASE 3 (10.1.3)
Release 12 leverages Oracle JDeveloper 10g Release 3 (10.1.3). This release of JDeveloper is a J2EE development environment with end-to-end support for modeling, developing, and debugging applications and Web services. Oracle JDeveloper 10g Release 3 (10.1.3) allows existing Oracle Application Framework applications and services to be
extended, or entirely new applications and services to be built easily.
PERSONALIZATION ADMINISTRATION
Release 12 extends the existing command line personalization capabilities with HTML pages included in the Functional Administrator responsibility. This feature also allows you to replicate personalizations across database instances.
IMPROVED ABOUT PAGES
The About page has been extended to include the following: Last 10 patches applied on the instance Flexfield definitions on the page, and whether they use unsupported features specific to the Forms stack The ability to launch Admin Personalization from the About page.
ADMINISTRATOR PERSONALIZATION USABILITY ENHANCEMENTS
Usability enhancements to the Administrator Personalization UI include: Ability to bypass the Choose Context page when the current context is known. A minimal page hierarchy, eliminating the need for hidden layout containers. Personalization error messages include a link to launch the “About page,” where the associated personalizations can be reviewed and edited.
EXTERNAL CONTENT IN OA FRAMEWORK PAGES
Administrator Personalization now supports the inclusion of any URL in OA Framework pages.
SQL COMPONENT EXTENSIBILITY
View objects can now be modified by using SQL components to extend an existing object, rather than by replacing the view object definition. SQL component extensions are designed to persist across upgrades of the underlying object.
FLEXFIELD ENHANCEMENTS
Flexfield errors are handled more gracefully. Warnings are raised if an OA Framework flexfield uses incompatible features.
Posted by Muhammad Rafi Aamiri Madani
Changing Employee Number Generation from Manual to Automatic
In Oracle HR, once a Business Group has employee number generation set to manual, Oracle does not provide a
means of changing it to automatic. Consider the following business requirements:
¤ Convert legacy system into Oracle HR via API's¤ Keep current employee numbers unchanged
¤Provide automatic employee numbering for all new employees
These business requirements would require completion of the following
¤ Establish Business Group with manual employee number generation¤ Convert legacy HR data via API's
¤Change employee number generation to automatic within Business Group
Since Oracle does not provide the ability to change from manual to automatic, a company's options are
¤ Continue with manual employee numbering after conversion
¤Establish Business Group with automatic employee number generation prior to conversion, and allow API's to assign new "automatic" numbers to each employee
Neither of these options meets the company's business requirements.
The business requirements can be met by completing the following
¤ Establish Business Group with manual employee number generation¤ Convert legacy HR data via API's
¤Determine a starting number for automatic employee numbering that is greater than the largest numeric converted employee number
¤ Through SQL given below
UPDATE PER_NUMBER_GENERATION_CONTROLS
SET NEXT_VALUE = (The starting number from #3 above)
WHERE TYPE = 'EMP'
AND BUSINESS_GROUP_ID = (The organization_id from hr_organization_units )
UPDATE HR_ORGANIZATION_INFORMATION
SET ORG_INFORMATION2 = 'A'
WHERE ORG_INFORMATION_CONTEXT = 'Business Group Information'
AND ORGAINZATION_ID = (Same as business_group_id from above SQL)
Posted by Muhammad Rafi Aamiri Madani
Overview of Fixed Asset
Muhammad Rafi Aamiri Madani on Thursday, September 17, 2009
INTRODUCTION
Oracle Fixed Assets is fully integrated with other modules so that data input in Purchasing, Payables and
Projects will flow through Fixed Assets into the General Ledger. This also means that any asset can be
queried and the source information obtained by drilling down to find details of invoices. You can perform
most of your transactions in Oracle Assets using just three windows: the Assets Workbench, Mass Additions
Workbench, and Tax Workbench.
ADDITIONS
The majority of assets should come via the Purchasing, Payables / Project modules using the Mass
Additions / Interface Supplier Costs process. There may be a few occasions when manual additions are
required. Ordinary assets can be quickly entered using Quick Additions. Detailed Additions can be used to
handle more complex assets as follows:
· Assets with a salvage value.
· Assets with more than one assignment.
· Assets with more than one source line.
· Assets that Category defaults do not apply.
· Subcomponents Assets.
· Leased assets and Leasehold Improvements.
DEPRECIATION
Default depreciation rates can be set up for each asset category and also can be overridden in special
cases. Before running depreciation you can change any field but after running depreciation you can only
change asset cost and depreciation rate. You then can choose whether to amortize the adjustment or
expense it.
RETIREMENT
You can retire an entire asset or you can partially retire an asset. You can also use Mass Retirements to
retire a group of assets at one time.
TAX BOOK MAINTENANCE
Oracle Assets allows you to copy your assets and transactions from your corporate book to your tax books
automatically using Initial / Periodic Mass Copy. You can create as many tax books as you need, maintain
your asset information in your corporate book, and then update your tax books with assets and transactions
from your corporate book.
PREPAID SERVICES
To record warranty and maintenance information into Oracle Assets, a purchase order must be created and
the data input will flow into Payables with the proper prepaid account. Prepaid accounts are maintained in
the general ledger and amortized over the period of coverage; however, the accounts charged are based on
the designated account(s) for the prepaid services. The charges into the Fixed Assets account and asset
category is based on the monthly charges from the monthly amortization of the prepaid services.
CAPITALIZED LEASES vs. OPERATING LEASES
Oracle Assets allows you to test leased assets in accordance with generally accepted accounting principles
to determine whether to capitalize and depreciate your leased assets. Lease Capitalization Test: (1) the
ownership of the asset transfers to the lessee at the end of the lease (2) a bargain purchase option exists (3)
the term of the lease is more than 75% of the economic life of the leased asset (4) the present value of the
minimum lease payment exceeds 90% of the fair market value of the asset at lease inception.
Regarding Operating leases, Fixed Assets tracks your payments under operating leases, or leases that do
not meet any of the criteria, for informational purposes. You can use this information to create a schedule of
future minimum payments under operating leases, information that may require disclosure in the footnotes of
your financial statements.
Period-End Process
· Ensure All Assets have been Properly Assigned.
· Copy New Assets Entries into Tax Books.
· Run Depreciation for the Corporate Book.
· Create Journal Entries.
· Post Journal Entries to the General Ledger.
Posted by Muhammad Rafi Aamiri Madani