How to Turn On “About This Page” in Oracle R12 Web Forms

Set Following Profile Options as Required at User or Site

Personalize Self-Service Defn = YES

FND: Personalization Region Link Enabled = YES

Disable Self-Service Personal = NO (Only at Site)

FND: Diagnostics = Yes

Bounce the Apache Server

Login to Application you can see the About This Page Link on all web pages

By Using About This Page link you can have almost all information of technology Stack

Early Payment Discount In Account Receivable

Early Payment Discount

Example
customer order received for item A and we have scheme for item A if user order item A we will give him discount of 200 $ on each items but only in case if he pay in 3 days how it will be handled ?


Solution Example:

Payment Terms
Receivables lets you define standard payment terms for your customers to specify the due date and discount date for their open items. Payment terms can include a discount percent for early payment and you can assign multiple discounts to each payment term line. For example, the payment term ‘2% 10, Net 30′ indicates that a customer is allowed a two percent discount if payment is received within 10 days, after 10 days, the entire balance is due within 30 days of the transaction date with no applicable discount. You can define proximal payment terms to pay regular expenses such as telephone bills and credit card bills that occur on the same day each month. You can also create split payment terms for invoice installments that have different due dates.

You can use payment terms to determine the amount of each installment. Receivable lets you either distributes tax and freight charges across all installments, or allocates all freight and tax amounts in the first installment of a split term invoice. You can use prepayment payment terms to indicate which business transactions require prepayment for goods and services. Receivables displays the active payment terms you define as list of values choices in the Customers, Customer Profile Classes, and Transactions windows.

To define a payment term:

1. Navigate to the Payment Terms window.
2. Enter the Name of this payment term.
3. Select the Prepayment check box if you are defining a prepayment payment term.

Receivables feeder systems, such as Oracle Order Management, can optionally implement business processes around prepayment payment terms to indicate that a particular business transaction requires the capture of funds before the delivery of a product or service.

4. To associate a credit check with this payment term, check the Credit Check box. Oracle Order Management uses this information to determine when to place an order on hold. In Oracle Order Management, if the profile for an address does not have credit checking limits defined in a particular currency but the customer does, then the order passes credit check. If the address does not have limits in the currency and neither does the customer, then the order is compared to the customer limit in that currency.

5. If you do not want to let your customers take discounts for partial payments on items associated with this payment term, then uncheck both the Allow Discount on Partial Payments check box
as well as the check box for the Discount on Partial Payment system option.

6. Enter the Installment Option for items assigned to this payment term. This indicates how Receivables will allocate the freight and tax charged to transactions using this payment term. Choose ‘Include tax and freight in first installment’ to include all tax and freight charges in the first installment. Choose ‘Allocate tax and freight’ to distribute tax and freight charges across all installments.

7. Enter the Base Amount for this payment term. The default is 100, but you can change it. The base amount is the denominator for the ratio Receivables uses to determine the amount due for installments of invoices to which you assign this payment term. The sum of the relative amounts for all of the payment schedules that you define for these payment terms must be equal to the value that you specify as a base amount.

8. If this payment term uses proximate terms, enter a Cutoff Day for inclusion in the monthly billing cycle. You can either enter a Day of the Month or select the Last Day of Month checkbox. Select the Last Day of Month check box to create a payment term to use with a consolidated billing invoice that includes all transactions created during the month that you specify.

If you are using the Consolidated Billing Invoices program, then you must enter values for the Day of Month and Months Ahead fields in the Due region of the Payment Schedule. Consolidated Billing does not use the Days or Date fields in the Due region. Customers who use payment terms where the value for the Cutoff Day is greater than the value in the Due: Day of Month field should not enter a value of 0 in the Months Ahead field. This will result in the following erroneous scenario:

Cutoff Day = 25
Day of the Month = 15
Months Ahead = 0
in this example, a consolidated billing invoice that is created on January 25 will be due before its creation date on January 15. To avoid this scenario, you must enter a value that is greater than 0 in the Months Ahead field.

9. If you want transactions assigned to this payment term to be printed before the due date, enter a number of Print Lead Days. Receivables will print this transaction x number of days before the due date, where x is the number of days you enter here.

