Procure to Pay Lifecycle is one of the important Process in Oracle Applications. Procure to Pay means Procuring Raw Materials required to manufacture the final or finished Goods from a Supplier to Paying the Supplier from whom the material was purchased. But this process is not just two steps. It involves many steps. Let’s see the steps and Oracle Application involved in performing those steps.

1.Creation Of Purchase Requisition
Requisition is nothing but a formal request to buy something. Requisitions represent the demand for any goods or services that an organization needs.

Requisitions for goods and services:

  • Are generated by applications including Inventory, Work in Process (WIP), Material Requirements Planning (MRP) and Order Management.
  • May be entered manually through Purchasing windows.
  • May be entered using iProcurement.
  • May be imported from external systems.

There are two types of Requisitions
1] Internal Requisition – Basically used when there is a Requirement from One Inventory Organization to the Other Inventory Organization (Inter- Organization Transfer)
2] Purchase Requisition – Basically used when there is a Requirement to be fulfilled by External Sources i.e. Suppliers, Requirement from MRP, Requirement from WIP, Requirement from Sales Order etc.
With Oracle Purchasing module, you can create, edit, and review requisition information on-line.  Then the Requisitions went for approvals from proper authorities.
2. Creation of Purchase Order
Based on the Purchase Requisition and its approval next we have to create a Purchase order to buy the item.

Purchasing supports four types of purchase orders:
1] Standard: Create standard purchase orders for one-time purchases of various items. You create standard purchase orders when you know the details of the goods or services you require, estimated costs, quantities, delivery schedules, and accounting distributions.
2] Blanket: Create blanket purchase agreements when you know the detail of the goods or services you plan to buy from a specific supplier in a period, but you do not yet know the detail of your delivery schedules.
3] Contract: Create contract purchase agreements with your suppliers to agree on specific terms and conditions without indicating the goods and services that you will be purchasing.
4] Planned: A planned purchase order is a long-term agreement committing to buy items or services from a single source. You must specify tentative delivery schedules and all details for goods or services that you want to buy, including charge account, quantities, and estimated cost.
Once purchase orders are created, they may be submitted for approval. The approval process checks to see if the submitter has sufficient authority to approve the purchase order.  Once the document is approved, it may be sent to your supplier using a variety of methods including: printed document, EDI, fax, e-mail, iSupplier Portal and XML. Once the purchase order or release is sent to your supplier, they are authorized to ship goods at the times and to the locations that have been agreed upon.
3. Receipt of Material
After receiving the PO, the supplier will send the items.

Purchasing lets you control the items you order through receiving, inspection, transfer, and internal delivery. You can use these features to control the quantity, quality, and internal delivery of the items you receive.
4. Creation of Payables Invoice
Once you’ve received goods or service from your supplier, you’ll also receive an invoice.  Using Payables you can record invoices in a number of different ways.

With Payables you can:

  • Import/Enter invoices manually, either individually or in batches.
  • Use Quick Invoices for rapid, high-volume entry of standard invoices and credit memos that are not complex and do not require extensive online validation.
  • Automate invoice creation for periodic invoices using the Recurring Invoice functionality.
  • Use iExpenses to enter employee expense reports using a web browser.
  • Import EDI invoices processed with the e-Commerce Gateway.
  • Import XML invoices.
  • Match invoices to purchase orders or receipts to ensure you only pay what you’re supposed to be paying for.

5. Payment to Supplier
Once invoices are validated, they can be paid. Payables integrates with Oracle Payments, the E-Business Suite payment engine, to handle every form of payment, including checks, manual payments, wire transfers, EDI payments, bank drafts, and electronic funds transfers.  Payables also integrates with Oracle Cash Management to support automatic or manual reconciliation of your payments with bank statements sent by the bank.
This is how the P2P Cycle occurs in Oracle Apps.

When we install Oracle Database by default system will creates SYS and SYSTEM schemas. These consist of all Data Dictionary Tables. Like this if we install Oracle Applications System will automatically creates schemas of all Modules (i.e. GL, AR, AP, etc.) with the respective module name as User and Password. Along with these schemas some special Schemas i.e. APPS, APPLSYS, APPLSYSPUB will be created for special purpose.

APPS Schema:

  • It is Public Schema.
  • The APPS schema is an ORACLE schema that has access to the complete Oracle Applications data model. It is analogous to the SYSTEM schema, which has access to the entire database.
  • AutoInstall creates the necessary grants and synonyms between the schemas.
  • Oracle Applications responsibilities connect to an APPS schema.
  • There is one APPS schema for every product installation group.
  • It consists of a collection of public synonym of all the objects of all the schemas in the Application database. All the Procedures, Functions and Packages created must be stored in this Schema.

