12
Understanding and Troubleshooting Revenue Recognition in Oracle Receivables [ID 1121944.1] Modified: Jun 20, 2011 Type: TROUBLESHOOTING Status: PUBLISHED Priority: 3 In this Document Purpose Last Review Date Instructions for the Reader Troubleshooting Details 1. Overview of Revenue Recognition 2. Using Revenue Recognition a. Standalone process in batch mode. b. Online in Transactions form c. Implicitly via the transfer to General Ledger 3. Underlying table information and code supporting Revenue Recognition 4. Illustration of impact of running Revenue Recognition a. Illustration of an Invoice without rules b. Illustration of an Invoice with rules 5. Troubleshooting Revenue Recognition a. Check that the period associated to the Accounting Rule you are using is the same period associated to your Ledger. b. Validate GL periods c. Validate the status of fields impacted by Revenue Recognition d. Printer setup e. Cannot specify Print Format (Detailed or Summary) when running Revenue Recognition through General Ledger Transfer or Submit Accounting f. Data Corruption Issues g. Aborting Revenue Recognition h. Multi-Reporting Currency (MRC) Issues (11.5 only) i. Running Create Accounting raises error j. Revenue Recognition process stays in Pending/Standby status k. GL date or Transaction date issues 6. How to enable debugging and tracing for Revenue Recognition a. Enabling trace b. Enabling FND debugging 7. Code Bugs 8. Still have Questions? References Applies to: Oracle Receivables - Version: 11.5.10.0 to 12 - Release: 11.5.10 to 12.0 Oracle Receivables - Version: 11.5.10.0 to 12 [Release: 11.5.10 to 12.0] Information in this document applies to any platform. Executable:RAXMTR - AutoInvoice Master Program Executable:RAXTRX - AutoInvoice Import Program Form:ARXTWMAI.FMB - Transactions ConcurrentProgram:ARBARL_NON_SRS2 - Revenue Recognition Execution Report ConcurrentProgram:ARBARL_NON_SRS - Revenue Recognition from GL Transfer Program Purpose Oracle Receivables (AR): AutoInvoice Information Center > Troubleshooting AutoInvoice for Oracle Receivables Release 11.5 Through 12 > Note 1121944.1 Oracle Receivables (AR): Transactions Workbench Information Center > Note 1121944.1 Oracle Receivables provides the flexibility of defining a schedule of how you want the revenue for your invoices to be recognized, this is controlled by specifying Invoicing and Accounting rules to indicate to the Revenue Recognition program the desired schedule of recognizing revenue. This note was created to provide troubleshooting tips for issues involving Revenue Recognition. It is suggested that you also review Note 1116934.1, How To Setup And Troubleshoot Invoicing Rules and Accounting Rules, because these topics are tightly integrated. Last Review Date September 14, 2010 Instructions for the Reader A Troubleshooting Guide is provided to assist in debugging a specific issue. When possible, diagnostic tools are included in the document to assist in troubleshooting. Troubleshooting Details 1. Overview of Revenue Recognition When you sell a product to a customer, you send him an invoice to request for payment. In the invoice, you provide a description for the product or service rendered, the amount due and the due date in which you expect to be paid. The accounting for this invoice will impact GL accounts associated to Receivables and Revenue (plus Tax and Freight if applicable). You may have business or legal requirements that dictate how you can account for the revenue associated to the invoice. Perhaps you recognize the revenue in full once the invoice is paid, or for invoices associated with a service spread out over multiple months, you may need to recognize the revenue only when the service has been provided. The manner in which you control when revenue is recognized is handled by Invoicing and Accounting Rules. For more information on rules, please review Note 1116934.1, Setup and Troubleshooting Invoicing Rules and Accounting Rules. Scheduling when Revenue is accounted for, is all handled by the Revenue Recognition feature. Revenue Recognition is an engine that will create GL distributions for your invoices reflecting the revenue schedule you defined. Revenue Recognition is run as a batch process either as a stand-alone or automatically when you invoke transfer of accounting to the General Ledger. The process will pick up all invoices with rules that have not yet been processed. For each of these invoices, it will review the Invoicing and Accounting rules associated and create the necessary GL distributions. The GL distributions it creates is how invoices in Receivables get posted to the General Ledger. 2. Using Revenue Recognition Once you associate an Invoicing rule to an invoice, you are tagging it for processing by Revenue Recognition. The Invoicing rule provided tells Revenue Recognition how you want it to create the distributions for the Receivable account. In the Lines of the invoice, where you provide Accounting rule, duration, rule start date information, you are telling Revenue Recognition how you want it to create the distributions for the Revenue account. Document Display https://support.oracle.com/epmos/faces/ui/km/SearchDocDisplay.jspx?_ad... 1 of 12 7/29/2012 1:56 PM

