大胆猜测不可少 去除干扰很重要——巧妙处理久其数据 成功导入AO
崔瑞瑞(河南省审计厅)
【发布时间:2011年09月29日】
字号:【大】 【中】 【小】
摘要:数据采集转换是使用AO进行审计分析的前提和重要环节,采集转换中的异常处理是这个环节的关键技术。本文对久其财务软件数据不能使用模板导入AO,及科目期初余额不能正确对应的异常,对软件后台的数据结构和字段类型进行了深入分析,利用sql语句进行了数据整理和规范,成功采集了久其软件的数据。同时,本方法对其他财务核算软件数据导入AO时,出现类似错误的处理和纠错也具有借鉴和推广价值。
       关键词:数据分析  sql  久其

AO软件在全国各级审计机关已基本普及,作为审计人员实施审计的必备工具,数据采集转换是使用AO进行审计分析的前提和重要环节,采集中的出错处理和异常纠错对不少审计人员来说是一大难题。笔者对久其财务软件数据无法使用模板导入AO及导入后出现科目期初余额不能正确对应的异常,对软件后台的数据结构和字段类型进行了深入分析,利用sql语句进行了数据整理和规范,成功采集了久其软件的数据。下面,是对如何采集久其财务数据、转换数据和出错处理的解决方法和技巧。
一、采集数据,毕其功于一役
在对某单位领导进行经济责任审计中,使用AO2008系统对财务软件的电子数据进行了采集、清理、转换和分析。
该单位使用的财务软件为久其97VA5.0版本,后台数据库是sql server2000,财务软件备份文件格式为“*.jbk”,可以直接在sql server中恢复,故只需采集财务软件备份数据即可满足多种数据转换方法的需要。
二、模板导入提示错误,需要分析数据结构
为了节省审计时间,审计人员首选使用AO提供的880号“久其财务管理系统v4.5sql server备份数据”模板进行数据导入,然而,导入不成功,提示“数据类型不匹配”,审计人员必须使用第二种方法,手工制作模板导入。
如果要手工制作模板,审计人员必须首先分析财务数据,了解有几张关键表以及表结构和表间关系。审计人员把财务软件备份数据直接恢复到本机的sql server2005系统中,经过分析,四张关键表及数据元素如下:

序号

数据资料名称

结构化

非结构化

半结构化

1

JC_KM(科目表)

2

ZW_Kmzd(科目余额表)

3

ZW_Acctvchr(凭证主表)

4

ZW_AcctvchrItem(凭证辅表)


(1)原始表:JC_KM(科目表)。数据元素:StdCode(科目代码),StdName(科目名称),ZTYear(会计年度),YEOrient(借贷方向),RwID(科目编号)。
(2)原始表:ZW_Kmzd(科目余额表)。数据元素:RwID(科目编号),ZTYear(会计年度),KM_NC(月初余额),PzPeriod(月份),KM_JF(月借方发生额),KM_DF(月贷方发生额)。
(3)原始表:ZW_Acctvchr(凭证主表)。数据元素:ZTYear(会计期间),VchrDate(凭证日期),Number(凭证号)-作为流水号导入, RwID(凭证流水号)-关联字段。
(4)原始表:ZW_AcctvchrItem(凭证辅表)。数据元素:ZTYear(会计期间), RwID(科目编号),Digest(摘要),Debit(借方金额),Credit(贷方金额),pzly(凭证类型),MstrID(凭证流水号)-关联字段。
需要注意的是,审计人员获取的备份文件包含建账以来所有年度的数据,每个关键表中都有一个ZTYear字段来标志会计年度,需要在导入时进行字段对应。
需要对关键表的部分字段进行处理,才能导入AO。处理过程如下:
1. 对科目表的处理:由于多年度会计科目没有发生变化,所以对科目表无需处理,直接导入。
2. 对科目余额表的处理:
由于ZW_Kmzd(科目余额表)中没有科目编码和余额借贷方向字段,而导入AO时必须选择这两个字段,所以需要新增“StdCode”(科目编码)和“YEOrient”(余额借贷方向)字段,并关联到JC_KM(科目表)为其赋值。处理语句如下:
 alter table ZW_KMZD add StdCode varchar(50)
go
 update ZW_KMZD  set StdCode=b.StdCode
 from ZW_KMZD  a  join  JC_KM  b on  a.kmID=b.RwID
go
 alter table ZW_KMZD add YEOrient smallint
go
 update ZW_KMZD  set YEOrient=b.YEOrient
 from ZW_KMZD  a  join  JC_KM  b on  a.kmID=b.RwID
go
(三)对凭证主表的处理:对凭证主表无需处理。
(四)对凭证辅表的处理:
由于ZW_AcctvchrItem(凭证辅表)中没有科目编码字段,所以需要新增一个“StdCode”( 科目编码)字段,并关联到JC_KM(科目表)为其赋值。
alter table ZW_AcctVchrItem add StdCode varchar(50)
go
update ZW_AcctVchrItem  set StdCode=b.StdCode
from ZW_AcctVchrItem a  join  JC_KM b on  a.kmID=b.RwID
go
三、期初余额有出入,多次导入均不同
导入时选择ZW_Acctvchr(凭证主表)的RwID(凭证流水号)字段与ZW_AcctvchrItem(凭证辅表)的MstrID(凭证流水号)字段作为两表的关联字段,数据导入顺利完成,但在做“账表重建”步骤时,打开“科目余额调整”发现科目余额表为空,不理会AO提示的错误,直接“账表重建”,发现科目的期初余额与纸质账有部分出入。
 例如,102银行存款科目的期初余额为1034909.38,而导入AO后期初余额为5022236.37,如图1所示。


图1. 年初科目余额对应有误
审计人员分析原因,由于AO导入后借方发生额和贷方发生额是正确的,考虑可能是导入科目余额表时期初余额字段对应错误。
审计人员回顾了科目余额表的导入过程,科目余额表存储12个月的月初余额、本月借方发生额、本月贷方发生额,审计人员在导入时,年初余额选择月份为1时的月初余额(KM_NC)字段。
理论上来讲,这样导入不会出现问题,但审计人员经过多次尝试,导入选项相同,但导入结果的期初余额每次都不尽相同。
四、大胆猜测不可少,排除干扰很重要
审计人员考虑可能是由于字段类型的原因,导致AO无法选择正确的值对应,故而出现错误,故考虑人为排除干扰,对科目余额表进行处理,将月份值为1的记录(即代表科目年初余额的记录)提取出来重新生成一张新表进行导入。
处理语句如下:
select * into [ZW_KMZDnew] from [ZW_KMZD]
where PzPeriod=1
单独导入科目余额表,在“科目余额调整”中看到科目余额表已经成功对应,如下图2。

图2. 期初余额正确对应

账表重建成功,数据正确导入AO。

五、结语
审计工作中,审计人员面对的是不同的审计对象,涉及通用的或者个性的财务系统或者业务系统,经常需要手工制作模版导入数据,这就要求审计人员必须具备数据分析的能力,同时审计人员也要掌握sql语言的基本知识,以便处理形态各异的数据,将其规范后导入AO。
同时,对数据的采集、清理和转换过程进行总结,也是审计人员的一种良好的工作习惯,一是对自己的工作有一记录,二是也可供其他审计人员遇到类似问题时做一借鉴。(崔瑞瑞)

参考文献:
[1]《计算机审计数据采集与分析技术》,董化礼 刘汝焯,清华大学出版社
[2]《会计信息系统与审计》,乔鹏 李湘蓉,清华大学出版社
【关闭】    【打印】