用友U8备份文件浅析

仗剑天涯 会计实务
精选回答

用友财务软件是目前国内财务领域中使用得最广泛的一种,审计署下发的AO软件中,就可以直接导入用友多个版本的数据,给审计人员带来极大的方便。但有时审计人员会面对几十甚至上百个帐套,如果逐个处理,未免费时费力。本文针对用友8.51的一个备份文件作一点分析,对其中各关键步骤给出一个程序处理的办法,最后给出一个解决用友8.51备份文件批量导入的流程。一点粗浅想法,抛砖引玉,同时也希望能给大家一点启示。

二、分析过程

用友8.51在备份的时候,一般会产生两个文件:UFDATA.BA_和UfErpYer.Lst.其中UfErpYer.Lst比较小,不到1K,而UFDATA.BA_通常比较大。由此,我们判断,财务数据应该在UFDATA.BA_中。

我们用UltraEdit软件打开UfErpYer.Lst文件,发现它其实就是一个文本文件,保存着备份相关的一些信息,如软件版本、备份日期、帐套年度、文件路径等。而打开UFDATA.BA_文件时,我们发现是一堆乱码,甚至找不到常见的一些文件头的信息。因此我们初步判断它有可能是压缩过的文件。而且,从常理讲,考虑到磁盘空间的问题,数据文件备份的时候通常也会压缩处理。

尝试用WinRar打开UFDATA.BA_,成功。解压后,得到一个文件:UFDATA.文件没有后缀名,因此我们还是先用UltraEdit打开。在文件头部,我们看到有“TAPE”、“Microsoft SQL Server”等字样,因此我们初步判断它跟SQL Server有关。

根据以上思路,我们反过来比较,查看SQL Server数据库的各种文件的头部,看是否有与UFDATA 文件头相似的文件。SQL Server数据库中,与数据相关的文件,我们平时接触比较多的主要有数据文件和备份设备文件。新建一个空的数据库,用UltraEdit查看它的数据文件的头部,未发现相关字样,而创建一个备份设备后,查看该文件的头部,正好跟UFDATA文件的头部是一样的。因此我们初步判定UFDATA文件为SQL Server数据库的备份设备文件。并且,我们知道TAPE是磁带的意思,而SQL Server中跟磁带相关的通常与数据库的备份有关系。

接下来我们就分析UFDATA文件中的内容。打开SQL Server的企业管理器,新建一个备份设备,并将文件名指定我我们解压后得到的UFDATA文件。确定后,查看新建立备份设备的内容,发现它其实是一个(或多个)数据库的完全备份。将它还原后,我们可以看到,这是用友的一个帐套数据库。

对一个本地的数据库,我们就可以根据自己的需要,进行相关的查询和操作了。到此为止,我们其实已经完成了将一个用友U8.51的备份文件转换成我们可操作数据库的过程。但如果仅仅如此,那么本文其实是没有什么意义的,因为这个步骤我们可以很容易地利用AO软件来实现。

在实际工作中,我们遇到的往往不是单个的帐套。由于很多企业有很多独立核算的分公司,并且每个公司每年都要建一套帐,因此,我们面对的往往是十几个、几十个帐套,有时甚至会面对上百个帐套,而AO中又没有提供批量导入的办法,如果一个一个导入的话效率太低。基于这种情况,本文就利用上述分析的结果,给出一个解决的办法,能让我们批量导入用友的备份数据。

三、解决办法

要实现批量导入,必须编写程序,实现上述分析过程中的解压、添加备份设备、还原数据库、抽取数据等步骤。我们首先对每一个关键步骤给出相应的解决办法,最后再给出一个总体的流程。

文件解压;利用Win32的API:ShellExecuteEx,调用WinRar将压缩文件解压到指定的临时文件夹下,并得到解压程序的句柄(前提是已经安装了WinRar软件)。其中要用到SHELLEXECUTEINFO这个结构,用来指定WinRar的路径以及相应的解压参数。具体可以查阅Win32 API帮助。

添加设备;利用SQL Server 2000的存储过程sp_addumpdevice添加设备文件。

还原数据库;利用SQL Server 2000的命令Restore DATABASE,从设备中的备份还原数据库。另外,查看备份文设备中的备份数据库信息可以使用命令:RESTORE HEADERONLY.

删除备份设备;可以使用存储过程:sp_dropdevice.详细信息可以查阅SQL Server 2000的帮助文档。

接下来我们就给出批量导入用友8.51备份文件的主要流程:

定义SHELLEXECUTEINFO类型的变量:SI

指定SI的相关参数:动作为“Open”、文件为WinRar的执行文件(指定长文件名)

对每个备份文件UFDATA.BA_,循环处理(循环1)

得到文件路径和文件名,以及某些帐套信息(公司、年份等等)