revRecog_R12

Embed Size (px)

Citation preview

Page 1: revRecog_R12

Understanding and Troubleshooting Revenue Recognition in Oracle Receivables [ID 1121944.1]

Modified: Jun 20, 2011 Type: TROUBLESHOOTING Status: PUBLISHED Priority: 3

In this Document

Purpose Last Review Date Instructions for the Reader Troubleshooting Details 1. Overview of Revenue Recognition

2. Using Revenue Recognition a. Standalone process in batch mode. b. Online in Transactions form

c. Implicitly via the transfer to General Ledger 3. Underlying table information and code supporting Revenue Recognition

4. Illustration of impact of running Revenue Recognition a. Illustration of an Invoice without rules b. Illustration of an Invoice with rules 5. Troubleshooting Revenue Recognition a. Check that the period associated to the Accounting Rule you are using is the same period associated to your Ledger.

b. Validate GL periods c. Validate the status of fields impacted by Revenue Recognition

d. Printer setup e. Cannot specify Print Format (Detailed or Summary) when running Revenue Recognition through General Ledger Transfer or Submit Accounting f. Data Corruption Issues

g. Aborting Revenue Recognition h. Multi-Reporting Currency (MRC) Issues (11.5 only)

i. Running Create Accounting raises error j. Revenue Recognition process stays in Pending/Standby status

k. GL date or Transaction date issues 6. How to enable debugging and tracing for Revenue Recognition a. Enabling trace

b. Enabling FND debugging 7. Code Bugs

8. Still have Questions? References

Applies to:

Oracle Receivables - Version: 11.5.10.0 to 12 - Release: 11.5.10 to 12.0Oracle Receivables - Version: 11.5.10.0 to 12 [Release: 11.5.10 to 12.0]

Information in this document applies to any platform.Executable:RAXMTR - AutoInvoice Master ProgramExecutable:RAXTRX - AutoInvoice Import Program

Form:ARXTWMAI.FMB - TransactionsConcurrentProgram:ARBARL_NON_SRS2 - Revenue Recognition Execution Report

ConcurrentProgram:ARBARL_NON_SRS - Revenue Recognition from GL Transfer Program

Purpose

Oracle Receivables (AR): AutoInvoice Information Center > Troubleshooting AutoInvoice for Oracle Receivables Release 11.5 Through 12 > Note 1121944.1

Oracle Receivables (AR): Transactions Workbench Information Center > Note 1121944.1

Oracle Receivables provides the flexibility of defining a schedule of how you want the revenue for your invoices to be recognized, this is controlled by specifying Invoicing and Accounting rules to indicate to the

Revenue Recognition program the desired schedule of recognizing revenue.

This note was created to provide troubleshooting tips for issues involving Revenue Recognition. It is suggested that you also review Note 1116934.1, How To Setup And Troubleshoot Invoicing Rules and

Accounting Rules, because these topics are tightly integrated.

Last Review Date

September 14, 2010

Instructions for the Reader

A Troubleshooting Guide is provided to assist in debugging a specific issue. When possible, diagnostic tools are included in the document to assist in troubleshooting.

Troubleshooting Details

1. Overview of Revenue Recognition

When you sell a product to a customer, you send him an invoice to request for payment. In the invoice, you provide a description for the product or service rendered, the amount due and the due date in which youexpect to be paid. The accounting for this invoice will impact GL accounts associated to Receivables and Revenue (plus Tax and Freight if applicable).

You may have business or legal requirements that dictate how you can account for the revenue associated to the invoice. Perhaps you recognize the revenue in full once the invoice is paid, or for invoices

associated with a service spread out over multiple months, you may need to recognize the revenue only when the service has been provided. The manner in which you control when revenue is recognized ishandled by Invoicing and Accounting Rules. For more information on rules, please review Note 1116934.1, Setup and Troubleshooting Invoicing Rules and Accounting Rules.

Scheduling when Revenue is accounted for, is all handled by the Revenue Recognition feature. Revenue Recognition is an engine that will create GL distributions for your invoices reflecting the revenue scheduleyou defined.

Revenue Recognition is run as a batch process either as a stand-alone or automatically when you invoke transfer of accounting to the General Ledger. The process will pick up all invoices with rules that have not

yet been processed. For each of these invoices, it will review the Invoicing and Accounting rules associated and create the necessary GL distributions. The GL distributions it creates is how invoices in Receivablesget posted to the General Ledger.

