Monday, 11 April 2011

PURCHASING (PO USEFUL INFORMATION)


PURCHASING (PO USEFUL INFORMATION)

/* PO Notes

  The purchasing deals with buying the material from the supplier and 
  for this we use the purchase order. The purchase order should not be 
  confused with the sales order. A purchase order is one which you place 
  to a supplier for the goods while the sales order is the one which the 
  customer places for the products that you sell to the customer.So once 
  we place the purchase order, the supplier will provide the goods for us
   and he also provides the invoice which goes to the Accounts payable system. 
   Now we have also seen in the AP system, this 
  invoice can be matched against the purchase order.
  
  Now in general, in a typical company, a purchase order is not raised 
  right away.There is a process where a requisition is first raised and 
  in response to that requisition, a purchase order is created.  For ex 
  in a PO system,an employee first raises a requisition for, say, a 
  inkjet printers, which goes thru the standard workflow process and it 
  gets approved by the manager etc. So in order to raise a requisition, 
  the user must be defined as a EMPLOYEE.(This can be done in setup,
  personnel ,employees)
  */

  /* REQUISITIONS : Once the requisition goes thru, the user can raise
   a purchase order. 
  Now for the purchase order to be raised the user must be defined as BUYER.(This
   can be done in setup, personnel, buyer) 
  
  So let's go thru the route of creating the purchase order by initially creating a requisition. 
  This is quite similar to creating a sales order. Here we can request an item which 
  can be an asset, could be an expense or an item which eventually goes to the 
  inventory etc. Let us see the difference, an asset is one which is like a chair 
  or a keyboard for your computer which we are using. An expense is like going 
  for a dinner and an item can be requested which eventually goes into the companys 
  inventory. Here we mention the supplier details,organization etc information and 
  then create a requisition. Get the requisition from the base header and detail tables as
  */
    
    SELECT 
      requisition_header_id,
      authorization_status,
      type_lookup_code,
      wf_item_type,
      wf_item_key,
      created_by,
      preparer_id
    FROM 
      po_requisition_headers_all
    WHERE 
      created_by= (select user_id from fnd_user where user_name   ='LAJAGARL')
    
    --Get the Requisition details.
    
    SELECT 
      requisition_header_id,
      requisition_line_id,
      source_type_code,
      item_id,
      destination_type_code,
      org_id,
      item_description,
      destination_organization_id
    FROM 
      po_requisition_lines_all
    WHERE 
      creation_date = (select max(creation_date) from   po_requisition_lines_all)
    
    
    -- We can get to know the status of that PO item (as we can get it in OM) 
 from the workflow tables using the query..
    
    SELECT   item_type, item_key, activity_status, begin_date, end_date,
              activity_name, process_activity  
        FROM wf_item_activity_statuses, wf_process_activities
       WHERE item_key = '1420741-14412' -- '57516224'   
         AND item_type =  'REQAPPRV'
         AND process_activity = instance_id
    ORDER BY begin_date, end_date
    
    /*
   Requisition Import :
   In addition to creating the requisitions online, they can also be imported 
   as as batch. Once imported they go into the table po_requisitions_interface_all. 
   Once imported, we need to run the "Requisition Import" from the 
   "GL Corporate Purchasing" responsibility which then populates the table 
   "po_requisition_headers_all" and "po_requisition_lines_all" tables. While 
   running the requisition import, the concurrent program asks for the source 
   (from where to be imported). This source value is coming from the above 
   interface table.
   */
    
    -- Vendor Information can be found from this query.
    select vendor_id, vendor_name, segment1,vendor_type_lookup_code, 
     accts_pay_code_combination_id ccid
    from   po_vendors
    where  vendor_name like 'SAFEGUARD%'

  /*PURCHASING : The following queries store the information about the 
 purchase orders.
    When a purchase order is created/approved, there are no accounting impact 
 on GL. The only account that is  specified at the PO Level is the 
 PO Charge Account and that is an accrual account. What this means is the 
 when you receive against this PO(at periodend or at receipt), automatically the accrual
    lines are generated and transferred to GL i.e these lines hit the accrual account.When we
    say automatically,means seamlessly or online, we dont need to run any specific program to push
    those lines to GL.

 Accrue at Period End means that when a receipt is saved, the accrual transactions are NOT 
 immediately recorded and sent to the general ledger; instead, the accounting entries are generated
 and sent at the end of the month by running the Receipt Accruals - Period-End Process.
 End-of the month accruals are only available for expense purchases, i.e period end accruals and
 upon-receipt accruals are available for expense items, while inventory items are always accrued
 immediately.
  */
   
  -- The default ship-to, bill-to location is defaulting from Financial Options. 
  select po_header_id, type_lookup_code,segment1 po_number,vendor_id,
     vendor_site_id,authorization_status,wf_item_type
     wf_item_key,creation_date, last_update_date
  from   po_headers_all
  where  segment1 = '10000080'
  
  select po_header_id,po_line_id,item_id, category_id, item_description,
      list_price_per_unit,unit_price, quantity,  request_id
  from   po_lines_all
  where  po_header_id =24271
  

  /*Typically the purchase order header information will go into po_headers_all,
    The purchase order  lines information will go into po_lines_all
    the  purchase order shipment information will go into po_line_locations_all 
           (i.e the time and location, need_by , the location where this needs to be shipped). 
    These locations are usually the inventory locations.
      the  purchase order distribution information will go into po_distributions_all (code_combination etc).
    
    So each PO will have headers,lines,shipments and distributions. Another 
 caveat here in creating the PO shipments is as follows. While creating 
 shipments, we specify the ship to org and the ship to location. Here the 
 default value is coming from the item orgs,i.e if the item and its revision 
 is assigned to say org V1, then that org only comes. Here you can specify 
 master org as well, but you cannot receive in the master org. Hence it is 
 important that you specify an org which is not item master org.
  */
  select po_header_id, po_line_id, po_distribution_id,code_combination_id 
     ,destination_type_code, destination_subinventory, request_id
  from   po_distributions_all
  where  po_header_id = 24271

   /* PO APPROVAL PROCESS : Having created the PO, the next step is the PO Approval Process. 
   Purchasing and  HR Stuff.
     If HR is not completely installed. We can define the employees and positions 
  in Oracle purchasing,
    However if HR is installed then the applications will force you to define 
 the employees ,supervisors and positions in the HR  module.
    
    In Oracle HR,People are different from the employees. Not all the people defined 
 are employees. Employee information goes into the table "hr_employees" and 
 the people information goes into the "per_all_people_f"  table,but an employee 
 will be in both the hr_employees and per_all_people_f tables. Typically if 
 there are any contacts for an employee ,then they will be entered as the people.
    
    -- The below query can be tried to see if the HR product is installed or not. 
 Interesting all the HR related code is present in the applicaction 
     --user PER and not HR 
    select INIT_FUNCTION_NAME from FND_PRODUCT_INITIALIZATION 
    where APPLICATION_SHORT_NAME = 'PER'
    and exists (select 1 from FND_PRODUCT_INIT_CONDITION C
              where C.APPLICATION_SHORT_NAME = 'PER' 
         and C.RE_INIT_CONDITION in ('USER','RESP','APPL','NLS'))
    
    Normally, whenever a purchase order is raised ,say,by an employee. then it will
 be routed thru the next in the hierarchy. And there are two types of hierarchies 
 in the Oracle purchasing module. One is position approval hierarchy and another
    employee/supervisor hierarchy. This setting can be defined using the path 
     setup => Organization => Financials Options screen. => Human Resources tab.
         
    If the "Use Approval Hierarchies" check box is checked, then it means that the   
    position approval hierarchy is used.
    If the "Use Approval Hierarchies" check box is unchecked, then it means that the 
    employee/supervisor hierarchy is used.
    
    Let us briefly dwell on what is the difference between these two hierarchies.
  In the case of Position Approval Hierarchy,  firstly a hierarchy of all the 
  positions in the company are defined. for ex, Manager, Senior Manager, Executive director
    ,Vice President,etc; all these positions are first defined. So if a manager 
 raises a PO, then that document is routed up the hierarchy i.e it is routed 
 to the senior manager. 
    
    In the case of Employee/Supervisor Hierarchy, while we are defining an 
 employee ,say ,Smith, then his manager ,say, David, is also  specified. 
 And a document is routed to that manager David.
    
    Incidentally in Oracle purchasing, there are lot of document types defined. 
 That is ,a requisition(Internal or Purchase), planned purchase order,
    standard purchase order.etc. We can see these  types from the path   
    setup => Purchasing => Document Types.  
    */

  /* Requisition/PO Approval Process

 -- For PO Approvals on Position based , do the following items on checklist. 
  
  If the requester needs to approve the requisition that he has created, then
   ensure that the document type in 
      setup=> purchasing => document types => Owner can approve etc.
    
  Firstly the requester should be an employee,make sure that this is defined 
  as the HR employee. Go to the HR, and find out the position for this 
  particular employee(requester) for ex, ENGINEER III.
  
  Now for this POSITION, Go to 
    Setup => Approvals => Approvals Assignment.   
    and assign the appropriate document type, and approval group 
        (for ex DIRECTOR APPROVAL GROUP)

    Approval Group : Approval Group basically ensures what is the approval limit. Importantly check   the PO dist account and ensure that, that particular account is specified in the account   range in the Approval group.         
    Document Type :  whether that position can approve this document type like 
      standard,planned PO's.
    
 Make sure that this approval group has the sufficient amount as the approval limit using the menu
      Setup => Approvals => Approval Groups. 

 -- For approval of Employee /supervisor based (JOB) 
     
 If you are not using the position approval hierarchy ,that means you are using employee/supervisor
 hieararchy,then approval assignments and approval groups need to be defined for that particular JOB.
 And follow the same above procedure. 
    
  Hence to summarize, if the positional approval hierarchy is used then the
  approval groups and approval assignment should be created for that position.
  If the employee/supervisor hierarchy is used, then the approval groups and
  approval assignment should be created for that Job.
    
  Now in this case, we are assuming a simple case of owner approving the 
  requistion. So in this case, once the preparer creates the requisition and 
  presses the approve button, the document automatically gets approved , as 
  long as every thing is fine.
  
  Howerver let us take another case, where in the once the document is submitted 
  for approval based on the following setting, it is routed to the next 
  person in the hierarchy.
     
  This setting can be defined using the path 
  setup => Organization => Financials Options screen. => Human Resources tab.
  
 Now let us say if the system is using the employee/supervisor hierarchy, then the 
 supervisor will login to the system and from the worklist notifications, he can 
 find a requisitions pending to approve. which he can pick and approve.

  Now once the requisition stuff is done, we can do an Autocreate and create 
  a purchase order from the requisition. Once the purchase order is created, 
  we can use the following query to ensure that it works and then the PO is approved.
    */  
  
    /*Usually for our testing purposes, the purchase order we can create one, and 
 for approval we can use the following query to make it work.Once the po is 
 approved, we will be able to receive against that po.*/
 SELECT   ph.segment1, ph.po_header_id, ph.type_lookup_code,
          ph.displayed_field TYPE, ph.vendor_name, ph.vendor_id, ph.full_name,
          'Vendor'
     FROM po_pos_val_v ph
    WHERE (segment1 LIKE '1100024688')
      AND (    EXISTS (
                  SELECT 'Valid PO Shipments'
                    FROM po_line_locations poll
                   WHERE ph.po_header_id = poll.po_header_id
                     AND NVL (poll.approved_flag, 'N') = 'Y'
                     AND NVL (poll.cancel_flag, 'N') = 'N'
                     AND poll.shipment_type IN
                                          ('STANDARD', 'BLANKET', 'SCHEDULED')
                     AND poll.ship_to_organization_id = :2
      )
           AND ROWNUM >= 1
          )
  
   /* RECEIVING : 
    So once the PO is approved, it is now ready for receiving the goods from the Supplier.
    
   Understanding the Receipts form : When you first want to receive any thing and open the 
   receipts form, firstly it show the "Find expected receipts". This form had various field 
   like PO, receipt number, receiving location etc. Now what we have to understand from this form 
   is that,if we want to receive items corresponding to a PO, then we have to enter that PO number 
   and then press "Find" button. Now if we want receive all the items that are  supposed to be shipped
   at a receiving location, then we enter that receiving location and press "Find" button,
   which in turn will show all the purchase orders that ship item to that specific receiving location.
   What this means is that the form checks if it has been already received, and if it is, then it 
   will say no records exist otherwise, we can create a new receipt record. 
   
   IF YOU HAVE ALREADY RECEIVED, THEN THIS FORM DOES NOT SHOW ANY RECORDS AND HENCE IT 
   IS CALLED FIND EXPECTED RECEIPTS. AND ONCE RECEIVED ,THEN YOU CAN GO TO 
   "RECEIVING TRANSACTIONS SUMMARY FORM" and check the transactions. 
  */

  /* While recieving checklist :
  
  1. Just like GL,AR ,Inventory has its own periods as well & we can open period from 
        (setup => costs => cost periods .And the data goes into the org_acct_periods??)  

  Oracle Inventory --> Accounting Close Cycle --> Inventory Accounting Periods --> Change status 

  In inventory only one period at any time, while in GL or Purchasing any periods can be open.
  This is the most trickiest part. Actually in inventory if you need to open any period, then the 
  previous period needs to be already opened. That is if the previous period is not open yet, 
  just open and close it.
  
  2. Also ensure that the purchasing periods are open, however in this case more than one periods can be open 
    simultaneously.
  
   Setup => Financials => Accounting =>  Control Purchasing Periods.   

  3.  One important thing is ,we talked about the ship to org id above. So when we open the receipts
   form, make sure you pick only that organization that you mentioned in the PO, i.e you are receiving
   only in that org.   That is from the inventory ,pull this item up and click on org assignments and
   assign this item to that particular receiving organization and save it.This basically means that item is 
   transactable in that particular organization.
   
  4. Another important point is the Item revision which is is also related to the organization 
    assignment. That is once we define an item in master org and assign them to different orgs. 
    And also if we go to the org assignments and click on the "org attributes" button, we will find that 
    we can define a revision for this item. 
    Hence when you are entering a PO using the PO from,just ensure that you are giving the right
    revision for this item,otherwise we may not be able to select the correct ship to organization id
    in the shipments form.   
   
   5. You cannot receive in a master organization and hence you will not see the master organization
   in the LOV when receipt'ing.*/
   
  /* The following queries give the information about the RECEIPTS we make for the purchase orders created above.
     Once we enter a receiving txn,and the rec txn processor processes it, there will be an entry in this.
     rcv_transactions stores the historical information about receiving transactions that you have performed.
     There will not be any updates on this table. */
  select transaction_id,transaction_type,quantity,interface_source_code, source_document_code,
      destination_type_code, po_header_id, po_line_id, po_distribution_id,
      routing_header_id ,subinventory,shipment_header_id,shipment_line_id,creation_date
  from   rcv_transactions    
  where  po_header_id = 434
  --and    creation_date >= '15-OCT-2004'
  
  -- The key thing is that select the check box and save it.

  /* Any receipts go into rcv_shipment_headers and lines. the column receipt_source_code 
  indicates whether the material has come as part of internal order or from a vendor
  (or supplier). If it is an internal order ie. inter-org transfer, then the 
  organization_id column indicates from which org it has come. 
  It is important to note that the rcv_transactions talk about 2 transactions 
  for each receipt ie.
     one for receiving the item from the vendor to the receiving dept
     another for receiving the item from the receiving dept to Inventory.
  However in the case of shipments, we find only one entry i.e from the vendor 
  and you mention the location of shipment.   
  */
  -- Get the shipment header id and shipment line id from the above query.
  select  receipt_source_code,bill_of_lading,vendor_id,vendor_site_id,
       receipt_num,ship_to_org_id,organization_id
  from   rcv_shipment_headers
  where  shipment_header_id = 132612
  
  select  last_update_date,shipment_header_id,shipment_line_id,quantity_shipped,quantity_received,
    shipment_line_status_code,source_document_code,item_description,item_id,
    po_header_id,po_line_id,po_distribution_id,po_line_location_id,routing_header_id
    ,destination_type_code,to_subinventory,deliver_to_location_id,
    charge_account_id                 
  from   rcv_shipment_lines
  where  shipment_header_id = 132612
  
  Hence you are receive against a PO, Requisition, a RMA.
  
  
  /* Just a quick word. As we mentioned before, when we receive automatically the two GL lines are 
     created all the way in gl_interface table,which can be checked from the following query.
     These two lines correspond to two GL accounts and they are receiving material account
     and AP accrual account. I have seen some times both the accounts are given as same
     and in that case, the two lines will look exactly identical i.e with the same code 
     combination id.
     Receiving options => Receiving Inventory Account 
     Purchasing options => AP Accrual Account.
  
  HenceSo the only thing that goes from PO to GL is the accruals.( all these liabilities
     ,expenses will go from AP). For more info, look at the AP queries file.
     */
     select * from gl_interface    
  
  /* The two other inventory tables which get updated are mtl_material_transactions 
  and mtl_transaction_accounts.
  Here we can give the rcv_transaction_id that we obtain from the above query 
  (for DELIVER record, because that is the one which fills the inventory) and get 
  that material transaction.*/
  
  select transaction_id,inventory_item_id,organization_id, subinventory_code,rcv_transaction_id,
      primary_quantity,actual_cost,source_code,cost_category_id, owning_organization_id,creation_date
      ,transaction_type_id
  from   mtl_material_transactions
  where  inventory_item_id 
     = (select inventory_item_id from mtl_system_items_b 
      where segment1='0000799102923'
        and organization_id = 82)
  and    creation_date >='18-OCT-2004'           
  --and   rcv_transaction_id = 582138
  
  -- Now since there is an increment in the inventory i.e the on-hand balance should 
  --increase for that inventory item.
         SELECT 
           inventory_item_id,
           organization_id org,
           transaction_quantity,
           primary_transaction_quantity qty,
           subinventory_code subinv,
           cost_group_id ,
           owning_organization_id,
           planning_organization_id,
           creation_date
         FROM 
           mtl_onhand_quantities_detail
         WHERE 
           inventory_item_id = (select inventory_item_id from mtl_system_items_b 
           where segment1='0000799102923'                 and
           organization_id = 82)
  
  
  /* PROCURE TO PAY FLOW : So having gone thru the Purchasing ,Receiving ,here is the typical flow for P2P   

 Procure to Pay Flow
 
 Try to put this into the equation like
           PO   ==>      RCVT     ==>        INV     ==>      PMT
 
 Keeping that in mind, we can have several reports.
     If there is a PO, and there is a receipt, then it is normal case.
     If there is no PO, and there is receipt, then we can get it from the "Unordered Receipts" report
    
     If there is a RCVT, and then there is an invoice => Normal Case
     If there is a RCVT, and then there is NO invoice => Uninvoiced Receipts Report
   */
 
  You specify which supplier site is participating in the Pay on Receipt feature
  by setting on the self billing region.
    Supplier => Supplier Site => Purchasing tab =>Self Billing Region 
        => Pay on => Receipt
  
  */
  
  -- From Item Master..       
  SELECT segment1
  FROM   mtl_system_items_b
  WHERE  inventory_item_id = (select inventory_item_id from mtl_system_items_b where segment1='0000799102923'
               and organization_id = 82)
         
  /* Return Material Authorization : The Purchasing's Receiving can be used to receive
    the customer RMA's. Typically this is what happens. for a item which is returned 
 by your customer, the sales rep will create a RMA. Hence while receiving that 
 item, we can enter the RMA number and then receive that customer returned item. 
 Hence , we can see that while we are receiving any thing we need the corresponding 
 number like PO number or RMA number etc.*/
  
  /* Generally there are some managers(like Cost Manager) which we need to run explicitly
  (or scheduled) to generate the accounting entries for the materials in inventory. The 
  access path is  
        setup=> Transactions =>Interface Managers.
  Hence it is very important to understand that this table will get updated only if the 
  Cost Manager is up and running. What the cost manager basically does is that, for what 
  GL account this item which has been received should be attributed to.*/ 
  
  select last_update_date, transaction_id, reference_account,inventory_item_id, organization_id org,
      transaction_date, primary_quantity, gl_batch_id, rate_or_amount,cost_element_id
  from   mtl_transaction_accounts
  where  inventory_item_id = (select inventory_item_id from mtl_system_items_b 
              where segment1='0000799102923'
               and organization_id = 82)
  and    creation_date >= '19-OCT-2004'
  
  /*We can know the complete details of the account by giving the code combination id 
  obtained(reference account) from above query to the following query.*/
         SELECT 
           a.segment1||'-'||a.segment2||'-'||a.segment3
     ||'-'||a.segment4||'-'||a.segment5||'-'||a.segment6 acct_code            ,
           a.*
         FROM 
           gl_code_combinations a
         WHERE 
           code_combination_id = 1083
  
  /* For RETURNS,  we do find a transaction in the rcv_transactions, with the corresponding 
  shipment header id.
   As an ex, we can return an item in two steps, first step is to return to receiving 
   dept and second is to return to the vendor */
   
  select rma_reference,transaction_id,transaction_type,quantity,interface_source_code, source_document_code,
      destination_type_code, po_header_id, po_line_id, po_distribution_id,
      routing_header_id ,subinventory,shipment_header_id,shipment_line_id
  from   rcv_transactions    
  where  po_header_id = 23855
  --and    po_line_id = 213748
  
  /* Here is an important test case which we can test. Let us say we have a PO which has 
  an item for a price of $5. We have raised another PO for the same item at a different 
  time , but for a price of $10. Now if we return the item corresponding to the first 
  PO now, does the cost manager update the mtl_transaction_accounts with $5 or $10. As 
  per the standard functionality, the cost mgr will update the table with the same price 
  as that of the original PO.  
  */

