“Design Console Access” – A good example of researching

Somebody asked me a questions about the checkbox “Design Console Access” in user creation task in Fusion Application. (In Oracle Identity Manager, OIM). Frankly, I don’t know it either. It sounds too technical. I search it today and found it as a good example of researching.

Firstly, I searched it in google. But it is too difficult to find a quick and good information to locate the answer.

Then, I search it in Oracle Help, a new repository of Oracle documentation. It is enhanced in cloud time!  http://docs.oracle.com/en/

http://docs.oracle.com/cd/E17904_01/doc.1111/e14316/usr_mangmnt.htm#OMUSG499
In this page, I searched “Design Console Access” and find the direct answer of “Design Console Access”.

Design Console Access: The user of OIM User type. It can have one of the two possible values, End-User and End-User Administrator. The OIM User type tells whether or not the user can log in to Oracle Identity Manager Design Console. If the “Design Console Access” check box is selected, the user type will be “End-User Administrator” and the user will have access to design console.

But, it is not enough. What is design console? Then, I search the “design console” in the same page. There’s no explanation for “design console”, but there’s some example mentioned it. For example,

Tip:

If the user forgets the password and tries to retrieve it, then the challenge questions are prompted to the user. The user must enter the same answers provided while creating a password. You can configure the challenge questions for the users by using Oracle Identity Manager Design Console.

To configure challenge questions for the user:

  1. Login to Oracle Identity Manager Design Console.

  2. Navigate to Administration, Lookup Definition.

  3. Search for the Lookup for challenge questions, that is, lookup Code = Lookup.WebClient.Questions.

  4. In the Lookup Code Information tab, add questions by entering the appropriate values in the Code Key and Decode fields.

  5. Click Add.

  6. Add this key to the custom resource bundle.

For more information about the Lookup Definition form, see Section 10.3, “Lookup Definition Form” in the Oracle Fusion Middleware Developer’s Guide for Oracle Identity Manager.

Great! It seems that design console sounds like a development tool.  Then, I go to Oracle Fusion Middleware Developer’s Guide for Oracle Identity Manager and search the design console. In the first chapter of developer guide is “Overview of design console” http://docs.oracle.com/cd/E17904_01/doc.1111/e14309/dcintro.htm#OMDEV185

Design console is a development client tool for OIM.

You can use the Design Console to configure system settings that control the systemwide behavior of Oracle Identity Manager and affect its users. The Design Console allows you to perform user management, resource management, process management, and other administration and development tasks.

image

Explanation of “JP-250DB 10” Depreciation Method in Oracle Formula Setup

image

Why Oracle design the formula like this? It looks far different than the requirement description.(See extracted requirement in below passage)

For formula itself, it can be explained easily. 

Guarantee depreciation amount can be calculated as “Cost * Guarantee Rate”

Depreciation Rate before switching can be calculated as “Begin NBV*Original Rate”

Depreciation Rate after switching can be calculated as “NBV when switching*Revised Rate”

The formula can be explained easily as “When depreciation amount less than guarantee amount, we will switch the rate from original rate to revised rate.” And due to “Dual Rate Evaluation” depreciation basis rule, the depreciation basis is changed from NBV of each begin of fiscal year to the NBV of the asset as at the date of the switch from Original rate to the Revised rate. It means after switching rate to revised rate, it is straight line depreciation on the base of the NBV of the asset as at the date of the switch from Original rate to the Revised rate.

The formula is explained, but the formula looks far away from requirement description! Why? And how the figure of revised rate and guarantee rate get from? Is it given by government? NO! It is introduced to design formula. The requirement has not any place mentioned these kind of rate.

Requirement

The Old Declining Balance Method is calculated by multiplying the book value as of the beginning of the fiscal year by a predetermined depreciation rate. The New Declining Balance Method will be calculated by multiplying the book value as of the beginning of the fiscal year by the depreciation rate, which is 2.5 times the depreciation rate under the straight line method. If the amount calculated using the New Declining Balance Method is less than the “amount calculated by dividing the book value as of the beginning of the fiscal year by the remaining years (useful life less the elapsed year)”, then the calculation method will be changed from the declining balance method to the straight line method when calculating the depreciation limit.

It is decided on a fiscal year basis whether the “amount calculated by multiplying the book value as of the beginning of the fiscal year by the depreciation rate which is 2.5 times the depreciation rate under the straight line method” is lower than the “amount calculated by dividing the book value as of the beginning of the fiscal year by the remaining years”. A change of method from the declining balance method to the straight line method in the middle of a fiscal year is not permitted.

Let’s have a look at how revised rate and guarantee rate is gotten.

From requirement description,

Assuming asset cost = a, depreciation year = b, original rate=x, so, there’s a relationship b=1/x*2.5

So, by original rate declining balance deprecation in the first years,

Year

Depreciation Value

NBV

1

xa

(1-x)a

2

x(1-x)a

(1-x)2a

3

X(1-x)2a

(1-x)3a

n

X(1-x)n-1a

(1-x)na

Against the requirement, If the amount calculated using the New Declining Balance Method is less than the “amount calculated by dividing the book value as of the beginning of the fiscal year by the remaining years (useful life less the elapsed year)”, then the calculation method will be changed from the declining balance method to the straight line method when calculating the depreciation limit.,

We can get a inequation as below, assuming n is the switching year

x(1-x)n-1a<(1-x)n-1/(b-(n-1))a                     (b=1/x*2.5)

On the base of total deprecation year, we can get the switch year.

For example, b=10, x=0.25 in above screendump,

Finally, we can get n>7 from above inequation. So, at the eighth year, we need to switch from the declining balance method to the straight line method when calculating the depreciation limit.

On the base of n=8, we can calculate so-called guarantee rate to help design the formula.

Guarantee Rate = right of inequation = (1-x)n-1/(b-(n-1)) = 0.757/3 = 0.0445!

Revised Rate = 1/(b-(n-1))=1/3=0.33

 

As similar as above you can calculate the guarantee rate and revised rate for depreciation year 5, 10, 20 or others.

image

For this case, switching year n can be calculated as 14 by inequation.

Guarantee Rate = 0.875^13/7=0..252

Revised Rate = 1/7=0.143

Can you understand it now? Is it interesting? And who designed this formula?Smile

Notes_Rxi_Reports

Refer from http://sureshappstech.blogspot.jp/2013/11/notesrxireports.html

In this Document
Purpose
Questions and Answers
What is an RX report ?
What makes RX reports a Variable Format Report ?
What is a RXi Attribute Set ?
Where to get documentation about RXi Reports ?
How to Locate Oracle Financials RXi Administration Tool User Guide in Metalink ?
What patches need to be installed to use the RXi Reports ?
For what is used the Responsability ‘Report eXchange Designer’ ?
How to add a RXi report to an existing responsability ?
How To Find The Source Code Of An RXi Report ?
How is the RXi report output generated ?
How the RX Reports works in the Applications Release 11.0.3 ?
How to control the content and the layout of the RXi Reports ?
How to purge interface data from the RXi temporary table ?
How to gather / collect debug information from an erroring RXi Report ?
How to know the package body responsible for extracting data for a specific RX report ?
How to activate the ‘Debug’ parameter for the RXi reports ?
How the activate the SUBMIT_DEBUG and/or the PUBLISH_DEBUG flag(s) ?
How to find out the version of a package ?
Most of RXi reports have a parameter called ‘Drill Down’ – what it is used for ?
Running the RXi: Tax Reconciliation By Taxable Account (JGRXTXBL, RXJGTXBL) output shows a ‘No data found’ message – Why ?
The RXi: Asset Details Extract (JGRXFAAX, RXJGFAAX) does not produce any output – Why ?
The RXi: Fixed Assets Register Report (RXJGFARP) output shows several lines for a same asset number and so, the report total is wrong; How to solve ?
How to get a trace file from a RXi report ?
Some existing Notes reporting RXi problems ?


