Sunday, September 1, 2013

Internal Requisition Setup in Oracle Apps


Internal Requisitions :
Internal Requisitions (IR) are used to transfer material from one inventory organization or warehouse to another, within the same company.
Move Orders :
·         Move orders are requests for the movement of material within a single organization.
·         A move order requisition is a manually generated request for a move order. 
·         It is available for sub inventory transfers and account transfers. 
·         Once a requisition has been approved, it becomes a move order.
What are the basic setup steps required to use the Internal Requisition Functionality?

 The following setups will demonstrate the flow of an Internal Requisition between two inventory organizations.
  • M1 - Seattle Manufacturing will represent the destination organization
  • M2 - Boston Manufacturing will represent the source organization
In this example, the item will be procured internally from the M2 - Boston Manufacturing inventory organization
The following responsibilities are utilized in this example:
  • Purchasing Super User (or equivalent)
  • Order Management Super User
  • Inventory
Step 1 - Creating the Item

Purchasing Super User - Navigation: Items/Master Items
  • Enter the Item Name
  • Ensure it is Purchased and Purchasable
Select these attributes:
  • Customer Ordered and Customer Orders Enabled
  • Shippable
  • Internal Ordered
  • Internal Orders Enabled
  • OE Transactable
Assign the item to the inventory organizations which are involved in the Internal Requisitioning process.
M1 will be the destination inventory organization and M2 will be the Source Inventory Organization.
In the Vision Demo instance, the Purchasing and Order Management Attributes are controlled at Item Master level.By choosing the attributes at the item master level (V1) automatically sets these attributes for all organizations whichare assigned (ex. M1 and M2).  By choosing the attributes at the Item Master level - they are already set for all inventory organizations assigned.

Step 2 - Creating the Shipping Network

Inventory: 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:
    1. Direct - means that when the Internal Sales Order is shipped the receipt process in the destination organization is done automatically
    2. 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
In this example, the setups are being done to allow the user to Enter a Receipt in M1 after the item has been shipped from M2 (Intransit).

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 Internal Location

Purchasing Super User: Setup/Organizations/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
  • Choose the Other Details tab, enter the Inventory Organization for the Destination Organization.
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. 
Purchasing does not allow the entry of a Customer - therefore it passes the location to Order Management.
During Order Import in Order Management - the system locates the Customer Record to which the Location is assigned. Associating the location to the customer record will be done in the later steps.


Step 4 - Conduct a Miscellaneous Transaction (Receipt)

Inventory: Navigation: Transactions/Miscellaneous Transactions
Choose the Inventory Organization that will be the Source Inventory Organization - Ex. M2
Enter 'Miscellaneous Receipt' as the type and choose the Transaction Lines button
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 that there will be ample quantity On Hand (in M2) to perform the shipping portion of the Internal Sales Order process from the M2 inventory organization. 

Step 5 - Create the Internal Customer - Assign the Location

Order Management Super User:  Navigation: Customers/Standard
A web based form will open, choose the Create button in the lower left.
Enter the Customer Name - in the Organization Name field.
Choose the Profile Class that applies to the customer. Ex. Excellent. 
Scroll further down and enter the Address details for the Internal Customer.
Move to the bottom of the form and under Business Purposes - Choose Add Another Row.
  • Set the purpose for the new row as 'Ship To'
  • Choose the Save and Add Details
Move to the bottom of the page, and the address should be visible.
  • Choose the Details icon
The Account Site Information will appear, select the Business Purposes tab
The Ship To and Bill To should now be visible.
  • Select the Details icon to the right of the Ship To
Under the Order Management section, there is a field 'Internal Location'
  • Enter the Location that was created in Step 3 (Ex. M1-Internal Location)
  • Apply and save the record
 
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.

Step 6 - Item Price Information

Purchasing Super User:  Items/Master Items
The price used on the requisition comes from the item costs section.
  • Query back the item
  • Choose from the top text menu - Tools/Item Costs
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

Purchasing Super User: Navigation - Requisitions/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
Approve the requisition.

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.

Question: Why is the Source Inventory Organization not showing the inventory organization which was setup in the shipping networks?
If the internal requisition is going to be for a cross operating unit scenario - then it should be noted that the HR: Security Profile is used.
Both operating units for which the inventory organizations belong too must exist in the HR: Security Profile.
To confirm the operating units for the inventory organizations - this sql can be used:

SELECT oo.operating_Unit OU_id,
       hro.name Oper_Unit,
       oo.organization_code inv_org
  FROM org_organization_definitions oo, hr_all_organization_units hro
 WHERE oo.organization_id IN (207, 204) AND hro.organization_id = oo.operating_unit;

Confirm that the operating units in the given output exist in the security profile that is set for the
 HR: Security Profile - profile.

Step 8 - Submitting the Create Internal Orders Concurrent Request

Purchasing Super User: 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.