-- AP related queries.
select * -- po_distributions_id
from   ap_invoices_all
order  by creation_date desc

select *
from ap_invoice_distributions_all
where po_distribution_id  = 213198


select * from ap_holds_all
where invoice_id = 55856

select * from ap_invoices_all
where invoice_id = 55856

/* Receiving Locations are designated areas where you temporarily store items 
before they are moved to their final destinations, ex (receiving dock and 
inspection area are receiving locations.If necessary we can create even additional
locations like cold storage area where the items are pending inspection */

select * 
from   hr_locations_all

 /*Receiving Controls, Options and Tolerances. We can look at the whole bunch of options at 
          setup => Organizations => Receiving Options
 Ex. If the receiving tolerance is say 1%, then you may receive the item more than the 
 ordered amount by 1% less or more. Similarly if the receipt days early/late is 5, then 
 you can receive 5 days early or late by 5 days. */


/* ASN : Advance Shipment Notice : An ASN is transmitted via EDI(Electronic Data 
Interchange) from a supplier to let the receiving organization know that a 
shipment is coming. */


-- can we have more than 1 shipment for an PO line, y they r  giving another window for that. ???????
-- y am i not able to receive using the receiving transaction from ??????




------------------------HR STUFF 
-- Set the environment in the production environment ( fnd_client_info.set_org_context) 
 BEGIN 
  dbms_application_info.set_client_info(485);