APPLSYS Schema:
This is a special Schema consists of the files starts with FND, ALR, WF and AD.
APPLSYSPUB Schema:
This schema is a collection of public synonyms of all FND Tables, which are used for User verification. This is the Gate Way User ID of Oracle Applications.
Few Other Base Product Schemas:

  • GL ( General Ledger )
  • INV ( Inventory)
  • AP ( Accounts Payables)
  • APPLSYS ( Application Object Library)
  • ALR ( Alerts)
The Oracle E-Business Suite Release 12 Architecture is a framework for multi-tiered, distributed computing that supports Oracle Applications products.

Architecture-R11i vs R12

In EBS R12, various servers or services are distributed among the following three levels, or tiers.

  • The Desktop Tier
  • The Application Tier
  • The Database Tier
Oracle E-Business Suite Release 12 Architecture

1] The Desktop Tier
The client interface is provided through HTML for HTML-based applications, and via a Java applet in a Web browser for the traditional Forms-based applications.
In Oracle Applications Release 12, each user logs in to Oracle Applications through the E-Business Suite Home Page on a desktop client web browser. The E-Business Suite Home Page provides a single point of access to HTML-based applications, Forms-based applications, and Business Intelligence applications.
Oracle JInitiator will no longer be required to run Oracle Forms in E-Business Suite Release 12.  Oracle Forms in Release 12 will run directly in the native Sun Java2 Standard Edition plug-in.
The Forms client applet is a general-purpose presentation applet that supports all Oracle Applications Forms-based products, including those with customizations and extensions. The Forms client applet is packaged as a collection of Java Archive (JAR) files. The JAR files contain all Java classes required to run the presentation layer of Oracle Applications forms.
2] The Application Tier
The application tier has a dual role: hosting the various servers and service groups that process the business logic, and managing communication between the desktop tier and the database tier. This tier is sometimes referred to as the middle tier.
Four servers or service groups comprise the basic application tier for Oracle Applications:

  • Web services
  • Forms services
  • Concurrent Processing server
  • Admin server

3] The Database Tier
The database tier contains the Oracle database server, which stores all the data maintained by Oracle Applications. The database also stores the Oracle Applications online help information. More specifically, the database tier contains the Oracle data server files and Oracle Applications database executables that physically store the tables, indexes, and other database objects for your system. The database server does not communicate directly with the desktop clients, but rather with the servers on the application tier, which mediate the communications between the database server and the clients.

A flexfield in Oracle Application is a field made up of sub–fields, or segments.  They are basically used to implement code structure or to capture additional information. There are two types of flexfields: key flexfields and descriptive flexfields. A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a two–character–wide text field with square brackets [ ] as its prompt.
Here is a brief comparison between KFF and DFF:

KFF vs. DFF

What is value set in Oracle application AOL?

  • Value set is primarily a container for your values, you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated). You can specify the format of your values.
  • Oracle Application Object Library uses value sets as important components of key flexfields, descriptive flexfields, and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature).

When to defining Values for Value Sets?

  • After you register your Flexfields & report parameters, if you are using independent or dependent value sets, you can enter values into each corresponding value set using the Segment Values form.
  • Values for the Value Sets, we are defining will be kept in the Oracle Application Object Library tables.

How many Format Types the value set have?

  • Char
  • Date
  • DateTime
  • Number
  • Standard Date
  • Standard Date Time
  • Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only. For new value sets, use the format types Standard Date and Standard Date Time.
What is Security type in value set?

  • By Security Rules window, we can define value security rules for ranges of flexfield and report parameter values.

There are two levels where you must activate Security, the one at value set level and other at individual segment or parameter level. You make Flex field Value Security available for your value set by choosing Hierarchical Security or Non-Hierarchical Security for the Security Type. When you make security available for a value set, all segments and report parameters that use that value set can use security. You then enable security for a particular segment or parameter.

  • Choose Hierarchical Security, If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security.

How many Character Formatting Options have for value set?

  • Numbers Only (0 – 9)
    • We cannot prevent users from entering a value that contains the radix character.
    • Cannot be used in Translatable Independent and Translatable Dependent value sets.
  • Uppercase Only(A-Z)
    • Here also we cannot use in Translatable Independent and Translatable Dependent value sets.
  • Right justify and Zero fill Numbers(001)
    • If you have selected Numbers Only (0-9) flag, then it wont allow you to affect this flag.
    • We are recommended to use this in Accounting Flex fields.
  • Minimum and Maximum Value Range
    • Your Minimum/maximum value may not be longer than the maximum size you specify for this value set.
    • Once you specify a range of values, you cannot define a new valid value that falls outside this range.
    • The Minimum Value and Maximum Value fields can therefore allow you to create a value set with a validation type of None.

