statistics collection enhancements

51
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.

Upload: nagaraju

Post on 14-Apr-2015

38 views

Category:

Documents


4 download

DESCRIPTION

Statistics Collection

TRANSCRIPT

Page 1: Statistics Collection Enhancements

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.

Page 2: Statistics Collection Enhancements

-- 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;

Page 3: Statistics Collection Enhancements

/

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(

Page 4: Statistics Collection Enhancements

'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';

Page 5: Statistics Collection Enhancements

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;

/

Page 6: Statistics Collection Enhancements

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

Page 7: Statistics Collection Enhancements

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

Page 8: Statistics Collection Enhancements

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. 

Page 9: Statistics Collection Enhancements

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

Page 10: Statistics Collection Enhancements

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

Page 11: Statistics Collection Enhancements

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

Page 12: Statistics Collection Enhancements

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

Page 13: Statistics Collection Enhancements

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

Page 14: Statistics Collection Enhancements

• 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?

Page 15: Statistics Collection Enhancements

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

Page 16: Statistics Collection Enhancements

-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.

Page 17: Statistics Collection Enhancements

);

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);

Page 18: Statistics Collection Enhancements

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

Page 19: Statistics Collection Enhancements

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

Page 20: Statistics Collection Enhancements

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:

Page 21: Statistics Collection Enhancements

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

Page 22: Statistics Collection Enhancements

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.

Page 23: Statistics Collection Enhancements

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:

Page 24: Statistics Collection Enhancements

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:

Page 25: Statistics Collection Enhancements

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.

Page 26: Statistics Collection Enhancements

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

Page 27: Statistics Collection Enhancements

–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

Page 28: Statistics Collection Enhancements

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

Page 29: Statistics Collection Enhancements

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

Page 30: Statistics Collection Enhancements

–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

Page 31: Statistics Collection Enhancements

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

Page 32: Statistics Collection Enhancements

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

Page 33: Statistics Collection Enhancements

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:

Page 34: Statistics Collection Enhancements

-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.

Page 35: Statistics Collection Enhancements

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

Page 36: Statistics Collection Enhancements

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

Page 37: Statistics Collection Enhancements

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.

Page 38: Statistics Collection Enhancements

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.

Page 39: Statistics Collection 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.

Page 40: Statistics Collection Enhancements

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

Page 41: Statistics Collection Enhancements

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

Page 42: Statistics Collection Enhancements

/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

Page 43: Statistics Collection Enhancements

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

Page 44: Statistics Collection Enhancements

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

Page 45: Statistics Collection Enhancements

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

Page 46: Statistics Collection Enhancements

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