10. Enter the Discount Basis you want Receivables to use when calculating discounts for your invoices.

Choose one of the following discount methods

Invoice Amount: Choose this option to calculate the discount amount based on the sum of the tax, freight charges, and line amounts of your invoices.

Lines Only: Choose this option to calculate the discount amount based on only the line amounts
of your invoices.


Lines, Freight Items and Tax: Choose this option to calculate the discount amount based on the amount of line items, freight, and tax of your invoices, but not freight and charges at the invoice header level.

Lines and Tax, not Freight Items and Tax: Choose this option to calculate the discount amount based on the line items and their tax amounts, but not the freight items and their tax lines, of your invoices.


11. Enter a range of Effective Dates for this payment term. If you do not enter an end date, this payment term will be active indefinitely.

12. Enter a line number for the installment term that you are defining in the ‘Seq’ field. Enter a higher number for each installment term with a later due date. For example, if you create terms with 50% due in 15 days and 50% in 30 days, enter ‘1′ in this field for the first line and ‘2′ for the second line.

13. Enter the Relative Amount for this payment term. This is the numerator of the ratio that Receivables uses to determine the amount due for this installment of these payment terms. The sum of the relative amounts for all of the payment schedules that you define for each payment term must be equal to the base amount for this term.

14. Enter the number of Days after the invoice date that payment is due for this installment term (optional). For split payment terms, this number indicates the number of days after the invoice date that an installment is due.

15. Enter the Date on which payment is due for this installment term (optional). If you do not complete this field, enter a value for either Due Days or both Day of Month and Months Ahead.

16. If you are defining proximate terms, enter the Day of Month that payment is due for this installment term. For example, if payment is due on the fifteenth of each month, enter ‘15.’

17. If you are defining proximate terms and you entered a value for Day of Month, enter the Months Ahead to which these installment terms of the proximate terms refer.

For example, if you entered ‘15′ for Day of Month and you enter ‘2′ here, an invoice dated in May will have a due date of July 15.

18. Save your work. To assign discounts to each payment schedule line of your payment term

Entering Discount Information
Receivables lets you assign discounts to your payment terms. You can also assign multiple discount line terms to each installment of your payment terms. For example, you might give your customer a 10% discount if they pay within 10 days, but only a 5% discount if they pay 11 to 20 days after the invoice date.
Discounts do not apply to Automatic Receipts. If you use the automatic receipts feature to create your Bills of Exchange and Direct Debits, Receivables will not calculate discounts, even if your customers pay before the due date.


Prerequisites
Define payment terms
To assign discount information to a payment term:
1. Navigate to the Payment Terms window.
2. Query or enter the payment term.
3. Choose Discounts.
4. Enter the discount percentage and number of Days for this payment term. For example, to give customers using this payment term a two percent discount if payment is received within ten days, enter ‘2′ and ‘10′ respectively.
5. To limit the period of time that the discount for this installment’s discount line will be active, enter the Date, day of the Month, and the number of Months Ahead for this discount’s expiration date. Receivables uses these values to calculate the discount date during invoice entry.
6. Save your work.

Source: – Metalink, Receivable User Guide

How to Get Supplier Bank Detail In R12

In Release 12, Payables Supplier Bank Information is stored somewhere else instead of PO_VENDORS table as in 11i. After going thru the guides, it seems that the bank information (such as bank account numbers, etc) for suppliers may be in TCA or in Cash Management Bank Model. Please provide the tables names where bank account information and other bank related information is stored?

By Using Following Queries you can get Required Information on Basis on Supplier Site Name

/* For Supplier Bank Account Number Use This One */

SELECT bank_account_name, bank_account_num, branch_id

FROM iby_ext_bank_accounts

WHERE ext_bank_account_id IN (

SELECT ext_bank_account_id

FROM iby_account_owners

WHERE account_owner_party_id IN (

SELECT party_id

FROM hz_party_sites

WHERE party_site_name LIKE

‘%UPC%’))

/* USE THIS QUERY TO GET BANK NAME AND BANK BRANCH NAME OF SUPPLIER BANK*/

