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

23
Understanding and Troubleshooting Revenue Recognition in Oracle Receivables [ID 1121944.1] Modified: Dec 18, 2012 Type: TROUBLESHOOTING Status: PUBLISHED Priority: 3 In this Document Purpose Troubleshooting Steps 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 i) null ACCOUNTING_RULE_DURATION g. Aborting Revenue Recognition h. Multi-Reporting Currency (MRC) Issues (11.5 only) i) arp_auto_rule.create_other_plug() error 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 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] Information in this document applies to any platform. Executable:RAXMTR - AutoInvoice Master Program Executable:RAXTRX - AutoInvoice Import Program

description

nderstanding and Troubleshooting Revenue Recognition in Oracle Receivables

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

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

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

Modified: Dec 18, 2012 Type: TROUBLESHOOTING Status: PUBLISHED Priority: 3

In this Document

Purpose

Troubleshooting Steps

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

i) null ACCOUNTING_RULE_DURATION

g. Aborting Revenue Recognition

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

i) arp_auto_rule.create_other_plug() error

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

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]Information in this document applies to any platform.Executable:RAXMTR - AutoInvoice Master ProgramExecutable:RAXTRX - AutoInvoice Import Program

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

Form:ARXTWMAI.FMB - TransactionsConcurrentProgram:ARBARL_NON_SRS2 - Revenue Recognition Execution ReportConcurrentProgram: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 RevenueRecognition 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 AccountingRules, because these topics are tightly integrated.

Troubleshooting Steps

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 witha 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 andAccounting 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 youdefined.

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 yetbeen 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 postedto 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 theReceivable 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.

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.

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

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 ManagerNavigation: 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 RevenueRecognition 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

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

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

c. Implicitly via the transfer to General Ledger

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

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 necessary distributions existbefore attempting to post. This process has changed between Release 11.5 and 12.

In Release 11.5:Responsibility: Receivables ManagerNavigation: Interfaces > General Ledger

In Release 12.0:Responsibility: Receivables ManagerNavigation: Control > Requests > Run

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

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

Note:

1. 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 isa 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 ensures thenecessary GL distributions are created by Revenue Recognition.

2. In Release 11.5, when running the General Ledger Transfer processthere is no way to disable the call to Revenue RecognitionThe Revenue Recognition execution report is always submitted in Detailed mode

3. In Release 12.0, when running Submit Accountingthere is no way to disable the call to Revenue RecognitionThe Revenue Recognition execution report is always submitted in Summary mode

3. Underlying table information and code supporting Revenue Recognition

The Revenue Recognition process is handled by the following:

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

The Revenue Recognition process is handled by the following:

Filename Description

ARPLARLB.plsARPLARLS.pls

PL/SQL package body and specification that definesARP_AUTO_RULE, which contains the main logic controlling theRevenue Recognition process.

ARBARL.rdf Report definition handling the Revenue Recognition Execution Report,which serves as entry point into calling the ARP_AUTO_RULEpackage 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 just highlightsinformation pertaining to Revenue Recognition.

Table Name: RA_CUSTOMER_TRX_LINESDescription: 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_IDACCOUNTING_RULE_DURATIONAUTORULE_DURATION_PROCESSEDAUTORULE_COMPLETE_FLAGRULE_START_DATERULE_END_DATE

Please review the table in Note 1116934.1,Underlying table information for Invoicing andAccounting Rules. f

Table Name: RA_CUST_TRX_LINE_GL_DISTDescription: 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 - ReceivablesREV - RevenueTAX - TaxFREIGHT - FreightUNEARN - Unearned Revenue used for In AdvanceUNBILL - 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 RECrecord. 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 the invoice. Thistable defines the minimum and maximum GL periods to be used for the distributions of a transaction.

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

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

1. Create an Invoice that does not use an Invoicing Rule2. 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.

3. Save and Complete the Invoice

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

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, autorule_complete_flag complete, rule_start_date start_dt, rule_end_date end_dt

from RA_CUSTOMER_TRX_LINES_ALL

where 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 andAUTORULE_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 will not pickup 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.

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

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

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

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

3. Save and Complete the invoice.

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, autorule_complete_flag complete,

rule_start_date start_dt, rule_end_date end_dt

from RA_CUSTOMER_TRX_LINES_ALL

where customer_trx_id = 770451;

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

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

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). Note that all percentages are shown as 100%, and there is no GL Date column.

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

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.All the other rows 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 ofdistributions 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

Run Revenue Recognition Master Program

After this process completes, the 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.

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