指定SI的参数为:x sFile *.* sTemp

(注:sFile为备份文件的长文件名,sTemp为一个临时文件夹)

调用:ShellExecuteEx SI

获取SI的状态直到它执行完毕

在数据库服务器上执行:sp_addumpdevice disk,U8Back,physical_name

(注:U8Back为我们为设备取的名,physical_name为解压后得到的UFDATA文件的长文件名)

执行:RESTORE HEADERONLY From U8Back,得到设备中的备份列表记录集

(注:一条记录对应于一个备份)

对备份列表记录集的每条记录,循环处理(循环2)

根据列表记录集中的内容,得到数据库的某些信息(如帐套年份)

Restore DATABASE UF8 From U8Back with File=file_number,Move Ufmodel

To DataFile,MOVE Ufmodel_LOG TO LogFile, replace

(注:file_number为从备份列表记录集中得到的要还原的备份集编号,DataFile与LogFile分别为还原后数据文件与日志文件的长文件名)

抽取数据库中相应的数据

(注:如果把多个帐套数据合并到一起,需要根据前面得到的帐套信息将数据进行区分,例如:将各表加入帐套的年份、公司、地区等字段或是能区分各帐套的一个关键字字段进行区分)

结束循环1

在数据库服务器上执行:sp_dropdevice U8Back,删除设备

结束循环2

善后工作,如删除临时文件等

四、结束语

本文是作者的一次实际经历的总结。在一次企业审计中,审计人员拿到了一百六十多个备份文件,并且任务要求将这些帐套中的有关数据进行合并,以便分析。最后我们以本文所述办法进行处理,代码写完后,用了不到一个晚上的时间,就将所有帐套处理完成。想法比较粗浅,做法也比较简单,在这里总结一下,也希望大家批评与指点。

再见昨天 2022-11-26 12:48:42

相关推荐

声乐培训:五个“高音要诀”,轻松突破高音!

一、咽部力量合理用咽喉的调整,是歌唱中很重要的技术。歌唱中,全部拉紧咽壁演唱,声音会过硬过亮,缺少歌唱性;用少了咽音的力量,声音会空洞,没有支点和拉力的感觉。如果能够根据歌曲不同力度的需要,适当运用咽壁力量,在...
展开详情

大连高中辅导班哪里靠谱

人的智力周期的高潮期,头脑清楚,逻辑思维能力强,学习效率高,低潮期反应较迟缓,临界期就更差。在一天中,人的智力也是存在周期的。对一般人来说,上去8-10小时和下午3-6时是效率最高的时间,中午1小时左右和黄昏最...
展开详情

如何选择调酒培训机构呢?

有人说:爱上一个调酒师,就是爱上一个不回家的人;有这样一群人,我总说他们做着世界上较孤独的工作,犹如猫头鹰,夜幕降临才是他们工作的开始,黎明破晓之时,才能回到自己的小窝。他们是属于夜晚的,灯红酒绿下是他们的舞台...
展开详情

太原初中一对一课外辅导培训班

太原初中一对一课外辅导培训班?学习笔记一定要记。在小学时,有的孩子可能会被老师夸说,这孩子很聪明,所以,没有记笔记的习惯,但是,好记性不如烂笔头,古人说的话是很有道理的,况且,多科交叉学习,如果不记笔记,要不知...
展开详情

长沙环球雅思9月最高优惠享9折

长沙环球雅思9月最高优惠享9折!拥有22年专业出国考试语言培训的环球教育现有雅思、托福、A-level、AP、SAT、GRE、GMAT、AEAS,精品课程/VIP课程/封闭课程/在线课程等课程,总有一款适合你!...
展开详情

精选推荐更多>

三国演义鞠躬尽瘁是谁

《三国演义》中鞠躬尽瘁是指诸葛亮。
《三国演义》(全名为《三国志通俗演义》,又称《三国志演义》)是元末明初小说家罗贯中根据陈寿《三国志》和裴松之注解以及民间三国故事传说经过艺术加工创作而成的长篇章回体历史演义小说,与《西游记》、《水浒传》、《红楼梦》并称为中国古典四大名著。该作品成书后有嘉靖壬午本等多个版本传于世,到了明末清初,毛宗岗对《三国演义》整顿回目、修正文辞、改换诗文,该版本也成为诸多版本中水平最高、流传最广的版本。
《三国演义》节选内容:话说天下大势,分久必合,合久必分:周末七国分争,并入于秦;及秦灭之后,楚、汉分争,又并入于汉;汉朝自高祖斩白蛇而起义,一统天下,后来光武中兴,传至献帝,遂分为三国。推其致乱之由,殆始于桓、灵二帝。桓帝禁锢善类,崇信宦官。及桓帝崩,灵帝即位,大将军窦武、太傅陈蕃,共相辅佐;时有宦官曹节等弄权,窦武、陈蕃谋诛之,机事不密,反为所害,中涓自此愈横。
《三国演义》可大致分为黄巾起义、董卓之乱、群雄逐鹿、三国鼎立、三国归晋五大部分,描写了从东汉末年到西晋初年之间近百年的历史风云,以描写战争为主,诉说了东汉末年的群雄割据混战和魏、蜀、吴三国之间的政治和军事斗争,最终司马炎一统三国,建立晋朝的故事。反映了三国时代各类社会斗争与矛盾的转化,并概括了这一时代的历史巨变,塑造了一群叱咤风云的三国英雄人物。
《三国演义》是中国文学史上第一部章回小说,是历史演义小说的开山之作,也是第一部文人长篇小说,被列为中国古典四大名著之一。明清时期甚至有“第一才子书”之称。

