340 likes | 489 Views
现场审计实施系统 --数据转换. 计算机审计中心 夏昉尔 2008 年 6 月 25 日. 一、 AO 中的数据存储 二、数据转换基本要点 三、财务数据处理 四、业务数据处理. 一、 AO 中的数据存储. 导入数据在 AO 中的存储. 项目编码( 32 位长) 账簿的存储( Project 项目编号 DataBaseSJFX 账簿号) Access 数据库名: Sjfx.mdb 账簿的结构( Access 数据库结构):会计科目表(记录从被审单位导入会计科目详细信息),科目余额、科目余额表,凭证库. AO 中的其他数据.
E N D
现场审计实施系统 --数据转换 计算机审计中心夏昉尔 2008年6月25日
一、AO中的数据存储 • 二、数据转换基本要点 • 三、财务数据处理 • 四、业务数据处理
导入数据在AO中的存储 • 项目编码(32位长) • 账簿的存储(Project\项目编号\DataBase\SJFX\账簿号) • Access数据库名:Sjfx.mdb • 账簿的结构(Access数据库结构):会计科目表(记录从被审单位导入会计科目详细信息),科目余额、科目余额表,凭证库
AO中的其他数据 • 项目报表类型:手动建立项目时对统计报表类型的选择,共8种(预算执行、财政决算、专项资金、行政事业、投资、金融、外资、企业)。APP\Database\SJFX文件夹中有6套核算体系:1005-投资、1004-企业、1003-医疗、1002-事业、1001-行政、1000-空 • 底稿:APP\Database\DGGL:各种底稿模板,建立项目后复制到Project\项目编号\DataBase\DGGL • 专家经验:\APP\File\SJFX\ExplainDoc • 专家经验库:\System\API\ZJJY\SJZJJYK.mdb • 模板库:APP\DllFile\SJFX\XXBCJ\App • 文档模板:\APP\Config\XTGL\DocTemplate
AO中对会计科目表的结构设计 • 依据制定的项目类别套用该行业标准会计科目 • 与导入会计科目表对照,确定非标科目 • 会计科目表的字段定义:科目编码:文本(254)、科目名称:文本(254)、余额方向:长整数字(1借,-1贷)、科目全称:文本、科目级别:长整数字、是否最底级科目:长整数字、科目类别:长整数字……
AO中对余额表的结构设计 • “科目余额表”:存储每个月的余额 • “科目余额”:存储期初余额,本期发生额、期末余额 • “科目余额”表的结构:科目编码、科目名称:文本(254);金额:双精度数字;凭证数量、余额方向、科目级别:长整型数字
AO中对凭证表的结构设计 • 凭证库、凭证辅助明细表 • 凭证库表的字段定义:文本(254):科目编码、科目名称、摘要、凭证类型、凭证号、附件数、财务主管、记账人、出纳、审核人、制单人、源凭证号……;双精度数字:金额;长整数:年份、月份、分录序号;日期时间型:凭证日期;布尔型:记账标志
面向数据的审计程序 经过多年实践,审计署刘汝焯特派员提出了计算机审计模式下的审计工作流程: 1.审前调查,获取必要和充分的信息。 2.采集数据,全面掌握情况。 3.数据转换、清理和验证。 4.建立审计中间表。 5.多维分析、把握总体,锁定重点。 6.建立个体模型,内外关联,分析数据。 7.延伸落实,审计取证。
数据转换的两个目标 • 将被审计单位的数据有效地装载到审计软件所操纵的数据库中 对于AO2008版,单机版或联机版客户端使用Access数据库,联机版服务器端使用MS SQL Server数据库 • 明确地标识出每张表、每个字段的经济含义及其相互之间的关系 对于财务数据,需要三张基本的表:科目代码表、凭证表、期初余额表
数据转换的主要工具和方法 主要依据审计目标、被审计单位的数据结构和格式、审计软件对输入数据的处理需求等因素而定。可以使用的工具和方法大致有: • 数据库管理系统自带的转换工具:从一种存储形式到另一种存储形式的转换 • AO软件:从其他形式到Access的转换 • SQL语言和程序编码:主要用于数据的整理、结构和格式变换
数据转换的内容 • 数据类型转换 • 日期/时间格式的转换 • 代码转换:表名代码转换、字段名转换、层次码的转换、金额存储方式的转换 • 值域转换 • 表表合并
数据类型转换 将一种类型的数据转换成另一种类型的数据。数据转换的前提是类型相容。类型相容的转换被认为是合适的转换,如整型(16bit)到文本(字符)型的转换;类型不相容的转换被认为是不合适的转换,如文本(字符)型到整型的转换。 例: 科目编码从数字型到字符型的转换:在SQL Server中的转换;用str()函数在语句中的处理
日期/时间格式的转换 目的:转换成审计软件处理所需的统一格式。 方法:一个日期或时间字段拆成几个子部分,然后再将它们拼成想要的格式和字段。 强制转换:对字段定义的修改。20070912 举例:处理成yyyy-mm-dd格式 SET 凭证日期=LEFT(凭证日期,4)+\'-\'+RIGHT(LEFT(凭证日期,6),2)+\'-\'+RIGHT(LEFT(凭证日期,8),2)
代码转换 在业务信息系统中,大量使用代码对数据进行管理,例如表名、科目代码、凭证类型代码等。 • 表名、字段名:从代码到汉字的转换,便于理解和下一步处理(舍弃不必要表和字段) • 层次码:(科目代码、部门代码)从不规则到规则的转换科目(代码的级次处理)
若科目编码等字段中有空格时,要在常规数据整理中进行处理,去掉空格。若科目编码等字段中有空格时,要在常规数据整理中进行处理,去掉空格。 UPDATE zw_kmdm SET fkmdm = Trim([fkmdm]) • 科目代码中部分三级和四级代码是一位数,需要在“常规数据整理”中对其进行处理(3211处理成3222,科目表、余额表、凭证表都要处理) UPDATE kmb SET 科目代码 = left([科目代码],5)+'0'+mid([科目代码],6,1) WHERE len(科目代码)=6 UPDATE kmb SET 科目代码 = left([科目代码],7)+'0'+mid([科目代码],8,1) WHERE len(科目代码)=8
数据表的合并与拆分 根据表与表间的内在联系,利用主键关联,生成新的表,如:凭证表不是一张表时的处理。 有的数据库存储了多年财务数据,可按年度拆分: SELECT * INTO 新凭证表 FROM 凭证表 WHERE LEFT(凭证日期,4)=该年度
AO对财务软件备份数据的转换 • 选择AO系统菜单采集转换→财务数据→财务软件备份数据→采集数据,打开后得到数据转换界面. • 首先要选择转换模板(针对不同的财务软件设置的转换方法) . • 选择转换模板后要选择数据源,数据源也就是从被审计单位得到得财务软件备份数据存储在什么位置和是那一年的数据. • 单击开始后开始转换,当处理不同的财务数据时会有不同的提示信息出现.
几种常见财务软件的数据库备份 • 用友8.X Access备份:.md_文件:实际上是一个压缩文件,可改名为.rar文件,用winrar打开后,是.mdb文件(Access数据库文件) • 用友 SQL Server备份:有2个文件:.ba_文件和.Lst文件。.Lst文件可用记事本打开,记录了软件版本、帐套等信息,用于备份恢复 • 财信通用会计软件备份:有2个文件:account.ini和book.arj。Ini文件记录了系统、帐本和科目的基本信息,用于备份恢复。arj文件是一个压缩文件,包含帐套的dbf文件等
用友8.x SQL Server版备份 • 选择转换模板用友8.x SQL Server备份后,选择数据源;选择你备份盘上的“UFDATA.BA_” 文件,而后键入财务数据的年份, ,以下操作系统会自动完成。 • 注意:此转换模板要求你的计算机上安装并且正在运行Sql Server 服务端,仅安装了Client端(客户端)不能使用此模板。
AO对数据库数据的转换 --财务数据必导字段(一) • 科目设置表 • 使用“辅助导入”功能来设置。 • 会计期间定义 • 使用“辅助导入”功能来设置。 • 科目余额表 • 必导字段包括:科目编码、期初余额、余额方向。 • 会计科目表 • 必导字段包括:科目编码、科目名称。 • 根据具体情况选择导入字段:余额方向(如果有就导,没有就不导)。
AO对数据库数据的转换 --财务数据必导字段(二) 单张凭证表(凭证为一张表的情况) • 必导字段包括:科目编码、摘要、凭证类型名称(有导,没有可不导)、凭证流水号、凭证日期、借方发生额、贷方发生额; • 可导可不导字段包括:附件数、项目编码、项目名称、部门编码、部门名称、财务主管、记账人 、出纳人、审核人、制单人、源凭证号。
AO对数据库数据的转换 --财务数据必导字段(三) • 凭证表必导字段包括:源凭证号(即关联凭证表和凭证明细表的关联号)、凭证流水号、凭证日期; • 凭证表可导可不导字段包括:凭证类型、附件数、财务主管、记账人 、出纳人、审核人、制单人。 • 凭证明细表必导字段包括:源凭证号(即关联凭证表和凭证明细表的关联号)、科目编码、摘要、借方发生额、贷方发生额; • 凭证明细表可导可不导字段包括:项目编码、项目名称、部门编码、部门名称。 • 凭证表和凭证明细表(凭证分为凭证表和凭证明细表的情况)
测试数据(U8Access) • 科目代码表:code • 科目余额表:GL_accsum • 凭证表:GL_accvouch
测试数据(U8 SQL Server) • 科目代码表:code • 科目余额表:GL_accsum • 凭证表:GL_accvouch
自定义模板的保存和使用 • 模板的保存 • 模板的使用:采集转换-模板管理-使用模板采集转换
测试数据(国标数据) • 文本 • Xml:可扩展置标语言XML(eXtensible Markup Language),正象HTML一样 ,它同样依赖于描述一定规则的标签和能够读懂这些标签的应用处理工具来发挥它的强大功能。 XML的制定目标为:XML应该可以在互联网上直接使用(就象HTML那样好用)。XML应该支持各种不同的应用方式(不但包括浏览,还包括对内容的分析)
财信软件的数据库结构分析 • 没有单独的科目表 • 余额表:sections • 凭证表:两张表:主表bvoucher、明细表book • AO2005版财信转换模板分析 ltrim(str(section1))+IIF(ltrim(str(section2))<>'0',IIF(len(ltrim(str(section2)))=1,'00'+ltrim(str(section2)),IIF(len(ltrim(str(section2)))=2,'0'+ltrim(str(section2)),ltrim(str(section2)))),'')+IIF(ltrim(str(section3))<>'0',IIF(len(ltrim(str(section3)))=1,'00'+ltrim(str(section3)),IIF(len(ltrim(str(section3)))=2,'0'+ltrim(str(section3)),ltrim(str(section3)))),'')+IIF(ltrim(str(section4))<>'0',IIF(len(ltrim(str(section4)))=1,'0'+ltrim(str(section4)),ltrim(str(section4))),'')+IIF(ltrim(str(section5))<>'0',IIF(len(ltrim(str(section5)))=1,'0'+ltrim(str(section5)),ltrim(str(section5))),'')
财信科目编码的SQL处理 • 凭证表处理:alter table book add Code varchar(12);update book set Code= convert(varchar(3),section1)+(case when section2>0 then (case when section2<10 then '0' else '' end)+convert(varchar(2),section2) else '' end)+(case when section3>0 then (case when section3<10 then '0' else '' end)+convert(varchar(2),section3) else '' end)+(case when section4>0 then (case when section4<10 then '0' else '' end)+convert(varchar(2),section4) else '' end)+(case when section5>0 then (case when section5<10 then '0' else '' end)+convert(varchar(2),section5) else '' end)
AO对业务数据的转换 业务数据一般为各种数据库数据。在AO中对业务数据的采集转换步骤如下: 采集转换->业务数据->采集数据->选择目标数据库->添加数据源(选择业务数据库数据的类型,找出其存放位置)->选择转换数据表(从数据库中选择需要的数据表)->选择电子账簿->根据数据导入向导进行业务数据的导入->生成业务数据中间表