--采购到入库所经历的表
--0.请购单
--创建请购单方式有
--a.从外挂系统导入请购的接口表PO_REQUISITIONS_INTERFACE_ALL,并允许请求(名称:导入申请)
select *
where interface_source_code = 'TEST KHJ';
--b.在系统中创建请购单(路径:PO/申请/申请)
--请购单头信息
select prh.requisition_header_id,
where prh.segment1 = '600000'
--请购单行信息
select prl.requisition_line_id,
where prl.requisition_header_id in
--请购单分配行
select *
where prda.requisition_line_id in
--1.采购订单的创建(路径:PO/采购订单/采购订单)
--po_headers_all 采购订单头表
select pha.po_header_id,
where segment1 = 300446; --采购单号码
--po_lines_all 采购订单行表
select pla.po_line_id,
where po_header_id =
--3.po_line_locations_all 采购订单行的发送表(路径:PO/采购订单/采购订单/发运(T))
--po_line_id=po_lines_all.po_line_id
--当点击发运按钮时,系统会自动创建第一行发运行,可根据需要手工创建新的发运行
--(例如同一采购订单行的物料可能会发往不同的地点,此表记录物料发送情况)
--下面为取订单与其发运的关系(可能存在多次发运)
select *
where plla.po_line_id =
--或者
select *
where plla.po_header_id =
--4、po_distributions_all 采购订单发送行的分配表(路径:PO/采购订单/采购订单/发运(T)/分配(T))
--line_location_id=po_line_location_all.line_location_id
--发往同一地点的物料也可能放在不同的子库存,此表记录物料分配情况
select *
where pda.line_location_id in
--或者
select *
where po_header_id =
--或者
select *
where pda.po_line_id =
--对于po_distribution_all 表而言,如果其SOURCE_DISTRIBUTION_ID 有值, 其对应于计划采购单发放
--5.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 *
where rsh.shipment_header_id in
--2.rcv_shipment_lines 接收发送行表
--记录采购订单的发送的行的接收情况
select * from rcv_shipment_lines where po_header_id = 4105;
--3.rcv_transactions 接收事务处理表
--记录采购订单的发送行的RECEIVE的信息
select rt.transaction_id,
where rt.interface_source_code = 'RCV'
--4.rcv_receiving_sub_ledger 暂记应付表
--记录采购订单接收后,产生的暂记应付信息(接收事务处理产生的分配行)
--产生分录的程序: RCV_SeedEvents_PVT=>RCV_CreateAccounting_PVT
select nvl(poll.accrue_on_receipt_flag, 'N')
where poll.line_location_id =
IF ((l_accrue_on_receipt_flag = 'Y' OR
(RCV_SeedEvents_PVT.INTERCOMPANY_INVOICE,RCV_SeedEvents_PVT.INTERCOMPANY_REVERSAL)) THEN
IF G_DEBUG = 'Y' AND FND_LOG.LEVEL_EVENT >=
FND_LOG.string(FND_LOG.LEVEL_EVENT,G_LOG_HEAD'.'l_api_name'.'l_stmt_num
,'Creating accounting entries in RRS')
END IF
IF G_DEBUG = 'Y' AND FND_LOG.LEVEL_STATEMENT >=
FND_LOG.string(FND_LOG.LEVEL_STATEMENT,G_LOG_HEAD'.'l_api_name'.'l_stmt_num
,'Creating accounting entries for accounting_event_id : 'l_accounting_event_id)
END IF
-- Call Account generation API to create accounting entries
RCV_CreateAccounting_PVT.Create_AccountingEntry(
p_api_version => 1.0,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data,
p_accounting_event_id => l_accounting_event_id,
p_lcm_flag => p_lcm_flag)
IF l_return_status <> FND_API.g_ret_sts_success THEN
l_api_message := 'Error in Create_AccountingEntry API'
IF G_DEBUG = 'Y' AND FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL THEN
FND_LOG.string(FND_LOG.LEVEL_UNEXPECTED,G_LOG_HEAD '.'l_api_namel_stmt_num
,'Insert_RAEEvents : 'l_stmt_num' : 'l_api_message)
END IF
RAISE FND_API.g_exc_unexpected_error
END IF
select *
where rcv_transaction_id in
--接受(路径:INV/事务处理/接收/接收事务处理)
--接收事务处理:接收之后,其实现在还并没有入库。
--rcv_transactions 接收事务处理表
--记录采购订单的发送行的ACCEPT的信息
select rt.transaction_id,
where rt.interface_source_code = 'RCV' --做接收的条件
-- 入库
--因为涉及入库操作,所以,在库存事务处理表中会留下相应的记录。
--即在Mtl_material_transactions表中,会存在相应的两条入库记录。
select mmt.*
where mmt.transaction_type_id = 18 --po接收
--此时,rcv_transactions的状态变为
select rt.transaction_id,
where rt.interface_source_code = 'RCV' --做入库的条件
--退货
--说明:
--退货至接收时,产生一条记录,退货至供应商时,产生两条数据。 可见退货的实际顺序为: 库存----> 接收----> 供应商
--不管是退货至接收还是退货至供应商,在事务处理中,都会产生两条记录。
--而且,数量符号与接收的数据正好相反。而且产生的记录都是RETURN TO RECEIVING。
--1.库存退货至接受
select rt.destination_type_code,
where rt.interface_source_code is null
select mmt.*
where mmt.transaction_source_id = 4105
--2.库存退货至供应商(产生两条数据。顺序为: 库存----> 接收----> 供应商)
--a.库存退货至接收
select rt.destination_type_code,
where rt.interface_source_code is null
--b.接收退货至供应商
select rt.destination_type_code,
where rt.interface_source_code is null
select mmt.*
where mmt.transaction_source_id = 4105