如梦令主旨

《如梦令》主旨:描绘了李清照早期生活的情趣和心境,写出了作者青春年少时的好心情,表达了对那些生活的怀念之情。
原文:
常记溪亭日暮,沉醉不知归路。
兴尽晚回舟,误入藕花深处。
争渡,争渡,惊起一滩鸥鹭。
译文:
依旧记得经常出游溪亭,一玩就到傍晚,但是喝醉而忘记回去的路。
乘舟返回时,迷路进入藕花池的深处。
怎样才能划出去,拼命地划着找路,却惊起了一滩的鸥鹭。
这是一首忆昔词。寥寥数语,似乎是随意而出,却又惜墨如金,句句含有深意。开头两句,写沉醉兴奋之情。接着写“兴尽”归家,又“误入”荷塘深处,别有天地,更令人流连。最后一句,纯洁天真,言尽而意不尽。这首《如梦令》以李清照特有的方式表达了她早期生活的情趣和心境,境界优美怡人。

歌颂祖国的简短小诗

歌颂祖国的简短小诗有:《沁园春·国庆》、《祖国万岁》、《国庆赋·五律》。
1、《沁园春·国庆》:
万里晴空,壮丽山河,赤旗飘扬。
看九州方圆,普天同庆;江河歌唱,遍地流芳。
社会稳定,人民幸福,改革开放谱新章。
新中国,如世界巨龙,屹立东方。
今朝如此辉煌,赖党政国策指方向。
忆峥嵘岁月,生灵涂炭;黎民多难,长夜茫茫。
枪林弹雨,出生入死,换得新生红太阳。
当珍惜,永葆河山赤,地久天长。
2、《祖国万岁》:
礼炮声声震天下,五星红旗似彩霞。
光辉历程世瞩目,神州遍开改革花。
今日再次展蓝图,灿烂辉煌今胜昔。
举国上下齐开颜,共祝祖国万万年。
3、《国庆赋·五律》:
金秋硕果累,大地炫虹高。
华诞神洲吟,龙腾四海啸。
马蹄踏旧世,日月换新朝。
屹立东风劲,红旗宇宙飘。

高考报名缴费后可以更改里面内容吗

高考报名缴费后可以申请更改里面内容。原则上考生报名信息一经打印确认,任何人不得擅自更改。如因特殊情况确需修改信息的,由考生本人向报名点提出申请,经批准后,由报名点进行修改,并须重新打印后进行确认。
高考报名注意事项:
1、考生预报名时,须登录当地考试院,进入“网上报名系统”网页,通过报名系统了解本省、市成人高校招生实施办法、报考须知、各成人高校招生计划,签订诚信考试承诺书,自行录入本人的基本信息(含姓名、身份证号、通讯地址、考生类别、考试科目组、报考志愿等)。
已取得专科毕业证书报考专升本的考生还必须在网上输入专科毕业证书编码、毕业学校、毕业时间、毕业专业。
注:个别地区没有网上报名,只有现场报名,请考生以当地报名通知为准。
2、按照网页的提示和要求,准确输入个人基本信息和报考学校及专业等志愿信息。
3、选择考试县(区)。
4、核对所输入的信息,无误后提交信息。牢记网上报名系统生成的预报名号和自己设定的密码。
5、考生网上填写的报名信息和志愿信息在网上报名期间和修改信息期间可以自行修改,但现场信息确认后一律不准修改。请考生在预报名时认真填报有关信息,在现场信息确认时务必对个人信息及志愿信息进行最后的核对,保证所填信息完整无误。
6、在规定的时间段携带身份证及有关资料到报名点确认报名信息、进行电子摄像,办理确认报名手续。
常见热点问答
热点搜索
1-20
21-40
41-60
61-80
81-100
101-120
121-140
141-160
161-180
181-200
作文大全
1-20
21-40
41-60
61-80
81-100
101-120
121-140
141-160
161-180
181-200