Implementation Tasks for Oracle Quoting

This chapter covers the following topics:

Setting Up Quote Status and Quote Status Transitions

The status of a quote indicates the evolution of a quote from the initial offer to order placement. Quote statuses and transitions reflect your quote cycle. You may also define your quote statuses to determine what kind of changes a sales representative can make to the quote.

If a quote status is read only you may perform the following:

If a status is user maintainable, the application administrator can modify any attribute of the status.

If a status is not user maintainable, it means that:

Oracle Quoting is delivered with predefined quote statuses. You can define new quote statuses to reflect your business processes. But you cannot modify seeded statuses unless they are user maintainable. In addition, you cannot delete any statuses. You must deactivate those statuses you no longer want to use.

Note: Users with the System Administrator responsibility can define an Oracle Quoting default quote status using the profile option ASO: Default Quote Status. This default status is applicable to new quotes as well as to new versions of existing quotes.

The following table lists the seeded quote statuses.

Seeded Quote Statuses
Quote Status Description Read-only
Approval Canceled Sales representative canceled the approval process. No
Approval Pending Quote is pending approval, and is read-only. Yes
Approval Rejected Approval was rejected by the approvers. No
Approved Approved by the necessary approvers. Yes
Draft The default initial status of the quote. No
Inactive No more activity allowed on the quote. Yes
Order Submitted Quote has been submitted as an order to Oracle Order Management. Yes
Store Draft For iStore internal use only. Allows iStore to have a Draft to Order flow that is separate from Quoting. No

Users can update quotes with read-only status if the profile option ASO: Status Override is set to Yes at the appropriate level.

The statuses in the following table exist for backward compatibility (for previous versions of Oracle Quoting), but there is no functionality associated with them.

Quote Status Description Read-only
Bid Could be used to show that the quote was presented to a customer. No
Lost Could be used to show that the customer declined/rejected the quote. No
Problem Could be used to show there is a problem submitting the quote as an order.
Note: The system will not automatically set this status if the order is not submitted.
No
Reviewed Could be used to show that the quote was reviewed internally. No

The statuses Contract Canceled, Contract Pending, Contract Required, Ordered and Entered are obsolete. They still appear in the Quote Status setup form but they will be locked. You will not be able to create any transitions to them, nor can you enable them.

Note: If you designated a quote status as read-only in a previous release of Oracle Quoting, it will not be overwritten in this release, regardless of the out-of-box designation. For example, if you defined the status Lost as read-only in release 11.5.6, it will remain read-only in this release.

Rules for Quote Status Changes

Status transitions are regulated to prevent accidental changes, such as reverting an ordered quote status back to a non-ordered status.

Not all transitions are seeded. You may have to set up certain transitions to use additional functionality. For example, the status transition Draft to Inactive is not seeded but is necessary to inactivate quotes.

Note: You cannot set up a transition from a status to itself.

The following table shows the seeded transition rules for quote status changes.

Seeded Quote Status Transitions
From To User Maintainable
Approval Pending Approved No
Approval Pending Approval Canceled No
Approval Pending Approval Rejected No
Store Draft Draft No
Store Draft Inactive No
Store Draft Order Submitted No

If a seeded transition is user maintainable, the application administrator can disable the transition. If the transition is not user maintainable, the application administrator cannot disable the transition as this is used by the system to enforce functionality.

Each transition has a Transitioned By field that is read only. This field shows one of two values:

You cannot create new transitions to the following statuses:

You cannot create new transitions from the following statuses:

To set up quote statuses, log in to Oracle Forms as a Quoting Sales Manager and navigate to the Quote Status Setup window from Oracle Quoting > Setup > Quote Status.

Field Behavior

Setting System Profile Options

Use Appendix A, "Oracle Quoting Profile Options" to identify the profile options to set for your specific implementation. There is no recommended order for setting profile options.

To change profile options, use the standard procedure outlined in the Oracle Applications User’s Guide.

Notes

Assigning a Seeded Oracle Quoting Responsibility to a User

The following Oracle Quoting seeded responsibilities are available:

Access to Forms Quoting

Access to HTML Quoting

Note: To create your own responsibilities, assign the menu QOT_QUOTE_ROOT to the responsibility.

To assign the Quoting HTML seeded responsibility (Quoting User) to a user:

Prerequisites

The user must be set up as an application user.

Notes

Modifying Seeded Lookup Types

To modify the seeded Lookup Types (QuickCodes), login to Oracle Forms as Quoting Sales Manager.

Navigate to Quoting > Setup > Quick Codes.

For a complete list of the seeded lookup types in Oracle Quoting, refer to Appendix D, "Seeded Lookup Types".

Setting Up TCA SmartMatch

The TCA SmartMatch functionality uses powerful fuzzy matching logic and scoring to identify the most appropriate customer and contact records during the search process and identifies duplicates during the creation process.

Data Quality Management (DQM) is another name for the fuzzy matching logic. DQM uses matching rules set up in TCA to search for and match parties. There are a few profiles that are assigned these match rules and accordingly, the appropriate rules are used to perform the search.

In order for Quoting to use DQM, the following profiles must be set.

If the profile ASO: Enforce Account Relationships is set to No, DQM is used by Oracle Quoting to search for:

For more information about setting these profiles, please refer the Oracle Sales Implementation Guide.

For information on Data Quality Management, see the Oracle Trading Community Architecture Administration Guide.

Setting Up Quoting Parameters

The operating unit-specific profiles have been obsoleted and are replaced by the corresponding Operating Unit-specific parameters. Use the following procedure to set up the following Quoting parameters. See the Obsoleted Profiles section to view the profiles.

Steps

  1. Login to Oracle Forms with the HRMS Manager responsibility.

  2. Navigate to HRMS Manager : Work Structures : Organization > Description

  3. In the Find Organization dialog box, specify the operating unit for which you want to set the parameters in the Name field.

  4. For Organization Classification Name, select Operating Unit.

  5. Click Find.

  6. From the Organization Classifications section, select Operating Unit.

    Ensure that the Enabled checkbox is selected.

  7. Click Others.

  8. From the Additional Organization Information dialog box, select Quoting Parameters.

  9. Click inside the Quoting Parameters field to display the Quoting Parameters dialog box with the following fields:

    • Operating Unit

      Select the same Operating Unit that you selected in Step 3 above.

    • Default Order Type

    • Default Salesrep

    • Default Sales Group

    • Default Sales Role

    • Default Contract Template

  10. Specify a value for each of the parameters using the respective LOVs.

    The LOVs for the Default Order Type, Default Salesrep, and Default Contract Template are filtered by the selected operating unit. The LOVs for the Default Sales Group and Default Sales Role are based on the Default Salesrep parameter.

  11. Click OK to save your changes.

You must perform the above procedure to set the Quoting parameters for each operating unit in your organization.

Setting up the Default Expiration Date

You can set the default quote expiration date so that quotes expire:

At the end of a calendar period, e.g., quarter or month

OR

At the end of a fixed number of days

Expiration Date Based on Calendar Period

You can set the default quote expiration date so that quotes expire at the end of each quarter, month or other calendar period. During setup, users can designate an Oracle General Ledger (GL) calendar and period type from which the default expiration date is calculated.

