今天通过修改Oracle 数据库解决的一个ERP不能打出验收单问题.

来源:互联网 发布:淘宝卖家中心新的网页 编辑:程序博客网 时间:2024/04/27 23:46

/*
  
采购要打印验收单,但是在PR,PO , 验收单上都没有输入ITEM!
  
过程是从P R 改起, 共改3 ,最终解决问题.
*/

 

select *
from po_headers_all
where segment1=20600172;

 

select *
from po_requisition_headers_all
where creation_date>to_date('2006-01-01','yyyy-mm-dd');

 

select *
from PO_requisition_headers_all
where segment1=10501804 ;
--
先找到和点收单,PO的请购单

 

--查找到请购单的Id

 

select requisition_header_id
from po_requisition_headers_all
 where segment1=10501804

 

--96570

 

--update PR
update po_requisition_lines_all
set item_id=51132
where requisition_header_id=96570;

 

--view update
select  item_id
from po_requisition_lines_all
where requisition_header_id=96570;

 

--commit
commit;

 


--
同上,查找出?P0
select po_header_id
from po_headers_all
where segment1=20600172
--66397

 

select item_id, po_line_id,po_lines_all.*
from po_lines_all
where po_header_id=66397;
--item_id
果然为空

 

--下面有一个触发,防止更新item_id!
update po_lines_all
set item_id=51132
where po_header_id=66397
--
如果有的话,用下面的语句update
update po_lines_all
set over_tolerance_error_flag='reject'
where po_header_id=66397
--
查看异动的时候发现用了验收单用了RCV_SHIPMENT_LINES (根据erp 界面查table而来)
select ITEM_ID
from RCV_SHIPMENT_LINES
where po_header_id=66397
--COMMIT
commit;
--
还是没有,验收单上
update RCV_shipment_lines
set item_id=51132
where po_header_id=66397
  
   --
后来再update 一次验收单,终于可以了

 

--pr 行和pr 头的区别, PO 行和头的区别,一般都是通过头找到行进行修改.

--还要好好研究一下pr转po的时候,数据库到底怎样设立了标记

--知道一个po, 如何去找pr?

--研究来研究去在头晕的时候同时仰慕oracle 的伟大

感觉有不少收获,如果前两个月前我看到这些代码,这么多table和view ,各table之间的关系我会觉得是天书一样.尽管现在写起来也不那么顺畅,但是,我可以不怕那上百行的sql 建表/view语句了.

有的时候总是能感觉到oracle 在数据库方面的伟大,一种永远你只会和他学习而不会超越他的伟大,就像巨人microsoft一样,绝大多数程序员的工作都是站在巨人的肩膀上进行.

还有一个星期要过年了,这边oracle已经是持续进步了,那边.net的sql server 又出现了"sql server 不存在或访问被拒绝"的错误,我研究了两个晚上,依然没有结果.我今天去微软找了此方面的资料和sql server 2000 sp4.如果解决不好,这个年又在烦恼中度过.

原创粉丝点击