2. Using Revenue Recognition

Once you associate an Invoicing rule to an invoice, you are tagging it for processing by Revenue Recognition. The Invoicing rule provided tells Revenue Recognition how you want it to create the distributions forthe Receivable account.

In the Lines of the invoice, where you provide Accounting rule, duration, rule start date information, you are telling Revenue Recognition how you want it to create the distributions for the Revenue account.

Document Display https://support.oracle.com/epmos/faces/ui/km/SearchDocDisplay.jspx?_ad...

1 of 12 7/29/2012 1:56 PM

Page 2: revRecog_R12

After you finish creating and completing an invoice, records are created in RA_CUST_TRX_LINE_GL_DIST_ALL that provide a template or model for the Revenue Recognition engine to use.

Note: The complete set of distributions necessary to post to the General Ledger will not exist until Revenue Recognition has completed processing this invoice.

After the invoice is completed, you will need to run Revenue Recognition so it can create the necessary distributions. There are multiple ways to run Revenue Recognition:

a. Standalone process in batch mode.

This standalone method provides users the ability to run Revenue Recognition at any given time.

Responsibility: Receivables Manager

Navigation: Control > Accounting > Revenue Recognition

Note: The Revenue Recognition Master Program is capable of running the process using multiple workers. This feature is useful when processing large volumes of data. Invoices pending Revenue

Recognition are stored in a queue: AR_REV_REC_Q. Records from this queue are removed once they have been processed by the Master program.

b. Online in Transactions form

Available only in Release 12, in the Transactions form, you can invoke the creation of accounting for a specific invoice.

Responsibility: Receivables ManagerNavigation: Transactions > Transactions

After completing an invoice, or after querying a completed invoice, access from the

Toolbar: Menu > Create Accounting

If you pick the first or second option, Revenue Recognition will be implicitly invoked, because the GL distributions for the invoice need to be generated by Revenue Recognition before it can post toGeneral Ledger.

Document Display https://support.oracle.com/epmos/faces/ui/km/SearchDocDisplay.jspx?_ad...

2 of 12 7/29/2012 1:56 PM

Page 3: revRecog_R12

c. Implicitly via the transfer to General Ledger

Since Revenue Recognition creates the GL distributions necessary for posting, the process that transfers to the General Ledger will invoke Revenue Recognition to ensure that all necessarydistributions exist before attempting to post. This process has changed between Release 11.5 and 12.

In Release 11.5:Responsibility: Receivables Manager

Navigation: Interfaces > General Ledger

In Release 12.0:

Responsibility: Receivables ManagerNavigation: Control > Requests > Run

Run the request for: Submit Accounting, and provide the parameters requested

Document Display https://support.oracle.com/epmos/faces/ui/km/SearchDocDisplay.jspx?_ad...

3 of 12 7/29/2012 1:56 PM

Page 4: revRecog_R12

Note:

Another concurrent process called Create Accounting, also handles creation of Sub-ledger accounting. However this process will not call Revenue Recognition. If you use this process,there is a likelihood that you will not post everything from Receivables if there are invoices still pending to be processed by Revenue Recognition.

You are advised to use Submit Accounting which was created specifically for Oracle Receivables. This process calls: Revenue Recognition prior to calling Create Accounting. This ensuresthe necessary GL distributions are created by Revenue Recognition.

1.

In Release 11.5, when running the General Ledger Transfer process

there is no way to disable the call to Revenue RecognitionThe Revenue Recognition execution report is always submitted in Detailed mode

2.

In Release 12.0, when running Submit Accountingthere is no way to disable the call to Revenue Recognition

The Revenue Recognition execution report is always submitted in Summary mode

3.

3. Underlying table information and code supporting Revenue Recognition

The Revenue Recognition process is handled by the following:

Filename Description

ARPLARLB.pls

ARPLARLS.pls

PL/SQL package body and specification that defines

ARP_AUTO_RULE, which contains the main logic controlling theRevenue Recognition process.

ARBARL.rdf Report definition handling the Revenue Recognition ExecutionReport, which serves as entry point into calling the

ARP_AUTO_RULE package to create distributions

Data supporting Revenue Recognition is stored in the following tables. The information presented in this section is not intended to provide a comprehensive list of data model and configuration, but rather justhighlights information pertaining to Revenue Recognition.

Table Name: RA_CUSTOMER_TRX_LINES

Description: Invoice lines table that holds information pertaining to the Invoicing and Accounting Rule to use for a particular invoice line.

Field Name Field Description

INVOICING_RULE_IDACCOUNTING_RULE_ID

