邮箱登录:
当前位置: 首页 &&
安徽审计信息网 > 首页栏目 > 经验交流 >
用友畅捷通G6财务管理软件数据导入AO2011方法
发布日期: 02:40&&
信息来源:
宣城市泾县审计局 董晓清
AO2011中无用友畅捷通G6财务管理软件数据采集模板,因此需要从被审计单位服务器后台采集数据库数据进行清理。处理步骤如下:通过分析后台数据得知需要采集的三张源数据表dbo.code、dbo.GL_accsum和dbo.GL_accvouch。1.生成会计科目表select * from dbo.codeselect distinct ccode,cccode_name from dbo.code分析源数据表中不存在重复的科目编码,执行以下语句生成新的科目表。select ccode 科目编码,ccode_name 科目名称,bproperty 方向into km2012 from dbo.code2.生成余额表select * from dbo.GL_accsum通过分析得知期初余额是按月存放且年初余额存放在会计期间为'1'内,执行以下语句生成余额表。select ccode 科目编码,cbegind_c 余额方向,mb 期初余额into ye2012& from dbo.GL_accsum& where iperiod='1'验证新生成余额表ye2012的平衡性,执行以下语句得知余额表是平衡的,可用。select * from ye2012select sum(qcye) from ye2012 where fx='借' and len(kmdm)=3select sum(qcye) from ye2012 where fx='贷' and len(kmdm)=33.生成凭证表通过分析后台各年度的数据得知,该数据自动备份是从记账开始时包含前一年度的账一起备份,采集数据时应注意会计数据的年度,此处去2012年数据。分析各字段的字符类型均符合AO2011的导入规则,故采用源字段的字符类型。select ccode 科目编码,dbill_date 凭证日期,cdigest 摘要,md 借方发生额,mc 贷方发生额,ino_id 凭证号 into pzk2012 from dbo.GL_accvouch& where YEAR(dbill_date)='2012'验证新凭证表的平衡性,得知借贷发生额不相等。select * from pzk2012select sum(jf),sum(df) from pzk2012 通过分析数据得知存在科目编码、摘要、凭证号等均为空的记录存在,询问该公司财务人员得知为调账数据,故删除之。delete from pzk2012 where pzh is null将此三张表通过AO2011采集财务软件数据库数据功能导入现场审计实施系统中。
***:1 传真:3 地址:合肥市屯溪路272号 邮编:230001 网站管理***:4
版权所有 安徽省审计厅 版权所有,未经书面授权禁止使用 建议使用IE6.0以上浏览器、分辨率800*600浏览
您好,您是第位来宾 备案号:皖ICP备号
微信公众号邮箱登录:
当前位置: 首页 &&
安徽审计信息网 > 首页栏目 > 经验交流 >
金蝶k3 Rise v12.2财务软件数据库数据导入AO2011的方法
发布日期: 11:33&&
信息来源:
滁州市审计局
近日,滁州市审计局开展了某医院负责人经济责任审计。被审计单位财务软件为金蝶,版本是k3 Rise v12.2,后台数据库是SQL Server 2000。审计人员在尝试将财务软件备份数据导入AO2011时,发现AO2011中没有此版本的采集转换模版,选择AO2011中与其相似的金蝶k3 v10转换模版也无法完成采集。因此,审计人员采用数据库数据采集的方法,通过对数据库数据进行查询、分析和整理,生成一套适合AO2011采集转换的中间表,并辅助导入制作了数据采集模版,解决了数据采集工作难题,使计算机辅助审计得以顺利开展。以下为审计人员分析转换过程,供审计同仁参考。
一.数据分析、整理
(一)首先取得将被审计单位提供的后台数据库备份文件(***.bak),打开SQL Server 2008 R2企业管理器,选择还原数据库→目标数据库命名→添加源设备文件→选择用于还原的数据库备份集→确定,进行数据库还原。
(二)通过对数据库中的所有表进行分析,审计人员确定了AO数据采集所需要的四张表,即dbo.t_Account(科目表)、dbo.t_Balance(余额表)、dbo.t_Voucher(凭证主表)、dbo.t_VoucherEntry(凭证子表),下面依次进行表的分析和整理。
1.表结构分析
(1)dbo.t_Account(科目表)
表中包含字段有:FAccountID 科目内码(关键字),FNumber 科目代码,FName 科目名称,FDetail 明细科目(1表示是最明细科目,0表示不是),FDC 借贷方向(1为借方,-1为贷方)。
(2)dbo.t_Balance(余额表)
表中包含字段有:FYear 会计年度,FPeriod 会计期间,FAccountID科目内码,FBeginBalance 期初余额(用正负表示借贷方向),FDetailID 核算项目使用内码,FCurrencyID& 币别内码。
(3)dbo.t_Voucher(凭证主表)
表中包含字段有:FDate 凭证日期,FPeriod 会计期间, FVoucherID 凭证内码(关键字),FNumber 凭证号, FExplanation 摘要。
(4)dbo.t_VoucherEntry(凭证子表)
表中包含字段有:FAccountID 科目内码,FDC 余额方向(1为借方,0为贷方),FVoucherID凭证内码(关键字),FEntryID 分录号(关键字),FExplanation 摘要,FDetailID 核算项目(0为不下设核算项目),FAmount 金额。
2.前期表整理
(1)科目表整理
经对科目表分析得知,①导入AO2011所需字段包括:科目内码、科目代码、科目名称、明细科目、借贷方向(1为借方,-1为贷方);②科目编码格式为4.2.2.2.2,编码中含区分级数的“.”,为不规则编码,而导入AO需要转换成规则编码,因此,审计人员将编码转换成42222格式。
1.1首先转换二级科目的科目编码
update dbo.t_Account set FNumber=left(FNumber,4)+RIGHT(FNumber,2) where len(FNumber)=7 and FLevel=2
执行语句后,提示“违反了 UNIQUE KEY 约束 'uk_Account'。不能在对象 'dbo.t_Account' 中插入重复键!”
通过对一级科目的科目编码进行查证,发现科目内码等于1358的科目,其科目代码为530203,与代码为5302.03的二级科目转换后的代码相同,且该代码在余额表中无发生额,余额为零。因此,需在科目表中删除此条代码,然后再执行上条SQL语句。
select distinct LEN(FNumber) from dbo.t_Account where FLevel=1
delete from dbo.t_Account where FAccountID=1358
update dbo.t_Account set FNumber=left(FNumber,4)+RIGHT(FNumber,2) where len(FNumber)=7 and FLevel=2
1.2转换三、四、五级科目的科目编码
以此类推,依次核实科目级次为2、3、4、5的科目代码长度,再依次执行SQL语句。
update dbo.t_Account set FNumber=left(FNumber,4)+SUBSTRING(FNumber,6,2)+RIGHT(FNumber,2) where len(FNumber)=10 and FLevel=3
update dbo.t_Account set FNumber=left(FNumber,4)+SUBSTRING(FNumber,6,2)+SUBSTRING(FNumber,9,2)+RIGHT(FNumber,2) where len(FNumber)=13 and FLevel=4
updatedbo.t_Accountset FNumber=left(FNumber,4)+SUBSTRING(FNumber,6,2)+SUBSTRING(FNumber,9,2)+SUBSTRING(FNumber,12,2)+RIGHT(FNumber,2) where len(FNumber)=16 and FLevel=5
1.3生成会计科目表
select FAccountID 科目内码, FNumber 科目代码,FName 科目名称,FDetail 明细科目,FDC 借贷方向 into 科目表 from dbo.t_Account
(2)余额表整理
经对余额表分析得知,①导入AO2011所需字段包括:科目代码、期初余额,其中:余额表里没有科目代码字段,需通过科目内码与科目表建立关联来实现;②余额表保存多年科目余额信息,需根据审计时间设置条件;③只存储余额,根据余额正负决定余额借贷方向(1表示借,-1表示贷方);④科目余额按月存储;⑤余额表中既有一级科目余额,也有明细科目余额,因此,需通过与科目表建立关联筛选出明细科目余额;⑥通过币别内码来区分本位币和原币余额(0表示本位币,1表示原币);⑦核算项目内码(0表示不下设核算项目,非0表示下设)。
2.1根据以上条件分析,编写SQL语句,生成余额表
select 科目代码, FPeriod& 月份,FBeginBalance 期初余额 into 余额表 from 科目表 a join dbo.t_Balance b on a.科目内码=b.FAccountID
where FYear=2015 and FPeriod=1 and FDetailID=0 and FCurrencyID=0 and 明细科目=1
2.2验证余额表借、贷方期初余额是否相等,期初余额求和等于0表示相等
select sum(期初余额) from 余额表
(3)凭证表整理
经对余额表分析得知,①导入AO2011所需字段包括:凭证日期、借贷方发生额、摘要、科目代码、凭证号,其中:凭证表里没有科目代码字段,需要通过科目内码与科目表建立关联来实现;②凭证主表和子表通过FVoucherID 凭证内码(关键字)建立关联;③凭证表存储多年凭证,需根据审计时间需要设置条件;④余额表存储发生额和借贷方向;⑤凭证主表中FNumber字段表示凭证号,科目表中FNumber字段表示科目代码,在两表建立关联时需修改该字段名。
3.1根据以上条件分析,编写SQL语句,生成凭证表
select FYear 年度,a.FPeriod 月份,FDate 日期,科目代码,FNumber 凭证号,b.FExplanation 摘要,FAmount 发生额,FDC 方向 into 凭证表
from dbo.t_Voucher a join dbo.t_VoucherEntry b on a.FVoucherID=b.FVoucherID
join 科目表 c on b.FAccountID=c.科目内码
where FYear=2015
order by a.FPeriod,FNumber
3.2验证凭证表借、贷方累计发生额是否相等
select sum(发生额) from 凭证表 where 方向=1---借方累计发生额
select sum(发生额) from 凭证表 where 方向=0---贷方累计发生额
二、导入数据
通过以上分析整理,得到新的三张表,即科目表、余额表、凭证表,根据AO的数据库数据导入要求,分别将三张表导入AO。
(1)打开AO审计项目,选择“采集转换→财务数据→财务软件数据库数据→采集数据”。
(2)数据源选择“SQL Server”,用户名和密码为sql实例名(默认sa)和自己设定的密码,数据库名称选择导入SQL SERVER 2008 R2中的数据库备份名称→测试连接→下一步。
(3)选择科目表、凭证表和余额表→下一步→采集。
(4)生成财务数据临时表→填写会计数据名称、单位名称、会计年度、选择行业→确定。
(5)导入方式选择“源数据凭证表为一个表”→会计期间定义→辅助导入→保存。
(6)科目余额表→辅助导入→余额表→选择只存储余额,根据余额正负决定余额借贷方向→期初余额→借贷方向→科目代码→会计月份→导入。
(7)会计科目表→辅助导入→科目表→科目代码→科目名称→借贷方向→导入。
(8)科目设置→辅助导入→批量生成→确定→验证→保存。
(9)凭证库→辅助导入→凭证表→凭证日期→凭证流水号→选择存储发生额和借贷方向→发生额→方向→摘要→科目代码→凭证号→选择凭证库分录序号自动生成→导入。
(10)保存设置→生成采集模版→关闭→生成财务数据临时表向导。
(11)会计期间及科目调整→对会计期间定义,科目方向,科目余额有误的情况进行调整→账表重建。至此,金蝶k3 Rise v12.2财务软件数据库数据已全部导入到AO中。
三、数据核对
数据导入完成后,审计人员还需要对数据的正确性、完整性加以验证。在AO中打开审计分析→账表分析→科目余额表,结合被审计单位纸质账表资料进行核对。在确认无误后,审计人员便可以利用AO进行查询和分析。
***:1 传真:3 地址:合肥市屯溪路272号 邮编:230001 网站管理***:4
版权所有 安徽省审计厅 版权所有,未经书面授权禁止使用 建议使用IE6.0以上浏览器、分辨率800*600浏览
您好,您是第位来宾 备案号:皖ICP备号
微信公众号