You are on page 1of 27

What Are The Steps Required To Setup An Internal Requisition In Purchasing?

[ID
406312.1]
Modified 30-SEP-2011

Type HOWTO

Status PUBLISHED

In this Document
Goal
Solution
References

Applies to:
Oracle iProcurement - Version: 11.5.1 to 12.1.3 - Release: 11.5 to 12.1
Oracle Order Management - Version: 11.5 to 12.1.3 [Release: 11.5 to 12.1]
Oracle Purchasing - Version: 11.5.1 to 12.1.3 [Release: 11.5 to 12.1]
Information in this document applies to any platform.

Goal
What are the basic setup steps required to use the Internal Requisition Functionality?

Solution
The following steps outline the setups required, followed with an internal requisition creation
example:
Responsibility: Inventory
(Ensure the responsibility has access to both the source and destination inventory organizations).
Step 1 - Creating the Item
Navigation: Items/Master Items

Enter the Item Name and Description


From the top text menu - choose Tools/Copy From
o Apply the 'Purchased Item' template - then Choose Done

Remaining in the form, choose the Purchasing Tab - add a price if the item is to be used in
iProcurement.
Uncheck the purchasing checkboxes, if the item is to ONLY be ordered from an internal source.

Next, move to the Order Management tab, and choose the attributes:

Internal Ordered
Internal Orders Enabled
OE Transactable

Save the item

Remaining in the form, with the item still present, choose 'Tools/Organization Assignments'
from the top text menu.
Ensure that the item is assigned to both the Source and Destination Inventory Organizations and
save.
In this example, the Item will have a destination of 'V1 - Vision Operations' and the source will
be 'M1 - Seattle Mfg'.

Step 2 - Create the Shipping Network


Navigation: Setup/Organizations/Shipping Networks

Enter the Inventory Organization that will be the Source and the scope should be From or
To Organizations
Choose the Transfer Type
o Direct - means that when the Internal Sales Order is shipped the receipt process in
the destination organization is done automatically
o Intransit - means that when the Internal Sales Order is shipped - the destination
inventory organization has to manually do the receiving process in Purchasing
Choose Internal Order Required checkbox - Save

Please Note - If the Source and Destination Inventory Organizations are the same, then this step
is conditionally not required. (Essentially the Item is being transferred between subinventories in
the same Inventory Organization).
Step 3 - Create the Location
Navigation: Setup/Organization/Locations

Enter a Location Name - for the Internal Location


This is the location that is used as the Destination Location
The Location will eventually be tied to a customer

The location created will be used to tie the Destination Location in the requisition form to the
Internal Customer to be used on the Sales Order form.
Step 4 - Conduct a Miscellaneous Receipt
Navigation: Transactions/Miscellaneous Transactions

Choose the Inventory Organization that will be the Source Inventory Organization
Enter 'Miscellaneous Receipt' - Choose 'Transaction Lines'
Enter the Item created and then a sub-inventory, quantity, etc...

This step is being done to satisfy the Internal Sales Order which is created, as it ensures there
will be ample quantity On Hand to
perform the shipping portion of the Internal Sales Order process.

Responsibility: Order Management Super User


Step 5 - Create the Internal Customer - Assign the Location
Navigation: Customers/Standard - define the Customer appropriately in both operating units for
the source and destination inventory organizations

Enter the Internal Customer Name - Choose the Find Button


If it is a new customer - choose New from the dialog box that appears
In this form - choose Open and enter the address details
Move to the lower half of the form - enter a usage - of 'Ship To'
Followed by choosing the Open button in the lower right hand corner of the form

In the new form which opened - enter the basic information for Payment Terms, Salesperson,
etc..

Very Important - in the Internal Block - choose the Location which was created in Step
3
This association ties the customer to the location (Explanation will be confirmed as to
why in upcoming steps)
Move to enter other pertinent information such as price list, etc, save - Close this subform only.

It is also recommended to create a Bill To Usage record for the new customer.

Add a new record to the usage - and call this Bill To


Hit Open and enter any new information that pertains to the Bill To