Applies to:

Financials Common Country – Version: 11.5.1 to 11.5.10.2 – Release: 11.5 to 11.5
Information in this document applies to any platform.
EXECUTABLE:JGRXPIR – RXi: Payables Invoice Register
EXECUTABLE:JGRXPIRD – RXi: Payables Invoice Register by Detail
EXECUTABLE:JGRXTXBL – Publish Tax Reconciliation by Taxable Account
EXECUTABLE:RXJGFAAX – RXi: Asset Details Extract
EXECUTABLE:RXJGFAMX – RXi: Fixed Asset Register Extract
ConcurrentProgram:RXJGFARP – RXi: Fixed Assets Register Report
ConcurrentProgram:RXJGFARX – RXi: Retirement Details Extract
ConcurrentProgram:RXJGPIR – RX-only: Payables Invoice Register
ConcurrentProgram:RXJGPIRD – RX-only: Payables Invoice Register by Detail
ConcurrentProgram:RXJGRTPB – General Ledger Reconciled Transactions Report
EXECUTABLE:RXJGRTXX – RX-only: General Ledger Reconciled Transactions Report
ConcurrentProgram:RXJGTXBL – RX-only: Tax Reconciliation by Taxable Account
ConcurrentProgram:RXJGUTPB – General Ledger Unreconciled Transactions Report
EXECUTABLE:RXJGUTXX – RX-only: General Ledger Unreconciled Transactions ReportConcurrentProgram:FARXAC – RXi: Asset Cost Balance Report
ConcurrentProgram:FARXAD – RXi: Accum Deprn Balance Report
ConcurrentProgram:FARXADD – RXi: Additions by Date-Placed-in-Service Report
ConcurrentProgram:FARXADP – RXi: Additions by Period Report
ConcurrentProgram:FARXADR – RXi: Additions By Responsibility Report
EXECUTABLE:FARXAL – RXi: Asset Listing by Period
EXECUTABLE:FARXBK – RXi: Fixed Assets Book
ConcurrentProgram:FARXCAJ – RXi: Cost Adjustments Report
ConcurrentProgram:FARXCAP – RXi: Capitalizations Report
ConcurrentProgram:FARXCC – RXi: CIP Cost Balance Report
ConcurrentProgram:FARXCCR – RXi: Cost Clearing Reconciliation Report
ConcurrentProgram:FARXCHGP – RXi: Mass Change Preview Report
ConcurrentProgram:FARXCHGR – RXi: Mass Change Review Report
ConcurrentProgram:FARXGA – RXi: Group Asset Report
ConcurrentProgram:FARXHWD – RXi: Hypothetical What-If Depreciation Analysis
ConcurrentProgram:FARXMAD – RXi: Mass Additions Report
ConcurrentProgram:FARXMT – RXi: Asset Maintenance Report
EXECUTABLE:FARXPBSH – Publish RX Reports
ConcurrentProgram:FARXPIC – RXi: Physical Inventory Comparison Report
ConcurrentProgram:FARXPIM – RXi: Physical Inventory Missing Assets Report
REPORT:FARXPRG.RDF – Purge RX Interface Data
ConcurrentProgram:FARXRCL – RXi: Reclass Report
ConcurrentProgram:FARXRCLP – RXi: Mass Reclassification Preview Report
ConcurrentProgram:FARXRCLR – RXi: Mass Reclassification Review Report
ConcurrentProgram:FARXRET – RXi: Retirements Report
ConcurrentProgram:FARXRL – RXi: Reserve Ledger Report
ConcurrentProgram:FARXRR – RXi: Reval Reserve Balance Report
ConcurrentProgram:FARXTFR – RXi: Transfers Report
ConcurrentProgram:FARXWD – RXi: What-If Depreciation Analysis
ConcurrentProgram:RXJGFARX – RXi: Retirement Details Extract
EXECUTABLE:RXFAAC – RX-only: Asset Cost Balance Report
EXECUTABLE:RXFAAD – RX-only: Accum Deprn Balance Report
EXECUTABLE:RXFAADD – RX-only: Additions by Date-Placed-in-Service Report
EXECUTABLE:RXFAADP – RX-only: Additions by Period Report
EXECUTABLE:RXFAADR – RX-only: Additions by Responsibility Report
ConcurrentProgram:RXFAAL – RX-only: Asset Listing by Period
ConcurrentProgram:RXFABK – RX-only: Fixed Assets Book
EXECUTABLE:RXFACAJ – RX-only: Cost Adjustments Report
EXECUTABLE:RXFACAP – RX-only: Capitalizations Report
EXECUTABLE:RXFACC – RX-only: CIP Cost Balance Report
EXECUTABLE:RXFACCR – RX-only: Cost Clearing Reconciliation Report
ConcurrentProgram:RXFADPTX – Japanese Depreciable Assets Tax Reports
EXECUTABLE:RXFAGA – RX: Group Asset Report
EXECUTABLE:RXFAHWD – RX-only: Hypothetical What-If Depreciation Analysis
EXECUTABLE:RXFAMAD – RX-only: Mass Additions Report
EXECUTABLE:RXFAMCHP – RX: Mass Change Preview Report
EXECUTABLE:RXFAMCHR – RX: Mass Change Review Report
EXECUTABLE:RXFAMT – RX-only: Asset Maintenance Report
EXECUTABLE:RXFAPIC – RX-only: Physical Inventory Comparison Report
EXECUTABLE:RXFAPIM – RX-only: Physical Inventory Missing Assets Report
EXECUTABLE:RXFAPTAX – RX-only: Property Tax Report
EXECUTABLE:RXFARCL – RX-only: Reclass Report
EXECUTABLE:RXFARCLP – RX-only: Mass Reclassification Preview Report
EXECUTABLE:RXFARCLR – RX-only: Mass Reclassification Review Report
EXECUTABLE:RXFARET – RX-only: Retirements Report
EXECUTABLE:RXFARL – RX-only: Reserve Ledger Report
EXECUTABLE:RXFARR – RX-only: Reval Reserve Balance Report
EXECUTABLE:RXFATFR – RX-only: Transfers Report
EXECUTABLE:RXFAWD – RX-only: What-If Depreciation Analysis
EXECUTABLE:APRXPYAC – Publish Actual Payment
EXECUTABLE:APRXPYRG – Publish Payment Register
EXECUTABLE:APRXWHTX – AP Withholding Tax Extract
ConcurrentProgram:FAPRXTAX – RXi: Property Tax Report
ConcurrentProgram:RXAPPYAC – RX-only: Actual Payment
ConcurrentProgram:RXAPWHTP – AP Withholding Tax Report
ConcurrentProgram:RXAPWHTX – AP Withholding Tax Extract
ConcurrentProgram:RXARACRC – RX-only: Actual Receipt
EXECUTABLE:ARRXACRC – Publish Actual Receipt
ConcurrentProgram:RXARADJR – RX-only: Adjustment Register
ConcurrentProgram:ARRXARPB – Adjustment Register
ConcurrentProgram:RXARARRG – RX-only: Applied Receipts Register
EXECUTABLE:ARRXARRG – Applied Receipts Register
ConcurrentProgram:RXARBRBS – RX-only: Bills Receivable by Status Report
EXECUTABLE:ARRXBRBS – Bills Receivable by Status Report
EXECUTABLE:ARRXBRSS – Bills Receivable Summary Report
ConcurrentProgram:RXARBRSS – RX-only: Bills Receivable Summary Report
ConcurrentProgram:RXARINVC – RX-only: Transaction Check
EXECUTABLE:ARRXINVC – Publish Transaction Check
ConcurrentProgram:RXARINVR – RX-only: Transaction Register
EXECUTABLE:ARRXINVR – Transaction Register
EXECUTABLE:RXARMTRG – RX-only: Miscellaneous Receipts Register
ConcurrentProgram:ARRXMTRG – Miscellaneous Receipts Register
ConcurrentProgram:RXARPFTR – Financial Tax Register
EXECUTABLE:ARRXRCRG – Receipt Register
ConcurrentProgram:RXARPTEX – RX-only: Financial Tax Register
ConcurrentProgram:RXARRCFR – RX-only: Receipt Forecast
EXECUTABLE:ARRXRCFR – Publish Receipt Forecast
ConcurrentProgram:RXARSLRG – RX-only: Sales Register
EXECUTABLE:ARRXSLRG – Publish Sales Register