SELECT *
  FROM OE_HEADERS_IFACE_ALL
 WHERE order_source_id = 10
       AND orig_sys_document_ref IN (SELECT REQUISITION_HEADER_ID
                                       FROM PO_REQUISITION_HEADERS_ALL
                 WHERE segment1 = '&requisition_number');

SELECT *
  FROM OE_LINES_IFACE_ALL
 WHERE order_source_id = 10
       AND orig_sys_document_ref IN (SELECT REQUISITION_HEADER_ID
                                       FROM PO_REQUISITION_HEADERS_ALL
                                      WHERE segment1 = '&requisition_number');
Pass in the requisition number when prompted.

Question:  

How can the interface 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
  • 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 and po_requisition_lines_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?
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. 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.  For this example, it would be required to check the Purchasing Options for the Operating Unit which M2 is belonging too.

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 and beyond.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.

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. 

Step 9 - Import the Internal Sales Order
Order Management Super User: Navigation: Orders,Returns/Import Orders/Order Import Request
Enter these values:
  • Operating Unit - Operating Unit of the Source Inventory Organization (Ex. M2)
  • Order Source - Internal (or the order type being used
  • Order Reference - Requisition Number
Submit the request. Confirm that it completes.
Navigating to Orders,Returns/Order Organizer
  • Enter the requisition number in the Find form
  • Confirm that the Internal Sales Order was created from the import
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.
The following queries can be used to confirm that the Internal Sales Order was created.

SELECT *
  FROM OE_ORDER_HEADERS_ALL
 WHERE order_source_id = 10
       AND orig_sys_document_ref IN (SELECT REQUISITION_HEADER_ID
                                       FROM PO_REQUISITION_HEADERS_ALL
                                      WHERE segment1 = '&requisition_number');
SELECT *
  FROM OE_ORDER_LINES_ALL
 WHERE order_source_id = 10
       AND orig_sys_document_ref IN (SELECT REQUISITION_HEADER_ID
                                       FROM PO_REQUISITION_HEADERS_ALL
                                      WHERE segment1 = '&requisition_number');
Pass the requisition number into the script when prompted.

Step 10 - Execute Pick Release/Ship Confirm

Order Management Super User: Shipping/Transactions
  • Enter the field - From Order Number - give the Internal Sales Order
  • Choose Find
  • From the Actions - choose Launch Pick Release
Once the Pick Release has been completed, requery the Internal Sales Order in the shipping transactions form.
The field 'Next Step' should now be showing Ship Confirm.
Choose the Delivery tab
While in the Delivery form, choose actions 'Ship Confirm'
The Ship Confirm submission form appears.
  • Ship Entered Quantities
  • Create Delivery for Staged quantities
  • Close Trip
The selections above were all defaulted into the ship confirm submission form. Choose OK.
Requiring the record shows that the Next Step is to Run Interfaces.
This represents running the Interface Trip Stop process.
In this example, the Interface Trip Stop ran automatically.
Navigation: Shipping/Interfaces/Run - Interface Trip Stop
If required, run the Interface Trip Stop process for the Trip that was created.
Confirm that it completes with success.

The shipping process in M2 will also automatically create the receipt in M1 - if the Shipping Network was setup to have a transfer type of Direct.  For this example, Intransit was used to as to be able to demonstrate the receiving process. 

Step 11 - Conduct the Receipt in the Destination Organization

Purchasing Super User: Receiving/Receipts
Upon entering the Receiving form, search based on the requisition number.
Select the line for Receipt - and save the record.  The Receiving Transaction Processor will be engaged and the item will be transacted into the M1 - Destination Inventory Organization.
Navigating to Receiving/Receiving Transactions Summary - it is possible to search on the requisition and view the completed Receiving Transactions.

Step 12 - Confirm the Quantity is Delivered

Purchasing Super User: Requisitions/Requisition Summary
Querying the requisition lines, it is possible to view the quantity delivered - giving confirmation that the Sales Order was shipped from the source inventory organization (M2) and receipted into the destination inventory organization (M1).

8 comments:

  1. It is descriptive and thorough article on IRISO nice work Raghu Thanks!!!!!!!!

    ReplyDelete
  2. Hello Raghunath,

    Request for confirmation on whether Internal Requisition can be used by secretaries of the different departments to request for their internal stationeries, online from Procurement section. What are the licensing implications. We are on EBS R12.1.3 and we have PO,IC implemented. Thank you for your update.
    Regards,
    Mohini

    ReplyDelete
  3. Excellent Document. But seems like "Copy Pasted"....

    ReplyDelete
  4. Excellent! I liked this document.
    Just one question, if I do IR-ISO between subinventories in the same inventory organization then the material gets transferred to destination as soon as ISO is shipped. Is there any way I can make a Receipt before it reflects the destination subinventory stock ?

    ReplyDelete
  5. Very well explained.Thnx
    manoj kumawat

    ReplyDelete
  6. Hi,
    When it comes to the same IRISO, howtto obtain the invoice number. The situation is movement across the same operating unit and between inventory organizations

    ReplyDelete