SELECT BANKORGPROFILE.HOME_COUNTRY BANK_HOME_COUNTRY,

BANKORGPROFILE.PARTY_ID BANK_PARTY_ID,

BANKORGPROFILE.ORGANIZATION_NAME BANK_NAME,

BANKORGPROFILE.BANK_OR_BRANCH_NUMBER BANK_NUMBER,

BRANCHPARTY.PARTY_ID BRANCH_PARTY_ID,

BRANCHPARTY.PARTY_NAME BANK_BRANCH_NAME,

BRANCHPARTY.PARTY_ID

FROM HZ_ORGANIZATION_PROFILES BANKORGPROFILE,

HZ_CODE_ASSIGNMENTS BANKCA,

HZ_PARTIES BRANCHPARTY,

HZ_ORGANIZATION_PROFILES BRANCHORGPROFILE,

HZ_CODE_ASSIGNMENTS BRANCHCA,

HZ_RELATIONSHIPS BRREL,

HZ_CODE_ASSIGNMENTS BRANCHTYPECA,

HZ_CONTACT_POINTS BRANCHCP,

HZ_CONTACT_POINTS EDICP

WHERE SYSDATE BETWEEN TRUNC (BANKORGPROFILE.EFFECTIVE_START_DATE)

AND NVL (TRUNC (BANKORGPROFILE.EFFECTIVE_END_DATE),

SYSDATE + 1

)

AND BANKCA.CLASS_CATEGORY = ‘BANK_INSTITUTION_TYPE’

AND BANKCA.CLASS_CODE IN (‘BANK’, ‘CLEARINGHOUSE’)

AND BANKCA.OWNER_TABLE_NAME = ‘HZ_PARTIES’

AND (BANKCA.STATUS = ‘A’ OR BANKCA.STATUS IS NULL)

AND BANKCA.OWNER_TABLE_ID = BANKORGPROFILE.PARTY_ID

AND BRANCHPARTY.PARTY_TYPE = ‘ORGANIZATION’

AND BRANCHPARTY.STATUS = ‘A’

AND BRANCHORGPROFILE.PARTY_ID = BRANCHPARTY.PARTY_ID

AND SYSDATE BETWEEN TRUNC (BRANCHORGPROFILE.EFFECTIVE_START_DATE)

AND NVL (TRUNC (BRANCHORGPROFILE.EFFECTIVE_END_DATE),

SYSDATE + 1

)

AND BRANCHCA.CLASS_CATEGORY = ‘BANK_INSTITUTION_TYPE’

AND BRANCHCA.CLASS_CODE IN (‘BANK_BRANCH’, ‘CLEARINGHOUSE_BRANCH’)

AND BRANCHCA.OWNER_TABLE_NAME = ‘HZ_PARTIES’

AND (BRANCHCA.STATUS = ‘A’ OR BRANCHCA.STATUS IS NULL)

AND BRANCHCA.OWNER_TABLE_ID = BRANCHPARTY.PARTY_ID

AND BANKORGPROFILE.PARTY_ID = BRREL.OBJECT_ID

AND BRREL.RELATIONSHIP_TYPE = ‘BANK_AND_BRANCH’

AND BRREL.RELATIONSHIP_CODE = ‘BRANCH_OF’

AND BRREL.STATUS = ‘A’

AND BRREL.SUBJECT_TABLE_NAME = ‘HZ_PARTIES’

AND BRREL.SUBJECT_TYPE = ‘ORGANIZATION’

AND BRREL.OBJECT_TABLE_NAME = ‘HZ_PARTIES’

AND BRREL.OBJECT_TYPE = ‘ORGANIZATION’

AND BRREL.SUBJECT_ID = BRANCHPARTY.PARTY_ID

AND BRANCHTYPECA.CLASS_CATEGORY(+) = ‘BANK_BRANCH_TYPE’

AND BRANCHTYPECA.PRIMARY_FLAG(+) = ‘Y’

AND BRANCHTYPECA.OWNER_TABLE_NAME(+) = ‘HZ_PARTIES’

AND BRANCHTYPECA.OWNER_TABLE_ID(+) = BRANCHPARTY.PARTY_ID

