- 相關(guān)推薦
用友U8備份文件詳細步驟
你知道用友U8財務(wù)軟件如何備份文件嗎?你對用友U8備份文件詳細步驟了解嗎?下面是yjbys小編為大家帶來(lái)的用友U8備份文件詳細步驟的知識,歡迎閱讀。
一、引言
用友財務(wù)軟件是目前國內財務(wù)領(lǐng)域中使用得最廣泛的一種,審計署下發(fā)的AO軟件中,就可以直接導入用友多個(gè)版本的數據,給審計人員帶來(lái)極大的方便。但有時(shí)審計人員會(huì )面對幾十甚至上百個(gè)賬套,如果逐個(gè)處理,未免費時(shí)費力。本文針對用友8.51的一個(gè)備份文件作一點(diǎn)分析,對其中各關(guān)鍵步驟給出一個(gè)程序處理的辦法,最后給出一個(gè)解決用友8.51備份文件批量導入的流程。一點(diǎn)粗淺想法,拋磚引玉,同時(shí)也希望能給大家一點(diǎn)啟示。
二、分析過(guò)程
用友8.51在備份的時(shí)候,一般會(huì )產(chǎn)生兩個(gè)文件:UFDATA.BA_和UfErpYer.Lst.其中UfErpYer.Lst比較小,不到1K,而UFDATA.BA_通常比較大。由此,我們判斷,財務(wù)數據應該在UFDATA.BA_中。
我們用UltraEdit軟件打開(kāi)UfErpYer.Lst文件,發(fā)現它其實(shí)就是一個(gè)文本文件,保存著(zhù)備份相關(guān)的一些信息,如軟件版本、備份日期、賬套年度、文件路徑等。而打開(kāi)UFDATA.BA_文件時(shí),我們發(fā)現是一堆亂碼,甚至找不到常見(jiàn)的一些文件頭的信息。因此我們初步判斷它有可能是壓縮過(guò)的文件。而且,從常理講,考慮到磁盤(pán)空間的問(wèn)題,數據文件備份的時(shí)候通常也會(huì )壓縮處理。
嘗試用WinRar打開(kāi)UFDATA.BA_,成功。解壓后,得到一個(gè)文件:UFDATA.文件沒(méi)有后綴名,因此我們還是先用UltraEdit打開(kāi)。在文件頭部,我們看到有“TAPE”、“Microsoft SQL Server”等字樣,因此我們初步判斷它跟SQL Server有關(guān)。
根據以上思路,我們反過(guò)來(lái)比較,查看SQL Server數據庫的各種文件的頭部,看是否有與UFDATA 文件頭相似的文件。SQL Server數據庫中,與數據相關(guān)的文件,我們平時(shí)接觸比較多的主要有數據文件和備份設備文件。新建一個(gè)空的數據庫,用UltraEdit查看它的數據文件的頭部,未發(fā)現相關(guān)字樣,而創(chuàng )建一個(gè)備份設備后,查看該文件的頭部,正好跟UFDATA文件的頭部是一樣的。因此我們初步判定UFDATA文件為SQL Server數據庫的備份設備文件。并且,我們知道TAPE是磁帶的意思,而SQL Server中跟磁帶相關(guān)的通常與數據庫的備份有關(guān)系。
接下來(lái)我們就分析UFDATA文件中的內容。打開(kāi)SQL Server的企業(yè)管理器,新建一個(gè)備份設備,并將文件名指定我我們解壓后得到的UFDATA文件。確定后,查看新建立備份設備的內容,發(fā)現它其實(shí)是一個(gè)(或多個(gè))數據庫的完全備份。將它還原后,我們可以看到,這是用友的一個(gè)賬套數據庫。
對一個(gè)本地的數據庫,我們就可以根據自己的需要,進(jìn)行相關(guān)的查詢(xún)和操作了。到此為止,我們其實(shí)已經(jīng)完成了將一個(gè)用友U8.51的備份文件轉換成我們可操作數據庫的過(guò)程。但如果僅僅如此,那么本文其實(shí)是沒(méi)有什么意義的,因為這個(gè)步驟我們可以很容易地利用AO軟件來(lái)實(shí)現。
在實(shí)際工作中,我們遇到的往往不是單個(gè)的賬套。由于很多企業(yè)有很多獨立核算的分公司,并且每個(gè)公司每年都要建一套賬,因此,我們面對的往往是十幾個(gè)、幾十個(gè)賬套,有時(shí)甚至會(huì )面對上百個(gè)賬套,而AO中又沒(méi)有提供批量導入的辦法,如果一個(gè)一個(gè)導入的話(huà)效率太低;谶@種情況,本文就利用上述分析的結果,給出一個(gè)解決的辦法,能讓我們批量導入用友的備份數據。
三、解決辦法
要實(shí)現批量導入,必須編寫(xiě)程序,實(shí)現上述分析過(guò)程中的解壓、添加備份設備、還原數據庫、抽取數據等步驟。我們首先對每一個(gè)關(guān)鍵步驟給出相應的解決辦法,最后再給出一個(gè)總體的流程。
文件解壓;利用Win32的API:ShellExecuteEx,調用WinRar將壓縮文件解壓到指定的臨時(shí)文件夾下,并得到解壓程序的句柄(前提是已經(jīng)安裝了WinRar軟件)。其中要用到SHELLEXECUTEINFO這個(gè)結構,用來(lái)指定WinRar的路徑以及相應的解壓參數。具體可以查閱Win32 API幫助。
添加設備;利用SQL Server 2000的存儲過(guò)程sp_addumpdevice添加設備文件。
還原數據庫;利用SQL Server 2000的命令Restore DATABASE,從設備中的備份還原數據庫。另外,查看備份文設備中的備份數據庫信息可以使用命令:RESTORE HEADERONLY.
刪除備份設備;可以使用存儲過(guò)程:sp_dropdevice.詳細信息可以查閱SQL Server 2000的幫助文檔。
接下來(lái)我們就給出批量導入用友8.51備份文件的主要流程:
定義SHELLEXECUTEINFO類(lèi)型的變量:SI
指定SI的相關(guān)參數:動(dòng)作為“Open”、文件為WinRar的執行文件(指定長(cháng)文件名)
對每個(gè)備份文件UFDATA.BA_,循環(huán)處理(循環(huán)1)
得到文件路徑和文件名,以及某些賬套信息(公司、年份等等)
指定SI的參數為:x sFile *.* sTemp
(注:sFile為備份文件的長(cháng)文件名,sTemp為一個(gè)臨時(shí)文件夾)
調用:ShellExecuteEx SI
獲取SI的狀態(tài)直到它執行完畢
在數據庫服務(wù)器上執行:sp_addumpdevice disk,U8Back,physical_name
(注:U8Back為我們?yōu)樵O備取的名,physical_name為解壓后得到的UFDATA文件的長(cháng)文件名)
執行:RESTORE HEADERONLY From U8Back,得到設備中的備份列表記錄集
(注:一條記錄對應于一個(gè)備份)
對備份列表記錄集的每條記錄,循環(huán)處理(循環(huán)2)
根據列表記錄集中的內容,得到數據庫的某些信息(如賬套年份)
Restore DATABASE UF8 From U8Back with File=file_number,Move Ufmodel
To DataFile,MOVE Ufmodel_LOG TO LogFile, replace
(注:file_number為從備份列表記錄集中得到的要還原的備份集編號,DataFile與LogFile分別為還原后數據文件與日志文件的長(cháng)文件名)
抽取數據庫中相應的數據
(注:如果把多個(gè)賬套數據合并到一起,需要根據前面得到的賬套信息將數據進(jìn)行區分,例如:將各表加入賬套的年份、公司、地區等字段或是能區分各賬套的一個(gè)關(guān)鍵字字段進(jìn)行區分)
結束循環(huán)1
在數據庫服務(wù)器上執行:sp_dropdevice U8Back,刪除設備
結束循環(huán)2
善后工作,如刪除臨時(shí)文件等
四、結束語(yǔ)
本文是作者的一次實(shí)際經(jīng)歷的總結。在一次企業(yè)審計中,審計人員拿到了一百六十多個(gè)備份文件,并且任務(wù)要求將這些賬套中的有關(guān)數據進(jìn)行合并,以便分析。最后我們以本文所述辦法進(jìn)行處理,代碼寫(xiě)完后,用了不到一個(gè)晚上的時(shí)間,就將所有賬套處理完成。
【用友U8備份文件詳細步驟】相關(guān)文章:
用友U8壞賬賬務(wù)處理08-15
用友U8存貨核算流程05-30
用友u8使用技巧集錦201706-27
美甲的詳細步驟07-11
做壽司的詳細步驟10-05
用友U8銷(xiāo)售預收業(yè)務(wù)流程06-20
用友U8采購暫估業(yè)務(wù)流程06-22
企業(yè)管理的詳細步驟08-13
咖啡拉花的詳細步驟10-15
大醬湯的做法詳細步驟08-05