ACCOUNTING_RULE_DURATIONAUTORULE_DURATION_PROCESSEDAUTORULE_COMPLETE_FLAG

RULE_START_DATERULE_END_DATE

Please review the table in Note 1116934.1,Underlying table information for Invoicing

and Accounting Rules. f

Table Name: RA_CUST_TRX_LINE_GL_DIST

Description: GL Distributions table, containing information to pass GL entries to General Ledger

Field Name Field Description

GL_DATE The General Ledger Date that will be used when thisdistribution is posted to the General Ledger

ACCOUNT_CLASS Indicates the type of account, possible values are:REC - Receivables

REV - RevenueTAX - Tax

FREIGHT - FreightUNEARN - Unearned Revenue used for In Advance

UNBILL - Unbilled Revenue used for In ArrearsROUND - Rounding

AMOUNT Contains the distribution amount

PERCENT Contains the percentage this distribution accounts for.

LATEST_REC_FLAG Y indicates that the REC record is the latest created REC

record. There should always be just one record where this isY.

REC_OFFSET_FLAG Y indicates the distribution is an offset to the Receivableaccount. This tag is set for UNEARN or UNBILL records only.

Table Name: AR_REVENUE_ASSIGNMENTSDescription: Contains the schedule of revenue to be used by Revenue Recognition. Each invoice with rules is associated to a series of records in this table that controls the distributions to be created for theinvoice. This table defines the minimum and maximum GL periods to be used for the distributions of a transaction.

Field Name Field Description

GL_DATE The General Ledger Date to be used by the distribution

AMOUNT Distribution Amount

ACCOUNT_CLASS Account Class - same values as above

PERIOD_SET_NAME Period name associated with the GL periods defined

4. Illustration of impact of running Revenue Recognition

To better understand the concept of Revenue Recognition let's consider a couple of examples.

a. Illustration of an Invoice without rules

Create an Invoice that does not use an Invoicing Rule1.Create 2 lines, neither of which are associated to Accounting Rules. Note that the Rules tab is disabled because we did not specify an Invoicing Rule in the Main section of the form.2.

Document Display https://support.oracle.com/epmos/faces/ui/km/SearchDocDisplay.jspx?_ad...

4 of 12 7/29/2012 1:56 PM

Page 5: revRecog_R12

Save and Complete the Invoice3.

Using the following select statement, review information in RA_CUSTOMER_TRX_LINES_ALL:

select customer_trx_id trx_id, customer_trx_line_id line_id, accounting_rule_id rule_id, accounting_rule_ duration duration, autorule_duration_processed processed, autor ule_complete_flag complete, rule_start_date start_dt, rule_end_date end_ dtfrom RA_CUSTOMER_TRX_LINES_ALLwhere customer_trx_id = 526646;

The value in ACCOUNTING_RULE_ID is null, indicating this invoice has no rules. Further, other Rule-related fields: ACCOUNTING_RULE_DURATION, AUTORULE_DURATION_PROCESSED and

AUTORULE_COMPLETE_FLAG are also null.

Clicking on the Distributions button will show you the current state of the distributions for the invoice. The distributions are made against Receivables, Rounding and Revenue.

From the back-end, the data in RA_CUST_TRX_LINE_GL_DIST_ALL is as follows:

Row 1 shows the REC row with LATEST_REC_FLAG = YRows 3-4 show the REV distributions, indicating that amounts have hit the Revenue account directly.

Since this invoice has no rules, upon completion of the invoice, the complete set of GL distributions are already created. This invoice is ready to post to the General Ledger. Revenue Recognition willnot pick up this invoice for processing because it has no rules.

b. Illustration of an Invoice with rules

Take note of the differences in behavior specially in the RA_CUST_TRX_LINE_GL_DIST_ALL table.

Create an Invoice that uses Invoicing Rule = In Advance.1.

Document Display https://support.oracle.com/epmos/faces/ui/km/SearchDocDisplay.jspx?_ad...

5 of 12 7/29/2012 1:56 PM

Page 6: revRecog_R12

Create 2 lines: Line 1: uses rule = Month, 1 year (spans 12 periods), Line 2: uses rule = Immediate (spans 1 period)2.

Save and Complete the invoice.3.

Using the following select statement, review information in RA_CUSTOMER_TRX_LINES_ALL:

select customer_trx_id trx_id, customer_trx_line_id line_id, accounting_rule_id rule_id, accounting_rule_ duration duration, autorule_duration_processed processed, autor ule_complete_flag complete, rule_start_date start_dt, rule_end_date end_ dtfrom RA_CUSTOMER_TRX_LINES_ALLwhere customer_trx_id = 526646;

