数据审计方法

手工采集财务数据常见错误排除之方法

浏览:

审计人员在审计过程中经常会遇到没有模板必须使用手工采集的财务数据,在导入财务数据科目表、科目余额表、凭证表这三张基础表时常会出现导入失败的问题。笔者发现此类问题原因通常有2类,一是数据类型转换出错,二是关键字段重复导入造成主键冲突。本文以凭证表导入举例,从错误提示下手,分析原因,给出了排除思路和解决方法。
一、数据类型转换出错
在手工导入凭证表时,提示:“导入凭证库失败,失败原因:插入数据到【凭证库】失败,详细信息请查看系统日志!” 如图1 所示:


图 1
通过AO2011 【系统管理】-【日志管理】 查看日志,错误提示为:“数据类型Varchar 转换为Numeric 时出错”,如图2所示:


图2
分析原因: “数据类型Varchar 转换为Numeric 时出错”,属于数据类型转换错误,指的是插入字符类型字段中有数值型字段导致无法转换。排查思路:将采集凭证库必须用到的字段逐一列出,从中找到字符型字段,查看该字段中是否存在数值。凭证库中必须用到字段有凭证日期、凭证流水号、凭证类型、借方发生额、贷方发生额、摘要、科目编码、分录序号。经查看表结构,只有摘要和凭证类型为字符型,如图3所示:


图3
运用SQL语句,分别查找摘要和凭证类型字段中是否存在数字开头的字段:
SELECT *  FROM [zfgjj].[dbo].[凭证表] where 摘要 like '[0-9]%'
SELECT *  FROM [zfgjj].[dbo].[凭证表] where 凭证类型 like '[0-9]%'
经查找发现摘要中存在数字,凭证类型字段中没有,如图4所示:


图4
解决方法:运用SQL语句将摘要中以‘0’开头的字段, 将‘0’替换为汉字‘零’,再重新采集后导入成功。
update 凭证表年度 set 摘要=replace(摘要,0,'零') where 摘要 like '0%'
二、关键字段重复导入造成主键冲突日子错误提示为:“违反了PRIMARY KEY 约束” 如图5所示:


图5
分析原因:“违反了PRIMARY KEY 约束”,指的是主键中有重复值插入时产生冲突。排查思路,凭证库中作为主键的字段是“分录序号”字段,可能分录序号字段中有重复,笔者在打开凭证库看到“分录序号”确实不是唯一值,如图6所示:


图6
解决办法:在导入凭证库是,选择自动生成分录序号,或者使用源凭证库中多个字段组合生成,使其字段值具备唯一性,如图7所示:


图7
三、小结审计人员要学会运用日志管理来查找原因,根据日志提示确定排查的思路,常见错误涉及的字段是凭证日期、分录序号和摘要,可以先从这几个常见字段着手,如果从SQL中还是无法导入,可导出到Excel中再导入AO。(卢佳)