END;

SELECT  employee_id FROM fnd_user WHERE user_name LIKE 'PLUI' 

SELECT * FROM per_all_people_f WHERE person_id in (3015615)

SELECT job_id, person_id, position_id FROM per_all_assignments_f WHERE  person_id in (3015615)

SELECT name job_name FROM per_jobs WHERE job_id = 1602

--  This query given a job function,will give the  approval group.
select control_group_name from po_control_groups where control_group_id in 
        (select control_group_id  from po_position_controls where end_date is not null and job_id in ( 
                select job_id from  per_jobs_vl where name like 'E7-G AND A' )  )

-- This query ,given a approval group, will give the  approval limits.
select * from po_control_rules where control_group_id  in 
    (select control_group_id from po_control_groups where control_group_name = 'NCE 10/CE 10')

-- This query given a job function name, will give the  approval limits.(Make sure you set the correct org_id before you check the amount limits.
select * from po_control_rules where control_group_id  in 
    (select control_group_id from po_control_groups where control_group_id in 
        (select control_group_id  from po_position_controls where end_date is not null and job_id in ( 
                select job_id from  per_jobs where name like 'E7-G AND A' )  
   )
  )


------------------------------
Urgent Help needed regarding a PO.

Hi
In our production system, we have a requisition which has been created and approved. 
There is a PO Autocreated for this requisition with the current status being 
'IN PROCESS'. After this a change was made in the requisition ,which was approved 
and the change was also accepted in the PO.

However when we go to the Purchase Order Summary and open up that PO, the "Open" 
button is disabled. When I look at the Action History for this PO, it has all the 
action history with the latest one being having Action value NULL and performed 
by field is having the buyer info.

I poked around and changed the status of the PO from 'IN PROCESS' to 'REQUIRES REAPPROVAL' 
from backend. After this when I open up the PO from PO Summary, the Open button 
is enabled. Then again I submitted it for approval. After it was approved by the 
manager, the status again went back to 'REQUIRES REAPPROVAL'. So I am not sure what 
I am supposed to do at this point. Can some one give us some pointers as to what 
should be done if the PO Status is 'IN PROCESS'and the "Open" button is disabled. 
How do we progress with this PO.

This is very urgent and any help is greatly appreciated.
Thanks in advance.

----------------


265498.1  to find out about the document manager failed.
 Typically the document manager with error number 1 and 2 could be handled and 
 documented, in my case, the document manager with error number 3  was resolved 
 by restarting the PO document manager.

select * from po_approved_supplier_list

why is that even if everything is fine, the PO are going to BOD in dev.
 If proper approval assignments and groups are not defined then even if the requisition is of 
 small amount, it will indefinitely go up the approval hierarchy until the appropriate person with
 apporoval limits are defined.
 
--- Check the accounting periods open or not
select * from gl_period_statuses 
where application_id =(select application_id from fnd_application where application_short_name ='PO') -- PO =201,  INV=401, 
and set_of_books_id = 1
and period_name like '%-06' 
order by period_num 


--Sourcing Rules :
/* Sourcing rule indicates where an item needs to be sourced from. That is if ever there is a PO or req
 raised against a particular item, we need to go with which supplier. 
 So we first create a sourcing rule mentioning what are the effective dates and which supplier name.
 And then assign it to an item. That is we can assign it to an item, Inventory Org,Operating unit etc.
 If it is assgined to an item, then we always buy that item from that particular supplier.
 If is is assigned to an Inventory Organization, then all the item in that particular inventory org, will
  be sourced from that particular supplier.
 If is is assigned to an Opearting Unit, then all the item in all inventory orgs of that operating unit will
  be sourced from that particular supplier.*/

--At what point will the sourcing rules,come into picture. ??

 SELECT * FROM mrp_sr_assignments_v

--------------------------------

/* QUOTATIONS & RFQ's : All the Quotations and RFQ' go into the po_headers_all table with
   type_lookup_code ='QUOTATION'.
 An RFQ(A Request for quotation is something which the company sends to the supplier 
 requesting them for quotation on the items. A Quotation is something which a supplier 
 provides us with(his quotes). A quotation could be in response to an RFQ or may not be.
*/
 
select * from po_headers_all where type_lookup_code ='QUOTATION'

select * from po_lines_all where po_header_id = 51604

-- Quotations
select * from po_headers_all 
where type_lookup_code ='RFQ'
and  po_header_id = 51608

select * from po_lines_all where po_header_id = 51608

 /* Blanket Purchase Agreement (BPA's) we did see how a standard purchase order. 
 A typical purchase order will have a header,lines, shipments and distributions. 
  
  A Blanket Purchase Agreement is just like a purchase order with the item defined 
  at a pre-negotiated price and which will have the begin and end dates.
  However in the blanket purchase agreement,we will not have any delivery schedules as 
  we dont have them yet. 
  from the PO screen, the moment we choose the BPA, the shipments button will not 
  appear,however it will be there for a PO.
  As mentioned above, typically 
  the Purchase Order Header information will go into po_headers_all,
  The purchase order lines information will go into po_lines_all,
  the  purchase order shipment information will go into po_line_locations_all 
  (i.e the time and location, need_by , the location where this needs to be shipped). 
  These locations are usually the inventory locations.
  the  purchase order distribution information will go into po_distributions_all 
  (code_combination etc).
  
  However in the case of blankets, we wont have the shipments and hence no
  distributions information.
  */

select * from po_headers_all 
where   segment1 ='19518'
and   type_lookup_code ='BLANKET'

select * from po_lines_all where po_header_id = 51617

-- The following two tables will not have any records for blankets.
select * from po_line_locations_all where po_header_id = 51617
  
select * from po_distributions_all where po_header_id = 51617
 
  
1) What does it mean to create a purchase order only with the item category and without
mentioning the inventory item??