The Oracle General Ledger calendar selection is controlled by the profile option ASO: Default Expiration Date GL Calendar. Available options include all calendars set up in Oracle Accounts Receivables.

The General Ledger period is controlled by the profile option ASO: Default Expiration GL Period Type. Available options include all period types set up for the selected GL calendar. For more information on these profile options, see Appendix A, "Oracle Quoting Profile Options".

The expiration date is set to the last date of the selected period. For example, if ASO: Default Expiration GL Calendar is set to Sample Calendar and ASO: Default Expiration GL Period Type is set to Quarter, then the quote expiration date defaults to the last day of the current quarter.

Expiration Date Based on a Fixed Number of Days

Alternatively, you can set the default quote expiration date so that quotes expire after a fixed number of days. The fixed number of days defaults from the profile option ASO: Quote Duration. For more information, see Appendix A, "Profiles in Oracle Quoting".

Note: The value defined in ASO: Quote Duration is used only if one or both of the GL Calendar profiles are null.

Creating a Quote Template from a Quote

You can create a quote template from a quote enabling the quote to be reused.

The following quote line attributes are copied from a quote to the quote template:

The set up steps are as follows:

  1. User must have access to the Setup: Template Administrator function.

  2. You must enable the Create Template action for the ASO: Quote Actions in HTML UI lookup type.

Applying Quote Template with Different or Same Operating Unit as the Quote’s Operating Unit

You can search for and apply templates with different or same operating unit as the quote’s operating unit. Set the value of the ASO: Filter Quote Template By profile option appropriately when applying a template with an operating unit to a quote.

Setting up Overrideable Modifiers

If the profile ASO: Discounting Privilege is set to Full, users can manually override prices. If you want users to have this ability, you must ensure that at least four overrideable modifiers are set up in Oracle Advanced Pricing. At the Header level, there should be one discount and one surcharge with application methods of percent. At the Line Level, there should be one discount and one surcharge set up with application methods of percent or amount.

For information on setting up modifiers, refer to the latest version of the Oracle Pricing User’s Guide.

Manual Modifiers in Buckets

In the Quoting Forms interface, users can select manual adjustments from the Price Adjustment form. Bucket numbers will be displayed on this form as well, so that sales representatives can see the buckets before applying manual modifiers.

In the HTML UI, manual adjustments are entered in the Discount % field, when the user overwrites the Selling Price or Total Adjustment %. Bucket numbers are displayed so that sales representatives can see the buckets before applying manual modifiers.

When a sales representative overwrites the selling price (in either UI), the Pricing engine returns a manual adjustment in the null bucket. If a manual modifier in the null bucket has not been defined, the pricing engine will raise an error. To ensure that the selling price is calculated to be the same price that the user has entered, you must set up the four manual modifiers in the null bucket.

Multi-Currency Price Lists

Multi-currency price lists simplify pricing setup if you are selling products to customers in multiple countries. Multi-currency price lists make it easier to quote to customers in multiple regions of the world at the same time.

To use multi-currency price lists, there must be a conversion list associated with each price list. The conversion list, set up in Advanced Pricing, contains an algorithm that converts the base currency price from the price list into one or more additional currencies.

The use of multi-currency price lists is controlled by the profile option QP: Multi-Currency Installed. If this profile is set to Yes and the profile QP: Multi-Currency Usages is set to Yes at the Application or Responsibility level, Quoting shows all price lists with the selected currency as base currency, as well as all price lists where there is a conversion list for the selected currency. If the profile option is set to No, the Price List LOV displays only price lists that are valid for the selected currency. You can leave the Currency field blank to view all price lists, or leave the Price List field blank to view all currencies. See Oracle Pricing Profile Options or the Oracle Advanced Pricing Implementation Manual for more information.

You must also run the concurrent program Update Price Lists with Multi-Currency Conversion Criteria to enable multi-currency price lists. You must run this program only once or data corruption will occur. Once the concurrent program has been run successfully, all existing price list or agreement windows will be converted to multi-currency price lists. After this, you should not try to disable multi-currency price list functionality. Changing the profile back to No may cause undesired results if conversion criteria have been used. Oracle does not support changing the setting back to No. For more information, please refer to the Oracle Advanced Pricing User's Guide.

With multi-currency price list functionality you can also change the selected currency for a quote and recalculate quote prices with the new currency. If automatic pricing mode is enabled, the quote reprices automatically. If not, you must reprice the quote manually for the changes to take effect.

If multi-currency is turned on, the LOV behavior is as follows:

the picture is described in the document text

Additionally, in the Forms UI, if ASO: Price List Override is set to No, and there is no currency selected, the Price List LOV is read only and the Currency LOV displays only currencies that are valid for the selected price list. If ASO: Price List Override is set to No, and a currency is selected, the Price List LOV is read only and the Currency LOV displays only currencies that are valid for the selected price list.

If multi-currency is turned off, the LOV behavior is as follows:

the picture is described in the document text

The ASO: Price List Override profile is not applicable in the HTML UI. Instead, you can achieve the same functionality in the HTML UI by enabling/disabling the Price List and Currency LOVs using OA Personalization.

Setting Up a Multi-currency Price List

You must set up a price list with a conversion list to use multi-currency price lists. Price lists and multi-currency conversion lists are set up in Oracle Advanced Pricing. Please see the Oracle Advanced Pricing User’s Guide for information on setting up price lists and conversion lists.

Note: The Transaction conversion type is not supported. This means the Quoting user cannot explicitly select a General Ledger-sourced Conversion Type or specify a Conversion Rate or Conversion Date.

Promotional Goods

You can set up a modifier in Advanced Pricing that automatically adds a product to a quote if the qualifying conditions (the purchase of one or more product) are met. The product or promotional good is added to the quote as a free or discounted item.

Note: You must set up a qualifier for the promotional good modifier such that only lines of type Order qualify for the promotional good.

The following set up restrictions apply to promotional goods:

Setting up Security

To enable security in Oracle Quoting, you must set the security profile options, listed in Appendix A, "Profiles in Oracle Quoting".

In addition, all users must be set up as valid Resources and assigned to sales groups.

To view examples of how quoting security can be implemented, see Appendix C, "Oracle Quoting Security Scenarios".

Note: Selecting a group for the Primary Sales Agent determines where quote information shows up in Daily Business Close. For example, a sales representative is part of Sales Group 1 and Sales Group 2. If you want the sales representative’s statistics to roll up to Group Manager 1, you must select Sales Group 1 as the Primary Sales Agent’s sales group for that representative.

Enabling View Margin

The View Margin function is used to determine if the user can view cost and margin information. It also enables the user to refresh the cost and margin information in the quote.

Creating a Resource

If you want all users to have access to Oracle Quoting when security is enabled, they must be set up as valid resources in Oracle Resource Manager.

When you create a resource, you assign roles to the resource.

You can create a resource either by entering the user information into Resource Manager or by importing an employee from Oracle Human Resources into Resource Manager.

For information on creating a resource, refer to the Oracle Trading Community Architecture User Guide.

Setting Up Manager Roles

Oracle Quoting security uses roles to determine which resources are managers. A manager must have an active role, of any role type, with the Manager flag checked. In addition, a manager must have the appropriate role in the context of a group. Managers have access to all quotes for the sales team they belong to. You can also set up a manager to have access to all quotes for the sales teams to which their subordinates belong.