data in RA_CUST_TRX_LINE_GL_DIST_ALL expands to:

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

Note the following changes:

Row 1, LATEST_REC_FLAG has changed to NRow 39, is a new REC record created during the Revenue Recognition process, since it is the newest REC record, LATEST_REC_FLAG = Y.

Rows 41-42, 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 that cannot berecognized 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_DATEof the REC row.

Rows 13-36 (in the red box) are the REV/UNEARN pairs that were created for the first invoice line.The first line of the invoice with Accounting Rule: Month, 1 year is associated to CUSTOMER_TRX_LINE_ID = 1287667. There are 12 pairs of REV/UNEARN rows with GL_DATE values spanning 18-Sep-2012to 18-Aug-2013. This is the revenue schedule for the first invoice 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.

Rows 37-28 (in the blue box) are the REV/UNEARN pairs that were created for the second invoice line.The second line of the invoice with Accounting Rule: Immediate is associated to CUSTOMER_TRX_LINE_ID = 1287668. There is only one pair of REV/UNEARN with GL_DATE = 18-Sep-2012. 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.

If you query back the invoice in the Transaction form and view the Distributions, it will now look like the following, note that now there is a column for GL Date and the percentage shows 8.3333 which is theportion of revenue to recognize monthly across 12 months.

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

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

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_assignments

ORA-06502: PL/SQL: numeric or value error: character string buffer too small

ar.plsql.arp_auto_rule.create_assignments

ORA-06512: at "APPS.ARP_AUTO_RULE", line 479

REP-1401: 'c_pp_auto_ruleformula': Fatal PL/SQL error occurred.f

EXCEPTION: 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

For a detailed description of various scenarios involving "island" periods, please review Note 560515.1, 11i/12 -Revenue Recognition Execution Report Completes With Warning AndShows '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_of_books_id, last_update_date,last_updated_by,start_date, end_date

from GL_PERIOD_STATUSESwhere application_id = 222

order by set_of_books_id,period_year,period_num,period_name;

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

order by set_of_books_id,period_year,period_num,period_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.

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

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

In RA_CUSTOMER_TRX_LINES_ALL:

Field Name Expected value Value BEFORE beingprocessed byRevenue Recognition

Value AFTER being processed by Revenue 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 benull

value not changed by RevRec value not changed by Revenue Recognition

AUTORULE_DURATION_PROCESSED This field is initally set to Null. Revenue Recognition collects all transactions wherethis 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 transactions where thisis 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 = YLATEST_REC_FLAG = Y

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

ACCOUNT_CLASS = RECACCOUNT_SET_FLAG = NLATEST_REC_FLAG = Y

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

ACCOUNT_CLASS =UNEARN (or UNBILL)ACCOUNT_SET_FLAG = NREC_OFFSET_FLAG = null

andACCOUNT_CLASS = REVACCOUNT_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 shouldhave at least as many pairs as ACCOUNTING_RULE_DURATION. The number of pairs could be more if you split salescredits.

ACCOUNT_CLASS =UNEARN (or UNBILL)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 the invoice andexist once Revenue Recognition has processed the transaction.

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

REC_OFFSET_FLAG = Y

ACCOUNT_CLASS =UNEARN (or UNBILL)

If you run a sum on all UNEARN (or UNBILL) distributions for a transaction, and the sum is zero, this means that Revenue Recognition hasprocessed 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 failure from routine FDUPRN.

Options to fix this are:

1. Uncheck the Print CheckboxResponsibility: System AdministratorNavigation: Concurrent > Program > Define

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

2. Check correct printer driver is installed

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. it isalways 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 invoked implicitlyduring 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 below in thesection 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:

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

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_plug()09:03:01 :ORA-22160: element at index [1000] does not 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 number of rows

ORA-06512: at "APPS.ARP_BAL_UTIL"' line 1570

An internal error has occurred in the program XLA_00222_AAD_S_000003_PKG.

EventClass_139. ORA-01403: no data found.

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 >SystemCheck 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, Due Date,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 AdministratorNavigation: Concurrent > Program > Define

Query on Short Name = ARBARL%

This will bring back 3 rows, with Short Name:

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

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 ReportARBARL_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:

1. Check the Enable Trace checkbox

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

3. Save your changes

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.

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

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

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.

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

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 DataCollection 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:1067402.1 - AutoInvoice Setup for Release 12: A Case Study Using a Simple ScriptNOTE:1075757.1 - Troubleshooting AutoInvoice for Oracle Receivables Release 11.5 Through 12NOTE: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 DateNOTE:421245.1 - E-Business Suite Diagnostics References for R12