2)What is an ASN and ASBN ?
 ASN is Advanced Shipment Notice. An ASN is sent by the supplier to the receiver indicating
 that a shipment is coming or ison its way. The ASN is usually sent in an EDI or XML
 message format. 
 ASBN is a Advanced Shipment and Billing Notice. Usually a supplier might the invoice and 
 tax information as well along with the other information,then it is called ASBN. 

3) What are the sequence of events in ASN(Advanced Shipment Notice) ?
The sequence of events are
 A shipment authorization like PO is sent to Supplier (If any errors,an app advice is 
   sent to supplier)
 Supplier sends the ASN via EDI or XML.
 ASN is entered and verified via Receiving Open Interface.
 Goods arrive.
 ASN vs Receipt quantities are compared(If any errors,an app advice is 
   sent to supplier)
 
4) What is EDI(Electronic Data Interface ) ?
 EDI is an electronic communication mechanism between two computers(they could be different
 kinds of computers as well). EDI messages will have a special format with header ,body
 and trailer. The EDI software has mainly two components , translator and Mapping tool.
 So EDI software needs to be implemented by both the trading partners.
 The EDI example can be explained best with the following seuqnce.
   A buyer downloads a PO from his ERP system into a text file.
  EDI will translate the above text file into a EDI format file. During the translation
    it will use the mapping rules.
  EDI software control comm software and a communication is established to the supplier.
  The file can be sent either to a mailbox, ftp site etc.
  At the supplier end, the EDI software will re-translate into a usable format for the
   supplier to upload the data into their system.
  
   Hence think about EDI as a communication format.
   
 5) What is Pay on Receipt functionality.
 
    Pay on Receipt is basically a way of creating the Payables Invoice once a receipt
 is made against a PO. The following steps sumarizes the required steps.
     -- Ensure that supplier ,site is set up as Pay site, Primary Pay has been set,
  On Purchasing tab at site level, pay on receipt is set in self billing region.
  -- Run "pay on receipt autoinvoice" concurrent program and ensure that you correctly
    set the Aging period parameter carefully so that the receipt is picked up.
     -- After the "pay on receipt autoinvoice" completes, it creates invoices in the invoice
  interfaces table and the Payables Invoice Import program is automatically kicked off which
  create AP Invoices.

 This is one way of creating Invoices in the Payables System. 
 This process is also called as Self Billing or Evaluation Receipt Settlement(ERS).
  
 6) What is a Supplier Item Catalog?
  A Supplier Item catalog is a database consisting of different kinds of information like
     -Any Negotiated sources, like if there are any blanket purchase agreements,GBA, quotations etc
     -Which items has been purchased from which suppliers(i.e historical purchases)
     -Sourcing Rules 
  And the Supplier Item Catalog can be invoked from different places like Navigator 
 or from the PO or requisition form and then make a decision as who should be 
 supplier for your PO or requisition. 

7). What are the key fields that you mention in the purchase orders ?
    items, quantity, cost, schedule, distributions. 
 Based on different things that are put in, they are classified as
    different orders

8)  What is the difference between standard and planned purchased order?
        Standard Purchase Order is when you want to make a one-time purchase of items and when you know
        the items, quantity, cost, schedule, distributions.
        Planned Purchase Order is a long term agreement to buy a product from a single source. You can also 
        have a scheduled release for a planned purchase order.

9) What is the difference between blanket purchased agreement(BPA), Contract purchase agreement & Global BPA.
        Blanket Purchase Agreement is an agreement with the supplier to purchase a product/items at a 
        predetermined prices between two specific dates. 
        Global Purchase Agreement is like a BPA however this is for an enterprise-wide purpose. For ex, you can negotiate
        with the supplier, based on your whole company's global purchasing requirements.  That is you can 
        centralize the buying activity for your whole enterprise by having a global agreement. 
        Then the enterprise organizations can access this global agreement to create purchase order that
        leverage these pre-negotiated prices and terms. 
        You will generally have releases(not shipments) for BPA's and Global BPA's.
        Contract purchase Agreement : You 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.
        You can later issue standard PO's against the contract Purchase agreements.

10). What are sourcing rules ??? write in great details .
 Sourcing Rules let you specify how to replenish items in an organization. 

11). What is a RFQ and quotation ?
 RFQ : A RFQ is a request for quotation. RFQ's once created can be transmitted to 
 the supplier by either fax,phone ,isupplier portal etc.

 Quotation : A quotation from a supplier is in response to a RFQ or it may not be. 
 A quotation typically has a line and the line will have a price break. Only after 
 you create a price break, the approve button is enabled.
        You can approve the quotation any number of times and the approve button is enable until the status of the
        quotation is closed. 
        A quotation can be entered manually ,say while on the phone from a supplier as the supplier provides the
            information.  Or, it could come from Purchasing Documents Open Interface.
        Once a quotation is created, you could create a PO or BPA from this quotation. 

12). What are Supplier lists and what are they used for?
        Supplier lists are not ASL's. Supplier lists are basically different kinds of lists 
 with each list typically corresponding to a category for ex, you might create 
 a list like Monitor and in that list give all the suppliers who would provide 
 the Monitors. similary hard disk etc.
        Typically once Supplier Lists are created,they are attached to an RFQ and 
 the RFQ is sent to all those suppliers in the list. RFQ's once created can 
 be transmitted to the supplier by either fax,phone Oracle iSupplier portal etc. 

13). Write about the complete flow of the Pay on Receipt functionality. 

 Give the example of an item which is stockable ,but it is not transactable or oe transactable.
 An item is stockable, if it is tangible,for ex 

14). What is Approved Supplier List functionality,setup etc?
    The approved supplier  setup is done at the inventory item level. At the item level, you set 
    whether that particular item should  use approved supplier or not. This is set at
            Item => Purchasing options
    If you set this flag, then you can only approve purchase orders , if the supplier is an approved
    supplier.

15). What is the concept of importing the approved suppliers ,why would you do that. 


16). What is the difference between PO Close, PO Finally Closed and PO Cancel ?
 Close is reversible and prevent AP from matching any of the PO lines until 
  the Close is reversed.
 Cancel will close the PR/PO line and it is irreversible. Cancel will also 
  change the Quantity to zero at line level. In a case where PO line 
  is partially invoiced, cancel will change the 'quantity ordered' down 
  to equal the 'quantity billed'.
 Finally closed will close the PO and it is irreversible. Finally Closed 
 will not change the 'Ordered Quantity' however,it will reverse dollars back to GL.

17). What happened to the 11i Purchasing Open Document Interface in R12 ??
 It has been split into two programs 
    Import Price Catalog => this is to import the BPA and quotations primarily. 
    Import Standard Purchase Orders (Why would you import standard purchase orders ,this could be 
        because you have first entered them into a spreadsheet and then import them into the
        interface table etc).

18) what are the different interfaces that are there in Purchasing??

 Purchasing Documents Open Interface :
     Quotations from Supplier
         Even ASL entries can be imported thru this interface,how ??

 Receiving open Interface 
         ASN Transactions
         ASBN  Transactions

19) In PO, why is that shipment is related to the distributions. does that mean that each
  shipment will have one distribution?
 Yes. And when a PO -matched invoice is created, the same invoice distributions 
 will be the same as PO distributions.

20). What are the two main important reports in Purchasing and their usage?
    Accrual Reconciliation Report.
    Accrual Write-off Report : This report is typically run for writing off the accruals. 
 However you can also use this report to find the unreceipt'ed purchase orders.

21). In the receiving form,what could be the reason if you are not able to look for a PO?
 One thing we can do is to check and see the what is the PO organization ,then 
 change to that org, and then open up the rcv trx and see if there are any receipts.

23). when you create a purchase order, does the item price comes from a price list?
 No. that price is for the customer. This price is the price we need to pay to the
 supplier. And it comes from the item/supplier catalog and for the catalog see above.

24). What are two important factors that need to be taken care of for PO approval.
 one is document amount and the account range.

New features in R12 from 11i


New features in R12 from 11i.
------------------------------