AND BRANCHTYPECA.STATUS(+) = ‘A’

AND BRANCHCP.OWNER_TABLE_NAME(+) = ‘HZ_PARTIES’

AND BRANCHCP.OWNER_TABLE_ID(+) = BRANCHPARTY.PARTY_ID

AND BRANCHCP.CONTACT_POINT_TYPE(+) = ‘EFT’

AND BRANCHCP.STATUS(+) = ‘A’

AND EDICP.OWNER_TABLE_NAME(+) = ‘HZ_PARTIES’

AND EDICP.OWNER_TABLE_ID(+) = BRANCHPARTY.PARTY_ID

AND EDICP.CONTACT_POINT_TYPE(+) = ‘EDI’

AND EDICP.STATUS(+) = ‘A’

AND BRANCHCA.OWNER_TABLE_ID = :IBY_BRANCH_ID /*USER BRANCH ID FROM ABOVE QUERY*/

If anyone have a better solution then please update

Join Processing in Oracle

In a query involving more than one table, join processing is involved to determine the most optimal plan to perform the join. This comprises:

  1. Join cardinality
  2. Enumerating join orders
  3. Evaluating the costs associated with each join path under each join method.

Join Cardinality

Join cardinality is the determination of the number of rows that will make up the joined relation. In the worst case, we have no join predicates and the cardinality is the Cartesian product of the two or more tables involved. But typically when two or more tables participate in a join, the join is based on values of some columns. Using the statistical descriptions on the columns and the number of rows in each table, we calculate the cardinality of the joined form.

Join Orders

A “Join Order” is a particular permutation of ordering the access to tables participating in the join to complete the joined relation. Join orders depend on the type of join or the join topology. Depending on the structuring of the join predicates, joins can be classified into various types viz chain, star, cycle, complete graph, etc. For example, consider the query with a three table join -

SELECT … FROM t1,t2,t3 WHERE

t1.col1 = t2.col1 AND

t2.col1 = t3.col1 ;

Tables t1, t2 and t3 are joined in a chain order.

Tables t1,t2,t3 can be joined in n! i.e n factorial way .

where n is number of tables .

So in This case it will be 3*2*1=6

Possible join orders:

t1->t2->t3, t2->t1->t3, t2->t3->t1, t3->t2->t1

t1->t3->t2, t3->t1->t2

Note the Join orders such as t1->t3->t2, t3->t1->t2 are evaluated using

Cartesian product as there is no join predicate specified between t1 and t3.

Each of the join orders are possible and need to be evaluated for resource usage. As number of tables increase, depending on the join topology, the search space or the possible permutations go up steeply. Several techniques are used to prune the search space and reduce the work involved in identifying the best join order.

Evaluating Join Path Costs

For each join order, the optimizer evaluates the cost of performing the join by breaking the order into pairs. The first part is made of the relations already joined and the second part of the next table to be joined. Costs are considered using both join methods currently implemented in the kernel, the sort-merge join method and the nested-loops join method.

In the sort-merge method, the tables participating in the join are first sorted by the join columns. The sorted relations are then joined. The cost of performing join by this method includes the sorting costs and the cost of retrieving sorted records to perform the join.

In the nested-loops method, we scan the outer table row one at a time and for each row retrieved, we access the inner table based on the join columns. The outer table will actually be a joined relation where more than two tables are joined. The cost of performing the join in this method includes the cost of accessing the outer table and for each row retrieved and the cost of fetching the group of rows from the inner table based on the join columns.

For each table in a particular join order, there is a large number of possible access paths, the table can be accessed using a ROWID or could be accessed by doing a table scan. Alternatively, it may be accessed using a single index or a cluster scan or a merge of several single column no unique indexes.

Several rules are used to narrow down or prune the search space to speed up access path selection. For example, if there is a lookup by ROWID, it is considered the best and we don’t bother to evaluate other access paths open to the table.

Source := US Education Website

What is Content Set In Financial Statement Generator (FSG).

Content Set In FSG