Table Role Type Example lists the users, roles, roles attributes, and role types for employees at a fictional company.

Role Type Example
User Role Role Attribute Role Type
Bob Jones Regional Sales Manager Manager Sales
Jane Adams District Sales Manager Manager Sales
John Franklin Sales Agent Member Sales
Jennifer Moore Sales Agent Member Sales

For complete instructions on setting up roles, refer to the Oracle Trading Community Architecture User Guide .

Setting up a Group

Groups are used in Oracle Quoting security to determine the resource hierarchy. Groups identify the subordinates under a particular manager. The resource with a manager role in a group is considered the manager of all other resources in that group and any child group.

A resource can belong to multiple groups. Only one resource with a manager role should be in each group.

The following diagram demonstrates how the information in Table Role Type Example is used to infer a hierarchy in Oracle Quoting.

the picture is described in the document text

Notes

Verify Group Setup

To verify that you have set up your groups correctly, login to Oracle Forms with the Resource Manager responsibility.

Navigate to Resource Manager > Maintain Resources > Group Hierarchy.

Setting Up Sales Team Assignment and Sales Credit Allocation

Oracle Quoting integrates with Oracle Territory Manager to allow you to enable automatic sales team assignment for quotes. Sales teams are assigned based on:

If integrated with Oracle Incentive Compensation (or an external engine) as well, you can call the OIC engine to determine sales credit allocations on quotes.

Note: If you plan to use the sales team assignment and sales credit allocation/projected commission functionalities, you must set the profile option ASO: Security Enable From API to Yes.

For information on setting up sales team assignment functionality, refer to the "Integrating Oracle Quoting With Oracle Territory Manager" chapter.

For information on setting up sales credit allocation functionality using Oracle Incentive Compensation, refer to the "Integrating Oracle Quoting With Oracle Incentive Compensation" chapter.

If you implemented automatic sales team assignment and automatic sales credit allocation, you can also set up Quoting and Incentive Compensation to calculate projected commission for quotes.

Automatic Sales Credit Allocation — External Engine

If you choose not to use Oracle Incentive Compensation’s Sales Credit Allocation engine, you can implement sales credit allocation functionality using an external engine. Quoting provides a customizable hook that updates a quote’s sales credits through a call to the external engine.

For information on implementing user hooks, see Implementing User Hooks.

For information on sales credit allocation using Oracle Incentive Compensation, see the Integrating Oracle Quoting With Oracle Incentive Compensation chapter.

Setting Up Security Code for Credit Card Payments

The Security Code field may be specified on the quote when the Payment Type is Credit Card. The Security Code is the three-digit number printed, but not raised, on the back of a credit card. It is also known as the CVV2/CVC2 code. Refer the Oracle Payments Implementation Guide for more details.

Setting Up the Print Quote Functionality

You can print quotes using Oracle XML Publisher, XDO in either Adobe PDF or Microsoft RTF format.

For more information on Print Quote profile options, refer to Profile Options for Printing.

Setting Up Print Quote

The layout of the printout will be dictated by a customizable RTF Template, specified in the profile option ASO: Default Layout Template. All quotes printed using XML Publisher can either be in the Adobe PDF or the Microsoft RTF format. The ASO: Default Layout Template profile also governs the Preview Terms format.

Note: The Customizable RTF template used for print layout includes an XSL-FO template for Printing Contract Terms and Conditions.

Setup Steps for Oracle XML Publisher

Perform the following steps to set up Print Quote to function properly:

  1. Upload the RTF template and the XSL included/sub-template using the XML Publisher Administrator responsibility. Refer the Customizing the XML Publisher Report for more information.

  2. Set the profile option ASO: Default Layout Template to the value corresponding to a valid RTF template name that you uploaded.

  3. Bounce the Apache Server.

Customizing the XML Publisher Report

Customizing the XML Publisher report involves changing the RTF template to meet your requirements. To customize the RTF Template:

  1. Customize the report title.

    Two customizable FND messages are registered for the print quote report, one for non-executable quotes and one for executable quotes. The message names are:

    • ASO_PQUOTE_EXEC_TITLE

    • ASO_PQUOTE_NONEXEC_TITLE

  2. Customize the disclaimer.

    If a quote is non-executable, you can customize the disclaimer printed on the bottom of the quote by changing the name of the ASO_PQUOTE_DISCLAIMER message.

    Note: The disclaimer text should not be more than 4 lines long. If more than 4 lines, the disclaimer will be truncated.

  3. Replace the default logo given at the top left corner of the header region in the RTF template with your logo (.gif image file).

  4. Modify any section in the RTF template body by creating or changing tables and placeholders.

Customizing the Quote Data Template

To customize data templates, log in to Self Service Applications with the XML Publisher Administrator responsibility.

Navigate to Home and then Data Definitions.

  1. Select Order Capture in the Application field and click Go.

  2. Select Quote Data Template.

  3. In the Files section, click the data template file (ASOPRTDT.xml) link to download the file.

  4. Save the ASOPRTDT.xml file on your local drive.

  5. Add the custom columns to be added in the respective query section of the ASOPRTDT.xml file.

  6. Define the custom columns in the Data Structure section of the respective group of the ASOPRTDT.xml file and save the changes.

  7. Click Update File. Provide the path to the modified ASOPRTDT.xml file and click Apply.

  8. Bounce the Apache Server.

  9. ASOPRTDT.xml can be modified and should not be renamed to custom file name.

Customizing the Quote Printout Template

To customize data templates, log in to Self Service Applications with the XML Publisher Administrator responsibility.

Navigate to Home and then Templates.

  1. Select Order Capture in the Application field and click Go.

  2. Select the Default Quote Printout template.

  3. Click the Download icon to download ASOPRTRTF.rtf.

  4. Add custom fields to the ASOPRTRTF.rtf file and save the changes.

  5. Use the Return to Templates link to navigate back to the Templates tab.

  6. Select the Default Quote Printout template and click the Duplicate icon to create a duplicate of this template.

  7. In the Copy Template page, specify these details for the template: code, name and application. Click Apply.

  8. Query for the new template in the Templates tab. Select the template to view its details.

  9. Click the Update icon in the Localized Templates section and specify the path to the modified RTF file. Click Apply.

  10. Bounce the Apache Server.

  11. ASOPRTRTF.rtf can be modified and should not be renamed to custom file name.

Adding or Disabling Templates

To add or disable templates, log in to Self Service Applications with the XML Publisher Administrator responsibility.

Navigate to Home > Templates.

Field Behavior

Notes

Product Categories

To show subtotals by product category in the quote print out, you must enter a value in the profile option ASO: Category Set. The ASO: Category Set profile is used in Quoting - HTML when searching from the product catalog.

Note: The ASO: Category Set profile is optional. If this profile option is not set, it will use the default category set for the Order Management functional area.

Product categories belong to category sets, which are defined in Oracle Inventory. When you set up a category set in Inventory, you must ensure that products do not belong to more than one category.

Inclusion in more than one product category will affect subtotaling by product category. For example, if a product belongs to category A and category B in the same category set, the subtotals for each category will include the price of the product, regardless of the fact that the product is on the quote only once.