The value in AUTORULE_DURATION_PROCESSED is null and AUTORULE_COMPLETE_FLAG = N, indicate that Revenue Recognition has not yet run for this invoice.

Clicking on the Distributions button will show you the current state of the distributions for the invoice. The presence of Unearned Revenue distributions indicates this invoice uses the Invoicing rule =Advanced Invoice. (If the Invoicing Rule = Arrears Invoice, we would see Unbilled Revenue instead).

Document Display https://support.oracle.com/epmos/faces/ui/km/SearchDocDisplay.jspx?_ad...

6 of 12 7/29/2012 1:56 PM

Page 7: revRecog_R12

From the back-end, the data in RA_CUST_TRX_LINE_GL_DIST is as follows:

Row 1 shows the REC row with LATEST_REC_FLAG = Y, at this point this is the only REC row, it shows the full amount of the invoice.

Rows 3-6 are called "model" rows. These distributions will be used as templates by the Revenue Recognition engine, and will be expanded to reflect the actual distributions containing GL_DATE,AMOUNT and PERCENT values across the multiple periods after the Revenue Recognition process is run.

Note:

After creating and completing an invoice in the transactions form, you will only see model rows to be used as templates to create the complete set of distributions. You will not see the complete

set of distributions associated to the Accounting Rule until Revenue Recognition is run against the Invoice.

You should run Revenue Recognition prior to attempting to post this invoice.

Following shows changes in the data after running Revenue Recognition:Responsibility: Receivables ManagerNavigation: Control > Accounting > Revenue Recognition

data in RA_CUSTOMER_TRX_LINES_ALL, changes:

The values in AUTORULE_DURATION_PROCESSED are no longer null, it reflects the same values as ACCOUNTING_RULE_DURATION, indicating that distributions for all durations have been processed.AUTORULE_COMPLETE_FLAG changed from N to null, this indicates that Revenue Recognition has completed processing this invoice.

data in RA_CUST_TRX_LINE_GL_DIST_ALL expands to:

Document Display https://support.oracle.com/epmos/faces/ui/km/SearchDocDisplay.jspx?_ad...

7 of 12 7/29/2012 1:56 PM

Page 8: revRecog_R12

Note the following changes:

Row 1, LATEST_REC_FLAG has changed to N

Row 33, is a new REC record created during the Revenue Recognition process, since it is the newest REC record, LATEST_REC_FLAG = Y.

Rows 35-36, are UNEARN rows associated with the REC row, these are indicated by REC_OFFSET_FLAG = Y. Revenue Recognition created these UNEARN rows to hold the values for revenue thatcannot be recognized yet, because the invoice is billed In Advance. Note that the GL_DATE associated to these records is the GL_DATE provided in the header section of the transaction form and

matches the GL_DATE of the REC row.

Rows 7-36, are the REV/UNEARN pairs that were created for each of the 2 lines.

The first line of the invoice with Accounting Rule: Month, 1 year is associated to CUSTOMER_TRX_LINE_ID = 822552. There are 12 pairs of REV/UNEARN rows with GL_DATE values spanning04-JUL-2010 to 04-JUN-2011. This is the revenue schedule for the first line. Over each period, 8.33% of the revenue is recognized by removing it from the UNEARN account and transferring it to the

REV account.

The second line of the invoice with Accounting Rule: Immediate is associated to CUSTOMER_TRX_LINE_ID = 822553. There is only one pair of REV/UNEARN with GL_DATE = 04-JUN-2010. This is the

revenue schedule for the second line. Immediately in one period, 100% of the revenue is recognized by removing it from the UNEARN account and transferring it to the REV account.

5. Troubleshooting Revenue Recognition

When Revenue Recognition encounters errors while processing transactions, it will report these transactions as Unprocessed or Partially Processed. The following tips will help you determine what may be causingthe failure.

a. Check that the period associated to the Accounting Rule you are using is the same period associated to your Ledger.

This is described in detail in Note 1116934.1, under the section 5.e. When choosing an Accounting rule get error

b. Validate GL periods

When checking GL periods, ensure the following:

there are no "islands" or "sandwiched" periods

Responsibility: Receivables ManagerNavigation: Control > Accounting > Open/Close Periods

Revenue Recognition expects to see period statuses in the following order:

Closed - Closed Pending - Open - Not Opened - Future.

Basically, periods in the past are Closed or Closed Pending, current periods are Open, and future periods are Not Opened or Future. The presence of an Open period sandwiched betweenClosed periods, or the presence of islands of Closed periods surrounded by Open periods causes errors in Revenue Recognition.

