--采购到入库所经历的表

--0.请购单

--创建请购单方式有

--a.从外挂系统导入请购的接口表PO_REQUISITIONS_INTERFACE_ALL,并允许请求(名称:导入申请)

SELECT *

FROM PO_REQUISITIONS_INTERFACE_ALL

WHERE INTERFACE_SOURCE_CODE = 'TEST KHJ'

--b.在系统中创建请购单(路径:PO/申请/申请)

--请购单头信息

SELECT prh.requisition_header_id

      ,prh.authorization_status--未审批时为INCOMPLETE,审批完后为

  from PO_REQUISITION_HEADERS_ALL PRH

where prh.segment1= ''            

  and  prh.type_lookup_code='PURCHASE'

--请购单行信息

SELECT prL.Requisition_Line_Id

      ,prL.*

  from PO_REQUISITION_LINES_ALL PRL

where PRL.REQUISITION_HEADER_ID IN(

SELECT prh.requisition_header_id    

  from PO_REQUISITION_HEADERS_ALL PRH

where prh.segment1= ''            

  and  prh.type_lookup_code='PURCHASE')

--请购单分配行

select *

  from Po_Req_Distributions_All prda

where prda.requisition_line_id in

       (SELECT prL.Requisition_Line_Id

          from PO_REQUISITION_LINES_ALL PRL

         where PRL.REQUISITION_HEADER_ID IN

               (SELECT prh.requisition_header_id

                  from PO_REQUISITION_HEADERS_ALL PRH

                 where prh.segment1 = ''

                   and prh.type_lookup_code = 'PURCHASE'))

--1.采购订单的创建(路径:PO/采购订单/采购订单)

--po_headers_all 采购订单头表

select pha.po_header_id,

       pha.segment1,

       pha.agent_id,

       pha.type_lookup_code,--标准采购单为STANDARD,一揽子协议为BLANKET

        decode(pha.approved_flag,'R', pha.approved_flag,

               nvl(pha.authorization_status,'INCOMPLETE')),--审批,未审批时为INCOMPLETE,审批后为APPROVED

       PO_HEADERS_SV3.GET_PO_STATUS(pha.po_header_id)--刚下完采购单,未审批时,po状态为未完成,审批后,状态为批准

  from po_headers_all pha

where segment1 = 300446--采购单号码

--po_lines_all 采购订单行表

select pla.po_line_id,

       pla.line_type_id

  from po_lines_all pla

where po_header_id =

       (select po_header_id from po_headers_all where segment1 = 300446);

/*

取已审批销售订单头和行的数据:

涉及表: Po_headers_all,Po_lines_all

逻辑如下:

限制头表的如下属性,并通过Po_header_id把头、行表关联起来

APPROVED_FLAG=Y

*/

--po_line_locations_all 采购订单行的发送表(路径:PO/采购订单/采购订单/发运(T))

--po_line_id=po_lines_all.po_line_id

--当点击发运按钮时,系统会自动创建第一行发运行,可根据需要手工创建新的发运行

--(例如同一采购订单行的物料可能会发往不同的地点,此表记录物料发送情况)

--下面为取订单与其发运的关系(可能存在多次发运)


select *

from po_line_locations_all plla

where plla.po_line_id =(select pla.po_line_id

                          from po_lines_all pla

                         where po_header_id = (select po_header_id

                                                 from po_headers_all

                                                where segment1 = 300446));

--或者

select *

from po_line_locations_all plla

where plla.po_header_id=(select po_header_id

                          from po_headers_all

                         where segment1 = 300446);

--4、po_distributions_all 采购订单发送行的分配表(路径:PO/采购订单/采购订单/发运(T)/分配(T))

--line_location_id=po_line_location_all.line_location_id

--发往同一地点的物料也可能放在不同的子库存,此表记录物料分配情况

SELECT *

FROM   po_distributions_all pda

WHERE  pda.line_location_id in(

                       select plla.Line_Location_Id

                         from po_line_locations_all plla

                        where plla.po_line_id =(select pla.po_line_id

                                                  from po_lines_all pla

                                                 where po_header_id = (select po_header_id

                                                                         from po_headers_all

                                                                        where segment1 = 300446)))

--或者

select *

  from po_distributions_all

where po_header_id =

       (select po_header_id from po_headers_all where segment1 = 300446)

--或者

select *

  from po_distributions_all pda

where  pda.po_line_id=

       (select pla.po_line_id

          from po_lines_all pla

        where po_header_id = (select po_header_id

         from po_headers_all

      where segment1 = 300446))