Note: If a product is part of more than one category within a category set, the product will show up as a duplicate in the product search. Oracle Quoting does not expose product categories in the UI, so users will not know that it is the same product in different categories.

Setting up Manual Pricing and Tax Calculation Request Options

Out of the box, Oracle Quoting automatically prices a quote whenever a potential price-affecting change is made. The pricing call also calculates taxes.

In Forms UI, depending on the setting of the ASO: Enable Batch Processing profile, you can price the quote interactively or through a batch request. For the same functionality in HTML UI, enable the Submission Options field using OA Personalization.

There are two fields in the Quoting UI using which you can opt to price/tax a quote manually or automatically for individual quotes. The fields are Price Calculation and Tax Calculation in the HTML UI and Automatic Pricing and Automatic Tax in the Forms UI. The initial values in these fields are based on the setting in the profiles - ASO: Calculate Price and ASO: Calculate Tax respectively.

The following table shows suggested settings for the Pricing and Tax fields and profile options in both the UIs, based on different scenarios:

Pricing Option Scenarios
Scenario Field in-
HTML UI: Price Calculation
Forms UI: Automatic Pricing
Field in-
HTML UITax Calculation
Forms UI: Automatic Tax
Forms UI- ASO: Enable Batch Processing Setting HTML UI- Enable Submission Options field
Large number of quote lines, complex pricing and tax setups Manual Manual Yes Yes
Large number of quote lines, simple pricing and tax setups Manual Manual Yes Yes
Small number of quote lines, simple pricing setups, complex tax setups Automatic Manual Yes Yes
Small number of quote lines, simple pricing and tax setups Automatic Automatic No No
Small number of quote lines, simple pricing setups, no tax computation unless requested. Automatic Manual No No

Note: Setting ASO: Calculate Price to Manual and ASO: Calculate Tax to Automatic is not supported because tax calculation is based on the price.

Enabling interMedia Search

Oracle Quoting supports the use of interMedia search against the Product Catalog. Two Oracle iStore profile options affect the behavior of Quoting searches with interMedia enabled.

For more information about the iStore profile options, see the Oracle iStore Release Notes, Part # B12241-01.

Please note that the following characters are treated as literal characters when performing an interMedia search:

Ensure that both Oracle interMedia and Oracle Inventory are properly set up and configured. Refer to the Oracle interMedia documentation for information on setting up interMedia. Refer to the Oracle Inventory User’s Guide for information on setting up Inventory.

To enable interMedia search in Forms Quoting:

  1. Set the ASO: Enable Intermedia Search profile option.

    See Profiles in Oracle Quoting for more information.

  2. Run the concurrent program iStore Search Insert.

Note: Only interMedia Search is supported in HTML Quoting. Hence, it is enabled by default.

Running iStore Search Insert

Run the iStore Search Insert concurrent program after initially loading your products into Oracle Inventory. This program should be run once, as a post install step during implementation.

However, you may need to rerun the program if one of the following conditions occur:

The iStore Search Insert program collects product data from Inventory and inserts it into the Oracle iStore search table IBE_CT_IMEDIA_SEARCH. While this program is running, the product search will not work properly.

Note: You cannot have more than one iStore Search Insert concurrent request instance running at one time.

Once complete, you can search for products by part number, long description, or description.

To run the iStore Search Insert program, log in to Oracle Forms with the iStore Concurrent Programs responsibility. Navigate to iStore Concurrent Programs > Concurrent Request window.

Refreshing the Search Index

Administrators must refresh the interMedia search index, IBE_CT_IMEDIA_SEARCH_IM, every time an existing product is changed or deleted, or a new product is added.

Note: Before refreshing the index you must ensure that all triggers related to Inventory are enabled.

You must have privileges to modify the index. Refresh the index through Oracle Enterprise Manager or by executing the following command in SQL*Plus:

exec ctx_ddl.sync_index(’APPS.IBE_CT_IMEDIA_SEARCH_IM’)

The changes appear in the product catalog.

Setting Up Account Creation Requirements for Quotes

Out of the box, Oracle Quoting does not require financial accounts—for prospects without any accounts—when creating a quote. Sales representatives can create quotes for either prospects or customers. A prospect does not have a financial account, while a customer has one or more financial accounts.

Oracle Quoting allows you to determine at which point an account must be created. Account creation is based on the ASO: Auto Account Creation profile. The profile determines when an account should be automatically created.

Depending on how you set the profile ASO: Auto Account Creation, you can set up account restriction in the following ways:

For more information on the profile options, see Appendix A, "Profiles in Oracle Quoting".

Scenarios

The following table shows the behavior of Oracle Quoting based on the setting of this profile option.

Oracle Quoting Behavior Based on the Account Profile Option
Profile Option Setting Create Sold-To Select Sold-To Create Ship-To/Bill-To/End Customer Select Ship-To/Bill-To/End Customer Web Publishing Order Conversion
ASO: Auto Account Creation set to Always Create account Create account if customer has none Create account Create account if customer has none Create account for all customers in quote without account Create account for all customers in quote without account
ASO: Auto Account Creation set to As Required Do not create account Do not create account Do not create account Do not create account Create account for any customers in quote without account Create account for any customers in quote without account
ASO: Auto Account Creation set to Place Order Do not create account Do not create account Do not create account Do not create account Throw error if any customers on quote do not have accounts Create account for all customers on quote without an account

Changing Quote To Customer for a Quote

When you duplicate or update a quote you can change the Customer Name or Account Number. You can select the attributes for quote header and quote line to copy to the new quote.

You must enable the Change Customer action for the ASO: Quote Actions in HTML UI lookup type.

Setting Up Validations for Model Configurations

Set the ASO: Configuration Effective Date profile option to validate the configuration for the following flows:

Set the ASO: Configuration Effective Date profile option to configure effective and lookup dates for the model item for the following flows:

Set the ASO: Copy Configuration Effective Date profile option to configure effective and lookup dates for the copied model configuration for the following flows:

Important: To manually validate configurations in a quote you must enable Validate Configuration value for the ASO: Quote Actions in HTML UI (ASO_QUOTE_ACTION) lookup type.

For more information about ASO: Configuration Effective Date and ASO: Copy Configuration Effective Date profile options, see Profile Options for Defaulting.

Quoting Integration with Oracle Proposals

Oracle Quoting integrates with Oracle Proposals to provide proposal capabilities. With Oracle Proposals, Quoting users can create and send full proposals by e-mail, including quote information, and other customized collateral to the customer.

The Proposals function is available from the Forms and HTML interfaces of Oracle Quoting.

Setting up Web Publishing Functionality

Web publishing functionality allows sales representatives to publish quotes to customers through Oracle iStore specialty stores. For information on setting up Web Publishing functionality, refer to the "Setting Up Web Publishing" chapter for more information.

Setting up Approvals

For information on setting up Approvals functionality, refer to the"Integrating Oracle Quoting With Oracle Approvals Management" chapter.

Setting up Availability to Promise (ATP)

For all information regarding setting up ATP in Oracle Quoting, refer the Oracle Global Order Promising Implementation Guide and the Oracle Configure to Order Process Guide.

Setting up Sales Contracts

Oracle Sales Contracts integrates with Oracle Quoting. This enables the sales representative to attach sales contracts as part of a quote.

For more information on setting up sales contracts functionality, refer to the "Integrating Oracle Quoting With Oracle Sales Contracts" chapter.