--- Questions and exercises in R12.
--- What are the objectives/exercises that we need to do.

  1. Create a AR transaction, then run Create Accounting program, and see what kind 
   of Journals are created in SLA ???

   Make sure the accounting setup options are properly set for the ledger for
   which you are createing the transactions for. For ex, the sequencing context
   name needs to be created for the appropriate context i.e journal setup.

   It is also important to note that once the journal entries are created in the 
   SLA, they cannot be directly viewed from SLA. Each application will provide an
   inquiry screen to query those journal entries.


  Then for the same AR transaction, run the Submit Accounting program,which will
   basically run the revenue recognition progrm,generates the distributions and
   then see the journal entries in SLA.

  2. How are profile options "MO:Operating Unit" and "MO :Security Profile"
 related ??

   If "MO :Security Profile" is defined, then the profile option "MO:Operating Unit"
   is ignored. 
  If "MO :Security Profile" is not defined, then the system will fall back on
   the profile option "MO:Operating Unit" and then  the system will behave
   just like the 11i,where for ex in AR, we will be able to create the trx's
   only corresponding to the OU specified by "MO:Operating Unit".

  3. How is the multi-org feature achieved in R12 as opposed to 11i ???

   In R12, the multi-org feature is acheived thru the "MO :Security Profile" 
 profile option.

   In 11i, lets say in AR, if we have to create a transaction, then that particular
   transaction is corr to a particular Opearting unit id,which is dictated by the
   profile option MO: Operating Unit. If we have to create a trx corr to 
   a different OU, then we need to shift to a different resp corr to that
   OU and create the transaction. Also you can only see the trx corr to ur OU.

   In R12, We can access corresponding to multiple operating units using the 
   following steps.
 
   Go to HR, and create a Security Profile. Give the organizations that you need
     to that security profile.
   Come to System administrator and set the value of profile option  
 "MO: Security Profile " to the value created in the above step.

   Once the above step is done, we should be able to create invoices corres
 to any operating unit. see below for more inforatiom.

  4. How do you create transactions in AR corr to any operating unit???

    First thing set the profile options as explained in the above question.
 
    In AR, the batch source is tied to the operating unit. Hence once the above 
   profile option is set (corr to all Orgs), then you will be able to select any
   batch source corr to any operating unit. once you select a source, then the 
   legal entity field and the OU field(in the more tab) will get populated 
    accordingly. 
   As anex, if the "MO: Security Profile " is nullifed, and then you come to the
    trx screen, and if you select the source LOV, you will see only sources 
    corresponding to the OU specified by only "MO: Operating Unit".

   The whole point is to able to create transactions for any operating unit,with out 
    going thru the painful process of changing the responsibilities each time.
    So in transactions form ,there is no Operating unit in the more tab 
    in 11i while there is one in R12.   


  5. What happened to profile option MO: Top Operating Level ???
    
  In 11i, we had a profile option MO: Top Operating Level , which is not 
     there in R12. Basically all the multi org reports are still now 
     running with reporting parameters,reporting level and reporting context. 
     However now the reporting level willl have values of Ledger or Operating unit.

   6. With the introduction of SLA, do we still need to run the program
 Journal Import etc to push the transactions to GL ???

     No. See below for more details. 

      In 11i, when data was transferred from subledgers, it was transferred to 
      GL_interface table, and then the journal import program will push them 
      into the GL. if there was any errors in the journal import, then the user 
   had the option of changing the data in the gl interface tables and 
      then resubmit the program. the one disadvantage of this process is that 
      the same transaction will have different values in subledger and GL 
   because of the correction.
      
      In R12, (the transfer to gl, and journal import) are combined into "Transfer 
      to GL" function. If the Journal import does not complete successsfully, the 
      data is deleted from the gl_interface tables & SLA tables. This ensures that 
      the subledger (for ex, AR) and GL are in sync. Hence it is not recommended 
      to change the profile option "SLA: Submit Journal Import" profile option.  
      So the best way is to fix the source transaction with in the subledger.
      
      Hence one such error which could cause problems is the accounting setup/account 
      combination issues. To fix this you could use the disabled account feature
      ,where if an acount is disabled,then you could give a replacement acccount,
   so that the new account is taken.

    7. What is the difference/commonality between the 11i SOB and R12 Ledger.
   the set of books is combination of COA, Calendar and Currency
 while Ledger is combo of COA, calendar, currency, and SLA method.
   
 
 
    8. Any new changes as far as the Journal Reversal Criteria is concerned in R12 ??
 
      In 11i, at the set of books level, there is no journal reversal criteria 
      set specified. That means once you create a Journal Reversal criteria set
      it is specific to that set of books. 
      In R12, there is additional field for journal reversal criteria set in the 
      Journal Processing area ,where we can set a specific Journal reversal criteria set.
      So in summary, a single criteria set can be shared across different ledgers.

 9. Are there any changes to the number of AR Interfaces in R12?
 
       So basically unlike in 11i, where we had  5 interfaces (autoinvoice,lockbox, 
       customer, tax, GL interface), but in R12 ,we only have 3 interfaces namely 
       (autoinvoice, lockbox, customer).
       The GL transfer is no longer there. The transactions transparently flow from 
       the AR (for ex) to GL.  So if you need to transfer the data, basically you 
       need to transfer from SLA to GL. So there is a program Transfer GL data,but 
       it is under the application SLA. Similarly Tax interface is replaced by 
       Tax accounting engine or e-business tax,which means the e-business tax is shared
       by all the modules like AP,AR.

    10. How do you classify a particular account as Control Account in SLA in R12?
  

 11. Is Create Accounting Program there in all the Oracle Apps Modules ??
       Yes, if we look at the Subledger Accounting module (SLA), it is being seen
       as a service oriented architecture and hence the same program is used in
       different modules. And since differnt modules can use different ledgers,
       the parameter ledger is provided so that they can give any ledger they want.

    
      12 Is Revenue Management converted into a new feature/module in R12.
      
      Yes, the revenue management was a feature which was in AR even in 11i. In 11i AR,
      you are said to be using the Revenue Management if you set the options 
      with in the Revenue Policy tab of the system options. 
      
      However in R12, the revenue management functionality has been extended with
      some additional features and a new module has been created which is now
      called BRM(Billing and Revenue Management).
      
      So yes BRM exists only in R12.
    

Receivables New Features in R12 :
-----------------------------------

   What are line level cash applications ??
 Line Level cash applications :if the customer has only received one item
   and not the other line,then you could just apply the receipt amount to just
   one invoice line. To do this, in the applicaitons screen, click on the apply in
   detail and apply it to the specific linethat you want.

   How is daily revenue rate calculated???
 Daily revenue rate is calculated by dividing the revenue for that item
 by the total number of days in that duration. If you choose the daily
      revenue rate in the accounting rule, then number of periods is disabled.
    Only at the time of invoice entry you need to specify the start and end dates
    adn the number of days is calculated by the difference between those two.

   What is a partial period??
    A partial period is a period, whose start date is not the first date of that
    period or whose last date is not the last date of that period. As an ex, you
    can define a May-09 period,with the start date of 05-may-2009 or a June-09 
    period whose end date is 29-jun-09

  What are the new changes to the R12 Accounting Rule types??
   In 11i, there were only two types of accounting rule types
 Accounting, Fixed Schedule
 Accounting, Variable Schedule

  In R12, in addition to the above, two more rule types are introduced
      Daily Revenue Rate, All Periods
 Daily Revenue Rate, Partial Periods

  Multi Org Access :
  With Multi org access, it allows you to access multiple organizations data using a
   single responsibility.
    
 Are there any new receipt classes in R12.
 In R12, there are some new additional receipt classes available. For ex,
 there is a new receipt class "AP/AR Netting".  
 
 
What are the new features in recognizing revenue in R12 ?
 Some of the cool features are online accounting and draft accounting.
 
In R12 ,we do have an option of created the accounting or generating the revenue 
entries online or offline. that is we have a Create Accounting option in 
the transaction form.  The create accounting option allows you to recognize the 
revenue for that particular invoice only,this feature is not available in 11i.

Any changes in R12 to the consolidated billing ??
  In the payment terms, we are not seeing a cut off region in the R12,while in 11i 
  it is seen.

In 11i, for all the customer trx, there was no concept of legal entity id at the 
transaction level. However in R12, when we create a ledger we associate legal 
entities to it. So for ex in AR trx, a legal entity field shows in the form,
which means that particular LE in the main company has performed this transaction.   
When you create accounting setups in Accounting Setup Manager, it is recommended
that you assign specific balancing segment values to legal entities. This enables 
you to easily identify transactions by legal entity and take advantage of many 
legal entity features, such as Intercompany Accounting.

11i AR dunning letters and collections workbench is obsolete in R12. In R12, 
they are replaced by Oracle Advanced Collections.
 
In the approval limits, we can set the approval limits for a Refund as well. Previously
we could only set for adjustments, RWO's, and CM's

In 11i, the oracle advanced collections is represented by separate modules like 
Oracle collections agent, leasing agent etc and they are all forms based applications. 
In 11i, you need not have to use the oracle advanced collections, and still use 
the basic collections functionality i.e like able to look at the customers account, 
balances, changing due date etc. All this is done using the native forms.
    However in R12, there is no collections module per se, it is only advanced 
 collections and everything is html based
 
 
 
Payables New Features in R12.
-----------------------------------

* Suppliers are now represented as Trading partners.
See they are created and categorized.

