[转帖]U6维护案例分析

2013-1-31 23:50:47正常, Windows, Windows
57481
      近来比较忙,没有多少时间照看版块,都感觉有点对不住大家,今天稍微空闲了,于是静下心来与大家分享一下软件日常运用上遇见的问题!闲话少说了,我就用今天碰到的一起软件运行故障来与大家分享.
      系统环境:Windows 2003 +SP2    SQL 2000 +SP4   U6 3.2 Plus1+最新补丁
        用友部署:U6一体化应用

        故障现象描述:库存管理中填制调拨单时出现错误提示:调拨单加载出错,稍后再试.初始化出现错误:无法获取单据模板号.如下图:

        从报错提示上看,我们的首先反应是调拨单显示模板有问题了!先开库查看下模板库!

        没有问题,模板库很正常!既然模板库正常,那只能说明问题出在其他地方了,跟踪一下吧,打开事件探查器,运行并跟踪,如下图:

        筛选出与调拨单有关的语句,放到查询分析器中执行下.

! w6 d) ~2 Q' |
现在大家看出问题来了吧!
Select  max (ID)   From TransM   过滤出最大调拨单ID号 19
Select *,'' as editprop From TransM Where  ID= '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本身提供的事件探查器和查询分析器,大多数运行故障都能做到迎刃而解的!
        抛砖引玉,希望更多的爱好者做出更多更好的案例!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
收藏
1 条回帖
cpder 管理员2013-1-31 23:57:41
真是难得给力的帖子啊。
需要登陆后才可进行回复 登录

返回顶部