Setting Up Credit Check Functionality

Oracle Quoting allows the user to determine the credit worthiness of a customer before the quote is converted into an order. The profile option ASO: Enable Credit Check determines if credit checks can be performed. See Appendix A, "Profiles in Oracle Quoting" for more information.

Oracle Quoting provides a public API for credit checking: ASO_CREDIT_CHECK_PUB.CREDIT_CHECK. The following information is mandatory for the public API:

The credit check API consists of two sections:

Internal Credit Check

Oracle Quoting supports the use of internal credit checks. Internal Credit Checks are based on:

These credit checks are performed by the Oracle Order Management public API OE_EXTERNAL_CREDIT_PUB.CHECK_CREDIT. For more information, see the Oracle Order Management Implementation Manual.

To perform internal credit checks, you must:

Defining Credit Check Rules

You designate the credit check rule used for performing credit checks in the profile option ASO: Credit Check Rule. This is an optional profile, but if it is not set, users cannot perform internal credit checks. See Appendix A, "Profiles in Oracle Quoting" for more information.

The credit check rule definition allows you to determine if freight and special charges are included during credit checks. The quote total passed to Oracle Order Management is based on the setting of the credit check rule. There are two flags available when you set up a credit check rule:

Log in to Oracle Forms as an Order Management Super User.

Navigate to Setup > Credit > Define Credit Check Rules

Field Behavior

Notes

External Credit Check

External credit checks are configurable by the application developer and allows users to make calls to non-Oracle applications. The credit check can be configured by writing code for the pre-hook and post-hook in the Quoting public API, ASO_CREDIT_CHECK_PUB.CREDIT_CHECK. The pre-hook is executed prior to the internal credit check and the post-hook is executed after the internal credit check. Oracle Quoting customers can use these hooks to invoke the external credit checking.

For information on implementing user hooks, see Implementing User Hooks.

For user hooks to work properly, the following SQL scripts must run:

Populate Script

This script populates the following user hooks in the JTF_USER_HOOKS table:

Enabling Script

This script updates the Execute flag in the JTF_USER_HOOKS table for a particular hook, thereby enabling or disabling the user hook.

Parameters

This script accepts the following parameters:

Package Name — Name of the package that contains the user hook calls: ASO_CREDIT_CHECK_PUB.

API Name — Name of the procedure within the package which contains the user hook calls: CREDIT_CHECK.

Processing Type — The following processing types are supported: pre and post. Valid values are B (pre processing) or A (post processing).

Hook Type — The following type is supported: Customer. Valid value is C (customer).

Enabled Flag — Enabling user hooks. Valid values are Y or N.

Implementing User Hooks

To implement user hooks, you must:

  1. Populate the JTF_USER_HOOKS table

  2. Enable User Hooks

  3. Disable User Hooks

Populating the JTF_USER_HOOKS table

The Populate script automatically runs against the database, when you install the patch, and populates the JTF_USER_HOOKS table.

Enabling User Hooks

To enable user hooks:

  1. Run the Enabling script against the database. This script enables one user hook at a time. It is only necessary to run this script to enable the desired hook.

  2. Enter each parameter. For enabling user hooks with the ENABLE parameter, the value should be Y.

  3. You must implement the hook package when the corresponding hook is enabled.

Disabling User Hooks

To disable user hooks:

  1. Run the Enabling script against the database. This script disables one user hook at a time. It is only necessary to run this script to disable the desired hook.

  2. Enter each parameter. For disabling the user hook with the ENABLE parameter, the value should be N.

Setting up QA Check

You can set up a QA check to validate a quote at various key events in the quote lifecycle. You can either enable a business event, or manually select the QA Check option for a quote. You can set up the business event using custom business rules in Java or using a Web service.

Steps to set up QA Check for a quote using a business event are as follows:

  1. Log in to the application and select the System Administrator or Workflow Administrator Web Applications responsibility.

  2. Navigate to Workflow: Administrator Workflow and Business Events.

  3. Enable the business events for which the QA check must be executed. The business event names are prefixed with oracle.apps.qot.events.quote.

  4. Enable the oracle.apps.qot.events.quote.group.pre event group if you are going to write a subscription for the event group.

  5. Define a synchronous subscription for each business event for which the QA check must be automatically started. Alternately, you can define a single subscription for the oracle.apps.qot.events.quote.group.pre event group.

  6. The Java method or PL/SQL procedure in the subscription queries the quote and performs the quote validations. Alternately, you can call a Web Service as part of the subscription. The Web Service performs the quote validations. The key input to the subscription is the quote header ID.

    The Java method or PL/SQL procedure returns the results of the QA check in XML format in WF_EVENT_T.EVENT_DATA.

Steps to manually perform a QA Check for a quote are as follows:

  1. Enable QA Check lookup code in ASO : Quote Actions in HTML UI (ASO_QUOTE_ACTION) lookup.

  2. Enable the oracle.apps.qot.events.quote.qa_check.pre business event and write subscription for this event. Perform steps 1 to 6 of the procedure for setting up QA check through a business event.

QOT Pre-Event Business Event Group

The QOT Pre-Event business event group contains all the pre event groups for setting up the QA Check. The following table provides the definition of the business event group:

Name Value
Name oracle.apps.qot.events.quote.group.pre
Display Name QOT Pre-Event Group
Description Includes all the pre events defined for Oracle Quoting
Status Disabled
Owner Name Oracle Quoting
Owner Tag QOT
Customization Level Limit

For more information about the oracle.apps.qot.events.quote. event, see Oracle Integration Repository (iRep).

XML Tags Used for the Output of QA Check

The subscription for the business event returns the results of the QA Check in XML format. The table below indicates the XML tags that are used in the output of the QA Check function:

Name Description
<summary> Provides an overall summary for subscription processing.
<attribute key=”SEVERITY”> Indicates the overall severity level. The values are Warning, Error, and Confirmation. Any other value will be treated as an Error. Ignore case of the string in the value tag.
<attribute key="MESSAGE"> The message text displayed on the QA Check Results page. If display=”false”, no message is displayed.
<attribute key="SHOW_PAGE"> If display =”true”, the results page is shown.
<pagetitle key="PAGETITLE"> The title for the page.
<tabletitle> The heading for the table. The results table can contain a maximum of 20 columns. If a column is present in the XML output, it is displayed.
<attribute key="ATTRIBUTE1"> The first column in the results table. The Title attribute is the column name.
<attribute key="ATTRIBUTE2"> The second column in the results table. The Title attribute is the column name.
...<more attributes>  
<tablebutton key="EXPORT"> Displays the button to export the table to MS-Excel. Click the button to export table data to MS-Excel. The button is shown if display=”true”.
<tabledata> The row data for the QA check. The number of columns in the data table must match in the table header (<tabletitle>)
<button key="CANCEL"> Displays the Cancel button. Click the button to stop processing and return to the page where the action was initiated. It should be used in conjunction with the Continue button. The button is shown if display=”true”.
<button key="CONTINUE"> Displays the Continue button. Click the button to continue processing. The button is shown if display=”true”.
<button key="DONE"> Displays the Done button. Click the button to stop processing and return to the page where the action was initiated. The button is shown if display=”true”.

Sample Java Code to Perform a QA Check