PLEASE NOTE: The Customer must be created in the Operating Unit of the Source Inventory
Organization that is used on the Internal Requisition. You can check the Operating Unit for the
Source Inventory Organization by using the following sql:
select 'The Inventory Organization '
||oo.organization_code||'has the inventory organization ID of '
||oo.organization_id||' and is under the Operating Unit'
||hro.name||' which has the Operating Unit ID of '||oo.operating_Unit
from org_organization_definitions oo, hr_all_organization_units hro
where upper(oo.organization_code) like upper('%&INV_ORG_CODE%')
and hro.organization_id = oo.operating_unit;
Pass in the Source Inventory Organization Code - and then ensure the Customer is created in the
Operating Unit for the Source Inventory Organization.
Responsibility: Purchasing Super User
Step 6 - Item Price (Informational Step - No Action Taken)
Navigation: Items/Master Items

Enter query mode using the F11 key or View/Query By Example


Enter the item 'INTERNAL ITEM' in this scenario
Execute the query to fetch the item
Choose Tools/Item Costs from the top text menu

The screen to follow shows the item price that is used when creating the Internal Requisition.
This is how purchasing derives the price when creating the Internal Requisition. It uses the price
for the Cost - in the Source Inventory Organization. Whatever the price is in the Source
Inventory Organization used on the requisition - the price is derived. The reason is that the Sales
Order is being created in the Source Organization, so the price in the Source Organization must
be used.

Step 7 - Creating the Requisition


Navigation: Requisitions/Purchase Requisitions

In the Order Type Field - change the Order Type to Internal


Click into the Lines Region on the Item field
At this point - look to the Destination fields - this information is fetched from the
Employee Record
If the Destination Inventory Organization is not proper - move to that field and change it
If the Location is not the internal location - move to that field and change it to the new
Internal Location

Question: Why is the Following Error message encountered : 'Destination location requires
customer association.'
The reason for this error is that the code is trying to match the Location that is currently entered
on the form to a
customer, and the customer association is not found. This was done earlier in step 5. The
solution to this error is to
setup the employee record to default a location that was associated with a customer (as in step 5
above) or prior to
entering the item, move to the destination section of the form and enter an inventory organization
and location that is
properly assigned to a customer, followed with entry of the item.

Approve the Requisition.


Step 8 - Submit the 'Create Internal Orders' process

Navigation: Reports/Run

Single Request - execute the request - 'Create Internal Orders'

This process is responsible for inserting data into the Order Management interface Tables. One
of the fields that is inserted
is the location_id - and because Order Management uses Customers rather than locations - this is
why it is mandatory to assign the Internal Location to the Customer. The location that is passed
from purchasing is correlated to a customer so as to allow the Order Import to run successfully.
Please note that the calculate_price_flag is inserted as N into the Order Management interface
tables. This means that Purchasing is going to pass the price and it will not be impacted or
recalculated when imported into Order Management. This is proper functionality. We are
currently tracking on Enhancement Request Bug 3095239 that would allow the use of an Internal
Price List.

The following sql can be used to review the data in the oe_iface tables.
It can be used as a confirmation that the requisition has been inserted into the oe_lines_iface_all
table:
select count(*) from oe_lines_iface_all where orig_sys_line_ref
in (select requisition_line_id from po_requisition_lines_all
where requisition_header_id in
(select requisition_header_id from po_requisition_headers_all where segment1 =
'&Requisition_Number'))

Question: How can the data for Internal Requisitions be viewed in the Order Management
Module?
This is possible using the Order Management Responsibility - and navigating to Orders/Import
Orders/Corrections (above)

Choose an order type of Internal


In Order Reference use the List of Values to locate the Requisition Number
If the Requisition is not located - it has either been created into a Sales Order or not
inserted into the tables by the Create Internal Orders program

The records are viewable at this stage and can be deleted.


PLEASE NOTE - if records are going to be deleted, it is necessary to Delete the Lines first and
then the header

Be sure to choose Lines first - and then choose the delete icon from the toolbar - then
delete the header

Deletion of the header record will NOT delete the line - it is not a cascade delete option. If the
header is deleted prior to the line - it is not possible to ever again locate the line in this form sqlplus will have to be used to remove the line.
Enhancement Bug 4966920 has been created to improve this form and add the cascade delete
functionality.
Question: How can the Internal Requisition be resubmitted to the Order Management interface
tables?
In the po_requisition_headers_all table there is a column 'transferred_to_oe_flag'. Setting this
column to a value of 'N' followed with a run of the Create Internal Orders process will again post
the requisition data into the Order Management interface tables. There are currently no options
available through the Oracle Purchasing forms that allow the updating of this flag, so sqlplus
would have to be used.

