PO: Tips and useful Query

本文提供了一系列关于ERP采购流程中关键查询和操作的实用技巧,包括内部采购请求、采购订单关联、取消请求、采购请求未转订单等常见问题解决方法。此外,文章还详细介绍了与采购订单相关的审批流程、GL_JE_LINEs表关联、开放采购订单查询、不同采购请求状态等。通过这些查询和技巧,可以帮助内部IT人员更高效地管理和执行实施项目的采购任务。

The consultant life while working at client site is not easy during ERP transformation projects, many times it's required to provide some adhoc query for extract to ends users, therefore it is important to have a cheat sheet so that such untimely things can be easily handled in sort span. Hope these query and tips useful to all Inhouse IT personals who is part of Implementation Project team.

1. You need to list out all Internal Requisitions that do not have an associated Internal Sales order.

Internal Requisitions without Sales order

2. You want to display what requisition and PO are linked(Relation with Requisition and PO )

Requisition and PO

3. You need to list out all cancel Requisitions

Cancel Requisition

4. You need to list those PR which havn't auto created to PO.(Purchase Requisition without a Purchase Order)

PR without PO

5. You need to list all information form PR to PO ...as a requisition moved from different stages till converting into PR. This query capture all details related to that PR to PO.

PR to PO 

6.Identifying all PO's which does not have any PR's

PO without Requisition

7. Relation between Requisition and PO tables

Here is link:

PO_DISTRIBUTIONS_ALL =>PO_HEADER_ID, REQ_DISTRIBUTION_ID
PO_HEADERS_ALL=>PO_HEADER_ID, SEGMENT1
PO_REQ_DISTRIBUTIONS_ALL =>DISTRIBUTION_ID, REQUISITION_LINE_ID
PO_REQUISITION_LINES_ALL =>REQUISITION_LINE_ID)
PO_REQUISITION_HEADERS_ALL =>REQUISITION_HEADER_ID, REQUISITION_LINE_ID, SEGMENT1

What you have to make a join on PO_DISTRIBUTIONS_ALL (REQ_DISTRIBUTION_ID) and PO_REQ_DISTRIBUTIONS_ALL (DISTRIBUTION_ID) to see if there is a PO for the req.

8.You need to find table which hold PO Approval path...

These two table keeps the data:

  • PO_APPROVAL_LIST_HEADERS
  • PO_APPROVAL_LIST_LINES

9. List all the PO's with there approval ,invoice and Payment Details

List PO's with Approval , invoice and Payment info

10.You need to know the link to GL_JE_LINES table for purchasing accrual and budgetary control actions..

The budgetary (encumbrance) and accrual actions in the purchasing module generate records that will be imported into GL for the corresponding accrual and budgetary journals.

The following reference fields are used to capture and keep PO information in the GL_JE_LINES table.

These reference fields are populated when the Journal source (JE_SOURCE in GL_JE_HEADERS) is
Purchasing.

Budgetary Records from PO (These include reservations, reversals and cancellations):

  • REFERENCE_1- Source (PO or REQ)
  • REFERENCE_2- PO Header ID or Requisition Header ID (from po_headers_all.po_header_id or
    po_requisition_headers_all.requisition_header_id)
  • REFERENCE_3- Distribution ID (from po_distributions_all.po_distribution_id or
    po_req_distributions_all.distribution_id)
  • REFERENCE_4- Purchase Order or Requisition number (from po_headers_all.segment1 or
    po_requisition_headers_all.segment1)
  • REFERENCE_5- (Autocreated Purchase Orders only) Backing requisition number (from po_requisition_headers_all.segment1)