--对于po_distribution_all 表而言,如果其SOURCE_DISTRIBUTION_ID 有值, 其对应于计划采购单发放

/*以上各表从上到下是一对多关系的 */

--po_releases_all 订单发放

--该表包含一揽子协议以及计划采购单的release,对于每一张发放的一揽子协议或者计划采购单都有相关行与之对应

--其包含采购员,日期,释放状态,释放号码,每一个释放行都有至少一条的采购单的发运信息与之对应(PO_LINE_LOCATIONS_ALL).

--每做一次Realese,PO_distributions_all就会新增一条记录。这是计划订单的特性。

--

SELECT * FROM po_releases_all WHERE po_header_id =<po_header_id>;;

--接收(路径:INV/事务处理/接收/接收)

--1.rcv_shipment_headers 接收发送头表

--记录采购订单的接收情况的头表

select *

  from rcv_shipment_headers rsh

where rsh.shipment_header_id in

       (select shipment_header_id

          from rcv_shipment_lines

         where po_header_id = 4105);

--2.rcv_shipment_lines 接收发送行表

--记录采购订单的发送的行的接收情况

select * from rcv_shipment_lines where po_header_id = 4105

--3.rcv_transactions 接收事务处理表

--记录采购订单的发送行的RECEIVE的信息

select  RT.TRANSACTION_ID,

        rt.transaction_type,

        rt.destination_type_code,

        rt.*

  from  rcv_transactions  rt

where  rt.interface_source_code = 'RCV'

   and  rt.source_document_code  = 'PO'

   and ( rt.po_header_id          = (select pha.po_header_id  from po_headers_all pha where segment1 = 300446 )

   or  RT.PO_LINE_ID            IN(select pla.po_line_id   from po_lines_all pla   where po_header_id =  (select po_header_id from po_headers_all where segment1 = 300446))

   or  RT.SHIPMENT_HEADER_ID    = (select RSH.SHIPMENT_HEADER_ID  from rcv_shipment_headers rsh  where shipment_header_id in (select shipment_header_id   from rcv_shipment_lines    where po_header_id = 4105))

   or  rt.shipment_line_id      in(select shipment_line_id from rcv_shipment_lines where po_header_id = 4105)

)

--4.rcv_receiving_sub_ledger 暂记应付表

--记录采购订单接收后,产生的暂记应付信息(接收事务处理产生的分配行)

select *

  from rcv_receiving_sub_ledger

where rcv_transaction_id in

       (select transaction_id

          from rcv_transactions

         where po_header_id = 4105);

--接受(路径:INV/事务处理/接收/接收事务处理)

--接收事务处理:接收之后,其实现在还并没有入库。

--rcv_transactions 接收事务处理表

--记录采购订单的发送行的ACCEPT的信息

select  RT.TRANSACTION_ID,rt.transaction_type,rt.destination_type_code,rt.*

  from  rcv_transactions  rt

where  rt.interface_source_code = 'RCV'    --做接收的条件

   and  rt.source_document_code  = 'PO'     --做接收的条件

   and  rt.TRANSACTION_TYPE      = 'RECEIVE'--做接收的条件

   and  rt.DESTINATION_TYPE_CODE = 'RECEIVE'--做接收的条件

   and ( rt.po_header_id          = (select pha.po_header_id  from po_headers_all pha where segment1 = 300446 )

   or  RT.PO_LINE_ID            IN(select pla.po_line_id   from po_lines_all pla   where po_header_id =  (select po_header_id from po_headers_all where segment1 = 300446))

   or  RT.SHIPMENT_HEADER_ID    = (select RSH.SHIPMENT_HEADER_ID  from rcv_shipment_headers rsh  where shipment_header_id in (select shipment_header_id   from rcv_shipment_lines    where po_header_id = 4105))

   or  rt.shipment_line_id      in(select shipment_line_id from rcv_shipment_lines where po_header_id = 4105)

)

-- 入库

--因为涉及入库操作,所以,在库存事务处理表中会留下相应的记录。

--即在Mtl_material_transactions表中,会存在相应的两条入库记录。

SELECT mmt.*

  FROM mtl_material_transactions mmt

where mmt.transaction_type_id =18       --po接收

and   mmt.transaction_action_id =27     --接收至库存

and   mmt.transaction_source_type_id=1  --采购订单