Examples of error raised by the presence of "islands" or "sandwiched" periods:

EXCEPTION: arp_auto_rule.create_assignments()ar.plsql.arp_auto_rule.create_assignmentsORA-06502: PL/SQL: numeric or value error: characte r string buffer too smallar.plsql.arp_auto_rule.create_assignmentsORA-06512: at "APPS.ARP_AUTO_RULE", line 479REP-1401: 'c_pp_auto_ruleformula': Fatal PL/SQL err or occurred.fEXCEPTION: arp_auto_rule.create_assignments()ORA-06503: PL/SQL: Function returned without valueORA-06512: at "APPS.ARP_AUTO_RULE", line 537arp_auto_rule.create_assignments()- 02-NOV-06 03:22 :41Distributions created = -1

Document Display https://support.oracle.com/epmos/faces/ui/km/SearchDocDisplay.jspx?_ad...

8 of 12 7/29/2012 1:56 PM

Page 9: revRecog_R12

For a detailed description of various scenarios involving "island" periods, please review Note 560515.1, 11i/12 -Revenue Recognition Execution Report Completes With WarningAnd Shows 'Unprocessed or Partially Processed Transactions' Due to Wrong Period Status

You can use the following select to review the status of your periods and to check whether you have open statuses (O) sandwiched between closed statuses (C or W) or vice

versa.

select closing_status,period_year,period_name,set_o f_books_id, last_update_date,last_updated_by,start_date, end_datefrom GL_PERIOD_STATUSESwhere application_id = 222order by set_of_books_id,period_year,period_num,per iod_name;

all periods to be used by your accounting rules exist

If you are using Accounting rules that span periods of time exceeding a year, ensure that you have defined the GL periods that will be used by these rules.

Responsibility: General Ledger ManagerNavigation: Setup > Financials > Calendar > Accounting

Query up the Calendar associated to your ledger and ensure you have defined all the periods that may be used by your accounting rules.

c. Validate the status of fields impacted by Revenue Recognition

In general, following is the correct status of fields impacted by Revenue Recognition. Reviewing these fields will give you an idea of whether Revenue Recognition successfully processed thetransaction.

In RA_CUSTOMER_TRX_LINES_ALL:

Field Name Expected value Value BEFORE beingprocessed byRevenue Recognition

Value AFTER being processed byRevenue Recognition

ACCOUNTING_RULE_ID For invoices with rules, this should not be null value not changed by RevRec value not changed by Revenue Recognition

ACCOUNTING_RULE_DURATION Number of periods to schedule revenue in, for invoices with rules this

should not be null

value not changed by RevRec value not changed by Revenue Recognition

AUTORULE_DURATION_PROCESSED This field is initally set to Null. Revenue Recognition collects alltransactions where this is null for processing.

Null should match the value inACCOUNTING_RULE_DURATION

AUTORULE_COMPLETE_FLAG This field is initially set to N. Revenue Recognition collects all transactionswhere this is N for processing.

N null

In RA_CUST_TRX_LINE_GL_DIST_ALL:

Field Name and value What does it mean

ACCOUNT_CLASS = RECACCOUNT_SET_FLAG = Y

LATEST_REC_FLAG = Y

If this is the only REC row for your transaction, then Revenue Recognition has not processed this transaction yet.

Document Display https://support.oracle.com/epmos/faces/ui/km/SearchDocDisplay.jspx?_ad...

9 of 12 7/29/2012 1:56 PM

Page 10: revRecog_R12

ACCOUNT_CLASS = REC

ACCOUNT_SET_FLAG = NLATEST_REC_FLAG = Y

If this distribution exists, it indicates that Revenue Recognition has processed this transaction.

ACCOUNT_CLASS = UNEARN (orUNBILL)

ACCOUNT_SET_FLAG = NREC_OFFSET_FLAG = null

andACCOUNT_CLASS = REV

ACCOUNT_SET_FLAG = NREC_OFFSET_FLAG = null

If such distribution pairs exist, these were created by Revenue Recognition. For each distinct CUSTOMER_TRX_LINE_ID value,you should have at least as many pairs as ACCOUNTING_RULE_DURATION. The number of pairs could be more if you split

salescredits.

ACCOUNT_CLASS = UNEARN (orUNBILL)

ACCOUNT_SET_FLAG = NREC_OFFSET_FLAG = Y

These rows partner up with the REC row which has LATEST_REC_FLAG = Y, these distributions account for the TOTAL of theinvoice and exist once Revenue Recognition has processed the transaction.

ACCOUNT_CLASS = UNEARN (orUNBILL)

