Monday, July 16, 2012

Oracle Purchasing Tables & API


Usual Oracle Applications PO Tables
PO_HEADERS_ALL: Purchase Order information with Supplier, Site and status
PO_LINES_ALL: PO Lines with Item Information and quantity
PO_LINE_LOCATIONS_ALL: PO Information on Shipments Destination
PO_DISTRIBUTIONS_ALL: PO Distribution where the accounts are
PO_LINE_LOCATIONS_ARCHIVE_ALL: table updated for history on Shipment/Destination Location Information
PO_LINE_TYPES_B: PO Types used in the PO_LINES_ALL
PO_LINES_TYPES_TL: PO Line Types used in MLS
PO_RELEASES_ALL: Stores revision number for the PO
PO_HEADERS_ARCHIVE_ALL: table updated for the history on the status and PO Header changes, Lines, Location and PO Accounts Distribution
PO_LINES_ARCHIVE_ALL: table updated for the history on the lines
PO_DISTRIBUTIONS_ARCHIVE_ALL: table updated for the history on the account distribution
PO_AGENTS_ALL_V: Buyer
PO_VENDORS: Supplier Table
PO_VENDOR_SITES: Supplier Sites
PO_VENDOR_CONTACTS: Supplier Contacts
PO_HAZARD_CLASSES: contains code and description for hazardous items which gets automatically printed into purchase order, RFQ and Receipt Travelers
PO_REQUISITION_LINES_ALL: Requisition Lines
PO_REQUISITION_HEADERS_ALL: Requisition Headers
PO_REQ_DISTRIBUTIONS_ALL: Distribution Lines of Requisition where accounts are
PO_APPROVED_SUPPLIER_LIST: Supplier List for Auto-Sourcing
PO_ASL_DOCUMENTS: Advanced Shipment Documents
PO_APPROVAL_LIST_HEADERS: PO Approval Path
PO_APPROVAL_LIST_LINES: PO Approval Path


OTHER RELATED: 
MRP_SOURCING_RULES: Used for Auto-Sourcing Rules
MRP_SR_RECEIPT_ORG: Used for Auto-Sourcing Rules
MRP_SR_SOURCE_ORG: Used for Auto-Sourcing Rules
MRP_ASSIGNMENT_SETS: Used for Auto-Sourcing Rules
MRP_SR_ASSIGNMENTS: Used for Auto-Sourcing Rules
RCV_SHIPMENT_HEADERS: Shipment Table Header with grouping information
RCV_SHIPMENT_LINES: Shipment Table lines with item information
RCV_TRANSACTIONS: PO Lines or Requisition received in destination or transit
RCV_ACCOUNTING_EVENTS: Receiving information on accounts
RCV_RECEIVING_SUB_LEDGER: Accounting entries generated for the receiving transactions
RCV_SUB_LEDGER_DETAILS: Detail accounting entries generated for the receiving transactions
RCV_LOT_SUPPLY: Parent for RCV_LOT_TRANSACTIONS
RCV_LOT_TRANSACTIONS: Table housing the information what lot the item is received

INTERFACES:
PO_HEADERS_INTERFACE: Used for creating PO
PO_LINES_INTERFACE: Used for creating PO
PO_DISTRIBUTIONS_INTERFACE: Used for creating PO
PO_REQUISITIONS_INTERFACE: Used for creating Requisition
PO_REQ_DIST_INTERFACE: Used for creating Requisition
PO_INTERFACE_ERRORS: Error created during the processing of the PO or requisition
RCV_INTERFACE: Used for creating Received Items
RCV_HEADERS_INTERFACE: Used for creating Received Group of items
RCV_LOT_INTERFACE: Used for receiving item into a particular lot

API:
Following API can be used to modify
a) Need by Date
b) Promise Date
c) Quantity
d) Price

       po_change_api1_s.update_po
                                 (x_po_number                => c1_rec.po_number
                                 ,x_release_number           => NULL
                                 ,x_revision_number          => v_REVISION_NUM
                                 ,x_line_number              => c1_rec.line_num
                                 ,x_shipment_number          => NULL
                                 ,new_quantity               => NULL
                                 ,new_price                  => c1_rec.new_price
                                 ,new_promised_date          => NULL
                                 ,new_need_by_date           => NULL
                                 ,launch_approvals_flag      => l_chr_lch_appr_flg
                                 ,update_source              => NULL
                                 ,VERSION                    => '1.0'
                                 ,x_override_date            => NULL
                                 ,x_api_errors               => l_rec_out_error
                                 ,p_buyer_name               => c1_rec.buyer
                                 ,p_secondary_quantity       => NULL
                                 ,p_preferred_grade          => NULL
                                 ,p_org_id                   => c1_rec.org_id
                                 );


2) Following is to call the PO workflow.

 po_reqapproval_init1.
          start_wf_process (itemtype                 => 'POAPPRV',
                            itemkey                  => l_num_item_key,
                            workflowprocess          => '<<<<>>>>>>>>>',
                            actionoriginatedfrom     => 'PO_FORM',
                            documentid               => i.po_header_id,
                            documentnumber           => i.segment1,
                            preparerid               => i.agent_id,
                            documenttypecode         => 'PO',
                            documentsubtype          => 'STANDARD',
                            submitteraction          => 'APPROVE',
                            forwardtoid              => NULL,
                            forwardfromid            => NULL,
                            defaultapprovalpathid    => NULL,
                            note                     => NULL,
                            printflag                => 'N',
                            faxflag                  => 'N',
                            faxnumber                => NULL,
                            emailflag                => 'N',
                            emailaddress             => NULL,
                            createsourcingrule       => 'N',
                            releasegenmethod         => 'N',
                            updatesourcingrule       => 'N',
                            massupdatereleases       => 'N',
                            retroactivepricechange   => 'N',
                            orgassignchange          => 'N',
                            communicatepricechange   => 'N',
                            p_background_flag        => 'N',
                            p_initiator              => NULL,
                            p_xml_flag               => NULL,
                            fpdsngflag               => 'N',
                            p_source_type_code       => NULL);