This section provides a sample code to perform a QA Check when creating a version of a quote and the steps to use the code.

/* 
======================================================================= 
 A. Header payment validation
   If a header payment term is Net 90 and Account Number for a quote is 1608, display the following error message: Payment Terms Net 90 is not allowed for this customer.
 
B. Line level Flexfield validation
   If Chassis Style line flexfield (ATTRIBUTE1) is blank, display the following warning: Chassis Style is not specified.

C. Item validation
   If the Part Number on the quote line is ’TEMPITEM’, then display the following error message: Please replace the placeholder item with the correct item.

   If there are no errors, then the user can proceed with the Create Version action.


Reference document: Oracle Workflow API Reference
======================================================================= 
*/
package oracle.apps.qot.events.quote;

import java.math.BigDecimal;

import oracle.apps.fnd.wf.bes.BusinessEvent;
import oracle.apps.fnd.wf.bes.SubscriptionInterface;
import oracle.apps.fnd.wf.bes.server.Subscription;
import oracle.apps.fnd.wf.common.WorkflowContext;

import oracle.jdbc.OracleConnection;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.CallableStatement;
import java.sql.ResultSet;
import com.sun.java.util.collections.ArrayList;
import java.util.StringTokenizer;

import oracle.apps.aso.schema.orderCapture.server.AsoQuotePub;

public class QotQACheckEvent implements SubscriptionInterface
{

  private final static String SQL_paymentQuery = new StringBuffer( "select HCA.account_number, ap.payment_term_id")
  .append( " FROM aso_quote_headers_all aqha," )
  .append( " hz_cust_accounts hca,"  )
  .append( " aso_payments ap ")
  .append( " WHERE aqha.cust_account_id = hca.cust_account_id(+)" )
  .append( " and aqha.quote_header_id = ap.quote_header_id" )
  .append("  and ap.quote_line_id is null" ).toString();


  private final static String SQL_lineFlexQuery = "select attribute1, quote_line_id from aso_quote_lines_all";

  private final static String SQL_itemNbr = "select msiv.concatenated_segments, aqla.quote_line_id " +
  "from mtl_system_items_vl msiv, aso_quote_lines_all aqla " +
  "where msiv.inventory_item_id = aqla.inventory_item_id " +
  "and msiv.organization_id = aqla.organization_id";

 
  public void onBusinessEvent(Subscription s, BusinessEvent b, WorkflowContext c)
  {
    String eventName = b.getName();
    String eventKey = b.getKey();
    StringBuffer eventOut = new StringBuffer();
    Connection connection = null;

    try{
 

      CallableStatement cstmt = null;

      connection = c.getJDBCConnection(); 

      // initialize org context

      try {
        cstmt = connection.prepareCall("Begin dbms_application_info.set_client_info('204'); End;");
        cstmt.execute();
        cstmt.close();
        cstmt = connection.prepareCall("Begin po_moac_utils_pvt.set_org_context('204'); End;");
        cstmt.execute();
        cstmt.close();

      } catch (Exception e) {

         b.setResponseData(e.toString());

      }

      // The following codes perform the QA Check for business event - create new quote version   
      if(eventName!=null)

      {

        // Validate header payment terms     
        String paymentMsg = validateHeaderPayment(connection, eventKey);

        // Validate line level flexfields
        ArrayList lnFlexMsg = validateLnFlexfileds(connection,eventKey);
        ArrayList itemMsg = validateItems(connection, eventKey);

         boolean errorPage = (paymentMsg!=null || itemMsg!=null && itemMsg.size()>0);

        // Construct XMLresponse string if validation fails
        if(paymentMsg!=null || (lnFlexMsg!=null && lnFlexMsg.size()>0) ||(itemMsg!=null && itemMsg.size()>0))
        {
          eventOut.append("<root>");
          eventOut.append(printSummary(errorPage, true));
          eventOut.append(printPageTitle(eventName+" QA Check Results"));

          String[] colNames = new String[] {"QA Check Name", "Line", "Severity", "Message"};

          eventOut.append("<resultstable>");
          eventOut.append(printTableTitle("Results", colNames, true));

          ArrayList tableDataLst = lnFlexMsg;

          for(int l=0; l<itemMsg.size(); l++)
          {
            tableDataLst.add(itemMsg.get(l));
          }

          if(paymentMsg!=null)
            tableDataLst.add("Header Payment Terms: :Error:"+paymentMsg);

          eventOut.append(printTableData(tableDataLst));

          eventOut.append("</resultstable>");

          eventOut.append(printPageButtons(!errorPage, errorPage));

          eventOut.append("</root>");
        }
      }

      //set QA Check output XML string as business event response
      b.setResponseData(eventOut.toString());

    }
    catch (Exception e)
    {
      b.setResponseData(e.toString());
    }
  }
 

   //  Validate header payment

  private  static String validateHeaderPayment(Connection conn, String key)
  {
    PreparedStatement statement = null;
    ResultSet rs = null;
    String msg = null;
    BigDecimal accountNumber = null;
    BigDecimal paymentTermId = null;
    String paymentQuery = SQL_paymentQuery+" and aqha.quote_header_id ="+key;

    try{
      statement = conn.prepareStatement(paymentQuery);

      rs = statement.executeQuery();

      while(rs!=null && rs.next())
      {
        accountNumber = rs.getBigDecimal(1);
        paymentTermId = rs.getBigDecimal(2);
      }
      if(accountNumber!=null && "1608".equals(accountNumber.toString()) && paymentTermId!=null && "1041".equals(paymentTermId.toString()) )
      {
          msg =  "Payment Term 'Net 90' is not valid for this customer";
      }
    }
    catch(Exception e)
    {
       msg ="Exception in payment term validation. ";
    }
    finally
    {
      if(rs!=null)
        try{rs.close();} catch(Exception e){}
      if(statement!=null)
        try{statement.close();}catch(Exception e){}
    }
    return msg; 
  }

  // validate item
  private static ArrayList validateItems(Connection conn, String key)
  {
     ArrayList msg = new ArrayList();
     PreparedStatement statement = null;
     ResultSet rs = null;
     String partNbr = null;
     BigDecimal quoteLineId = null;
     String lineNbr = null;
     String itemQuery = SQL_itemNbr+" and aqla.quote_header_id="+key;

     try{
        statement = conn.prepareStatement(itemQuery);
        rs = statement.executeQuery();
        while(rs!=null && rs.next())
        {
          partNbr = rs.getString(1);
          quoteLineId = rs.getBigDecimal(2);
          lineNbr = AsoQuotePub.getUILineNumber((OracleConnection) conn, quoteLineId);
          if("TEMPITEM.".equals(partNbr))
          {
            msg.add("Placeholder Item:"+lineNbr+": Error : Please replace the placeholder item with the correct item");
          }
        }
      }
      catch (Exception e){}

      return msg;
  }
  

