浪潮软件维护技巧.docx
《浪潮软件维护技巧.docx》由会员分享,可在线阅读,更多相关《浪潮软件维护技巧.docx(22页珍藏版)》请在冰豆网上搜索。
浪潮软件维护技巧
ERP运行维护
培训内容
•第一部分运行维护方法•第二部分案例分析
•第三部分维护基础知识
第一部分
运行维护方法
1.识别问题现象
•当问题现象发生时,正在运行什么(即操作者正在对电脑进行什么操作)?
•这个操作以前的运行是否正常?
•这个操作最后一次成功运行是什么时候?
•从那时起,哪些情况发生了改变?
带着疑问了解问题,才能对症下药、排除问题。
2.对问题现象进行详细描述
在排除问题前,可以按以下步骤执行:
•收集有关问题现象的信息;
•对题现象进行详细描述,注意细节;
•把所有的问题都记下来;
•不要匆忙下结论。
3.列举可能导致错误的原因
•考虑导致问题原因可能有哪些,如软件安装环境、操作失误、补丁冲突等。
注意:
不要着急下结论,根据出错可能性把原因按优先级别进行排序,一个个先后排除。
4.缩小搜索范围
•先环境,后软件
•先服务器,后客户端
•先软件,后数据库
•要多角度,多方面排查
•先易后难,先点后面
5.隔离错误
•确定问题的性质
•要有操作人员参与,多交流
注意:
做任何操作之前,一定要做到先备份数据后解决问题。
6.问题分析
处理完问题后,还必须搞清楚:
•问题是如何发生的?
•是什么原因导致了问题的发生?
•以后如何避免类似问题的发生
拟定相应的对策,采取必要的措施。
解决问题的总思路
•运行环境问题还是程序数据问题?
•问题是否可以再现?
•分析问题
•解决问题
•预防措施
第二部分
案例分析
•一.财务
•二.供应链
•三.数据库
•一.基本财务
1.环境配置口令忘记
问题原因:
环境配置默认是没有口令的,设置上口令必须输入口令才能登录。
解决方案:
•方法一、把程序文件夹下的LSCW.INI文件删除,然后重新进行环境配置。
•方法二、打开程序文件夹下的LSCW.INI文件,把‘PASSWORD=’后面的内容删除
[CONFIG]
PASSWORD=……
案例分析:
•环境配置的帐套配置信息都存放在LSCW.INI这个配置文件中,而这个文件是存放在软件的安装目录下的。
一个程序版本对应一个配置文件,而同一个程序版本无论设置多少套帐都放在同一个配置文件中。
知道这个原理以后,关于配置文件的灵活应用做一下简单介绍:
•例一:
某客户重装机器或更换机器后,通常情况下重新安装软件以后需要到环境配置中将以前的数据库进行连接软件才能使用,但此客户设置帐套很多,每套帐都需要配置,工作量很大,且很难和原来完全一样。
这个问题如果通过变通实现就可以很方便的解决。
只要把原先配制好的LSCW.INI文件保存一份,安装好机器后,用原配制好的LSCW.INI文件覆盖新LSCW.INI文件即可。
•例二:
某客户一个机器上同时安装了PS6.2和PS8.0两个版本的软件.这样就会有一个问题,当用户第一次进入PS6.2版本的软件时没有问题,当用户进入PS8.0以后再进入PS6.2时软件时就会提示版本不一致的错误,到环境中检查配置信息时发现数据库已变成PS8.0的数据库。
通常情况下,如果客户在一个机器上安装了两个版本时,每次进入时都需要先到环境配置中修改一下数据库才能正常进入,这样就有些麻烦,并且如果是维护人员一般机器上需要安装所有的产品,如果每次也需要来回修改的话,对工作实在造成不便,下面介绍一个办法就可以很好的以上问题。
还是上面的描述为例,首先在PS6.2版本的环境配置里设置两个连接信息,第一套帐为PS6.2,第二套帐为PS8.0,然后把PS6.2程序下的LSCW.INI复制到PS8.0的安装目录下覆盖原来的LSCW,INI文件即可。
2.运行软件,提示“授权信息不正确,请与供应商联系!
”
问题原因:
软件可以免费试用2个月,超过2个月以后,系统就会通过序列号或加密狗来检证你是否为正版的合法用户,如果输入错误,那么系统就有提示“授仅信息输入不正确”
解决方案:
目前P系列软件的加密方式有两种。
•对于序列号授权:
软件同时判断使用期限、单位名称、模块、授权用户数、序列号5个方面•对于加密狗授权:
软件只判断使用期限、模块、授权用户数3个方面。
注意:
序列号与加密狗不同的是通加加密狗控制的用户单位名称可以修改,并且序列号一栏一定要空着不填。
案例分析:
•正常情况下只要序列号等授权信息录入正确,系统应该能够正常运行。
但是,有的单位序列号等信息录入正确,运行软件时却提示授权信息不正确,有的每个模块都不能进入,提示站点数有问题。
凡是出现这种情况的,目前发现的原因都是因为人为手工修改了LSCONF表,导致LSCONF表内容与该版本软件安装时的LSCONF表内容不一致。
下面是在软件中输入的授权信息在LSOCNF表中的存放。
CW_CONF14站点数
CW_CDKEY
使用模块
CW_SYDWMC使用单位名称
CW_CONF10序列号
3.凭证保存提示索引不唯一
产生原因:
LSNBBM表中LSNBBM_DQNM的数值与ZWPZK中ZWPZK_PZNM的最大值不一致,当输入凭证时,新的内码(即原有内码+1)在ZWPZK中ZWPZK_PZNM中已经存在.
解决方案:
•查询ZWPZK中ZWPZK_PZNM的最大值
selectmax(convert(int,ZWPZK_PZNM))fromZWPZK
•将LSNBBM中LSNBBM_DQNM改为ZWPZK中ZWPZK_PZNM的最大值.
updateLSNBBMsetLSNBBM_DQNM=''
whereLSNBBM_NMBH='ZWPZNM'
案例分析:
LSNBBM是存放当前最大流水号的一张表,当凭证保存或单据保存时提示插入重复值时,最先考虑的就是LSNBBM这个表中的当前最大内码与当前存放单据的表的最大内码数不一致导致,一般我们解决思路是:
•首先:
查找最大流水号,语法可以套用
selectmax(convert(int,字段号))from表名;
•第二:
察看lsnbbm相应流水号
select*fromlsnbbmwherelsnbbm_xtbh=''ANDLSNBBM_NMBH=''(引号中的内容根据提示涉及到的表找到相对应的记录输入)
•第三步:
修改流水号
4.导入科目提示科目重复
产生原因:
导出文件中存在重复的记录。
解决方案:
•先删除唯一索引
DROPINDEXZWKMZD.ZWKMZD
•到科目设置中用科目导入功能导入科目
•查询重复的科目
SELECTZWKMZD_KMBH,ZWKMZD_JSFROMZWKMZDGROUPBYZWKMZD_KMBH,ZWKMZD_JSHAVINGCOUNT(*)>1
•删除重复科目,手工增加
•将索引重建
•问题OK
案例分析:
这个问题,可以有两点收获:
•第一点:
要会处理在软件操作或数据库插入提示有重复记录这一类问题时,如何用SQL语句将重复记录统计出来。
•第二点:
学会这种解决方案的思路
5.查询帐页提示没有检索到格式
问题原因:
LSTIGS表中没有相应的格式记录。
解决方案:
•方案一、用SQL语句将运行正常的帐套所涉及的表的记录导出,到有问题的帐套中将记录导入。
•方案二、将提示信息例如“id='wyem_km_j'andf_gsbh='0003'”在搜索-文件及文件夹-包含文字中输入,锁定文件名为FZBULDL1.SQL,然后到数据库中执行即可。
案例分析:
查询其他帐页的时候也会出现类似的提示,当遇到提示:
没有检索到***格式,请检查:
Id=***、GsBh=***的错误时我们都可以根据提示的信息找到相应的建库SQL脚本执行之。
或用导表的方式从其他正常的帐套中将查询帐页格式涉及的表导入。
查询帐页格式涉及表有:
LSZBGS
LSTIGS
LSOTGS
6.关于帐务月结、年结
•月结:
月末结转就是把本月的数据进行封存,并且将财务日期自动置为下一会计期间的日期。
•年结:
如果当前会计月份是本会计年度的最后一个会计月份,系统还将进行年末的工作,进行年末结转时,系统将备份本年度数据,并结转至下一年。
•反月结:
可以通过维护工具中的帐务反月结功能;工资,固定资产模块提供了反月结功能。
•反年结:
目前软件无法支持。
案例分析:
•在维护过程中,经常有用户在已经月结甚至是年结的情况下,还需要修改以前月份或年份的业务。
虽然反月结很简单,可以通过维护工具进行处理,但反复操作可能会导致数据紊乱,所以建议可以每个月只做业务处理,等超过24个月以后再进行月末结转。
对于已经年结的业务软件是无法取消年结的,所以在年结之前一定要建议用户将数据先做个备份,一旦发现年结以后想数据还可以恢复。
7.报表模块无法正常登录
产生原因:
一般都是BDE问题或是需要重表注册组件。
解决方案:
•报表登录问题还是比较多的,下面将报表登录最为常见的一些问题做一下总结。
由BDE引起的错误
•登录报表时提示“第一次连接数据失败,用户密码或口令错误”?
重新安装BDE
•登录报表时提示“Functionnotfound”?
重新安装BDE
具体操作:
首先在“开始-搜索-文件及文件夹”中输入BDE,然后将查询到的BDE文件夹删除或重命名,再到软件的安装目录下运行SETUP.EXE即可。
由需要重新注册控件引起的错误
•运行报表时提示“找不到指定模块”?
注册dbclient.dll、stdvcl40.dll组件
•登陆的时候提示isbound错误?
注册oleaut32.dll组件。
•打开具体一张报表的时候提示类没有注册?
注册ttf16.ocx
•进入报表时提示:
“应用程序服务器版本不一致,需要安装安装目录下的SETUP.EXE文件件”?
注册DBCLIENT.DLL文件
•打开报表管理时提示:
连接应用程序服务器时出错,初始化客户端失败!
先注册dbclient.dll不能解决时,再注册oleaat32.dll
案例分析:
•注册组件也可以通过报表优化工具中的注册控件功能来操作。
•如果通过注册表注册时要注意9.0以前的版本注册组件TTF16.OCX时要在其前面加软件的安装目录的,因为之前的版本该组件是放在安装目录下的。
例如有一个8.0的报表安装目录为C:
\genersoft\8.0,登录时提示类没有注册,根据提示我们需要注册一下TTF16.OCX,具体操作为:
到“开始-运行-打开”空白中输入“Regsvr32C:
\genersoft\8.0\ttf16.ocx”后按确定,出现“DllRegisterServerindbclient.dllsucceeded”后,我们再运行报表时,问题OK.
•同理,在注册组件之前可以先查找一下,如果发现该组件是在安装目录下的,注册时都需要加软件的安装目录,而在SYSTEM32下的,可能直接输入组件名就行。
8.固定资产年度结转备份提示
"invalidcolumnnameGDZCBF_JZZB"
问题原因:
数据库表GDZCBF缺少了GDZCBF_JZZB这一列
解决方案:
•直接在GDZCBF这个表中插入一列,语句为
altertableGDZCBFaddGDZCBF_JZZBu001null
案列分析:
•我们在维护的过程中,经常会处理象软件在操作过程中提示***无效,或者invalidcolumn***这样的问题,出现这种提示一般是数据库缺少提示的相应的字段,增加上即可。
导致这个问题的原因一般情况是升级造成的。
•如何增加一列的语法:
Altertable表名add字段名
数据类型
null
9.工资计算提示错误
产生原因:
不同的提示,原因也是不一样的,下面根据具体的提示分析每个问题的问题所在。
•工资录入完毕,点计算时,出现错误提示,提示无效的行或列?
解决方案:
检查用户是否把实发合计、收入合计、应交税金、零头等系统项目封存了,系统项目不能封存。
•点计算后,部分员工的实发合计,收入合计,应交税金等计算不出来,是什么原因?
解决方案:
由于部分员工的GZBASE_SYF列的值不是‘Y’,或者GZJGZD_FCBZ列的值不是‘0’。
•有时客户定义了工龄公式,但在工资录入界面计算不出工龄或计算时出错提示数据类型不匹配?
解决方案:
可能是用户定义的入职日期或入场时间等定义成了字符型的,应将其定义为日期型的,然后定义工龄,就可以定义为当前业务日期-入职日期或入场时间等.
案例分析:
•以上只是举例了工资录入提示错误的几个比较常见的问题,在维护的过程中,可能遇到的问
题远远不至这些,那么我们应该如何着手来处理呢?
比如工资录入完毕以后,只提示公式错误,怎么办呢?
我们首选应该检查初始-工资项目中的计算公式,如果看不出错误,可以在系统设置中选择工资项目计算时选择工资项目。
这样点击计算按钮的时候,系统会弹出对话框,让你选择需要计算的项目,比较容易发现问题。
10.银行对帐涉及的表
•ZWDZZH对帐帐户:
存放各帐户的银行当前余额和单位当前余额等;
•ZWRJZD日记帐:
存放从凭证转入的日记帐及初始时的未达日记帐;
•ZWYHZD对帐单:
存放手工录入的对帐单及初始时的未达对帐单;
•ZWYHJG对帐单结构:
存放对帐单自动读取时所定义的外部文件的结构;
基本步骤:
•对账初始化
•录入对账单
•银行对账(定义对账条件,转入日记账、自动对符)
•清除相对相符分录
•形成余额调整表
常见问题
•银行对账窗口中的银行账单前余额与银行账户的余额不符?
查看录入对账单时是否有遗漏或重复录入。
•不能转入日记账记录,或者只能转入其中一部分是什么原因?
一般是银行对帐启用日期到转入日记账日期之间没有凭证或凭证没有记账,要保证转入日期设置正确,凭证记帐才能正确转入。
•9.0版本的银行对帐与9.0之前的对比。
☆9.0版本中,已清除的对帐分录不再放在ZWRJQC和ZWDZQC表ZWRJZD和ZWYHZD,以QCBZ(清除标志)字段来做区分。
中,而是放在
☆9.0版本中,ZWDZZH表中多了CSDWYE和CSYHYE两个字段,余额调节表中的银行当前余额和单位当前余额取数并不是DWYE和YHYE字段,而是用初始单位余额和初始银行余额加减启用以来所有的分录金额计算出来的
11.往来核销涉及的表
•ZWHXYJ帐务核销依据
•ZWWLDJ往来对帐单据:
往来单据初始功能录入各个往来单位的单据信息,使初始的单据和帐务中的单位余额相等,可以读入余额信息。
影响表ZWWLDJ(往来对帐单据)。
•ZWHXJL已核销记录:
往来业务核销,读入单位账(>初始日期and凭证已记帐)对选择科目和单位的发生数的借方和贷方进行核销。
核销记录存放在ZWHXJL(核销记录)。
•ZWWLQY往来帐启用记录:
往来单据校验校验初始的单据和单位余额。
影响表ZWWLQY(往来帐启用记录)。
基本步骤:
•往来单据初始
•往来单据校验
•定义单位核销依据
•往来核销(转入单位日记账,自动对符)
•核销相对相符分录
常见问题
•新建的单位无法进行往来核销?
检查该单位和往来科目是否校验通过。
(如果是新增科目需要查看是否设置核销依据)•为什么对符的记录不能核销?
看该记录是否满足核销依据,可以适当修改核销依据后,再次核销。
•完全核销后,往来核销中的余额和单位余额表中的不一致?
查看是否存在未转入的记录,由校验日期开始再次读取往来凭证。
•账龄分析的结果和单位余额表中的不一致?
检查账龄分析的分析时间是否和单位余额表的查询时间一致?
账龄分析的分析区间是否连续?
是否把所有的往来凭证都读入了,且是否完全核销?
账龄分析是按照业务日期分析的,是否存在业务日期和凭证日期不在同一个会计期间的往来凭证?
•二.进销存
1.入库单帐前、帐后查询不到
•首先检查单据日期是否在查询日期范围之内。
•检查是否记存货帐。
只记了库存帐,不记存货帐,采购入库单在帐后还能查询到,如果库存
帐,存货帐都记了,那么在采购库单的帐前,帐后都是看不到的。
•检查是否已经和采购发票核销过。
如果核准销过在帐前帐后也是看不到的,如果想查询到,
可以取消核销。
案例分析:
•在进销存中,经常会遇到象单据在帐前,帐后都看不到的情况,我们都可以通过这些方法去
排查原因,并且这些方法都可以通过原始单据查询来查看,而不必操作数据库。
2.销售出库单参照某提货单提示
已经被参照
产生原因:
该提货单以前生成过出库后,后又删除了,但标志未改过来
解决方案:
找到该单据涉到的表XSTDMX,将该单据反对应的XSTDMX_CKSL改为
0,XSTDMX_CKBZ改为未完成出库状态即可。
语句:
UPDATEXSTDMXSETXSTDMX_CKSL=0WHEREXSTD_TDLS=’’(从XSTD中查询该单据所对应的流水号)
UPDATEXSTDMXSETXSTDMX_CKBZ=“0”WHEREXSTD_TDLS=’’(从XSTD中查询该单据所对应的流水号)
案例分析:
•这是与单据有关的比较常见的问题,例如其他单据都正常,只有各别单据无法参照或者无法
出库或者查询不到。
象这种情况一般都是该单据进行过反复倒记帐或反复出库导致的数据问题。
我们解决这类问题的思路一般是将此单据与正常单据在数据库中对照,看看值有何不同,将其修改正确即可。
3.存货明细账与余额帐不平
产生原因:
余额表中的数量不对
解决方案:
修改kcckye表中字段kcckye_dslj,kcckye_jslj,kcckye_jfsl,kcckye_dfsl,kcckye_slye数据,使其与明细帐一致
案例分析:
•存货余额存放在表KCWLYE中,库存余额存放在表KCCKYE中,而明细帐都是从单据上
归集的,知道这个原理以后,我们遇到问题后就可以灵活处理。
如果余额帐与明细帐不符,一般都是以明细帐为准,修改余额帐。
如果是库存帐与存货帐不符,那要先确定是库存帐正确还是存货帐正确,是只有个别物料不符,还是大部份不符,假如是只有个别物料的存货余额帐不符,那么我们可以直接对KCWLYE这个表进行修改。
如果是大部分物料的存货余额帐都不对,那么直接对KCWLYE修改工作量就太大了,我们可以直接用KCCKYE这个表中的正确的值来替换KCWLYE。
•由于帐不平的问题时常发生,所以在PS8.0以后的版本中,开发中提供了调整工具,我们可
以用调整工具来处理这类帐不平的问题,避免了对数据库的操作。
•三.数据库
1.如何连接数据库?
•单机版:
单机版支持的数据库有sybasesqlanywhere5.5.03,ASA7,ASA9.其中ASA7和ASA9数据库即可以做单机版,也可以做网络版
•网络版:
网络版目前主要支持的数据库有SYBASE,SQLSERVER,ORACLE。
案例分析:
•做为维护人员,在给用户解决问题的时候,能变通实现或通过工具来解决的尽量避免从后台数据库操作,毕竟后台操作是比较危险的。
如果确实不能避免,我们一定要在操作数据库之前做个数据库备份,如果一但操作失误,可以再恢复。
在执行SQL语句语句时,特别象update,delete,写条件时,先写一个条件一样的select语句,看看显示的结果,是否是需要的。
2.影响速度最常见的几种原因
问题原因及方案:
•SYBASESQLSERVER的内存变量配置太小。
•可用硬盘空间太小
•数据库中的索引问题。
•服务器上的服务不要起的太多。
尤其是有人直接在服务器上工作,更能够影响速度。
案例分析
•影响速度的因素有很多,不能一概而论。
有的可能是网络环境问题,有的可能是服务器配置过低,有的可能是没有对数据库进行优化。
也有的可能是索引问题等等。
那么如何来判断呢?
一般情况下,如果整个网络运行都很慢,比如说复制个文件都很慢,那就要考虑可能是网络环境问题;如果网络运行速度不慢,只有运行软件很慢,那就要考虑是不是服务器配置过低?
数据库是否需要扩充?
日志是否需要清楚?
SYBASE数据库还要考虑内存是否配置合理等。
如果是软件整个运行还可以,就某个功能点运行速度慢,那一般就是索引的问题。
3.配置相同的个别机器运行速度慢
•一台机器慢,首先排除与数据库无关。
•从其他工作站上复制程序到本机,在考的过程中发现网络速度很快,考完后,试运行,还慢。
•有可能慢机器在启动时,启动了很多东西,而占用了太多的内存,经检查,没有。
•有可能机器上有病毒,影响了运行速度。
经检查没有
•有可能网络速度的影响,从B考文件时,可以知道速度不慢。
•有可能机器硬盘空间太少,经检查,空间足够用。
•有可能整个机器运行速度就慢,运行其他软件发现速度很快。
•由此可见,排除以上原因,慢的问题很可能与咱们的软件提供的动态数据库有关,试考了快机器上的windows\system下的compobj.dll,commtb32.dll,contab32.dll文件到慢机器上的相应目录下,运行,速度变快了。
案例分析:
•以上的解决方案用的是排除法,把各种可能性都列示出来,再逐步排除各种可能性,最终找出问题所在。
•以此类推,以后再遇到类似的问题,在一台工作站上运行有问题,而其他工作站运行正常时,用运行正常的工作站上的程序去覆盖有问题的那个工作站上的程序,一般问题都能解决。
4.软件登录提示错误或无响应
•数据库不同,产生的原因也是不一样的,下面分数据库介绍登录问题的一些最常见原因及解决方案:
SYBASE数据库。
1)、日志空间满了,在维护工具里清除日志或者在帐套管理中扩日志空间.
2)、数据库空间满了,通过帐套管理或SYBASE扩库
3)、临时库空间满了,在SYBASE中扩临时库
4)、服务器分给SYBASE的内存过小,在帐套管理中修改SYBASE的使用内存
5)、登录时提示ct_connect()时,一般是网络连接有问题,这时候需要检查sybase-dsedit中是否可以ping通
•sqlserver数据库登陆的时候提示SQLServer不存在或访问被拒绝
1)、SQLServer名称或IP地址拼写有误
2)、服务没有起来
3)、服务器端网络配置有误
4)、客户端网络配置有误
5)、是否1433端口被屏蔽,一般1433被屏蔽都是因为有防火墙造成的,可以关闭防火墙或者打开1433端口
oracle数据库登陆的时候提示ora-12154
•对于服务器,检查监听服务是否起来,一般是监听服务无法正常启动造成的,
•需要修改listner.ora,host=后面输入正确的服务器名,重新启动监听服务即可
•对于客户端
•首先检查网络是否畅通,