用友软件首页

用友U8备份文件的批量导入

2019-4-20 8:0:0 用友T1小编

用友U8备份文件的批量导入

用友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

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

如果您的问题还没有解决,可以到 T+搜索>>上找一下答案

分享到:

微博关注

bj用友软件

最新信息

应付导出给网上银行的规则

应付导出给网上银行的规则 应付导出给网上银行的规则

U8知识库
问题号:6265
解决状态:临时解决方案
软件版本:8.52
软件模块:应付
行业:通用
关键字:应付导出给网上银行的规则
适用产品:852
问题名称:应付导出给网上银行的规则
问题现象:有客户询问应付导出给网上银行的规则
问题原因:现归纳如下
解决方案:网上银行只能修改这些单据的银行账号,但是修改时需要同时修改应付这边的信息。

请问一下各位老师注册私人医疗所需要特殊的许可证吗?去工商局注册还是去别的地方去注册?

请问一下各位老师注册私人医疗所需要特殊的许可证吗?去工商局注册还是去别的地方去注册? 请问一下各位老师注册私人医疗所需要特殊的许可证吗?去工商局注册还是去别的地方去注册?[]

私立医院的筹建业务主要包括:申报材料,报经卫生行政部门批准,办理《设置医疗机构批准书》、《医疗机构执业许可证》,有关部门登记注册,筹建或租赁营业场所,筹集资金,银行开立账户,购置仪器、设备等,许可证不在工商局办理
@李淑梅:谢谢老师。有关部门指的是哪个部门?
卫生行政部门

热点文章

使用技巧

  • 商贸宝T1服务器连接失败的常见问题及解决方法.

    商贸宝T1服务器连接失败的常见问题及解决方法.

    商贸宝T1服务器连接失败的常见问题及解决方法.


    问题描述:商贸宝T1服务器连接失败的常见问题及解决方法.


  • 用友U8.11access版升级到财务通2005基础版

    用友U8.11access版升级到财务通2005基础版

    用友U8.11access版升级到财务通2005基础版 用友U8.11access版升级到财务通2005基础版

    请问U8.11access版升级到财务通2005基础版时,数据库是否要先升级到SQL7.0,再升级到SQL2000,或者说是否可直接从U8.11access版升级到财务通2005基础版?中间是否需要升级到其他版本过渡一下?U811ACC版本先升级到U821,然后修改U821的备份文件名称为uferpact.lst—>UF2KACT.LST,并打开这个文件,参照财务通或者通2005中备份文件的该文件进行修改里面的内容,然后可以引入到通2005或者财务通2005中 如有其它问题,请在下面回复疑问,我们将第一时间与您联系,帮助您解决问题。同时您也可以联系用友畅捷通专业服务商-用友天龙瑞德。用友天龙瑞德专业销售用友软件用友财务软件,维护用友T3用友T6用友U8畅捷通T+。我们将竭诚为您服务。
    联系电话:010-59798025。网址:http://www.kuaiji66.com  

知 识 库

  • 用友T6企业管理软件工资变动

    用友T6企业管理软件工资变动

    用友T6企业管理软件工资变动 用友T6企业管理软件工资变动

    在不使用函数的情况下,需要让某个工资类别所有人员的“基本工资”和“岗位工资”分别为3000和2000,如何进行设置?不使用函数,人员中的工资需要一个一个录入,可以使用工资变动中的替换功能。点开”工资变动”——”替换”——”工资项目为基本工资替换成3000″——”工资项目为岗位工资替换成2000”。如有用友T6其它问题,请在下面回复疑问,我们将第一时间与您联系,帮助您解决问题。同时您也可以联系用友畅捷服务联盟
    用友天龙瑞德。用友天龙瑞德专业销售用友软件用友财务软件,寻找用友T6服务商,咨询用友T6价格用友T6多少钱,用友T6报价,联系电话:010-59798025。网址:http://yun.kuaiji66.com用友云基地

  • 用友T6企业管理软件库存期初数据

    用友T6企业管理软件库存期初数据

    用友T6企业管理软件库存期初数据 用友T6企业管理软件库存期初数据

    账套主管身份进去可以看到库存模块的所有仓库的期初数据,但是用其他操作员比如005,查看的时候,有些仓库例如包装库和配件库查看不到期初数据。数据权限设置没有问题。在‘库存管理’—‘初始设置’–‘选项’–‘通用设置页签’:勾选了‘检查仓库权限’和‘检查操作员权限’这两项。不要勾选‘库存管理’—‘初始设置’–‘选项’–‘通用设置页签’:‘检查仓库权限’和‘检查操作员权限’这两项即可。如有用友T6其它问题,请在下面回复疑问,我们将第一时间与您联系,帮助您解决问题。同时您也可以联系用友
    用友天龙瑞德用友软件用友财务软件,寻找用友T6服务商,咨询用友T6价格用友T6多少钱,用友T6报价,欢迎咨询。我们将竭诚为您服务。联系电话:010-59798025。网址:http://yun.kuaiji66.com用友云基地

  • 最新文章排行
  • 热门文章排行

培训教程

  • CRM11.5中将线索转换成客户,转换失败

    CRM11.5中将线索转换成客户,转换失败

    CRM11.5中将线索转换成客户,转换失败 CRM11.5中将线索转换成客户,转换失败

    畅捷CRM11.5中,将线索转换成客户失败,但是该线索转换成联系人和商机则成功。线索转换成客户失败但是转换联系人和商机成功,可能是客户设置问题。【客户自定义设置】–【编辑页面布局】中,将【客户状态】设置成了必填项,取消必填即可。如有用友T6其它问题,请在下面回复疑问,我们将第一时间与您联系,帮助您解决问题。同时您也可以联系用友畅捷服务联盟
    用友天龙瑞德。用友天龙瑞德专业销售用友软件用友财务软件,联系电话:010-59798025。网址:http://yun.kuaiji66.com用友云基地

  • M1(OA移动端)总体跟以往版本相比主要做了哪些改进?特别是协同审批过程中有哪些新增功能?

    M1(OA移动端)总体跟以往版本相比主要做了哪些改进?特别是协同审批过程中有哪些新增功能?

    M1(OA移动端)总体跟以往版本相比主要做了哪些改进?特别是协同审批过程中有哪些新增功能? M1(OA移动端)总体跟以往版本相比主要做了哪些改进?特别是协同审批过程中有哪些新增功能?

    1)支持发起协同时调用表单模板,并在审批时以原格式显示;
    2)支持在表单审批时调用手写批注及图片签章。原笔迹手写,就像在纸上写字一样,表单、公文文单上加盖电子印章,高保真显示签章图片;
    3)支持通过统计图表方式展现表单统计数据;
    4)支持在协同办理过程中增加关联文档;
    5)在协同审批过程中新增终止、撤销、取回、回退功能。如有致远oa其它问题,请在下面回复疑问,我们将第一时间与您联系,帮助您解决问题。同时您也可以联系用友
    用友天龙瑞德用友软件用友财务软件,寻找致远oa服务商,咨询致远oa价格,欢迎咨询。我们将竭诚为您服务。联系电话:010-59798025。网址:http://yun.kuaiji66.com用友云基地

关于我们 | 公司动态 | 获奖记录 | 联系我们 | 招聘信息 | 用友产品中心 | 用友云基地
Copyright ©  www.kuaiji66.com  All Rights Reserved 天龙瑞德
京ICP备11046295号-1 技术支持 北京天龙瑞德信息技术有限责任公司   北京海淀上地十街辉煌国际大厦3号楼6层 总机:010-59798025   售后:4009908488
北京天龙瑞德信息技术有限责任公司