2014年 第 8 期
总第 684 期
财会月刊(下)
教学之研究
用友U8实验教学建账与服务器连接问题解析

作  者
胡志宙

作者单位
(嘉应学院经济与管理学院 广东梅州 514015)

摘  要

【摘要】 本文针对在《计算机会计》实验教学中存在用友ERP软件实验账套的建立和服务器连接等不够协调的问题,从数据库及网络设置等方面分析了原因,并提出了解决方法。
【关键词】 用友ERP   会计   实验教学   服务器   计算机会计

一、实验账套的建立
嘉应学院在“计算机会计”实验课程中采用网络版方式开展实验教学,即在服务器为每个学生建立一个独立账套,学生通过企业门户客户端登录用友服务器来完成整个总账和报表的操作。网络版的采用可避免学生每次在完成和开始实验时重复、费时地备份和恢复账套数据,有利于老师检查学生实验完成情况,而且网络版对学生用机的配置要求不高。用友后台数据库采用了SQL2005,该版本比SQL2000性能更佳,尤其是当所建账套的数据库超过100多个时,使用SQL2005的SQL Server Management Studio可以轻松地管理用友的账套数据。
(一)错误原因分析
当安装完U8.52或U8.61版本的用友软件后,建立账套时会发生无法建立账套的错误(见下图):

 


Microsoft SQL Server Profiler 是 SQL 跟踪的图形用户界面,用于监视数据库引擎或 Analysis Services 的实例。 该工具可以捕获有关每个事件的数据并将其保存到文件或表中供以后分析。当我们使用用友软件的系统管理来建账时,实际上是用友的程序通过SQL脚本对后台SQL数据库进行操作,因此通过SQL Server Profiler工具,分析SQL语句,可发现用友建账的流程如下:
1. 系统通过执行“xp_cmdshell”扩展存储过程来调用系统的外部的rar压缩文件的命令,解压在“U8SOFT\admin\”目录上的“ufmodel.rar”文件中的ufmodel.bak文件(用友模板账套的数据库备份文件),然后使用SQL的Restore Database命令通过恢复“ufmodel.bak”备份文件的方式来建立新的账套。最后再在Ua_account、accinformation等数据表中建立账套数据存放路径、会计期间、分类等信息,从而完成新账套的建立。通过分析SQL2005的sql跟踪语句发现,SQL语句执行至“exec master..xp_cmdshell "rar x "C:\U8SOFT\Admin\ufmodel.rar" -r -y "C:\U8SOFT\admin\" "”语句时就停止子恢复账套数据库的下一步操作。
由上可知,SQL Server 2005 中引入的 xp_cmdshell 的服务器配置选项,该选项使系统管理员能够控制是否可以在系统上执行xp_cmdshell 扩展存储过程。出于安全考虑,该选项默认状态是禁止的,所以当使用系统管理建账套时,因xp_cmdshell选项为禁止而无法调用该存储过程,造成后续的操作无法完成。
2. U8.61版本(U8.52版本无此问题)安装后缺少rar解压命令,导到xp_cmdshell无法调用系统的rar.exe命令解压ufmodel.bak账套备份文件。
以上两种原因都会造成系统管理的建账错误。
(二)解决方法
1. 开启xp_cmdshell。系统管理员可以使用SQL Server Management Studio的查询分析器上运行sp_configure系统存储过程来开启xp_cmdshell。使用新建查询并执行以下SQL语句:
EXEC sp_configure "show advanced options", 1
“//sp_configure”是修改系统配置的存储过程,当 “show advanced options”参数为 1 时,才允许修改系统配置中的某些高级选项。
通过“RECONFIGURE WITH OVERRIDE//”更改以上设置并使更改立即生效。
“EXEC sp_configure "xp_cmdshell", 1 //”修改高级选项xp_cmdshell参数为1 ,即允许SQL2005调用数据库之外的操作系统命令。
通过“RECONFIGURE WITH OVERRIDE //”更改以上设置并使更改立即生效。
如需恢复默认设置,只需将上述的参数更改为“0”即可。
2. 缺少rar解压命令。用友软件安装完成后,在系统盘“Windows\system32\”目录下应有“rar.exe”解压文件,而U8.61版本缺少该文件。解决方法可从Winrar或其它压缩软件中找到“rar.exe”文件,并复制到“Windows\system32\”目录,以备数据库SQL2005的xp_cmdshell存储过程调用。 完成上述两步的操作便可解决用友无法建立新账套的问题了。
二、远程连接
用友软件安装并建立账套后,仍会遇到远程计算机无法通过企业门户客户端连接用友服务器的问题,可通过如下方面解决:
1. 开启SQL2005远程连接。SQL2005默认状态为单机版,即只允许本机的客户端联接SQL数据库,要实现远程访问必须启用网络协议。通过SQL2005→外围应用配置器→服务和连接外围配置—Database Engine—远程连接—启用,选上远程连接的TCP/IP和Named Pipe。TCP/IP协议可使远程计算机通过SQL服务器IP地址实现联接,Named Pipe(命名管道)是一种用于局域网的协议,当服务器和客户端都在局域网中,使用Named Pipe,其在传输的速率和网络安全性方面都比TCP/IP协议要更优一些。
2. 打开服务器相关服务和防火墙端口。SQL2005和用友软件安装成功后一般会自动启用其相应服务,但用友U8.61还需安装微软的IIs(Internet Information Services)Web服务器并设置自动启动,否则客户端将提示无法找到数据源。如果用友服务器启用了防火墙,必须开启以下端口:80 Web端口、1433 SQL数据库端口和4630用友服务端口。
3. Host文件。如果远程计算机不在局域网内,由于用友的企业门户客户端不支持IP地址的登录,所以需修改远程计算机Windows\System32\drivers\etc目录下的Hosts文件,使用记事本程序打开Hosts文件并在文件后面增加IP地址和用友服务器机器名相对应的字段,假定用友服务器机器名为UFS,IP地址为:192.168.1.8,则在Hosts文件后面增加格式为:192.168.1.8  UFS字段。保存后即可在企业门户客户端输入UFS服务名以实现远程登录,操作并不算复杂。
主要参考文献
1. 用友软件股份有限公司编.ERP财务管理系统应用专家培训教程.北京:中国物资出版社,2003
2. 余芳著.中文SQL Server2005数据库管理与开发.北京:冶金工业出版社,2006