and  ( mmt.transaction_source_id= 4105 --po_header_id

or    mmt.rcv_transaction_id in

       (select RT.TRANSACTION_ID

          from rcv_transactions rt

         where rt.interface_source_code = 'RCV'

           and rt.source_document_code = 'PO'

           and (rt.po_header_id = (select pha.po_header_id   from po_headers_all pha  where segment1 = 300446))))

--此时,rcv_transactions的状态变为

select  RT.TRANSACTION_ID,rt.transaction_type,rt.destination_type_code,rt.*

  from  rcv_transactions  rt

where  rt.interface_source_code = 'RCV'    --做入库的条件

   and  rt.source_document_code  = 'PO'     --做入库的条件

   and  rt.TRANSACTION_TYPE      = 'DELIVER'--做入库的条件

   and  rt.DESTINATION_TYPE_CODE = 'INVENTORY'--做入库的条件

   and ( rt.po_header_id          = (select pha.po_header_id  from po_headers_all pha where segment1 = 300446 )

   or  RT.PO_LINE_ID            IN(select pla.po_line_id   from po_lines_all pla   where po_header_id =  (select po_header_id from po_headers_all where segment1 = 300446))

   or  RT.SHIPMENT_HEADER_ID    = (select RSH.SHIPMENT_HEADER_ID  from rcv_shipment_headers rsh  where shipment_header_id in (select shipment_header_id   from rcv_shipment_lines    where po_header_id = 4105))

   or  rt.shipment_line_id      in(select shipment_line_id from rcv_shipment_lines where po_header_id = 4105)

)

--退货

--说明:

--退货至接收时,产生一条记录,退货至供应商时,产生两条数据。 可见退货的实际顺序为: 库存----> 接收----> 供应商

--不管是退货至接收还是退货至供应商,在事务处理中,都会产生两条记录。

--而且,数量符号与接收的数据正好相反。而且产生的记录都是RETURN TO RECEIVING。

--1.库存退货至接受

SELECT rt.DESTINATION_TYPE_CODE,rt.INTERFACE_SOURCE_CODE,rt.*

  FROM rcv_transactions rt

WHERE rt.interface_source_code IS NULL

   and rt.transaction_type    ='RETURN TO RECEIVING'--退货至接受

   and rt.source_document_code='PO'

   AND RT.DESTINATION_TYPE_CODE='RECEIVING'

   AND po_header_id = 4105

   AND po_line_id = 9938

SELECT MMT.*

FROM mtl_material_transactions MMT

WHERE MMT.TRANSACTION_SOURCE_ID=4105

AND   MMT.TRANSACTION_TYPE_ID =36

AND   MMT.TRANSACTION_ACTION_ID=1

AND   MMT.TRANSACTION_SOURCE_TYPE_ID=1

--2.库存退货至供应商(产生两条数据。顺序为: 库存----> 接收----> 供应商)

--a.库存退货至接收

SELECT rt.DESTINATION_TYPE_CODE,rt.INTERFACE_SOURCE_CODE,rt.*

  FROM rcv_transactions rt

WHERE rt.interface_source_code IS NULL

   and rt.transaction_type    ='RETURN TO RECEIVING'--先退货至接收

   and rt.source_document_code='PO'

   AND RT.DESTINATION_TYPE_CODE='INVENTORY'

   AND po_header_id = 4105

--b.接收退货至供应商

SELECT rt.DESTINATION_TYPE_CODE,rt.INTERFACE_SOURCE_CODE,rt.*

  FROM rcv_transactions rt

WHERE rt.interface_source_code IS NULL

   and rt.transaction_type    ='RETURN TO VENDOR'--退货至供应商

   and rt.source_document_code='PO'

   AND RT.DESTINATION_TYPE_CODE='RECEIVING'

   AND po_header_id = 4105
SELECT MMT.*

FROM mtl_material_transactions MMT

WHERE MMT.TRANSACTION_SOURCE_ID=4105

AND   MMT.TRANSACTION_TYPE_ID =36--向供应商退货

AND   MMT.TRANSACTION_ACTION_ID=1--从库存发放

AND   MMT.TRANSACTION_SOURCE_TYPE_ID=1--采购订单

