欢迎来到天天文库
浏览记录
ID:9341836
大小:48.01 KB
页数:11页
时间:2018-04-28
《接收入库接口探索》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、接收入库是项目中会经常碰到的开发,这类开发一般来说比较简单,但是接收入库在oracle中其实涉及到很多模块,其中层次较多,也可以做得比较复杂。本文将尽可能深入细致地讨论接收入库的流程,种类,数据来源,数据的流动路径,以及各个数据点之间的对应关系。最后将给出一个较为全面的接收入库的样例代码。接收入库的种类接收入库可以按照数据来源分为2种:1.对于po订单以及发放的接收入库;2.对于内部请购单生成的salesorder(后面的部分简称so)的接收入库;接收入库还可以按照入库方式分为3种:1.直接入库:接收后自动入库;2.标准入库:先接收,后入库,分两个步骤;3.需要检验的接收入库:先接收,然
2、后检验,最后入库;对于这些不同类型的入库,程序的差别可能会很大。所以一个完整灵活可以应付所有接收入库的程序也是较为复杂的。数据流动我们将分析接收入库的数据来源,针对不同的接收入库类别,给出最常见实用的取数逻辑。最后我们将给出一个总体的数据流图,其中包含了各个数据点间的层次关系,帮助大家理解。其中涉及到的较为重要的表(我们忽略了一些显而易见的表,比如po_headers_all,po_line_locations_all等等):mtl_supply最重要的一张表,其中包括了所有可以接收入库的记录Rcv_transaction这张表的内容是已经接收入库的事物处理记录,在标准入库或检验入库的时
3、候,我们可能需要其中的接收信息。Rcv_shipment_headers发运头表Rcv_shipment_lines发运行表标准订单以及一揽子采购协议发放1.对于标准订单,当订单被approve之后,系统会在mtl_supply这张表中插入该订单相关的记录,系统默认为每一个订单分配行生成一条mtl_supply数据,其supply_type_code值为“PO”,表示物料供应的来源,目前是来自po订单。所以mtl_supply表中,对于标准订单以及一揽子发放,其数据层次是明细到分配行的,即根据distribution_id可以唯一确定一个mtl_supply行:SELECTpha.seg
4、ment1,pla.line_num,plla.shipment_num,pda.distribution_num,ms.supply_type_code,ms.quantityFROMmtl_supplyms,po_headers_allpha,po_lines_allpla,po_line_locations_allplla,po_distributions_allpdaWHEREms.po_distribution_id=pda.po_distribution_idANDms.supply_type_code='PO'ANDpha.po_header_id=pla.po_heade
5、r_idANDplla.po_header_id=pha.po_header_idANDplla.po_line_id=pla.po_line_idANDpda.line_location_id=plla.line_location_idANDpha.segment1='1000100'以上sql语句将筛选出订单编号为‘1000100’的订单可以接收的distribution行以及可以接收的数量。注意:在这个时候,rcv_shipmet_headers以及rcv_shipment_lines这两张表中还没有数据,这是po订单与内部请购单接收数据流中的一个较大的差异。造成这种差异的原因是:
6、对于po订单,其发运对象是外部供应商,系统无法控制以及检测外部供应商的发运动作,所以只能在做接收的时候,才能生成发运信息,在任何接收之前,系统是不知道任何发运数据的;而对于内部请购单生成的SalesOrder来说,发运对象是公司内部其它组织或ou,发运信息是在其他组织或OU做SO的发运时就产生了,而不必等到接收的时候才产生相应的发运信息。由于以上差异,在po订单做接收时,接口中不必提供shipment信息,而在po入库以及内部请购单生成的so接收的时候,则需要提供shipment信息。1.接下来,当我们为po订单做接收的时候,系统会生成相应的shipment信息,经过测试,每次接收会生成
7、一个新的shipment头,每个接收行会生成一个新的shipment行。所以,对于po接收,其接收的transactionid与发运行的shipmentlineid是一一对应的,在做po入库的时候,可以利用这一点,通过shipmentline找到可以入库的parenttransactionid。另外,对于po接收,其在发运行中的quantityreceived与quantityshipped字段的值总是一样的,因为发运记录是完全参照
此文档下载收益归作者所有