How many validation Type does value set have?
There are several validation types that affect the way users enter and use segment or parameter values:

  • None (not validated at all)
    • Allow users to enter any value.
    • Only Format Validations will be done.
  • Independent
    • Provides a predefined list of values.
    • Independent values are stored in an Oracle Application Object Library table.
  • Dependent
    • Same like Independent Value Set, except the List of Values shown to you will depends on which the Independent value you have selected in the Prior Segment.
    • Must define your independent value set before you define the dependent value set that depends on it.
    • Advisable to create your independent values first.
    • Must create at least one dependent value for each independent value, or else it wont allow you to enter into that segment or field.
  • Table
    • It use your own application tables as value sets for flex field segments and report parameters instead of the special values tables which Oracle Applications provides.
    • You can also use validation tables with other special arguments to make your segments depend on profile options or field values.
    • You can use any existing application table, view, or synonym as a validation table.
    • If we are using non registered table for your value set, then we have to Create the necessary grants and synonyms to APPS Schema.
    • The value column and the defined ID column in the table must return a unique row for a given value or ID.
    • If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value column.
    • Similarly, when you specify :$FLEX$.Value_Set_Name, your flex field segment or report parameter defaults to always use the hidden ID column to compare with your WHERE clause .
    • We can use Special BIND variable such as :$PROFILES$.Option_name, :$FLEX$.Value_set_name, :block.field in the WHERE clause.
  • Special
    • Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism. You can call flex field routines and use a complete flex field as the value passed by this value set.
  • Pair
    • Pair validation value set allows user to pass a range of concatenated Flex field segments as parameters to a report.
  • Translatable Independent & Translatable Dependent
    • These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user. Translatable Independent and Translatable Dependent value sets allow you to use hidden values and displayed (translated) values in your value sets. In this way your users can see a value in their preferred languages, yet the values will be validated against a hidden value that is not translated.
    • We can convert the Independent value set to a Translatable Independent value set, or a Dependent value set to a Translatable Dependent value set. These are the only types of conversions allowed.

Which Oracle table store Value sets and underline information?

  • FND_FLEX_VALUE_HIERARCHIES
  • FND_FLEX_VALUE_SETS
  • FND_ID_FLEX_SEGMENTS
  • FND_FLEX_VALUE_NORM_HIERARCHY
  • FND_FLEX_HIERARCHIES
  • FND_FLEX_VALUE
  • FND_FLEX_VALIDATION_EVENTS
  • FND_FLEX_VALUE_RULE_LINES
  • FND_FLEX_VALUE_RULE
  • FND_FLEX_VALUE_RULE_USAGE
  • FND_RESPONSIBLITY
  • FND_TABLES
  • FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield value?
Yes, FNDLOAD is utility which can be used for moving value set across different environment.
Do we have any restriction on value set?
Yes, here are some listed one:

  • Table Validated Value Sets
    • We cannot use table-validated id value sets for any accounting flexfield or any other key flexfields.
    • We cannot use :$FLEX$, :$PROFILES$ in table name, value and id of table validated value sets.
    • We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table validate value set.
    • In an id value set, the value can be non-unique but id should be unique. In a non-id value set, value should be unique.
    • We can only use columns selected for the table-validated value set must be of type NUMBER, DATE or VARCHAR2.
    • Support for SQL expression in columns of Table Validated value sets will be obsolete in future release.
  • Translatable Independent and Translatable Dependent Valuesets
    • The Numbers Only and Uppercase Only option cannot be used.
    • Must have “Char” format type.
  • Special/Pair valuesets
    • Special/Pair value sets are user-exit value sets . PL/SQL APIs will not be able to validate them.

Lets now define a simple value set in R12:
Step 1: Go to Application Developer, and select menu /Validation/Set
Create a value set name as COUNTRY_LIST which will contain a list of countries. Make it an independent value set. Format type is CHAR. Save the work.

Step 2: Go to Application Developer, and select menu /Validation/Values
The below window will appear. Put the Search Name as COUNTRY_LIST and click Find.

Step 3: Enter the country details in this window. Save the work.

Now the value set is ready to be used in any concurrent program.