Purpose

This FAQ document intend to provide technical and functional informations about all the existing:

  • Financials Common Country module RXi reports (JGRX / RXJG)
  • Assets module RXi reports (FARX / RAXFA)
  • Payables RXi reports (APRX / RXAP)
  • Receivables RXi reports (ARRX / RXAR)

This FAQ will also contains information to help to debug and investigate the RXi Reports problems that Users may face handling it.

Questions and Answers

What is an RX report ?

  • The RX reports are not designed with Oracle Reports;
  • There is no RDF file for the RX Report;
  • The RX report is generated by the database packages.

The RXi was developed by FA development team. In spite of that, the JG module (or the report respective module) must has status ‘ installed’ so that the JG RX reports works. The same rule is valid for AP RX, AR RX or FA RX  reports.
You may run the following statement in a SQL*plus session (user = APPS) to determine the present status of each of your Modules:

select t.application_name
, t.application_id
, i.patch_level
, decode(i.status,’I’,’Fully Installed’,
‘N’,’Not Installed’,’S’,’Shared’,’Undetermined’) status
from fnd_product_installations i
, fnd_application_vl t
where i.application_id = t.application_id
order by t.application_id;

What makes RX reports a Variable Format Report ?

The RX report is generated by the database packages.
The database packages prepare data inside the interim tables called Interface Tables.
At the end this data can be presented in text, html, CSV (Comma-Separated Values), and tab-delimited formats. User can define which columns should be shown at the final output of the RX report. This output type is usually possible to select via report parameters “Output Format”  OR  if there isn’t any, via System Administrator; Concurrent Program Define; Query it and you will see a field called “Output Format”; just changed it as you wish.

What is a RXi Attribute Set ?

User can define which columns should be shown at the final output of the RX report.
The set of columns is called Attribute Set
Attribute Set is a subset of all columns available for the report.

Where to get documentation about RXi Reports ?

The functional documentation about the RXi Reports is spread all over several User Guides. This will be better explained in one of the below topics but mainly it’s because there are RXI Reports that belongs to JG, AR, AP, GL and FA modules.
The technical documentation about RXi Reports can be found in Oracle Financials RXi Reports Administration Tool User Guide Release 11i. This manual is available via Metalink as part of the Release 11i Related Documentation.
You may also visit and study more about RXi , accessing RXi Home Page
There are also AR RXi  Brown bags
AR Transfers Of Information Docs (TOI)

How to Locate Oracle Financials RXi Administration Tool User Guide in Metalink ?

Login to Metalink;
Click on E-Bussiness 11i;
Click on Documentation;
Scroll down to Financials, and choose General Ledger;
Click on Oracle Financial Applications Related Documentation Release 11i;
Click on Oracle Financials RXi Reports Administration Tool User Guide Release 11i.

What patches need to be installed to use the RXi Reports ?

The RXi Reports will be automatically installed when installing Applications embeded within their Modules (AP, GL, AR, JG and FA). So this means that the objects, forms and reports for this functionality are already available.
However, when there isn’t already a country-specific functionality enabled, then you need to license/activate the JG module first through the License Manager in Oracle Applications Manager.
With the following SQL, it can be checked whether your Modules were already been licensed:

SELECT tl.application_name, t.application_id, i.patch_level
, decode(i.status,’I’,’Licensed’, ‘N’,’Not Licensed’,’S’,’Shared’,’Undetermined’) status
FROM fnd_product_installations i, fnd_application t, fnd_application_tl tl
WHERE i.application_id = t.application_id
AND tl.application_id = t.application_id
AND i.application_id = 7003
AND tl.language = ‘US’;

Note:
At various times throughout the life cycle of an Oracle Applications release, you may decide to license additional products, or begin using additional country-specific functionalities (localized products) or languages. If you do, you can record the status of newly active products and components by registering them in your system. Registration ensures that utilities (like AutoPatch) recognize them as active during patching or other maintenance processes.
You register active products, country-specific functionalities, or languages with the OAM License Manager.
Please check the Oracle Applications Maintenance Procedures manual, page 1-13 Direct URL: http://download-uk.oracle.com/docs/cd/B16981_01/current/acrobat/11iadproc.pdf
and the Oracle Applications Maintenance Utilities Direct URL: http://download-uk.oracle.com/docs/cd/B16981_01/current/acrobat/11iadutil.pdf

For what is used the Responsability ‘Report eXchange Designer’ ?

This responsibility allows:
1. Choose the columns to include in the report;
2. Order and group selected data;
3. Format selected columns;
4. Edit report and column headings;
5. Manage page size and other printing controls.

How to add a RXi report to an existing responsability ?

1. Assign RXi report to that responsability request group;
2. Assign request group to the responsibility;
3. Assign the Publish RX Reports concurrent program to the responsibility;
4. Above tasks can be performed as the System Administrator responsability level.

How To Find The Source Code Of An RXi Report ?

RXi reports build the queries dinamycaly during execution time.
RXi reports are made up of one or more PL/SQL files that should be located under the product top of each module. Usually the latest version is under:
$_TOP/patch/115/sql
The RXi engine makes the call to the different PL/SQL files as needed.
Making changes to the PL/SQL files is not supported and requires a lot of maintenance everytime a new patch is applied.
The easiest way to modify RXi reports is through the RXi Reports Administration tool.
Information on this tool can be found in the Oracle Financials RXi Reports Administration Tool User Guide Release 11i.