   // Validate line level flexfields
  private static ArrayList validateLnFlexfileds(Connection conn, String key)
  {
    ArrayList msg = new ArrayList();
    PreparedStatement statement = null;
    ResultSet rs = null;
    BigDecimal quoteLineId = null;
    String lineNbr = null;
    String attribute1 = null;
    String lnFlexQuery = SQL_lineFlexQuery+" where quote_header_id ="+key;

    try{
      statement = conn.prepareStatement(lnFlexQuery);

      rs = statement.executeQuery();

      while (rs!=null && rs.next())
      {
        attribute1 = rs.getString(1);
        quoteLineId = rs.getBigDecimal(2);
        lineNbr = AsoQuotePub.getUILineNumber((OracleConnection) conn, quoteLineId);

        if(attribute1==null||"".equals(attribute1))
        {
          msg.add("Line Flexfield:"+lineNbr+": Warning : Chassis Style is not specified");
        }
      }
    }
    catch(Exception e)
    {
      msg.add("exception in line flexfield validation");
    }
    finally
    {
      if(rs!=null)
        try{rs.close();} catch(Exception e){}
      if(statement!=null)
        try{statement.close();}catch(Exception e){}
    }

    return msg;   
  }
  

   // Returns results table header string
  private static String printTableTitle(String tableName, String[] columnNames, boolean renderExportBtn)
  {
       String tableTitle = "    <tabletitle>\n" +
       "        <group key=\"TABLE1\" title=\""+tableName+"\">\n" ;
       for(int i=0;i<columnNames.length;i++)
       {
         tableTitle = tableTitle +
         "          <attribute key=\"ATTRIBUTE"+(i+1)+"\" title=\""+columnNames[i]+"\" type=\"text\"> </attribute>\n" ;
       }
       tableTitle = tableTitle +
       "          <tablebutton key=\"EXPORT\" title=\"Export\" display=\""+(renderExportBtn?"true":"false")+"\"> </tablebutton>\n" +
       "        </group>\n" +
       "    </tabletitle>\n";

       return tableTitle;
  }


  // Returns QA result data table string
  private static String printTableData(ArrayList resultData)
  {
    String tableData = "<tabledata>\n" +
    "      <group key=\"TABLE1\">\n";
    String record = null;
    for(int i=0; i<resultData.size(); i++)
    {
      record = (String) resultData.get(i);
      StringTokenizer st = new StringTokenizer(record, ":");

      tableData +=    "        <row>\n" ;
      int index = 1;
      while(st.hasMoreElements())
     {
        tableData+="          <attribute key=\"ATTRIBUTE"+index+"\" value=\""+st.nextToken()+"\"> </attribute>\n" ;
        index++;
      }
      tableData += "        </row>\n";
    }
    tableData += "      </group>\n" +
    "  </tabledata>\n";

     return tableData;
  }

  // Returns summary string
  private static String printSummary(boolean errorPage, boolean showPage)
  {
     String summary ="  <summary>\n" +
     "    <attribute key=\"SEVERITY\" value=\""+(errorPage?"Error":"WARNING")+"\" display=\"false\"> </attribute>\n" +
     "    <attribute key=\"MESSAGE\" value=\"Please review the following QA check messages\" display=\"true\"> </attribute>\n" +
     "    <attribute key=\"SHOW_PAGE\" display=\""+(showPage?"true":"false")+"\"> </attribute>\n" +
     "  </summary>\n"  ;
     return summary;
  }

  // Returns page title string
  private static String printPageTitle(String pageTitle)
  {
    String pageTitleStr ="  <pagetitle key=\"PAGETITLE\" value=\""+pageTitle+"\" display=\"true\">  </pagetitle>\n";
    return pageTitleStr;
  }

  // Returns page buttons string
  private static String printPageButtons (boolean renderContBtn, boolean renderDoneBtn)
  {
    String buttonsStr = "<button key=\"CANCEL\" title=\"Cancel\" display=\""+(renderContBtn?"true":"false")+"\">  </button>\n" +
    "<button key=\"DONE\" title=\"Done\" display=\""+(renderDoneBtn?"true":"false")+"\">  </button>\n" +
    "<button key=\"CONTINUE\" title=\"Continue\" display=\""+(renderContBtn?"true":"false")+"\">  </button>\n";

    return buttonsStr;
  }

}

Perform the following steps to use the Java file:

  1. Modify the code to connect to the testing database.

  2. Compile the Java code.

  3. Log in to UNIX environment and copy the class file to $JAVA_TOP/classes/oracle/apps/qot/events/quote folder. Create the folder if it does not exist.

  4. Log in to Oracle Quoting and select the System Administrator or Workflow Administrator Web Applications responsibility.

  5. Enable the business event for create version for a quote.

  6. Setup the subscription for the business event, and specify the following Java rule function: oracle.apps.qot.events.quote.QotQACheckEvent.

Testing the Business Event

Perform the following steps to test the business event:

  1. Log in to the application and select the System Administrator or Workflow Administrator Web Applications responsibility.

  2. Navigate to Workflow: Administrator Workflow and Business Events.

  3. On the Events page, search for oracle.apps.qot.events.quote. business event.

  4. Click the Test icon for your business event.

  5. Specify Event Key as Quote Header ID.

  6. Click the Raise in Java button for Java method or the Raise in PLSQL button for PL/SQL procedure. The information message is displayed for the business event.

Purging Quotes

The Purge Quote security function is assigned to a user for purging quotes. Quotes are purged using the Purge Quote concurrent program. The eligible quotes that can be purged are referenced in the ASO_PURGE_QUOTES table.

The ASO_QUOTE_HOOK.POPULATE_PURGE_QUOTES_TEMP public API is used to identify the quotes to be purged. This API is invoked when the Purge Quote concurrent program is run with the Review Candidate Quotes to be Purged parameter value as Yes. Customers can customize the API for defining the list of quotes to be purged.

The ASO_QUOTE_HOOK.POPULATE_PURGE_QUOTES_TEMP public API parameters are described in the Oracle Integration Repository.

Setting up Sales Supplement Templates

Sales Supplement allows the capture of additional quote-specific information that is not passed into Oracle Order Management.

Once setup is complete in the Forms UI, Sales Supplement information is accessible to sales representatives in the HTML and Forms UIs. In the Forms UI, Sales Supplement functionality is enabled using the profile option ASO: Enable Sales Supplement. In HTML UI, enable Sales Supplement using OA Personalization.

The basic hierarchy of a Sales Supplement template is as follows:

Component type and Response type are defined in the context of a component-response set. Although there are four component types, only a component type of Question can have associated responses.

Available component types are:

There are seven types of responses:

The response type Predefined Responses is associated with Presentation Styles. There are four Presentation Styles:

You can specify a default value along with the presentation style. The default value is optional except when the presentation style is List of Values.

Default Value and Presentation Style are defined in the context of a section - component mapping to allow use of the same component - response set in different sections of one or more templates.

The following diagram shows the sales supplement structure and process flow.

the picture is described in the document text

Prerequisites

Log in to Oracle Forms with the Quoting Sales Manager responsibility.

Navigate to Quoting > Setup > Sales Supplement.

Notes

Field Behavior

Creating Additional Attachments Document Categories

Oracle Quoting currently supports one document category, Miscellaneous. This is the default for the Document Category field when you create a new attachment. You can create additional categories as needed.

For more information on setting up attachments, refer to the latest release of the Oracle Application Developer’s Guide. For more information on using attachments, refer to Oracle Quoting User Guide or Oracle Applications User’s Guide.

Defining Descriptive Flexfield Information

