我是靠谱客的博主 真实钢铁侠,最近开发中收集的这篇文章主要介绍库存讲解一二,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 
对于制造企业来说,po,inv,wip是比较重要的三个核心模块。其中采购接收即是连接po模块和inv模块的重要操作。
首先介绍一下采购接收常用的数据表,
         mtl_system_items_B---不用多说了,地球人都知道,物料表
         rcv_transactions   ---接收交易表,接收,检验,交货,退回至接收,退回至供应商的所有记录
         rcv_supply        ---接收中,记录处于接收中的事务处理。其中它的数量会随着实际而更新,如果完全交货或退回,则表中将没有数据
         po_vendors        ---供应商表
         po_vendor_sites_all---供应商地点表
         po_headers_all ---po头表
         po_lines_all    ---po行表
         po_line_locations_all---po行的发运表,主要记录po行接收多少,开票多少等                                  
         rcv_shipment_headers---发运头表,这里有产生的收据号
         rcv_shipment_lines--发运行表,具体到发运行


    1.空收据号的产生
   在正常的业务操作中,有时候接收保存之后,题头也显示了收据号,但再从接收查询那里查,则显示无记录,这有两种可能,要么这笔记录在接口表中,或者这笔记 录为空收据号。空收据号的意思就是,接收的时候只产生了接收的头,即收据号,下面的详细的行没有产生。 在rcv_shipment_headers表中有记录,但是在rcv_shipment_headers没有对应的记录。如果接收的时候接口表没过去, 删除该接口表记录也是产生空收据号的途径。
查空收据号script:
select rsh.RECEIPT_NUM "收据号",
   fu.DESCRIPTION "操作人",
   rsh.CREATION_DATE "创建日期"
   from apps.rcv_shipment_headers rsh,
   apps.fnd_user fu
where rsh.SHIP_TO_ORG_ID =库存组织id
and fu.USER_ID = rsh.CREATED_BY
and rsh.CREATION_DATE >= to_date('2007-02-01', 'yyyy-mm-dd')
and rsh.CREATION_DATE <= to_date('2007-02-26', 'yyyy-mm-dd')
and NOT EXISTS (SELECT 'X'
                  from apps.rcv_shipment_lines rsl
                   WHERE rsl.to_organization_id = 库存组织id
                  AND rsl.SHIPMENT_HEADER_ID = rsh.SHIPMENT_HEADER_ID)
对于产生的空收据号,只能重新做接收。


--------------------------------------------------
    2.接收的检验控制
这里所说的检验只是INV模块的“接收检验”,是一个品质信息收集的途径。oracle标准功能提供了检验,但是通常在实际操作中,由于仓库的管理和来料 检验是分属于不同部门的,来料检验是不需要在ERP系统中进行检验操作的,这样,ERP系统中的操作就没什么用。
在下达po时,po有个接收控制选项,里面有个接收方式,分为“标准接收”和“要求检验”,可手工进行更改。这个选项是从该供应商的信息的接收选项带过来的。
如果是“要求检验”,必须在接收之后,点击检验,否则,不进行检验而直接交货,虽然显示保存成功,但是实际显示为“转移”,无法交货成功。对于这个po,必须返出之后,更改po的接收控制,重新接收交货。
其实po中的接收方式的要求检验也是从供应商那里带过来的。所以最根本的还是要在供应商设置那里,供应商的接收属性组下的接收方式。标准接收---先接收,再交货。要求检验--接收,检验,交货。直接交货----俺没试过,按字面理解就应该是一步交货吧。
不过对于一些企业,不是很好,因为很多企业是交货的时候才会进行付款,对于有些制造企业,需要实行装机付款,那必须实际上线装配使用的时候,才会进行交货。


--------------------------------------------------
       3.分作业备料和共享备料
    这个应该都是客户化来着,主要讲一下概念吧。
    分作业备料即对每个作业分别下达相应的物料采购需求,供应商也分别对应作业送货,正常情况下,作业物料都是专属专用的。即A作业的物料不能给B使用,虽然两个用同一个供应商的同一种物料。分作业备料不需要考虑原有库存。
    共享备料,一切作业都是从仓库出料,所有物料都是直接交货到仓库,对所有的共享的需求计算缺料,先领先得。


