Professional Documents
Culture Documents
[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
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
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'.
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
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.
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.
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
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.
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.
Navigation: Reports/Run
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)
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.
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
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
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
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