Accrual Records from PO:

  • REFERENCE_1- Source (PO)
  • REFERENCE_2- PO Header ID (from po_headers_all.po_header_id)
  • REFERENCE_3- Distribution ID (from po_distributions_all.po_distribution_id
  • REFERENCE_4- Purchase Order number (from po_headers_all.segment1)
  • REFERENCE_5- (ON LINE ACCRUALS ONLY) Receiving Transaction ID (from rcv_receiving_sub_ledger.rcv_transaction_id)

Take a note for Period end accruals, the REFERENCE_5 column is not used.

11. List me all open PO's

List me all Open PO'S

12.There are different authorization_status can a requisition have.

  • Approved
  • Cancelled
  • In Process
  • Incomplete
  • Pre-Approved
  • Rejected

and you should note: When we finally close the requisition from Requisition Summary form the authorization_status of the requisition does not change. Instead it's closed_code becomes 'FINALLY CLOSED'.

13. A standard Quotations one that you can tie back to a PO.
Navigate to RFQ -> Auto create -> enter a PO and reference it back.

14. I want to debug for a PO , where should I start.

Thats is possible, your PO get stuck somewhere, so what you have to do is to analyze which stage it stucked.Get po_header_id first and run each query and then analyze the data.For better understanding this is splited into 5 major stages.

Stage 1: PO Creation :

double-arrowPO_HEADERS_ALL

select po_header_id from po_headers_all where segment1 =<po_number>;

select * from po_headers_all where po_header_id =<po_header_id>;

double-arrowpo_lines_all

select * from po_lines_all where po_header_id =<po_header_id>;

double-arrowpo_line_locations_all

select * from po_line_locations_all where po_header_id =<po_header_id>;

double-arrowpo_distributions_all

select * from po_distributions_all where po_header_id =<po_header_id>;

double-arrowpo_releases_all

SELECT * FROM po_releases_all WHERE po_header_id =<po_header_id>;

Stage 2: Once PO is received data is moved to respective receving tables and inventory tables

double-arrowRCV_SHIPMENT_HEADERS

select * from rcv_shipment_headers where shipment_header_id in
(select shipment_header_id from rcv_shipment_lines
where po_header_id =<po_header_id>);

double-arrowRCV_SHIPMENT_LINES

select * from rcv_shipment_lines where po_header_id =<po_header_id>;

double-arrowRCV_TRANSACTIONS

select * from rcv_transactions where po_header_id =<po_header_id>;

double-arrowRCV_ACCOUNTING_EVENTS

SELECT * FROM rcv_Accounting_Events WHERE rcv_transaction_id IN
(select transaction_id from rcv_transactions
where po_header_id =<po_header_id>);

double-arrowRCV_RECEIVING_SUB_LEDGER

select * from rcv_receiving_sub_ledger where rcv_transaction_id in (select transaction_id from rcv_transactions where po_header_id =<po_header_id>);

double-arrowRCV_SUB_LEDGER_DETAILS

select * from rcv_sub_ledger_details
where rcv_transaction_id in (select transaction_id from rcv_transactions where po_header_id =<po_header_id>);

double-arrowMTL_MATERIAL_TRANSACTIONS

select * from mtl_material_transactions where transaction_source_id =<po_header_id>;

double-arrowMTL_TRANSACTION_ACCOUNTS

select * from mtl_transaction_accounts where transaction_id in ( select transaction_id from mtl_material_transactions where transaction_source_id = =<po_header_id>);

Stage 3: Invoicing details

double-arrowAP_INVOICE_DISTRIBUTIONS_ALL

select * from ap_invoice_distributions_all where po_distribution_id in ( select po_distribution_id from po_distributions_all where po_header_id =<po_header_id>);

double-arrowAP_INVOICES_ALL

select * from ap_invoices_all where invoice_id in
(select invoice_id from ap_invoice_distributions_all where po_distribution_id in
( select po_distribution_id from po_distributions_all where po_header_id =<po_header_id>));

Stage 4 : Many Time there is tie up with Project related PO

double-arrowPA_EXPENDITURE_ITEMS_ALL

select * from pa_expenditure_items_all peia where peia.orig_transaction_reference in
( select to_char(transaction_id) from mtl_material_transactions
where transaction_source_id = <po_header_id> );

Stage 5 : General Ledger

double-arrowPrompt 17. GL_BC_PACKETS ..This is for encumbrances

SELECT * FROM gl_bc_packets WHERE reference2 IN ('<po_header_id>');

double-arrowGL_INTERFACE

SELECT *
FROM GL_INTERFACE GLI
WHERE user_je_source_name ='Purchasing'
AND gl_sl_link_table ='RSL'
AND reference21='PO'
AND EXISTS
( SELECT 1
FROM rcv_receiving_sub_ledger RRSL
WHERE GLI.reference22 =RRSL.reference2
AND GLI.reference23 =RRSL.reference3
AND GLI.reference24 =RRSL.reference4
AND RRSL.rcv_transaction_id in
(select transaction_id from rcv_transactions
where po_header_id <po_header_id>));

double-arrowGL_IMPORT_REFERENCES

SELECT *
FROM gl_import_references GLIR
WHERE reference_1='PO'
AND gl_sl_link_table ='RSL'
AND EXISTS
( SELECT 1
FROM rcv_receiving_sub_ledger RRSL
WHERE GLIR.reference_2 =RRSL.reference2
AND GLIR.reference_3 =RRSL.reference3
AND GLIR.reference_4 =RRSL.reference4
AND RRSL.rcv_transaction_id in
(select transaction_id from rcv_transactions
where po_header_id =<po_header_id>))


Ref Link: http://www.oracleappshub.com/oracle-purchasing/po-tips-and-useful-query/

标题SpringBoot与Android融合的全民健身App研究AI更换标题第1章引言介绍全民健身App的研究背景、意义、国内外现状,并阐述论文方法与创新点。1.1研究背景与意义分析全民健身趋势及App开发的必要性。1.2国内外研究现状综述国内外全民健身App的研究与应用现状。1.3研究方法以及创新点简述采用SpringBoot与Android结合的研究方法及创新点。第2章相关理论介绍SpringBoot框架、Android开发以及全民健身相关的理论基础。2.1SpringBoot框架概述阐述SpringBoot框架的特点与优势。2.2Android开发基础介绍Android开发的基本概念与核心技术。2.3全民健身相关理论概述全民健身的概念、意义及发展目标。第3章全民健身App的设计详细介绍全民健身App的设计思路与实现方法。3.1需求分析与功能设计分析用户需求,设计App的主要功能模块。3.2数据库设计与交互设计数据库结构,实现与后端的数据交互。3.3界面设计与用户体验设计App界面,提升用户体验。第4章SpringBoot后端实现阐述SpringBoot在全民健身App后端开发中的具体应用。4.1后端架构设计设计后端架构,确保系统的稳定性与可扩展性。4.2接口设计与实现实现与Android前端交互的接口。4.3数据处理与安全机制处理用户数据,确保数据安全。第5章Android前端实现与测试介绍Android前端实现过程及测试方法。5.1前端页面布局与交互实现App的前端页面布局与交互逻辑。5.2功能测试与性能优化对App进行功能测试,优化性能。5.3用户反馈与迭代更新收集用户反馈,进行迭代更新。第6章结论与展望总结研究成果,提出未来研究方向。6.1研究结论概括全民健身App设计与实现的主要成果。6.2展望提出App未来改进方向及全民健身领域的研究展望。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值