How is the RXi report output generated ?

Everytime we launch a RXi report, two requests are launched:

  • an RXi…. request – the parent request
  • an RX-Only…. request – the child request

The RXi… request call the child request immediately. The RX-Only… is responsible for retrieving (extracting) data for the RX report.
It calls the database package. It populates the Interface Table according to the parameters specifed at the moment of running. At that stage there is no difference which Attribute Set will be used for presenting the report. In Interface Table all availabe columns are populated.
Then the RXi… request is responsible for publishing the data according to the chosen Attribute Set and the output Format; based on the data in the interface table.
The RXi…combines retrieving and publishing request together in one step; it includes the Publish RX Reports program parameters and the parameters specific to given RX report. The RXi…. comes up for release 11i only.

How the RX Reports works in the Applications Release 11.0.3 ?

In Release 11.0.3 there was not RXi… request. The report called is directly the RX-Only… and then, when it fisnish, if we want to publish the data we have to use ADI – it is the only way of publishing RX report in release 11.0.3
The RX report were very limited in release 11.0.3…

  • Possibility of using Themes (kind of template for Excel or Web with some color, size, font, logos, background pics);
  • Possibility of defining new Attribute Sets;
  • No page dimension – output is treated as one big single page (lines never wrap; page break never occur);
  • No Report Heading;
  • No Summary at all – assumption that you can do any summaries in Excel.

In Release 11i , the RXi…combines retrieving and publishing request together in one step; it includes the Publish RX Reports program parameters and the parameters specific to given RX report.

How to control the content and the layout of the RXi Reports ?

The Oracle Financials RXi Reports Administration Tool lets you design the content and layout of your RXi reports. With the Oracle Financials RXi Reports Administration Tool, you can print the same report using different layouts, and you can control the data items included in your report. RXi lets you tailor your reports to meet statutory and other reporting requirements, and to create reports for your own internal use.
The Oracle Financials RXi Reports Administration Tool gives you great flexibility in managing your reporting requirements. Use the Oracle Financials  RXi Reports Administration Tool to:

  • Choose the columns to include in the report
  • Format selected columns
  • Order and group selected data
  • Edit report and column headings
  • Manage page size and other printing controls
  • Generate reports in text, html, CSV (Comma-Separated Values), 
  • and tab-delimited formats

All formatting and column information is defined and maintained in attribute sets. Each RXi report comes with one or more attribute sets. Use the Attribute Set window to view default attribute sets that come standard with RXi. You can create user-defined attribute sets based on default attribute sets with the
format and data that your company needs. You can further modify your user-defined attribute sets to meet additional company requirements. Then assign the attribute set to a report when you print the report using the Standard Request Submission forms.

How to purge interface data from the RXi temporary table ?

Using the Purge RX Interface Data program – it is available only for release 11i
Available under Report eXchange Designer responsibility (request group: RX Reports – Oracle Assets)
Deletes records from Interface Table older than specified number of days for one or for all reports.
Another secure way to erase everything (!) from that interface table that also works for Release 11i or 11.0.3 is truncating that table, using the SQL*plus command:
    truncate table ;
    commit;

How to gather / collect debug information from an erroring RXi Report ?

Note that the ‘FA:Print Debug’ profile has little influence on the debug messages in logs of RX extract requests.

            This Collection script shows the setup of Attribute Sets for given report.
            It is available only for release 11i

  • Determine whether the problem is with Extracting program (RX-only) or Publishing Engine
  • Verify with RXi and ADI 
  • Data in Interface table is correct or not ?
  • Some RXi reports only works via TRL engine code – check if it’s name is listed inside the Note 292163.1 – 11.5: Recommended Patches for VAT Reporting in EMEA and Asia/Pacific; if it is listed then ALL those patches MUST be APPLIED to avoid known bugs and data corruptions problems;
  • Activate the ‘Debug’ parameter;
  • Activate the ‘Request Type’ parameter to SUBMIT_DEBUG and/or the PUBLISH_DEBUG flag(s);
  • There is possibility to define a new ‘Debug’ argument as a last one (using System Administrator responsibility); Put own debug messages in package body responsible for extracting data for RX report. The following procedures are available:
    • fa_rx_util_pkg.enable_debug;
    • rx_util_pkg.debug(‘….’);

How to know the package body responsible for extracting data for a specific RX report ?

  1. System Administrator: Concurrent -> Program -> Define
  2. Query for your RX-Only…  report request;
  3. Take note of the ‘Executable Name’
  4. System Administrator: Concurrent -> Program -> Executable
  5. Query for ‘Short Name’ =  executable name you find out  in the earlier step
  6. Take note of the executable file name – thats your package body name !

How to activate the ‘Debug’ parameter for the RXi reports ?

All RXi reports that have a parameter field called ‘debug’ may be debugged using this method.
(Navigate: System Administrator: Concurrent -> Program -> Define; Query for your RXi report and press on Parameters button)
If your RXi report does not have a ‘Debug’ parameter, try activating the next debug method below.

  1. Go the sysadmin responsibility
  2. Navigate through System Administrator: Concurrent – Program – Define  to the concurrent
  3. program define window
  4. Press the F11 button or choose in the menu View – Query by example – Enter
  5. In the Short Name field you enter your  RX-Only… request short name
  6. 1.5. Press the ctrl+F11 buttons or choose in the menu View – Query by example – Run
  7. Click on the button Parameters
  8. Scroll trough the parameters and at the end you will find first, parameter ‘DEBUG’
  9. Change the Default value from N to Y and enable the check box
  10. Display for this parameter at bottom of the screen.
  11. Next parameter to search is ‘SQL TRACE’ (if there is one called as that; if not, skip this step)
  12. Check that the Default value is N

How the activate the SUBMIT_DEBUG and/or the PUBLISH_DEBUG flag(s) ?

Not all RXi reports has a parameter field ‘Debug’ so, this other method. Usually, if one is not possible, the other debug method it is.
This ‘debug’ is activated for the RXi child request always.
When getting this ‘debug’ for Request Sets, remember that you have to repeat all these steps for all launched RX-Only (child) requests !
As example, I picked  RXi: Physical Inventory Comparison Report  to show you how to activate this debug method.
1. Go to the System Administrator Responsibility.
– Navigate to: Concurrent/Program/Define
– Query Short Name = RXFAPIC (RX-Only: Physical Inventory Comparison Report)
– Click on the Parameters button
2. Check the Request Type parameter.
If the default value of the Request Type parameter = SUBMIT
– then change it to SUBMIT_DEBUG
or if it is PUBLISH
– then change it to PUBLISH_DEBUG
(this change is done in the ‘Default Value’ field )
3. Save the changes
4. Rerun the report and upload the log files of both the parent and the child request.
(The RXi: Physical Inventory Comparison Report is one example where the ‘Debug’ debug option  is not possible but it is possible this debug method !)

How to find out the version of a package ?

If you know the name of the package, just run in a SQL*plus session (user APPS):

select text from all_source where name = upper(‘JG_RX_IR_PKG’) and line=2;