If you run a sum on all UNEARN (or UNBILL) distributions for a transaction, and the sum is zero, this means that RevenueRecognition has processed the transaction.

d. Printer setup

The Revenue Recognition process is kicked off via a report, if your setup has printing enabled, and the printer is not setup correctly you may hit errors like:

APP-FND-00500 : AFPPRN received a return code of fa ilure fromroutine FDUPRN.

Options to fix this are:

Uncheck the Print Checkbox

Responsibility: System AdministratorNavigation: Concurrent > Program > Define

Query on Short Name = ARBARLUncheck the Print checkbox in the Output Region to disable printing

1.

Check correct printer driver is installed2.

e. Cannot specify Print Format (Detailed or Summary) when running Revenue Recognition through General Ledger Transfer or Submit Accounting

When Revenue Recognition is kicked off implicitly via the General Ledger Transfer process or Submit Accounting process, users are not provided the option to pick the Print Format. In release 11.5. itis always printed in Detail. If there was a huge volume of data processed, this can create a very long report.

To avoid this, a workaround is to manually submit the Revenue Recognition process, whereby you are allowed to specify the Print Format. By doing this, when Revenue Recognition is invokedimplicitly during General Ledger Transfer or Submit Accounting time, there will be less data to process, and the report won't be too long.

An open enhancement request Bug 2825266 has been logged for this issue.

f. Data Corruption Issues

Data corruption issues are common causes of failure of Revenue Recognition, following are some common examples:

i) null ACCOUNTING_RULE_DURATION

When processing an invoice with rules, and Revenue Recognition encounters a zero or null duration, the following error is raised in the FND debug log:

min date: , max date:Min/Max gl_dates are NULL!!. Check trx..

Cause is unknown, and the fix is to populate ACCOUNTING_RULE_DURATION with the correct value. If you need help doing this, please contact Oracle Support and provide the details listed in belowin the section Logging a Service Request.

g. Aborting Revenue Recognition

Sometimes Revenue Recognition has severe performance issues causing it to run for a long time. The revenue recognition process loops through all transactions that require processing, and once itcompletes creating distributions for a transaction, it issues a commit to save changes to the database. In spite of this, aborting the process can cause data corruption.

The best way to avoid having to abort Revenue Recognition due to bad performance, is to run it often so that data volume does not build up.

h. Multi-Reporting Currency (MRC) Issues (11.5 only)

i) arp_auto_rule.create_other_plug() error

Revenue recognition fails with the following error:

arp_auto_rule.create_other_plug()- 09-JUL-03 09:03: 0109:03:01 :Rows were inserted into gl dist09:03:01 :EXCEPTION: arp_auto_rule.create_other_plu g()09:03:01 :ORA-22160: element at index [1000] does n ot exist09:03:01 :arp_auto_rule.create_other_plug()- 09-JUL-03 09:03: 01

This issue happens when there are over 1000 distributions associated to the transaction, and is resolved by applying a patch.

Please ensure your version of glcauts.pls is at least 115.11.

ii) ORA-00001 UNIQUE CONSTRAINT (AR.RA_MC_TRX_LINE_GL_DIST_U1) VIOLATED

This error is raised when MRC code attempts to create records that already exist in MRC tables. This issue is addressed via a patch on ARPLARLB.pls, ensure you are at least on the following versions:

For AR.N: ARPLARLB.pls-115.65.15103.13For AR.O: ARPLARLB.pls-115.65.15104.9

i. Running Create Accounting raises error

Errors are raised because Create Accounting is unable to find distributions to post for a transaction. This is because Revenue Recognition has not yet processed the transaction. To fix this issue, runRevenue Recognition prior to running Create Accounting, or run Submit Accounting instead. (Please see note box in 2.c. above).

Sample errors are:

ORA-1422 exact fetch returns more than request numb er of rowsORA-06512: at "APPS.ARP_BAL_UTIL"' line 1570An internal error has occurred in the program XLA_0 0222_AAD_S_000003_PKG.EventClass_139. ORA-01403: no data found.

Document Display https://support.oracle.com/epmos/faces/ui/km/SearchDocDisplay.jspx?_ad...

10 of 12 7/29/2012 1:56 PM

Page 11: revRecog_R12

j. Revenue Recognition process stays in Pending/Standby status

When Revenue Recognition is submitted, either manually through Submit Request or automatically via General Ledger Transfer or Submit Accounting, and it just stays in Pending/Standby status,check the following:

Concurrent: Sequential Requests Profile, this must be set to No at the Site Level.

Responsibility: System AdministratorNavigation: Profile >System