Descriptive flexfields are customizable, blank fields on the Oracle Quoting form that allow the application developer to define additional fields as needed. A descriptive flexfield is composed of segments, each of which has a prompt and may have either a valid set of values or data entered by the user.

Note: There are a maximum of 20 flexfields at the quote header level and 20 flexfields at the quote line level.

In the Forms UI, descriptive flexfields are located in the main Quoting form, and in the Pricing view of the Quote Lines tab. They are represented by an unnamed field enclosed in brackets.

In the HTML UI, header level flexfields are located in the Create Quote, Update Quote, and Create Quote from Opportunity pages. Line level flexfields are accessed from the Product Information tab in the Lines page.

For information on setting up and modifying flexfields, refer to the Oracle Applications Flexfields Guide.

Note: In order for flexfields to exist on the order once the quote becomes an order, the application developer must set up the flexfields identically in Oracle Order Management. Repeat this procedure in the Oracle Order Management application to carry flexfields from quote to order.

Specifying Flexfields

Use the information below to setup flexfields. When you log in to Quoting, you should see the flexfield segments you defined. Additionally, when you place an order, the flexfield information will be available on the order.

Log in to Oracle Forms with the Application Developer responsibility.

Navigate to Flexfield > Descriptive > Segments.

Field Behavior

Notes

Reference

Oracle Application Developer’s Guide

Notes from Opportunities

Notes functionality is provided by Oracle Common Application Calendar. Note types, used to categorize notes, can be mapped to one or more source objects. For example, a note type can be mapped to the source object Sales Opportunity or Sales Lead. If a note type is mapped to a specific source object, it is available only from the source object(s). If a note type is not mapped to any particular source object, it is available from all source objects.

Notes created in Oracle Sales or Oracle TeleSales may have different note types because they may be mapped to a source object specific to opportunities. When a sales representative creates a quote from an opportunity, notes will only be copied if they meet at least one of the following criteria:

For information on setting up and mapping note types, see the Oracle Common Application Calendar Implementation Guide.

Tasks From Opportunities (HTML only)

When sales representatives create tasks, they must specify task types. Task types are used to categorize tasks. Oracle CRM Technology Foundation’s tasks functionality allows administrators to create task types as necessary.

Administrators have the option to map task types to source objects. For example, a task type can be mapped to the source object Sales Opportunity or Sales Lead. If a task type is mapped to a specific source object, it is available only from the source object(s). If a task type is not mapped to any particular source object, it is available from all source objects.

Tasks created in Oracle Sales may have different task types because they may be mapped to a source object specific to opportunities. When a sales representative creates a quote from an opportunity, tasks will only be copied if they meet at least one of the following criteria:

For information on setting up and mapping task types, see the Oracle Common Application Calendar Implementation Guide.

Enabling Oracle Quoting Features with OA Personalization (HTML Only)

With OA Personalization, you can customize your Quoting HTML interface by adding/removing/moving fields to locations where you are most comfortable. There are also some features in Oracle Quoting HTML UI that must be enabled via OA Personalization. To be able to personalize your UI, set the Personalize Self-Service Defn profile to Yes and the Disable Self-Service Personal profile to No. For more information on OA Personalization, refer the Oracle Applications Framework Personalization Guide.

Web Publishing

You must expose the fields in the following Quoting sections to enable web publishing in Quoting HTML.

Simple Searches

The following Simple Search quote parameters are not displayed by default. Use OA Personalization to enable them.

Advanced Searches

The following Advanced Search quote parameters are not displayed by default. Use OA Personalization to enable them.

Create Quote and Create Quote from Opportunity pages

The following quote fields are not displayed by default when you create a fresh quote or a quote from an opportunity. You can enable them using OA Personalization.

Quote Header

The following quote fields in the Quote Header are not displayed by default. Use OA Personalization to display them.

Quote Lines

The following fields in the quote line's Products tab are not displayed by default. You can enable them using OA Personalization.

Products Tab

OA Personalization and Profiles

Some of the features that were controlled by profile options can now be enabled/disabled via OA Personalization in the HTML UI. Some of these profiles have been obsoleted altogether, and the others are applicable only to the Forms UI. See the "remarks" in the Oracle Quoting Obsoleted Profiles section and the "notes" in the description of the profiles for more information.

Using Folder Functionality to Customize Forms

Forms Quoting uses Oracle Applications Folder technology to allow users to customize the following forms:

You can change fields in the following ways:

Once you make changes to an existing folder, you can save the changes to a new folder or the same folder.

Notes

The following table lists fields in each form that you cannot hide.

Fields That Cannot be Hidden
Form Field
Quote Search Quote Number
Customer Search > Organization Customer
Customer Search > Person Last Name
Quote Header > Summary Order Type
Quote Header > Summary Currency
Quote Header > Summary Salesperson
Quote Header > Addresses Quote To Address Details
Quote Header > Addresses Bill To Address Details
Quote Header > Addresses Ship To Address Details
Quote Header > Addresses Default From Quote To (Bill To)
Quote Header > Addresses Default From Quote To (Ship To)
Quote Header > Addresses Bill To Customer
Quote Header > Payment, Shipping Payment Terms
Quote Header > Payment, Shipping Payment Type
Quote Header > Tax Tax Handling
Quote Header > Tax Tax Code
Quote Header > Tax Amount
Quote Lines > Pricing Line
Quote Lines > Pricing Model Status
Quote Lines > Pricing Product
Quote Lines > Pricing Qty
Quote Lines > Pricing UOM
Quote Lines > Bill To Customer
Quote Lines > Ship To Customer
Quote Lines > Shipping Requested Date
Quote Lines > Service Reference Type
Sales Team Full Access
Sales Team Name
Price Adjustments Remove
Price Adjustments Adjustment
Price Adjustments Adjustment Group
Price Adjustments Value
Price Adjustments > Details (Price Break Header) Required Quantity
Price Adjustments > Details (Price Break Header) Adjustment Value
Price Adjustments > Details (for a Promotional Good - qualifying item) Line
Price Adjustments > Details (for a Promotional Good - qualifying item) Promotional Product
Price Adjustments > Details (for a Promotional Good - promotional item) Line
Price Adjustments > Details (for a Promotional Good - promotional item) Qualifying Product
Price Adjustments > Details (for an Other Item Discount - qualifying item) Line
Price Adjustments > Details (for an Other Item Discount - qualifying item) Discounted Product
Price Adjustments > Details (for an Other Item Discount - discounted item) Line
Price Adjustments > Details (for an Other Item Discount - discounted item) Qualifying Product
Adjust Charges Charge
Adjust Charges Charge Group
Adjust Charges Value
Adjust Charges Charge Amount
Trade In Product Category
Trade In Product Product
Trade In Product Description
Service Reference Category
Service Reference Product
Service Reference Description
Availability Details Line
Availability Details Product

Verify the Implementation

You must be able to complete these tasks successfully, or Oracle Quoting will not work properly.

  1. Create a complex quote.

  2. Create a new customer for your quote.

  3. Add and configure a model item.

  4. Before submitting the quote as an order, create a new contact for the customer.

  5. Before submitting a quote as an order, create a shipping or billing address for the customer.

  6. Submit the order.

    If the submission process was a success, you receive confirmation from Oracle Order Management.

For information on the procedures necessary to perform these tasks, see the Oracle Quoting User Guide.