* In 11i, payables invoices were having a header and distributions ,there were no 
lines. However in R12, you have the concept of the invoices,lines and distributions.
Basically the advantages of this change are
 provides for line level approval
 and matching between an invoice line to a PO shipment item.
 facilitates the transfer of additional information between AP and FA.

* Payment processing has gotten better than 11i. Since the selection criteria 
encompasses the Operating unit, multiple currencies and pay groups, we can manage
fewer payruns. 

* There is a new tool called payment manager.,which allows us to create a payment
process request template.

* AR/AP Netting. The netting feature enables the automatic netting of payables and 
  receivables transaction with in a same business enterprise. The netting process
   automatically creates the payables payments and receivables receipts required 
   to clear the payables invoices and receivables transactions.
  
 AP/AR Netting steps:

   1.define netting control a/c(setup>financials>flexfield>key>values)
   2.create bank (Setup>payment>Bank and Bank Branches.payment document is not 
      required for netting bank account
   3.go to receivables responsbility, receipt class definition form(setup>
     receipts>receipt class). query the 'AP/AR Netting' receipt class 
  which is a seeded one.
   4.attach your bank account in this receipt class
   5.go to system options, transaction and customer tabbed region, there enable 
   'Allow payment of Unrelated Transactions'check box
   6.create netting agreement(Receipts>Netting>Netting Agreement)
   7.Enter an Invoice in Payables, validate and run create accounting.
   8.enter a transaction in receivables.
   9.Create Netting Batch(Receipts>Netting>Netting Batch)
   10.Query your netting batch and see the status as Complete.also click on view 
      report icon on right side.click on run push button, you can see the final netting report.
   11.Go to view>request>find
   You can see 3 concurrent request programs 
       1.Create Netting batch 2.Settle netting batch 3.Netting Data Extract.
   12.Now go to receipts and query the AP/AR netting receipt.
   13.Now Go to Tools >view Accounting, you can see Netting control account 
       (defined in first step) debited and receivable account credited
   14.Now go to payables and query your invoce number and click the tab view payments.You can see the payment details and copy the document number
   15.Query your copied payment document number.you can see the payment type as Netting
   16.Click actions button and enable the check box create accounting
   17.Goto tools>view accounting .you can see the accounting entry: 
 
  See basically, First you have to create a netting agreement, with netting business rules and transaction
    criteria. Transaction criteria means we can associate Payables (Invoice, credit
 memo,debit memo) and Receivables(Transaction,credit memo,debit memoe,charge
 back etc)

  As an example,  let us say there is a supplier A with a balance of $100 (invoice)
          let us say there is a customer B with a balance of $150 (invoice)
 And if we have created a netting batch for these two parties, then since the
     AR Balance > $AP Balance ,
  then the netting amount would be AP balance which is $100 and hence you would
  create a AR receipt for $100, which will in effect make the open balance in 
  AR equal to $50.
  
  
GL New Features in R12 :
---------------------

1. What are Data Access Sets in R12 ?

With the introduction of the data access security feature some additional 
security provisions have been made in the R12 (in addition to the security 
features in 11i like security rules and cross validation rules).

When you create a ledger, automatically a new data access set is created with 
the same name with full ledger access.

If "SLA: Enable Data Access Security in Subledgers" profile option is set Y, then 
the user will have access to all the data specified by the data access set profile 
option "GL Data Access Set".

Each data access set corresponds to a particular data access set type,which 
could have a value of "Full ledger", BSV or MSV.

As an ex, if the value is BSV, your access could be like
    Read-only access to the balancing segment value 01
    Read-write access to the balancing segment value 03,04
    No acccess to the balancing segment value 05.

The data access sets work with the security rules. We know that the security 
rules in 11i allow a specific responsibility to access only certain balance 
segment values etc. The data access set basically lets you set the access 
privileges for different ledgers.

Consider the case,where the security rules provide access to only the balancing 
segment value 0 and 03. The data access set provides read only access to 
balancing segment values 01, 03. Then when the user logs in he will not be able 
to create any journals for any accounting combination.

2.  what is the management segment value,BAL,SEG value
    In r12, there is a new addition called management segment value (apart from 
 the other qualifiers).
 
3.  Did recurring journals get any new feature in R12 ??
   In Release 11i, you could define recurring journals using the functional currency 
   or STAT currency.
   
   However  in Release 12, you can create recurring journals using foreign currencies. 
   This is particularly useful if you need to create foreign currency journals that 
   are recurring in nature. For example, assume a subsidiary that uses a different 
   currency from its parent borrows money from the parent. The subsidiary can now 
   generate a recurring entry to record monthly interest payable to the parent 
   company in the parent’s currency.
 
4. Any new changes to the intercompany 
   Intracompany balancing rules ; only a concept in R12 not in 11i.

 If you look at a journal,you could see the following on a document,each Journal 
is classified by
 Journal Entry Description (text)
 Account Derivation Rules (account combination)
 Journal Line types ( Cr,Dr, $)


 In the approval limits, we can set the approval limits for a Refund as well. Previously
we could only set for adjustments, RWO's, and CM's

TAX Module in R12.
------------------
In the 11i world, the taxes were defined specific to each module. For ex, in AR, we
define tax code(corr to tax types) and we secify the tax code hierarchy. Similary
in AP too we define the tax code and there will be tax hieararchy. 
However in R12, the taxes have been integrated and a new product called e-business
tax has been created. This module  

Create Tax Regime which corresponds to a Tax country like US,UK etc.
Tax Types are always predefined like Sales Tax, Use Tax, Location based tax etc.
Configuration Owner is also predefined,not sure what this is 
Create a Tax (in 11i this is called tax code). This is based on a tax regime code,
    configuration owner , and tax type.
Create a Tax Status, this is based on tax regime code and Tax. A Tax can have multiple
    tax statuses corresponding to Standard rate, zero rate or reduced rates etc. 
       My understanding is that we can create multiple 0% rates (say)i.e we can
    create multiple zero-rate tax rates ,with each zero-rate tax rates corresponding
    to different purpose for ex, zero-rate products, zero-rate exports etc. And
    all such zero-rate tax rates can be clubbed into a tax status called 
    zero-rate tax status.
 

Cash Management New Features in R12.
----------------------------------- 
 
Banks and Bank Accounts :
------------------------
In 11i, the banks,bank accounts were owned by AP. However in R12, the banks are
owned by Cash Management,however the banks forms can still be accessed from AP/AR.


Also the functionality of bank account transfer was part of the Treasury Module,
which is now available as part of the Cash Management. 
 
 

TCA (CUSTOMER INFORMATION)




/* CUSTOMER INFORMATION :  

Actually for each customer that is created, an account is created as 
well(hz_cust_accounts) and the corresponding sites are hz_cust_acct_sites. And 
the customer can make any of these sites as billto,shipto etc. These are called 
party site uses. And this information goes into hz_cust_site_uses.

Not quite sure why two different sets of tables are maintained.?? Actually 
historically all the customer information is owned and stored by AR.So the data 
is stored in tables like ra_customers, ra_contacts etc. 
However since customer information is shared universally by all products a 
central common repository of customer data is needed which is what is TCA. 
All the tca tables start with hz_ i.e hz_parties, hz_party_sites etc. And the 
ra_customers etc tables converted now into view from tables and these views 
will now base on these hz related tables.

A Word About Oracle TCA (Trading Community Architecture). Before we explain 
the TCA,let us take an example of a company like cisco which uses multiple 
tools and applications over the years and has generated the customer data
in multiple applications(called Source Systems).
Hence if it has to answer the question of what are my top 150 customers , then 
it needs to have a single comprehensive repository of Customer information. 
Here this single repository of customers will be called Parties. So more than 
one source system customers will be mapped to Parties or customer to party is a 
many-to-one relationship.  Oracle TCA stores the parties in a table hz_parties. 
However while creating a customer using the Oracle 11i forms, a record is created 
both in ra_customers as wells as hz_parties. And it will store the customer id 
in ra_customers as the orig_system_reference in the hz_parties table.

A Party is an entity that can enter into business and can be of 
type Organization or Person.

A Customer is of type Oraganization or Person with whom you have 
a selling relationship.

A customer account represents the business relationship between 
one party and another. As an ex,you can have a commercial account 
and reseller account for a party (ex Vision Distribution). 


Customer Creation in Oracle AR :
-------------------------------
This can be done simply from the (customers => summary). While entering 
the customer information, we need to give a whole bunch of mandatory and 
optional information like taxpayerid, profile, freight terms(shipping 
terms). A profile class basically gives us the informationn about how 
good a customer is (from customers menu), who should be the collector, 
where the dunning letters and statements to be sent,payment terms, 
finance charges for overdue invoices etc.
 Now for each customer we can enter more than one addresses 
or multiple addresses.The communication and contact information entered 
for the customer is different from the comm and contact information for 
each of the customer addresses. Now suppose say we have entered all the 
information for a customer,like comm,contact etc and also two addresses. 
Now we open one of these addresses and create a business purpose for 
this address i.e whether this business should be used as a bill_to or 
ship_to etc and enter the corresponding sales territory information 
for the bill to address. */

-- This table stores all the customers that are created.
select  customer_id,customer_name, customer_number, 
 orig_system_reference,status, party_id, 
 party_type, party_last_update_date
from   ra_customers
where  customer_id = 331317

/* While creating the customers, we need to create the customer 
addresses which are called the locations and they are stored in */ 
select *--location_id,address1, city,state, country, 
 orig_system_reference, validated_flag,application_id,creation_date
from   hz_locations  where address1 like '700 SILVER SEVEN RD%'  
order by creation_date desc -- 170, 172

-- Parties are created 
select  * --party_id,party_name,party_number,party_type,validated_flag,
 orig_system_reference ,creation_date
from  hz_parties 
order by creation_date desc

/* Party_sites stores the relation ship between the parties and locations 
  and the relation ship is a many-many relationship. i.e 1 party can 
  have many locations(or addresses) and 1 address can be used by 
  many parties.*/
select party_site_id, party_site_number, party_site_name, party_id, 
  location_id, orig_system_reference,
  creation_date, status  
from   hz_party_sites  
 order by creation_date desc

/* The hz_party_site_uses table stores information about how a party 
   site is used. Party sites can have multiple 
   uses, for example Ship-To and Bill-To.*/
select party_site_use_id, party_site_id,site_use_type,application_id,
  creation_date
from   hz_party_site_uses  

 /* For every customer that is created, a customer account is also created.
  In general, each party can have multiple accounts like one for mfg, one 
  for distribution.Similarly an individual can have multiple accounts 
  like personal,family. */
  select cust_account_id, orig_system_reference,status,customer_type, 
     party_id,account_number,creation_date
  from   hz_cust_accounts  
  where 1 = 1
  --and   cust_account_id = 331317
  and  account_number = '206700'
  order by creation_date desc

  select * from ar.hz_cust_acct_sites_all 
  where cust_account_id = 331317
  
  select location,site_use_id, cust_acct_site_id, site_use_code, 
    status,bill_to_site_use_id,orig_system_reference,org_id ,location
  from ar.hz_cust_site_uses_all where cust_acct_site_id = 501995
--  where cust_acct_site_id = 466132
  
  begin
  fnd_client_info.set_org_context(fnd_profile.value('ORG_ID'));
  end;

  select set_of_books_id, rowid 
  from ar_system_parameters
   
/*So having done all the above stuff, we should be able to succesfully
 create an transaction batch and an invoice in it. The data goes 
 into the "ra_customer_trx_all" and if the lines are also created,
 the info goes into "ra_customer_trx_lines_all"

 Just as we define the banks as internal or external ,even customers 
 can be defined as Internal or External.

 Internal Customers : Internal means you can define your own company 
  as a customer,so that we can place internal sales orders.

 External customers : are the which are external.

Whether it is internal or external customer, when we are creating a 
ship_to purpose for a particular address we can associate it to a 
location which is inventory location. That is we can understand it as,
this particular customer will be shipped from this particular inventory
location.
*/ 

--Difference between bill-to, ship-to ,sold-to etc. :
/* Bill-To : is the customer who the order is billed to. he will 
 pay the money
 Ship-To : is the customer who the order is shipped to . He will 
     get the items,products of the order.
 Sold-To : is generally the customer who is the main parent 
  company.ex, if the AT&T Cables has placed an order,
  then AT&T can be the Sold-To company, which is the main 
 parent company.  
     
I believe the contacts are only defined for the sites, i.e for the 
bill-to and ship-to sites.      
*/

/* Parties and Org Id's (Operating Units)*/

If a party is setup in an operating unit under a business group, 
will the party name be visible to other operating units under a 
different business group. This makes us feel that the party id 
is striped by org id.

A party is not OU specific. when we create a party it will be 
visible in all the OU's, but its sites will only be visible in the 
OU in which they are created i.e. if a party has a party site in 
X OU,then this site will only be visible in X OU and not in any 
other OU. 

Relationship Manager :


TCA Registry, which is the single source of trading
community information for Oracle E-Business Suite applications.

The key entities in the TCA are
 Parties ,Party sites, customers, Customer accounts, customer account sites,
    location,contacts, contact points.
    

Bulk Data Import :
  Import Batch to TCA registry : this program basically imports the data at the
  party level and NOT the customer level. If you want tcustomer level data to be
  imported, use the customer interface. 
  
  
There are two kinds of import Party Import and Customer Import. The import that you
do in the TCA is Party Import. Customer Import is what you do in AR Receivables.

Some of the interface tables that are used in the Bulk data import are
    hz_imp_parties_int
  hz_imp_contacts_int
  
 After the data is loaded into the interface tables, we run the Import program.
 One thing we need to remember is that the customer import that we run in the AR
 does not care about this import.
 So when the customer import runs, it will create a customer and whenever it 
 creates a new customer, it also creates a new party, even though if there is an
 associated party existing. This can result in the duplication of the parties. And
 for the same reason, we have the de-duplication programs. 


          
Import Batch to TCA Registry => HZ_BATCH_IMPORT_PKG.import_batch

Customer Interface

R12 Supplier Bank – Techno Functional Guide


R12 Supplier Bank – Techno Functional Guide



Three banks you can manage in EBS
  • House Bank or internal bank
  • External bank for supplier and Customer
    • Supplier (or External) bank accounts are created in Payables, in the Supplier Entry forms. Navigate to Suppliers -> Entry. Query or create your supplier. Click on Banking Details and then choose Create. After you have created the bank account, you can assign the bank account to the supplier site.
  • Intermediary bank for SEPA payment : An intermediary bank is a financial institution that as a relationship with the destination bank (in this case the supplier bank account you are setting up) which is not a direct correspondent of the source bank (the disbursement bank in AP/Payments), which facilities the funds transfer to the destination bank.
You can enter intermediary bank accounts on Suppliers->Entry->Banking Details->Bank Account Details
This is important when paying a foreign supplier from a domestic disbursement account, there may be an intermediary bank used, and it would be set up on the supplier bank account. Although the intermediary bank UI is owned by Payments, the implementation is as embeddable UI components in pages owned by i-supplier Portal (suppliers) and AR/Collections (customers).
dgreybarrow Some information
  1. The supplier bank account information is in the table: IBY_EXT_BANK_ACCOUNTS, the bank and bank branches information is in the table HZ_PARTIES.
  2. Creating a supplier in AP now creates a record in HZ_PARTIES. In the create Supplier screen, you will notice that that Registry_id is the party_number in HZ_Parties.
  3. The table hz_party_usg_assignments table stores the party_usage_code SUPPLIER, and also contains the given party_id for that supplier. Running this query will return if customer was a SUPPLIER or CUSTOMER
  4. Payment related details of supplier are also inserted in iby_external_payees_all as well as iby_ext_party_pmt_mthds
  5. IBY_EXT_BANK_ACCOUNTS, the bank and bank branches information is in the table: HZ_PARTIES.
  6. The master record that replaces PO_VENDORS is now AP_SUPPLIERS. PO_VENDORS is a view that joins AP_SUPPLIERS and HZ_PARTIES.
  7. The table that hold mappings between AP_SUPPLIERS.VENDOR_ID and HZ_PARTIES.PARTY_ID is PO_SUPPLIER_MAPPINGS. Query by party_id.
  8. The bank branch number can be found in the table: HZ_ORGANIZATION_PROFILES .The HZ_ORGANIZATION_PROFILES table stores a variety of information about a party. This table gets populated when a party of the Organization type is created.
dgreybarrowER Diagram(Bank Model)
suplier bank
dgreybarrow Oracle Table Involved
  • IBY_EXTERNAL_PAYEES_ALL : This stores supplier information and customer information
  • IBY_EXT_BANK_ACCOUNTS : This storage for bank accounts
  • IBY_EXT_PARTY_PMT_MTHDS : This storage for payment method usage rules.
  • IBY_CREDITCARD : stores the credit card information for a customer
  • IBY_EXT_BANK_ACCOUNTS :This Stores external bank accounts . These records have bank_account_type = Supplier
  • IBY_ACCOUNT_OWNERS :stores the joint account owners of a bank account
  • IBY_PMT_INSTR_USES_ALL : This stores data from AP_BANK_ACCOUNT_USES_ALL for payment instruments assignments .This information is stored in the following iPayment (IBY) tables:



Link between Supplier And Banks and TCA table








  • The link between PO_VENDORS and HZ_PARTIES is PO_VENDORS.party_id. The link between PO_VENDOR_SITES_ALL and HZ_PARTY_SITES is PO_VENDOR_SITES_ALL.party_site_id.
  • When a Supplier is created Record will be Inserted in HZ_PARTIES. When the Supplier Site is created Record will be Inserted in HZ_PARTY_SITES. When Address is created it will be stored in HZ_LOCATIONS
  • When a bank Is Created, the banking information will be stored in IBY_EXT_BANK_ACCOUNTS IBY_EXT_BANK_ACCOUNTS.BANK_id = hz_paties.party_id
  • When the Bank is assigned to Vendors then it will be updated in HZ_CODE_ASSIGNMENTS.
  • HZ_CODE_ASSIGNMENTS.owner_table_id = IBY_EXT_BANK_ACCOUNTS.branch_id.
  • The PARTY_SITE_ID column is the link between the tables IBY_EXTERNAL_PAYEES_ALL & PO_VENDOR_SITES_ALL

dgreybarrow Driving Bank account associated with a Supplier Site in R12
In R12 a Supplier Site is stored, in TCA, as a Party_Site. The Party Site has the Party ID of the Party that represents the Supplier record.
QUERY1..try this
SELECT BANK_ACCOUNT_NAME "Account Name",
BANK_ACCOUNT_NUM "Account Number"
FROM IBY_EXT_BANK_ACCOUNTS
WHERE EXT_BANK_ACCOUNT_ID IN
(SELECT EXT_BANK_ACCOUNT_ID FROM IBY_ACCOUNT_OWNERS
WHERE ACCOUNT_OWNER_PARTY_ID IN
(SELECT party_id FROM hz_party_sites
WHERE party_site_name = 'site code'
)
)
QUERY2..try this
SELECT aba.bank_account_name "BANK_ACCOUNT_NAME",
aba.bank_account_num "BANK_ACCOUNT_NUMBER",
abau.order_of_preference "PRIMARY_FLAG",
aba.currency_code "CURRENCY",
abau.start_date "START DATE",
abau.end_date "END DATE",
pvs.vendor_site_id "VENDOR_SITE"
from iby_payee_assigned_bankacct_v abau ,
ap_supplier_sites pvs ,
iby_payee_all_bankacct_v aba
WHERE abau.ext_bank_account_id = aba.ext_bank_account_id
AND abau.supplier_site_id = pvs.vendor_site_id
AND abau.party_site_id = pvs.party_site_id ;
QUERY3..try this
SELECT HZP.PARTY_NAME "VENDOR NAME"
, APS.SEGMENT1 "VENDOR NUMBER"
, ASS.VENDOR_SITE_CODE "SITE CODE"
, IEB.BANK_ACCOUNT_NUM "ACCOUNT NUMBER"
, IEB.BANK_ACCOUNT_NAME "ACCOUNT NAME"
, HZPBANK.PARTY_NAME "BANK NAME"
, HOPBRANCH.BANK_OR_BRANCH_NUMBER "BANK NUMBER"
, HZPBRANCH.PARTY_NAME "BRANCH NAME"
, HOPBRANCH.BANK_OR_BRANCH_NUMBER "BRANCH NUMBER"
FROM HZ_PARTIES HZP
, AP_SUPPLIERS APS
, HZ_PARTY_SITES SITE_SUPP
, AP_SUPPLIER_SITES_ALL ASS
, IBY_EXTERNAL_PAYEES_ALL IEP
, IBY_PMT_INSTR_USES_ALL IPI
, IBY_EXT_BANK_ACCOUNTS IEB
, HZ_PARTIES HZPBANK
, HZ_PARTIES HZPBRANCH
, HZ_ORGANIZATION_PROFILES HOPBANK
, HZ_ORGANIZATION_PROFILES HOPBRANCH
WHERE HZP.PARTY_ID = APS.PARTY_ID
AND HZP.PARTY_ID = SITE_SUPP.PARTY_ID
AND SITE_SUPP.PARTY_SITE_ID = ASS.PARTY_SITE_ID
AND ASS.VENDOR_ID = APS.VENDOR_ID
AND IEP.PAYEE_PARTY_ID = HZP.PARTY_ID
AND IEP.PARTY_SITE_ID = SITE_SUPP.PARTY_SITE_ID
AND IEP.SUPPLIER_SITE_ID = ASS.VENDOR_SITE_ID
AND IEP.EXT_PAYEE_ID = IPI.EXT_PMT_PARTY_ID
AND IPI.INSTRUMENT_ID = IEB.EXT_BANK_ACCOUNT_ID
AND IEB.BANK_ID = HZPBANK.PARTY_ID
AND IEB.BANK_ID = HZPBRANCH.PARTY_ID
AND HZPBRANCH.PARTY_ID = HOPBRANCH.PARTY_ID
AND HZPBANK.PARTY_ID = HOPBANK.PARTY_ID
ORDER BY 1,3

Sample Accounts Payable Questionnaire for Client


Sample Accounts Payable Questionnaire for Client

1. Provide and overview of the Accounts Payable operations.
2. Provide samples of vendor master records.
3. Do you differentiate vendor sites which can receive payments and sites which cannot receive payments?
4. Describe the invoice vouchering process.
5. Are recurring expense distributions for fixed or varying amounts?
6. Explain Payment Terms List, Interest Charges, and Discounts?
7. Should invoices be matched completely, partially or both?
8. Explain Invoice Approval Process? Describe the approval process when invoices need to be placed on hold and manually released?
9. What requirement is there to process employee expense reports? Please describe. Provide Sample.
10. What is the current process to generate expense payments to employees?
11. Do your employees have company credit cards? How are company credit cards managed (issued, audited, reconciled, etc.)?
12. List of Supplier / Payment Banks
13. Is there a requirement to use Electronic Funds Transfer?
14. Is there a requirement to use Wire Transfers?
15. Is there a requirement to process Automatic Payments?
16. Is there a requirement to process Manual Payments? If so, is a separate bank account used? 17. Is there a requirement to process Partial Payments?
18. Is there a requirement to process Pre-Payments?
19. Is there a requirement to process Recurring Payments?
20. Is there a requirement to process immediately available ‘Quick Checks’?
21. What is the current procedure for vendor advances?
22. How are vendor advances reconciled when the vendor invoice is submitted?
23. Do you have, or do you require, a priority system for payments? Describe its use.
24. What is your current payment cycle? (How often do you print checks?)
25. If recurring payments are used, what is the normal period cycle for these payments?
26. Is there a requirement to use Computer Generated checks?
27. What is your process to cancel checks?
28. Are all invoices paid in local currency and what currency is used? If not local, list the foreign currencies used.
29. How many payment formats do you have? Provide samples.
30. Do you print the check number on the check/remittance or is it pre-printed?
31. Should a remittance advice note be produced, and when?
32. What is the policy/procedure for handling stop payments?
33. What is the policy/procedure for handling void payments if they have been recorded? 34. What are the requirements for reporting tax payments (e.g. company, rate or tax authority)?
35. Do you have to pay other businesses within the Group
36. Do you use Cash or Accrual Based Accounting?
37. Please provide all copies of Payable reports
38. How long do you do check reconciliation?

Oracle Apps Implementation Methodologies(AIM)


Oracle Apps Implementation Methodologies

Unlike product / application development projects, packaged ERP implementations are quite different as we are primarily trying to map the package to the existing business process. Although, there might be a need to create new RICE components (Reports, Interfaces, Conversions and Extensions) which will need additional coding.
Oracle follows and advises their clients to use Applications Implementation Methodology (AIM). However many implementation organizations tend to follow their own methodoloies, which are similar to AIM at a top level but when it comes to actual granular detail they differ a lot. Especially the documenting part differs widely from organisation to organisation. Sometimes, even user organizations have their own implementation methodologies. So, things become interesting and at times frustrating when actually one sits down to do a comparative analysis of the various implementation methodologies and finalise upon the deliverables at different stages.
There are quite a few good blogs on AIM in Richard Byrom's website. One can also download AIM software from the following link below, but do ensure that you do notrun it on IE6.0. This however runs fine on Firefox:

Companies providing Oracle Apps and Oracle BI Consultancy services in India


Companies providing Oracle Apps and Oracle BI Consultancy services in India

Many a time, i have been asked by freinds who are seeking a job change, and sometimes by clients enquiring about organizations that provide consultancy service in Oracle Apps and Oracle BI in India. Though there are many small and big organizations working on Oracle Apps, but only a few top software companies provide the complete range of consultancy services in Oracle Apps and Oracle BI.
I shall try and list some of the organizations here (in no particular order) who are into Oracle BI and Apps in a big way, and would welcome readers to share their information regarding other organizations they are aware of who provide Oracle Apps consultancy and i missed out here.
1. Tata Consultancy Services
2. Infosys Technologies
3. Wipro Technologies
4. Satyam Computer Services
5. Accenture
6. IBM
7. Cognizant Technology Solutions
8. Deloitte
9. Oracle Corporation

There are other organizations in India who also provide Oracle Apps and oracle BI services apart from the ones mentioned above, though their scale of operations in India is not as large as the organizations mentioned above. Some of them include, HCL Tecnologies, Sierra Atlantic, Patni Computers, Intelligroup, Polaris Software Lab, Zensar Technologies, GenPact, Birlasoft, Cap Gemini, iGate, etc. Though most of the organizations in India provide basic consultancy services in Oracle Apps, not many of them provide services in Oracle Business Intelligence. Also, some of these organizations predominantly work in some core areas of Oracle Apps like Oracle Process Manufacturing, Oracle CRM, Oracle HCM, Oracle SCM, etc. Many of the MNC's like Deloitte, Cap Gemini, Unisys, Bearing Point are yet to ramp up their India operations upto the levels of TCS, Infosys, Accenture and IBM . In all probability, most of the big MNC's will further consolidate their India operations and outsource substantial part of their development and support work back to India. So, it seems exciting times are ahead of Oracle Apps consultants in India.

(ORACLE EBS SUITE RELEASES)Oracle Apps Marketing for Upgrade projects -



Oracle Apps Marketing for Upgrade projects - A small tip

It has been my observation that a lot of time and effort goes waste knocking the wrong door for Oracle Apps project. Then the question arises, how to know which door to knock. Obviously, one should not waste precious resources uselessly pursuing organizations that are running on a fully supported version of Oracle Apps like R12, 11.5.10, 11.5.9, unless the organization comes to you with a view to upgrade to R12 or 11.5.10. Please refer chart below to find the support time lines for different releases of Oracle E- Business suite and plan accordingly which organizations to target and whom to avoid.