Question (Problem): When Running the Create Internal Sales Order Process - it completes
with Success but no records are inserted into the Order Management Interface Tables?
Please ensure that Patch 4756100 has been applied to the system. When the internal requisition
is created the code needs to validate that the customer was created in the Operating Unit that the
Source Inventory Organization belongs too. Prior to this patch - the validation was only
checking that a Customer Existed in the Operating Unit that the Destination Deliver To
Inventory Organization belonged too rather than the Source Inventory Organization. When the
Create Internal Sales Order process runs, if the Deliver to Location is not tied to a Customer Ship
To Site in the Operating Unit of the Source Inventory Organization used on the requisition - then
it will not insert data into the oe_headers_iface and oe_lines_iface table.
Please review the previous step 5 and use the sql given to ensure that the Customer was created
in the Operating Unit that belongs to the Source Inventory Organization.

VERY IMPORTANT ALSO REGARDING Create Internal Orders - In Release 12 you


must make sure that you are choosing an Order Type in the Purchasing Options - that was
created in the SAME operating unit for the Purchasing Options you are setting up.
Ex. If you are in the Germany Purchasing Options - then ensure you choose a Order
Management Order Type that was created in Germany Order Management. BEWARE - The list
of values for Order Type is showing Transaction Types from other Operating Units. So, if you
are in Germany Purchasing Options and then choose a France Created Transaction Type - no
Records will be inserted during the Create Internal Orders Process. This is fixed in Release
12.1.1.
Also, remember that whatever the Source Inventory Organization that is used on the Internal
Requisition - the purchasing options must be setup for that Source Organizations Operating

Unit. So if the internal requisition has two inventory organizations from different Operating
Units - ensure the Purchasing Options have been setup for both of the Inventory Organizations
Operating Units - as the code is going to check the Purchasing Options from the operating unit of
the Source Organization to obtain the Order Type to use - as the Sales Order is going to be
created in the Source Organizations Operating Unit.
Step 9 - Import the Internal Sales Order
Responsibility: Order Management Super User
Navigation: Orders-Returns/Import Orders/Order Import Request

Enter the parameters for the Order Import request - Choosing Source Internal and Order
Reference the Requisition Number
Submit the request and confirm it completes with success

Question: Does the Purchasing Create Internal Orders process pass flexfield values from the
Purchase Requisition?
Currently, the Create Internal Orders process does not pass any values from flexfields. If there

are mandatory/required flexfields setup on the Order Lines table in Order Management, a value
will have to be defaulted as a default value from some other method in order for the import
process to complete successfully.
Navigation: Orders-Returns/Order Organizer

In the Find form enter the requisition number


Choose Find and the Sales Order is presented - which confirms the order was imported
The corrections form should be used to confirm if any errors have occurred during the
import if the sales order is not found

Question: Can the price be updated adjusted during the Order Import?
The calculate price flag is frozen and the price cannot be changed. This is based on the values
inserted by the
Create Internal Orders process from Purchasing.
Question: Where is the schedule Ship Date coming from?
The scheduled ship date is passed from the requisition Need By Date, it cannot be defaulted any

differently.
Question: How is the Order Type being chosen?
This is coming from the Purchasing Options - Responsibility Purchasing Super User Setup/Organizations/Purchasing Options.
Step 10 - Execute Pick Release against the Sales Order
Navigation: Shipping/Release Sales Order

Move to Inventory tab - and choose the source inventory organization


Enter the Internal Sales Order number - and adjust the ship dates to include the ship date
on the order line
Move to the Shipping Tab - choose Yes for Autocreate Delivery and Auto Pick Confirm

Choosing these settings will conduct the move order transaction automatically.

Choose Concurrent and Confirm the Pick Release process has completed with success

The pick release process is responsible for moving the quantity from the sub-inventory (selected
during the miscellaneous transaction earlier) for the Source Organization - to the Staging subinventory.
Step 11 - Execute the Ship Confirm for the Sales Order
Navigation: Shipping/Transactions

Enter the Internal Sales Order in the field 'From Order Number'
Choose Find and then move to the Delivery Tab
Next choose Ship Confirm from the actions and then the GO Button

In the new sub-form that appears - take the defaults or adjust appropriately and choose Ok

During this stage, the quantity is being transacted between the staging sub-inventory and the
destination inventory organization.
Earlier, when setting up the shipping network setups, Direct was chosen - meaning the receipt
will be conducted at the time of ship confirm.
Step 12 - Confirm the Quantity is Delivered on the Requisition
Responsibility: Purchasing Super User
Navigation: Receiving/Receiving Transactions Summary