Check whether you have made Revenue Recognition incompatible with other processes that may be running.See instructions listed in section 6.a, then click on the Incompatibilities button and review what processes are listed as incompatible and check if any of those processes are currently running.

k. GL date or Transaction date issues

When you have issues with the GL or Transaction dates generated by Revenue Recognition, please refer to Note 201241.1, Troubleshooting AutoInvoice Date Derivation: GL Date, Invoice Date, DueDate, Ship Date, Billing Date, Rule Date which provides an explanation of how dates are derived.

6. How to enable debugging and tracing for Revenue Recognition

When you want to review additional debug messages you can enable FND debugging. To get in-depth information on what particular statement is causing Reveneu recognition to fail, you can enable trace.

a. Enabling trace

Responsibility: System Administrator

Navigation: Concurrent > Program > Define

Query on Short Name = ARBARL%

This will bring back 3 rows, with Short Name:

ARBARL: This is the single thread run of Revenue Recognition, this is the process invoked when you run Revenue Recognition standalone from the Submit Request form.ARBARL_NON_SRS2: This is the execution Report

ARBARL_NON_SRS: This is the Revenue Recognition process implicitly invoked when you run the GL Transfer (in 11.5) or Submit Accounting (in 12.0).

Depending on how you are running Revenue Recognition, pick that record and make the following changes:

Check the Enable Trace checkbox1.

In past releases enabling debug was done via the 8th parameter Debug Mode. In Release 11.5.10 and up, a better way to see debug messages from PL/SQL files is via FND debugging, see

section b. below.

2.

Save your changes3.

b. Enabling FND debugging

Since the logic for Revenue Recognition is handled by PL/SQL, the debugging feature provided by FND would be useful in retrieving debug messages that could help you pinpoint source of error.

To enable FND debugging, please review Note 433199.1, How to enable and retrieve FND debug log messages.

When done correctly, a retrieval of debug messages should show something like:

Document Display https://support.oracle.com/epmos/faces/ui/km/SearchDocDisplay.jspx?_ad...

11 of 12 7/29/2012 1:56 PM

Page 12: revRecog_R12

7. Code Bugs

To ensure you are not encountering an issue that has already been reported and fixed, it is highly recommended to check whether you are on the latest versions available for your release.

Please review Note 1126456.1, List of Patches Available for Revenue Recognition Issues for Releases 11.5.10 to 12.1, for a compilation of files and patches fixed for reported Revenue Recognition defects.

8. Still have Questions?

To discuss this information further with Oracle experts and industry peers, we encourage you to review, join or start a discussion in the My Oracle Support Receivables Community.

To provide feedback on this note, click on the Rate this document link.

If you feel that a Service Request is needed, please be sure to provide the information listed below:

If you are encountering the issue in AutoInvoice:

Are you able to replicate the issue with a manual invoice created via the Transactions Workbench?Include the AutoInvoice Exception Report (if any).

Include the AutoInvoice Concurrent Process log file (see Note 1079666.1).Enable and include the FND debug log file generated by AutoInvoice (see Note 1079666.1).

Include output from the following Oracle Diagnostics:

Oracle Receivables AutoInvoice Interface Data Collection Test (only if your issue manifests for transactions created in AutoInvoice) this will Support what your interface data looks like.Oracle Receivables Transaction Data Setup Test - this will show Support what the created transaction looks like.

For information on Oracle Diagnostics, please review the Diagnostic catalogs for your release as noted below:

Release 11.5: see Note 179661.1, E-Business Suite Diagnostics 11i Test CatalogRelease 12.x: see Note 421245.1, E-Business Suite Diagnostics References for R12

Once you have identified your release, locate the note for the specific diagnostic you would like to run. For example, in 12.0.6, Note 732187.1, R12.0.6+ : Oracle Receivables AutoInvoice Interface

Data Collection Test.

Include the Revenue Recognition concurrent process log file.Include the FND debug log generated while running the Revenue Recognition process (see section 6 above).

References

NOTE:1075757.1 - Troubleshooting AutoInvoice for Oracle Receivables Release 11.5 Through 12

NOTE:1126456.1 - List of Patches Available for Revenue Recognition Issues for Releases 11.5.10 to 12.1NOTE:179661.1 - E-Business Suite Diagnostics 11i Test CatalogNOTE:201241.1 - Troubleshooting AutoInvoice Date Derivation: GL Date, Invoice Date, Due Date, Ship Date, Billing Date, Rule Date

NOTE:421245.1 - E-Business Suite Diagnostics References for R12

Document Display https://support.oracle.com/epmos/faces/ui/km/SearchDocDisplay.jspx?_ad...

12 of 12 7/29/2012 1:56 PM