ORACLE_EBS_R12_采购到入库所经历的表的更多相关文章

  1. PO_标准采购流程请购采购接受入库(流程)

    2014-06-03 Created By BaoXinjian

  2. Super超级ERP系统---(6)采购管理--入库上架

    采购商品入库完成后,下一步就是上架操作.所谓上架就是把入库放到移动托盘的商品转移到固定货架上,货架上有货位号,可以把商品放到指定的货位上.主要分两步操作,上架操作主要是移动PDA上完成的  1.扫描移 ...

  3. Oracle EBS 采购 接收入库 接口开发

    http://blog.itpub.net/25164132/viewspace-746657/ 接收入库是项目中会经常碰到的开发,这类开发一般来说比较简单,但是接收入库在Oracle中其实涉及到很多 ...

  4. SAP采购订单入库后不允许修改单价增强

    需求:在根据采购订单做了入库凭证之后,如果用户反审批采购订单去修改单价,系统提示‘已收货,不允许修改单价’. 判断流程:是否有入库凭证 如果采购订单条件按采购信息记录定价,这个价格本来就不能修改,只能 ...

  5. EBS采购(PO)模块常用表

     select * from po_requisition_headers_all 请求头 select * from po_requisition_lines_all 请求行 select * ...

  6. 详解EBS接口开发之库事务处理带提前发运通知(ASN)采购接收入库-补充

     A)   Via ROI Create a ASN [ship,ship]  for a quantity =3 on STANDARD PURCHASE ORDER Create  via R ...

  7. MySQL_采购入库价格与在线售价监控_20161213

    c037采购入库价格与在线售价监控 ##c037采购入库价格与在线售价监控 SELECT a.城市,a.产品ID,a.商品名称,a.入库日期,a.入库仓库,a.单价,a.总金额,a.采购人,b.单价 ...

  8. 2016/05/13 Thinkphp 3.2.2 ①数据添加 ②收集表单数据入库操作 ③数据修改操作

    ①数据查询 add() 该方法返回被添加的新记录的主键id值 两种方式实现数据添加 数组方式数据添加 $goods = D(“Goods”); $arr = array(‘goods_name’=&g ...

  9. 详解EBS接口开发之库存事务处理采购接收和退货

    (一)接收&退货常用标准表简介 1.1   常用标准表 如下表中列出了与采购接收&退货导入相关的表和说明: 表名 说明 其他信息 RCV_TRANSACTIONS 采购接收事务表 事务 ...

随机推荐

  1. 第21篇 ubuntu安装ftp服务器(转载)

    ubuntu安装ftp服务器 1: 安装vsftpd ~$ sudo apt-get install vsftpd ubuntu10.10自己装了,这步省略. 2: 配置vsftpd 2.1 修改vs ...

  2. laravel 中条件查询 function模式

    当需要条件查找时,可以使用下面的注入方法: //我要预约 yudoc_name yudoc_keshi yudoc_jibing yudoc_hospital 这是需要帅选的条件 public fun ...

  3. 2、Flume1.7.0入门:安装、部署、及flume的案例

    一.什么是Flume? flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用. flume的特点: flume是一个分布式.可靠.和高可用的海量日志采集.聚合和传输的 ...

  4. lua语法基本

    lua的下载 http://luabinaries.sourceforge.net/点击所要下载的版本比如我下的是5.3.3https://sourceforge.net/projects/luabi ...

  5. java代码对按钮进行监听---------------打印出每次点击按钮的次数

    其实,我真不会写嗯? package com.a.b; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; ...

  6. 分布式缓存系统 Memcached 状态机之网络数据读取与解析

    整个状态机的基本流程如下图所示,后续分析将按该流程来进行. 接上节分解,主线程将接收的连接socket分发给了某工作线程,然后工作线程从任务队列中取出该连接socket的CQ_ITEM,开始处理该连接 ...

  7. Java-Maven-Runoob:Maven 自动化部署

    ylbtech-Java-Maven-Runoob:Maven 自动化部署 1.返回顶部 1. Maven 自动化部署 项目开发过程中,部署的过程包含需如下步骤: 将所的项目代码提交到 SVN 或者代 ...

  8. FB联网无人机取得重大进展 实现首次成功着陆

    科技讯6月30日消息,据Engadget报道,在过去的几年里,世界最大社交网络Facebook始终在测试其太阳能无人飞机Aquila.2016年6月份,这种联网无人机在美国亚利桑那州的尤马进行了首次全 ...

  9. PHP PDO SQLSERVER

    $bbs = new PDO("odbc:MSSQLServer",   $username_bbs,    $password_bbs $bbs = new PDO('); $s ...

  10. Elasticsearch集群如何扩容机器?

    前提, Elasticsearch-2.4.3的3节点安装(多种方式图文详解)   比如,你已经成功搭建了3台机器的es集群,如我这里分别是192.168.80.10.192.168.80.11.19 ...