U6维护案例分析
近来比较忙,没有多少时间照看版块,都感觉有点对不住大家,今天稍微空闲了,于是静下心来与大家分享一下软件日常运用上遇见的问题!闲话少说了,我就用今天碰到的一起软件运行故障来与大家分享.系统环境:Windows 2003 +SP2 SQL 2000 +SP4 U6 3.2 Plus1+最新补丁
用友部署:U6一体化应用
故障现象描述:库存管理中填制调拨单时出现错误提示:调拨单加载出错,稍后再试.初始化出现错误:无法获取单据模板号.如下图:
从报错提示上看,我们的首先反应是调拨单显示模板有问题了!先开库查看下模板库!
没有问题,模板库很正常!既然模板库正常,那只能说明问题出在其他地方了,跟踪一下吧,打开事件探查器,运行并跟踪,如下图:
筛选出与调拨单有关的语句,放到查询分析器中执行下.
! w6 d) ~2 Q' |
现在大家看出问题来了吧!
Selectmax (ID) From TransM 过滤出最大调拨单ID号 19
Select *,'' as editprop From TransM WhereID= '19'
Select *,'' as editprop From TransD Where ID = 19 这两句过滤出 Id=19 的调拨单明细 注意看:Vt_id=0
Select VT_TemplateMode From VoucherTemplates Where VT_ID='0'过滤模板库中并没有Vt_id=0的模板!
SELECT DISTINCT VT_ID,VT_Name FROM VoucherTemplates WHERE (VT_CardNumber = '0304') AND (VT_TemplateMode = 0)正常的模板Id应该是89
哈哈,马上开库TransM(为什么开这个库?没有看见上面第一条语句......),看里面数据!
看见了吧,ID=19的单据里面,模板ID为0,显然是错误的了,改为正常的89(就是语句SELECT DISTINCT VT_ID,VT_Name FROM VoucherTemplates WHERE (VT_CardNumber = '0304') AND (VT_TemplateMode = 0) 过滤出来的数据).
回到操作界面,再点击调拨单,正常了,也能增加调拨单了!
OK,问题这这样解决了,是不是很简单呀!在日常维护过程中,其实我们只要做到多观察,大胆推测,小心求证,充分利用SQL本身提供的事件探查器和查询分析器,大多数运行故障都能做到迎刃而解的!
抛砖引玉,希望更多的爱好者做出更多更好的案例! 真是难得给力的帖子啊。
页:
[1]