--------------------------------------------------
       4.标准接收与条码接收(客户化)
    11i里面系统的标准功能是提供了标准接收,即采购下了po,供应商按照po的要求和时间,一次或多次送货物,同时有供应商自己开出的手工单,仓库 收到货物,根据手工单上的po号,物料编码,数量,在ERP系统中做接收。这对于仓库的存货管理来说是比较危险的。因为如果下给某个供应商只有一次的数 量,供应商多次送货(特别是共享备料,分作业备料可能会记录作业号在手工单上),仓库收货人是无法判别的。且标准接收难以关联到很多信息。
    条码接收即为采购员除了下达po,还要下达送货通知,类似po的发运,供应商及时的确认,答应送货,则确认后产生送货单(系统此时产生一个条码号, 此条码号就作为以后的接收号),此送货单自动匹配对应这个供应商的po,接收的时候直接收就可以了。--具体的内部逻辑,还要仔细研究研究。

这一部分主要讲讲INV常见接口表问题的处理,之前也有好多人讲过。
1.ERP系统中,接收有时候未能及时生成相应的接收事务处理,多半原因是相关接收事务(接收,交货,退货)数据异常堵在接口表里,未能正确形成接收事务处理。此时在库存超级用户职责下的“事务处理状态汇总”可以看到相应的记录。
常见接口表的错误:
 接收处理处理器的异常,相应的接收记录一直是pending或者running状态。
对于一直处于pending状态的,直接在po.rcv_transactions_interface表中查出对应记录的group_id,在接收事务处理处理器重新提交即可(采购超级用户职责下)。
查询group_id的Script:
Select rti.GROUP_ID
,rti.to_organization_id
,rti.processing_mode_code
,rti.last_update_date
from po.rcv_transactions_interface rti
where rti.to_organization_id =***
and rti.processing_status_code='PENDING'
and rti.transaction_status_code='PENDING'  
对于一直处于running状态的,需要通过后台更改对应的记录为pending状态后,再重新提交接收事务处理处理器方可。
更新状态script:
update po.rcv_transactions_interface rti
set rti.PROCESSING_STATUS_CODE='PENDING'
,rti.TRANSACTION_STATUS_CODE='PENDING'
where rti.to_organization_id =***
and rti.PROCESSING_STATUS_CODE='RUNNING'
and rti.TRANSACTION_STATUS_CODE='PENDING'
and rti.LAST_UPDATE_DATE --注意一定要限制时间范围,免得更改到正常数据
 相应记录出现ERROR状态的,这种情况就要分情况进行区别对待。
一种情况是接收的时候对一笔收据号进行重复操作,主要表现在交货事务,错误记录一般为“RCV_TP_INVALID_QUANTITY”。此时查询相应的收据号会发现相应的事务已经有记录,直接在“事务处理状态汇总”进行删除
另一种情况是ERP系统bug,接收交货报错,正常事务处理,
出现错误:RVTTH-115f:子例行程序 process_transaction() 返回的错误
          apps.mtl_txn_request_lines表中的数量与实际shipment_lines的数量不符,需更改对应的数量(例如mtl_txn_request_lines交货数量)
             相应脚本:
select *
from apps.rcv_shipment_headers rsh
where rsh.RECEIPT_NUM='14286340' –收据号

select *
from apps.rcv_transactions rt
where rt.SHIPMENT_HEADER_ID =7693315

select *
from   apps.mtl_txn_request_lines mtr
where txn_source_id=17590718--rt的transaction_id
_interface有时候会出现重复的记录,这应该是bug,对于那些重复的,删除重复的即可。

库存模块异常问题收集:
1.库存对应物料的现有量与物料所有事务处理的总和不符
系统某物料的现有量与该物料所有事务处理的总和不符,究其原因,应该是物料事务处理的时候,发料事务处理等出库操作未扣减现有量表中的数据,导致两边数量 不一致,具体原因还不清楚,现只能做data-fix,发现一笔解决一笔。一般情况是系统漏扣数量,因此做数据修复一般是删除和更新 inv.mtl_onhand_quantities_detail表中对应数据即可。
Script:
Delete from inv.mtl_onhand_quantities_detail moq
         Where moq.inventory_item_id =***
            And moq.organization_id =****
            And moq.subinventory_code ='*****'
            And moq.creation_date <= Sysdate
            and moq.TRANSACTION_QUANTITY=***
            and moq.onhand_quantities_id=17894817   -- moq最近的一个发生过变动的记录或最近一个产生的记录

   Update mtl_onhand_quantities_detail moq
Set moq.primary_transaction_quantity=***
,moq.transaction_quantity=***
Where moq.organization_id=***
And moq.inventory_item_id=****
And moq.subinventory_code='***'
And moq.onhand_quantities_id= ---对应的onhand_quantities_id

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12835335/viewspace-239030/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12835335/viewspace-239030/

最后

以上就是真实钢铁侠为你收集整理的库存讲解一二的全部内容,希望文章能够帮你解决库存讲解一二所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部