otherwise just run the following two instructions and they will return all the relevant report and TRL code versions:
=============
Report code level
=============
SELECT TEXT
FROM ALL_SOURCE
WHERE (UPPER(NAME) LIKE ‘JG_RX_%’
OR UPPER(NAME) LIKE ‘AR_RX_%’
OR UPPER(NAME) LIKE ‘AP_RX_%’
OR UPPER(NAME) LIKE ‘FA_RX_%’
OR UPPER(NAME) LIKE ‘JGRX_%’
OR UPPER(NAME) LIKE ‘ARRX_%’
OR UPPER(NAME) LIKE ‘FARX_%’
OR UPPER(NAME) LIKE ‘APRX_%’)
AND LINE=2;
=============
   TRL code level
=============
SELECT TEXT FROM ALL_SOURCE
WHERE NAME IN (‘ARP_TAX_EXTRACT’, ‘AR_TAX_EXTRACT’,’AR_TAX_POPULATE’,
      ‘AP_TAX_EXTRACT’,’AP_TAX_POPULATE’,’GL_TAX_EXTRACT’,’GL_TAX_POPULATE’)
AND line=2;

Most of RXi reports have a parameter called ‘Drill Down’ – what it is used for ?

Choosing YES or choosing NO in the Drill Down parameter has no effect on the output. Data presentation is not different when we choose YES or NO value.
It is working as designed for R11i. This parameter utility will be implemented in a future version of Oracle Applications.

Running the RXi: Tax Reconciliation By Taxable Account (JGRXTXBL, RXJGTXBL) output shows a ‘No data found’ message – Why ?

The Tax Reconciliation by Taxable Account report to report on taxable transactions in Payables, Receivables, and General Ledger in a single report.
This report works via TRL engine. This means that if the TRL code is not up to date, the report will surely run into errors or known bug in the output.
If it shows a ‘No data found’, start by checking:

  1. Check the current status of the JG module – mentioned in one of the above topics;
  2. Check the versions of report and the Tax Reporting Ledger (TRL) code – be sure that all the patches inside the critical Note.292163.1 are applied;
  3. Clarify if this problem is happening running for AP, AR and/or GL transactions ?
  4. Check if the involved report table JG_ZZ_COVER_TAXABLE_EXTRACT  has the expected data inside it, using :   select * from JG_ZZ_COVER_TAXABLE_EXTRACT;

The RXi: Asset Details Extract (JGRXFAAX, RXJGFAAX) does not produce any output – Why ?

The report was submitted as standalone instead of being called via the RXi: Fixed Assets Register Report.
The RXi: Fixed Asset Register Extract concurrent program should not be run on its own, as it is expected
to get spawned only when the “RXi: Fixed Assets Register Report” is run.
This report is one of the “sub-reports” of the RXi: Fixed Assets Register Report (the other sub-report is the RXi: Retirement Details Extract) and it should not be run in separate.
If we want to run it in separate – and after executed it successfully – we must run the ‘Publish RX Report’ request, so we can ‘publish’ it’s extracted data.

The RXi: Fixed Assets Register Report (RXJGFARP) output shows several lines for a same asset number and so, the report total is wrong; How to solve ?

RXi report is working as expected – It is a setup issue.
Duplicate entries are shown because grouping is not taking place at the asset number level.
This is because all the columns in the last level are considered to be leaf level columns and grouping does not take place on them. This is the design of RXi reports.
Change the setup accordingly, to move description field to the leaf level, which will show the description twice but the totals would be correct. Steps to do this:
1. Copy ‘Italy’ attribute set and create a new set;
2. Remove all the leaf level columns, which the customer does not seem to want;
3. Remove ‘Description’ field from the displayed columns list and add it again;
(note: This should now get included at the leaf level. Not on the same level as asset number)
4. Apply ‘Sum’ and ‘Count’ in column-level details as per requirements;
5. Save this attribute set;
6. Now run the report using this new attribute set for the Asset Details Extract section.

How to get a trace file from a RXi report ?

As we already mentioned in a earlier topic in this note, a RX report  is not a   ‘.RDF’  file ; I mean, it is not generated by Oracle Reports but by DB packages.
So, RX reports are PL/SQL and so a database trace might not exactly help. Instead, get a database trace with binds and a tkprof’ed version of it .
Note 296559.1 (more generic) and note 160124.1 (How to Set SQL Trace on with 10046 Event Trace which Provides the Bind Variables) explain how and where you have to do this.
Note 170223.1 also is useful and helps you to understand the process.

Some existing Notes reporting RXi problems ?