Choose the Destination Inventory Organization


Change the source to Internal and enter the Item Number - choose transactions - and hit
find

The transactions are displayed.


Question: Sometimes the following error occurs, why?
Error: Default sub-inventory is not defined in the destination organization
Action: Either the transfer sub-inventory should be populated or a default sub-inventory should
be setup for the destination organization using the inventory forms.
This error means that a destination sub-inventory was not entered on the Requisition form in the
destination section of the form. This is visible in the requisition in step 7 of this note.
To correct this error, query the item in the item master and view the Destination Organization
details of the item using the inventory responsibility.

Move to the Receiving Tab - and enter a Default Receiving Subinventory in the lower
right hand corner - save
Next, still in inventory - Navigate to Transactions/Transaction Open Interface - query on
the item in question
Choose 'Find' and then next to the record returned in error choose 'Submit' checkbox and
save

Next run of the inventory interface transaction manager will process the record using the new
default sub-inventory entered into the item's receiving tab. If using iprocurement, the default
sub-inventory can be set in the iProcurement preferences, and will be used when creating the
requisitions, avoiding the error all together for future requisitions.
Suggested Debugging Actions:
1. Note 224341.1 supplies an excellent diagnostic script to verify all setups are complete for
Internal Requisition creation.
2. Note 133464.1 delivers the omse11i.sql script, which when executed for the Internal Sales
Order, delivers all table data for Purchasing, Receiving, Inventory and Order Management.

SQL Scripts:
1. The following sql confirms that the Create Internal Orders concurrent process has inserted the
requisition into the Order Management Interface tables.
select count(*) from oe_lines_iface_all where orig_sys_line_ref
in (select requisition_line_id from po_requisition_lines_all
where order_source_id = 10 and requisition_header_id
in (select requisition_header_id from po_requisition_headers_all where segment1 =
'&Requisition_Number'))

2. The following sql can be used to confirm the Location defined in Oracle Purchasing is tied to
a Customer in Order Management. The script shows that last ten locations created in order of
creation date.
SELECT rtrim(hl.location_code) location_code,
hl.location_id,
ood.organization_code,
pla.organization_id,
hl.ship_to_site_flag,
hl.receiving_site_flag,
pla.customer_id,
rtrim(rc.customer_name) customer_name
FROM hr_locations_all hl,
org_organization_definitions ood,
po_location_associations_all pla,
ra_customers rc
WHERE pla.location_id = hl.location_id
AND rc.customer_id(+) = pla.customer_id
AND ood.organization_id(+) = pla.organization_id
AND rownum < 10
order by hl.creation_date desc;

3. The following sql can be used to review the requisition, sales order, and receipt number. It is
offered to assist in showing the joins between the various tables.
SELECT porh.segment1, porl.line_num, pord.distribution_num,
ooh.order_number sales_order, ool.line_number so_line_num,
rsh.receipt_num, rcv.transaction_type
FROM oe_order_headers_all ooh,
po_requisition_headers_all porh,
po_requisition_lines_all porl,
po_req_distributions_all pord,
oe_order_lines_all ool,
po_system_parameters_all posp,
rcv_shipment_headers rsh,
rcv_transactions rcv
WHERE ooh.order_source_id = posp.order_source_id --instead of hardcoding to 10
AND porh.org_id = posp.org_id
AND porh.requisition_header_id = ool.source_document_id
AND porl.requisition_line_id = ool.source_document_line_id
AND porh.requisition_header_id = porl.requisition_header_id
AND porl.requisition_line_id = pord.requisition_line_id
AND porl.requisition_line_id = rcv.requisition_line_id
AND pord.distribution_id = rcv.req_distribution_id
AND rcv.shipment_header_id = rsh.shipment_header_id
AND ooh.org_id = posp.org_id
AND ool.header_id = ooh.header_id
AND ool.shipped_quantity > 0
AND ool.orig_sys_line_ref not like '%OE_ORDER_LINES_ALL%'
AND ool.source_document_line_id is not null

References
BUG:3095239 - ER: NEED TO USE INTERNAL PRICE LIST FOR INTERNAL ORDER NOT
COST
NOTE:404480.1 - Internal Order Deriving Price From Item Cost Instead of the Price List

You might also like