A content set is used to override row set account assignments to generate different variations of the same report without defining separate reports. Most of the time, content sets are used to generate a given report for every value in a segment of the Chart of Accounts—for example, a Standard report that repeats for each company in the Chart of Accounts. To enter content sets, follow the navigation path Reports à Define à Content Set. Enter the name of the content set, an optional description, and the type. The type determines whether the run order of the reports will be sequential or parallel.

Next, define the Account Assignments for the content set. This is very similar to the Account Assignments form you saw in the Define Rows/Columns form. However, since content set overrides the row set, you do not need to fill in all segments. The segments without any value will fall back to the row set account assignments. Only need to define what display types to use to override the row set. Valid display types are listed in Below Table.

N

No override

CT

Summation of balances of all segment values within the account range.

PE

Expand the account range or parent value into detail segment values. In addition, it will page break after each segment value creating a different report.

PT

Override the account range but maintain the row set display types (E, T, B).

RE

Expand the account range or parent value into detail segment values. Same as E in defining rows.

RT

Total the segment values for the segment. Same as T in defining rows.

RB

Show both detail and total for the account range or the parent value. Same as B in defining rows.

Steps for Manual Cloning……

1) Restored the backup from the tape to the source destination.

2) Changed the ownership of all the directories.

chown -R appltest:dba *

chown -R oratest:dba * — Incase its multi-user.

3) Created a control file in the name of control.sql

In the source database … issue conmmand … alter database backup control file to trace;

We would find the trace file in udump.

Modify he contents of the control.sql to match the structure in the destination.

4) Changed the environment file to have the necessary settings and set the environment. Once you source th .env … it woulgive you the errors where it does not match and you may make the changes accordingly in various files.

.env file … please make sure that we change all the .env files. Even the ones in 8.0.6 and iAS Oracle Home along with the Appl_Top.

Also make the changes in the listener.ora, tnsnames.ora and sqlnet.ora.

Rename the folders too.

Make the changes in the .xml file.

Changes required would be in the hostname, Location, DB name, OS owners of Application and Database.

5) Source the environment file

6) Change the initSID.ora for correct control file location and bdump,cdump,udump

7) Rename the existing control and log files.

mv cntrl01.dbf cntrl01.dbf.bak

mv log01a.dbf log01a.dbf.bak

8) sqlplus “/as sysdba”

startup nomount

@control.sql

This will create the control file.

9) alter database open resetlogs;

10) lsnrctl start DBNAME

Sinc ewe have made the changes in the listener file we would not have any difficulties.

11) Run AutoConfig on the DBTIER.

12) Run the following in order to clean the nodes in the database.

The Databse would have the entries for the Source DB.

If you query: select node_name, node_id, server_id from fnd_nodes; — you would see that.

For cleaning:

sqlplus apps/apps

EXEC FND_CONC_CLONE.SETUP_CLEAN;

commit;

TO make sure that its cleaned up, you can also test with the following query:

select session_cookie_domain from icx_parameters;

This would provide no results.

Shutdown the DB Listener and DB … Start the DB and DB Listener.

Re-run AutoConfig on the DB node.

13) Run AutoConfig on the Application tier as we have made the changes on the Application side files.

14) Get the application services up and check the URL.

15) If you do face issues in getting the managers up and running … shutdown only the application and run cmclean.sql (available on metalink)

If you still face any issues … go to profile — system — query for %GSM% — Modify to NO … Save the changes and bounce the application.

The application and the Database should work fine after this.

Thanks To Mr. Fouad for sharing .

Implementing Virtual IP addresses with Oracle 10g/RAC for E-Business Suite 11i

Oracle 10g Cluster Ready Services enables databases to use a Virtual IP address to configure the listener on. This feature is to assure that oracle clients quickly failover when a node fails.

When a client connects to a tns-alias, it uses a TCP connection to an IP address, defined in the tnsnames.ora file. When using RAC, you define multiple addresses in your tns-alias, to be able to fail over when an IP address, listener or instance is unavailable. However, TCP timeouts can differ from platform to platform or implementation to implementation. This makes it difficult to predict the failover time. In theory, the failover time can add up to two minutes (default TCP timeout). In Oracle 10g, when a node fails, the Virtual IP address is taken over by (one of) the remaining RAC node(s).

Article by Arnoud Roth