<<456572 .1=””>> RXi: Fixed Assets Register Report (RXJGFARP) Shows Twice The Same Asset
NOTE: 274884.1 Rxi Reports End With The Error :ORA-20001: Please Choose Columns For Display To Generate This Report
NOTE: 364913.1 All Rxi Report with width less than 180 chars shows ###### in Report Date Printed
NOTE: 400166.1 Cannot Modify The Rxi: Fixed Assets Register Report (RXJGFARP) Output
NOTE: 375340.1 Arabic Reads In Incorrect Direction In Various RXi Reports
NOTE: 277832.1 RXI Only Reports Do Not Utilize Free Space In RX Temp Tables
NOTE: 314079.1 RXJGFAMX module: RXi: Fixed Asset Register Extract Errors with PLS-00306 Wrong Number Or Types Of Arguments In Call To ‘GET_FORMAT’ ORA-06550
NOTE: 246798.1 Unable To Make Changes To The Rxi Report Using Report Exchange Designer Responsibility.
NOTE: 357678.1 All Rxi Reports Finishes Successfully but doesnot produce any Output file
NOTE: 421707.1 Rxi: CIP Cost balance report Does Not Include Capitalized Asset During Report Period
NOTE: 214399.1 RXi Reports Print Parameters On Every Page
NOTE: 266911.1 How to Print Rxi Reports Giving No Data Found
NOTE: 352981.1 RXi Report Mis Alignment for Japan Output Character Set – but is ok for US Output
Unpublished NOTE: 361015.1 RXi: Asset Cost Balance Report Shows ‘No Data Found ‘ After Code-Fix Instructions for Bug 4860955
NOTE: 374551.1 Rxi Asset Listing By Period RXFAAL is Missing Assets With DPIS Equal to FA_CATEGORY_BOOK_DEFAULTS.START_DPIS
NOTE: 402274.1 RXJGTXBL: Not All Adjustments Are Showing On The Report
NOTE: 423270.1 DPIS displayed As ##### Instead Of Actual Dates In Rxi: Reserve Ledger Report
NOTE: 136297.1 GETTING *** NO DATA FOUND *** IN THE PUBLISHED RXI LEASE REPORTS
NOTE: 178514.1 Transaction Register does not have Consolidated Billing Number as a Column
NOTE: 200037.1 RXi Lease Options Showing Unclear Messages – RXPNCOLS
NOTE: 266863.1 ARXOTHER Other Receipt Applications Report Unable to See Report In LOV Under Setup RXi
NOTE: 285187.1 Number signs (#) Printed Instead of Date Time Stamp on RXI Report
NOTE: 397210.1 RXJGFAAX (Rxi: Asset Details Extract) Fails With ORA-06502
NOTE: 418114.1 RXi Financial Tax Report Not Correctly Populating Tax1 And Tax2 Codes
NOTE: 158416.1 RXi Report Printing Blank Page After Each Valid Print Page 0
Unpublished NOTE: 314057.1 RXJGPIRD Errors With Ora-06502 For Some Months
NOTE: 265057.1 Do Oracle Assets standard reports show the Member assets information?
NOTE: 274050.1 Report Beginning Balance And Ending Balance For Reserve Reports shows ********
NOTE: 141295.1 ARRXINVR-Transaction Register errors:ORA-06550 PLS-00201
NOTE: 214399.1 RXi Reports Print Parameters On Every Page
NOTE: 371041.1 Inflation Accounting – Projection Fails With FRM-41830 List of Values Contains No Entries
NOTE: 247667.1 RXi Adjustment Register Prints Entire Parameter List On Each Page
NOTE: 398596.1 RXFAAL – RX-only: Asset Listing by Period fails with Value Too Large For Column: FA_ASSET_LISTING_REP_ITF.SERIAL_NUMBER
NOTE: 416364.1 RXAROTHR Other Receipt Application Report Error Ora-06512 Null Index Table Key Value Apps.Fa_rx_publish
NOTE: 401487.1 Rxi Asset Listing By Period Report Truncates the Serial Number

Preaccounting and Postaccounting Hook

“Create Accounting” program creates SLA journal entries for events. As we ever mentioned in the post before, we can add some logic in preaccounting hook or postaccounting hook to do something before or after accounting.  If you want to do something in preaccounting or postaccounting, you must know which events will/have be processed in the accounting program. How to get these event or transaction id?

Generally, you can get it from “p_report_request_id”. The request id will be updated to xla_events table and the request id will be shipped to hooks as a parameter. So you can get the event or transaction by below code in accounting hook.

  SELECT……
  FROM   xla.xla_events xee,
                xla.xla_transaction_entities  xte,
                xla.xla_ae_headers xah,
                xla.xla_ae_lines xal
  WHERE  xee.application_id = XXX
  AND       xee.event_id = xte.event_id
  AND       xee.event_id=xah.event_id
  AND       xah.ae_header_id=xal.ae_header_id
  AND       ……         –any other condition you want to add
  AND    XEE.request_id = p_report_request_id;

Have a Look at DB Policy from xla_transaction_entities

Today, I need to get an AP inovice id from an SLA event_id. From xla_events table, I got the entity_id for the event. And then I directly query xla_transaction_entities table with entity_id, but nothing can be gotten.

It is very strange. Under the same schema apps, why there is this entity_id in xla_events table, but not exists in xla_transaction_entities table? xla_events and xla_transaction_entities are both the synonym in apps schema from xla schema!!! They’re the views!!!

In R12, oracle introduce a new concept – DB Policy, which will be assign to table and table’s synonym. It is used to apply MOAC security to table and synonym. (Maybe my express is not very suitable here. I’m not a technical person. I can only do some simple queries微笑

Let’s have a look at below two sql query.

image

No DB Policy assigned to XLA.XLA_TRANSACTION_ENTITIES

image

Several DB policies are assigned to XLA_TRANSACTION_ENTITIES synonym in apps schema. That’s why I can’t query out my event entity from apps schema in normaly way.

Why can we get the event from xla_events? Let’s have a look at xla_events’s db policy.

image

There’s no db policy on xla_event synonym in apps.

OK. Finally, after understanding the mechanism,  I can get my event entity by adding xla. pre-fix now.

image

Multi Period Accounting (MPA) 2 – Revenue Recognition

From Oracle official concept, revenue recognition is renue recognition. It belongs to AR. Multi Period Accounting is the concept of SLA. But in fact, they are the similar thing. One of  initial purpose of MPA is for revenue recognition, but it is not flexible enough for revenue recognition. So revenue recognition is still handled in Receivables itself.

Let’s have a look at revenue recognition first then compare it with multi period accounting feature in SLA.

1. Create AR transaction and assign Invoice Rule in AR transaction header. There are two options for Invoice Rule:

  • In Advance: Receiving money at first before revenue recogonition
  • In Arrears: Receiving money at last after revenue recogonition

2. Assign accounting rules in AR transaction line. Accounting Rule means the revenue recogonition schedule. The revenue recognition program/API calcualte the recogonition schedule against accounting rule. Only if invoice rule is assigned in header, accounting rule can be

image

3. Once AR transaction is assigned with invoice rule and accounting rule, the original revenue account distribution will be changed to defered revenue account. It can be set up in AutoAccounting functionality. And receivable account distribution will be changed agasint invoice rule. If “In Arrears” is selected, the recevable account will be defaulted against the autoaccouting setup for Unbilled Receivable.

4. Complete the AR invoice.

5. Create Accounting with Final option.

6. Revenue Recognition: You have two options to recogonize revenue.

  • by concurrent program “Revenue Recognition Master Program”
  • by Revenue Accounting form. In the form, you can manage revenue and sales credits more flexible than concurrent program. You can schedule or unschedule the revenue recogonition and you can also partailly recogonize the revenue.

image

7. Whatever you select to recogonize the revenue by concurrent program or form, the functionality will create series of AR transaction distributions with multiple period. And for each period, it create accounting event with type of “Invocie Update”. So by revenue recogonition, multiple events will be created. It’s one of the difference between MPA and Revenue Recogonition.

image

Please note that, for normal transaction entry, you can’t key in unopened GL date. But for program inserting, it can.

8. Create Accounting againt for the new created events and distribution lines. The SLA journal entries are created for all of the periods even though the period is not opened.

  • For the opened GL period and future entry statsu GL period, the journal entry status is “Final”and can be transfered to GL.
  • For un-opened GL period, the journal entry status is “Invalid”and event status is unprocessed.
  • It is very strange that it depends on GL period but not Receivable period.
EVENT_ID APPLICATION_ID EVENT_TYPE_CODE EVENT_DATE ENTITY_ID EVENT_STATUS_CODE PROCESS_STATUS_CODE
3362490 222 INV_UPDATE 23-2月 -13 3295913 U I
3362489 222 INV_CREATE 23-1月 -13 3295913 P P

 

AE_HEADER_ID APPLICATION_ID LEDGER_ID ENTITY_ID EVENT_ID EVENT_TYPE_CODE ACCOUNTING_DATE GL_TRANSFER_STATUS_CODE GL_TRANSFER_DATE JE_CATEGORY_NAME ACCOUNTING_ENTRY_STATUS_CODE ACCOUNTING_ENTRY_TYPE_CODE AMB_CONTEXT_CODE PRODUCT_RULE_TYPE_CODE
5003040 222 1 3295913 3362489 INV_CREATE 23-1月 -13 N   Sales Invoices F STANDARD DEFAULT S
5002952 222 1 3295913 3362490 INV_UPDATE 23-2月 -13 N   Sales Invoices R STANDARD DEFAULT S

 

image

 

image

 

image

 

image

9. When you open the next period and run create accounting again, the journal entry status will changed from Invalid to Final and transferred to GL module.

By summery, in revenue recogonition solution, Oracle insert the transaction ditribution line with multiple periods, create events for each period and create journal entries for each period. For unopened period, Oracle make its journal entries as “Invalid” until the period opened.

Multi Period Accounting (MPA) 1 – Introduction

What is Multi Period Accounting

I want to explain it from business perspective first. Supposed that there is a service type company, they have received whole money from their customer, but they have not provided the whole service finally. The whole service will be provided within 12 months from current month. Against accrual basis concept, the company can’t recognize revenue for the whole money amount to current month, even though they received whole money in current month. They need to defer the revenue to the following 12 months. The accounting entries should be like below

Dr. Receivables 1200 (current month)
Cr. Deferred Revenue 1200 (current month)
Dr. Deferred Revenue 200 (current month)
Cr. Revenue 200 (current month)
Dr. Deferred Revenue 200 (next month)
Cr. Revenue 200 (next month)
……
Dr. Deferred Revenue 200 (the last month)
Cr. Revenue 200 (the last month)

As similar as revenue recognition, prepaid expense also has the similar accounting behavior like above, for example, the company pays the rent bill for the whole year at the beginning of the year.

Without multi period accounting feature, customer can make the AR transaction or AP invoice with the distribution of deferred revenue/expense account at the first period, and then move it to revenue/expense account in each following period through GL journals. By this way, customer may forget to take this action during period ending process, because this is the manual work. (Maybe recurred journal template can help on this something)

From R12, Oracle provided multiple period accounting feature to allow customer create accounting for multi period together for a single accounting event, even the period may have not been opened. For example, in AP, when AP invoice validated and accounted, all of the accounting entries are created for the whole 12 periods.

Multi Period Accounting in Oracle E-Business Suite

The functionality is primarily used to recognize revenue like above example or a prepaid expense. But the feature still has a lot of limitations, so Oracle Receivables developed its own revenue recognition functionality. They don’t use the MPA feature provided by Oracle Subledger Accounting. As they are doing the similar thing, I will introduce both of them and compare them in a series of blog post.

  • Revenue Recognition
  • Multi Period Accounting Setup in SLA

View the “Status Monitor” of other user’s workflow

To allow user to view different user’s workflow, you must make user can select “Workflow Owned By” field in “Status Monitor“. To enable user to do that,

1. Log in the responsibility “Workflow Administrator Web Applications” with sysadmin user and password.

2. Go to Administration tab (window).

3. Change “Workflow System Administrator” to user name, responsibility name or “*”.

  • If user name, the user can view all workflow and other user can only view his/her own workflow;
  • If responsibility name, the user who has this responsibility can view all workflow;
  • If *, anyone can view all workflow.

XLA_MO_TOP_REPORTING_LEVEL (MO: Top Reporting Level)

The captioned profile option has been obsoleted in Oracle R12 version. All the customized report used this profile option “MO: Top Reporting Level” and value set “XLA_MO_REPORTING_LEVEL” should be re-written.

If customer used this profile option in his 11i custom reports , Customer might have been using this profile option to set the reporting level at SoB,Legal Entity or Org. However, in Release 12 the highest level is always a Ledger. Thus, these profiles are no longer needed in Release 12 and you will need to update the custom reports by basing them ledger and Mo profiles instead of SoB and MO: Top Reporting Level.

Quickly Find Package Body and its Subprogram in SQL Developer

1. Enter the package name in SQL Developer Worksheet;

2. Click Shift+F4 to open package definition;

3. In the window for a package definition, you can press Ctrl+click on a procedure or function name to perform the Open Declaration command, which opens the procedure or function implementation (body specification) in a new window.

Object Version Number (object_version_number)

Object Version Number (OVN) is a column in a database table. It is used to track multiple changes to a record. When a new row is inserted, the OVN is set to 1. As updates are performed on the row through the Forms, the OVN is incremented. The OVN is transferred with a queried row. If an update is attempted when the change is saved to the table, the current OVN is compared with the value being passed back from the transaction. If the two are the same, the update can be committed to the table. If the two are different, the update is rejected and flagged with an error. The transaction must be re-queried, and the update made again to the more current version of the row.

APIs and Forms use OVNs similarly. Every published API has the p_object version_number control parameter.

For Create APIs, this parameter is defined as an OUT parameter: the API assigns the object version number to 1 for row inserts. For Update APIs, the parameter is defined as IN OUT, and is mandatory in the API call.

The current value must be passed in the API call and it is compared to the version on the row in the table. If the versions are different, the error HR_7155_OBJECT_LOCKED is raised. The information can be re-queried for a more current version.

New Page of “Oracle EBS Q&A”

Hello everybody,

I just published a new menu access called “Oracle EBS Q&A” in my blog. You’re welcome to search, read or submit questions or any topic about Oracle E-Business Suite Technical and Functional over there, and then we can discuss it together.  You can also directly comment on my answer page or send email to me to discuss them.

Welcome to enjoy it!

Best regards,
Ning

Error Message during ADI installation

We met an error message during ADI installation.

adicom30.ins(509):OS_ERROR while spwawning
C:\windows\system32\spawner.exe
C:\windows\system32\AUWERG32.exe /S /32

We just comment the 509th line in the file of adicom30.ins, then it is passed. Or you can download the  attached file, rename the file name to “adicom30.ins” and replace the one in your installation package if you also met this problem and have not other solution to resolve it.

Remove Corrupt(Orphan) Pending Transaction/Move Order

Some days ago, a user reported that some quantity of the item is not available but he/she can’t find out the reservation records. Why? After investigating, there’s a pending transaction in the system while the related SO has been closed and all of the move orders for this SO are closed too. To remove the pending transaction and restore the availability of the lost goods, we find out below script from metalink. In below script, Oracle help you on below situation:

  • Move order released from SO, Move order in Pre-approved status; Move order has not transacted
  • Move order has been closed, but pending transaction records are still existing
  • Pending transaction has a move order line id, but you can not find it out in move order line table
  • Pending transaction has a reservation _id, you can not find out it in mtl_reservations
  • Source ID are different below move order and delivery details
  • Source ID are different between pending transaction and move order line

Below is the script and my comments:

REM $Header: INVCLRMO.sql 115.5 2002/03/09 16:23:25 kadavi noship $
REM
REM (c) Copyright Oracle Corporation 2001
REM All Rights Reserved
REM
REM HISTORY
REM This is script to clear Open move order lines which
REM are not linked to Delivery details ,clean Orphan suggestions
REM in Mtl_material_transactions_temp and remove reservations
REM link to Mtl_material_transactions_temp if reservations are
REM not existing.
REM
REM Also this script creates and drop temp tables so Ct
REM need to manually run this script.
REM dbdrv: sql ~PROD ~PATH ~FILE none none none sqlplus_single phase=dat \
REM dbdrv: checkfile:~PROD:~PATH:~FILE
WHENEVER SQLERROR CONTINUE ROLLBACK; –when an error occurred during the sql executing, rollback
prompt dropping tables -showing “droping tables”
DROP TABLE mtl_mmtt_backup; –clean/drop the previous backup table
DROP TABLE mtl_mtrl_backup;
DROP TABLE mtl_msnt_backup;
DROP TABLE mtl_mtlt_backup;
prompt create table for MMTT backup –start to create backup tables
CREATE TABLE mtl_mmtt_backup AS
(SELECT mmtt.*
FROM mtl_material_transactions_temp mmtt,
mtl_txn_request_lines mtrl,
mtl_txn_request_headers mtrh
WHERE mmtt.move_order_line_id IS NOT NULL
AND mmtt.move_order_line_id    = mtrl.line_id
AND mtrl.line_status           = 7 –preapproved
AND mtrl.header_id             = mtrh.header_id
AND mtrh.move_order_type       = 3 –pick-wave
AND NOT EXISTS
(SELECT ‘Y’
FROM wsh_delivery_details
WHERE move_order_line_id = mtrl.line_id
AND released_status      = ‘S’ –released to warehouse
)
)
/
–select to backup the lines whose linked move order line status is pre-approved, the move order is
–generated from realeasing SO, meantime there’s no line in the delivery details or there is
–but it is has been released to warehouse
prompt select allocation records for closed move order
INSERT
INTO mtl_mmtt_backup
(SELECT mmtt.*
FROM mtl_material_transactions_temp mmtt,
mtl_txn_request_lines mtrl
WHERE mmtt.move_order_line_id = mtrl.line_id
AND mtrl.line_status          = 5
)
/ –select to backup the lines whose move order line status is closed
prompt select allocation records with missing move order
INSERT
INTO mtl_mmtt_backup
(SELECT mmtt.*
FROM mtl_material_transactions_temp mmtt
WHERE move_order_line_id IS NOT NULL
AND NOT EXISTS
(SELECT mtrl.line_id
FROM mtl_txn_request_lines mtrl
WHERE mtrl.line_id = mmtt.move_order_line_id
)
)
/ –select to backup the lines who has a move order link, but corresponding move order is not existing now.
prompt create backup table for move order lines
CREATE TABLE mtl_mtrl_backup AS
(SELECT mtrl.*
FROM mtl_txn_request_lines mtrl,
mtl_txn_request_headers mtrh
WHERE mtrl.line_status   = 7
AND mtrl.header_id       = mtrh.header_id
AND mtrh.move_order_type = 3
AND NOT EXISTS
(SELECT ‘Y’
FROM wsh_delivery_details
WHERE move_order_line_id = mtrl.line_id
AND released_status      = ‘S’
)
)
/
–select to backup the move order lines whose status is pre-approved, the move order is
–generated from realeasing SO, meantime there’s no line in the delivery details or there is
–but it is has been released to warehouse
prompt create backup table for serial number allocations
CREATE TABLE mtl_msnt_backup AS
(SELECT msnt.*
FROM mtl_serial_numbers_temp msnt
WHERE msnt.transaction_temp_id IN
(SELECT transaction_temp_id FROM mtl_mmtt_backup
)
)
/
–backup all of the series records under the backuped  mtl_material_transactions_temp
prompt create backup table for lot number allocations
CREATE TABLE mtl_mtlt_backup AS
(SELECT mtlt.*
FROM mtl_transaction_lots_temp mtlt
WHERE mtlt.transaction_temp_id IN
(SELECT transaction_temp_Id FROM mtl_mmtt_backup
)
)
/
–backup all of the lots records under the backuped mtl_material_transactions_temp
prompt select serial number allocations for lot controlled items
INSERT
INTO mtl_msnt_backup
(SELECT msnt.*
FROM mtl_serial_numbers_temp msnt
WHERE msnt.transaction_temp_id IN
(SELECT serial_transaction_temp_id FROM mtl_mtlt_backup
)
)
/
–backup all of the serials records for the lot and serial control items
prompt delete serial number allocations
DELETE
FROM mtl_serial_numbers_temp
WHERE transaction_temp_id IN
(SELECT transaction_temp_id FROM mtl_msnt_backup
) /
–delete all of the serials records which has been backuped
prompt delete lot number allocations
DELETE
FROM mtl_transaction_lots_temp
WHERE transaction_temp_id IN
(SELECT transaction_temp_id FROM mtl_mtlt_backup
) /
–delete all of the lot records which has been backuped
prompt delete allocations
DELETE
FROM mtl_material_transactions_temp
WHERE transaction_temp_id IN
(SELECT transaction_temp_id FROM mtl_mmtt_backup
) /
–delete all of the allocations (records in mmtt table)which has been backuped
prompt close move order lines
UPDATE mtl_txn_request_lines
SET quantity   = NVL(quantity_detailed, 0) ,
line_status  = 5
WHERE line_id IN
(SELECT line_id FROM mtl_mtrl_backup
) /
–close all of the move order which has been backuped in mtl_mtrl_backup
prompt update transaction source on the move order line
UPDATE mtl_txn_request_lines mtrl
SET mtrl.txn_source_line_id =
(SELECT DISTINCT(source_line_id)
FROM wsh_delivery_details
WHERE move_order_line_id = mtrl.line_id
AND released_status      = ‘S’
)
WHERE mtrl.line_status = 7
AND EXISTS
(SELECT delivery_detail_id
FROM wsh_delivery_details wdd
WHERE move_order_line_Id = mtrl.line_Id
AND wdd.source_line_id  <> mtrl.txn_source_line_id
AND wdd.source_line_id   > 0
AND wdd.released_status  = ‘S’
) /
–The move order has linked with delivery details and delivery details has been released to warehouse
–In the delivery details, there’s a source line id but the source line id is different with the one in move order
–And the move order is in the status of pre-approved.
–If above is true, change the source line id in move order line to the one in delivery details
prompt update transaction source on the allocation
UPDATE mtl_material_transactions_temp mmtt
SET mmtt.trx_source_line_id =
(SELECT txn_source_line_id
FROM mtl_txn_request_lines
WHERE line_id = mmtt.move_order_line_id
)
WHERE mmtt.transaction_type_id IN (52, 53)
AND mmtt.move_order_line_id    IS NOT NULL
AND EXISTS
(SELECT line_id
FROM mtl_txn_request_lines
WHERE line_status       = 7
AND line_id             = mmtt.move_order_line_id
AND txn_source_line_id <> mmtt.trx_source_line_id
) /
–pending transaction is from internal order pick and sales order pick
–pending transaction is linked with move order, move order is in Pre-approved
–source line id in pending transaction is different with the one in move order
–If above is true, change the source line id in pending transaction to the one in move order
prompt update allocations for missing reservations
UPDATE mtl_material_transactions_temp mmtt
SET reservation_id         = NULL
WHERE mmtt.reservation_id IS NOT NULL
AND NOT EXISTS
(SELECT mr.reservation_id
FROM mtl_reservations mr
WHERE reservation_id = mmtt.reservation_id –there’s a reservation id in pending transaction,
) / COMMIT / EXIT; –but there’s no in reservation record; If above is true, change it to null.
/

Delete Stock Locator

You can’t delete an inactive locator and can’t create a duplicate locator either even though they are under different sub-inventory. If your user create a locator under a wrong sub-inventory and then inactive it, he/she still can’t create a new one with the same locator name under the correct sub-inventory.

I don’t know why Oracle inactive the “Delete” button in the Stock Locator window, but Oracle provide a public API to delete the locator called inv_loc_wms_pub.delete_locator. If if there are no items attached to the locator and no onhand quantity for the locator, you can use it to delete it.