我們在使用AO采集用友GRP-U8行政事業(yè)單位財務管理軟件(新會計制度專版)的過程中,首先想到的是使用財務軟件的已入引出功能,但使用軟件自帶的引出模塊導出的ASD文件無法導入到AO中。本人也在網(wǎng)上查了針對該軟件的導入方法,文章很少,基本上都是雷同的方法,按照網(wǎng)上提供的方法進行數(shù)據(jù)整理,再進行導入AO的過程中,仍然出現(xiàn)報錯而無法導入的情況,對導入過程中的注意事項未做進一步探究。針對此情況,本人對AO及其后臺數(shù)據(jù)表結構進行了研究,通過兩種不同方式將數(shù)據(jù)成功導入到AO當中,具體方法如下:
一、 整理基礎表。
(一) 進入用友軟件數(shù)據(jù)庫后臺,取得財務軟件后臺SQL數(shù)據(jù)庫的備份文件,并向用友公司工作人員取得賬務系統(tǒng)數(shù)據(jù)字典。新建數(shù)據(jù)庫,將取得的基礎數(shù)據(jù)還原到SQL數(shù)據(jù)庫內(nèi)(注意:在還原過程中,請點擊選項,選中覆蓋現(xiàn)有數(shù)據(jù)庫),導入成功后對用友GRP-U8數(shù)據(jù)表進行分析。
(二) 對用友數(shù)據(jù)表進行分析后,發(fā)現(xiàn)憑證表、科目余額表、科目表字段不完整,需要對各表進行整理,整理代碼如下:
1、整理出單位信息表,代碼如下:
select * into 單位信息新表 from [2015年鄉(xiāng)鎮(zhèn)數(shù)據(jù)采集].[dbo].[GL_Ztcs] where kjnd =2014 and ztbh<>99999999999999999999 --整理單位信息新表,查找出單位的代碼,由于以前年度編號不完整,所以選擇最新年度的編號。
2、整理出余額表,代碼如下:
select b.ztmc,b.hsdwmc,a.* into 新余額表 from [dbo].[GL_Yeb] a left join dbo.單位信息新表 b on a.gsdm=b.hsdwdm and a.ZTH=b.ztbh --整理新余額表
3、整理出憑證表,代碼如下:
SELECT LEFT(b.pzrq,4)+'-'+SUBSTRING(b.pzrq,5,2)+'-'+RIGHT(b.pzrq,2)pzrq,b.sr,a.* into 憑證基礎表1 FROM [2015年鄉(xiāng)鎮(zhèn)數(shù)據(jù)采集].[dbo].[GL_Pznr] a left join dbo.GL_Pzml b on a.gsdm=b.gsdm and a.ZTH =b.ZTH and a.kjqj=b.kjqj and a.pzh=b.pzh --憑證基礎表1
select b.ztmc,b.hsdwmc,a.* into 憑證表新表 from dbo. 憑證基礎表1 a
left join dbo.單位信息新表 b on a.gsdm=b.hsdwdm and a.ZTH=b.ztbh –-整理出憑證表新表
update dbo. 憑證表新表 set pzh=right(pzh,3) --提取憑證號
update dbo. 憑證表新表 set pzh= RTRIM(LTRIM(pzh)) --去掉字符
4、整理出科目表,代碼如下:
select b.ztmc,b.hsdwmc,a.* into 科目表新表 from [2015年鄉(xiāng)鎮(zhèn)數(shù)據(jù)采集].[dbo].[GL_KMXX]a left join dbo.單位信息新表 b on a.gsdm=b.hsdwdm and a.ZTH=b.ztbh --整理出科目表新表
5、整理出所需單位的科目表、余額表、憑證表:
select * from dbo. 科目表新表where ztmc like '%龍頭%農(nóng)%' and kjnd=2014 --整理出支農(nóng)資金專賬科目表
select * from dbo. 憑證表新表 where ztmc like '%龍頭%農(nóng)%' and LEFT(kjqj,4)=2014 --整理出支農(nóng)資金專賬憑證表
select kmdm,SUM(ncj)ncj,SUM(ncd)ncd from 新余額表 where ztmc like '%龍頭%農(nóng)%' and kjnd=2014
group by kmdm --整理出支農(nóng)資金余額表
整理好之后,將各表復制粘貼到電子表格內(nèi),或者加入插入到數(shù)據(jù)庫中,再導入AO的時候使用SQL Server數(shù)據(jù)源。將數(shù)據(jù)導入到AO系統(tǒng)中,至于具體導入步驟,在這里就不一一進行說明,僅導入過程中的注意事項和兩種方法進行解剖。
二、 導入各表注意事項
(一)數(shù)據(jù)類型的修改,主要修改以下字段類型:
三張表的Kmdm,pzh,flh,ncj,ncj字段數(shù)據(jù)類型全部修改成nvarchar,將憑證表的je字段修改成decimal并保留兩位小數(shù)。
(二)在導入憑證表的過程中,設置源憑證號時,沒有源憑證號字段,可選擇多個字段作為源憑證號,即選擇憑證號和憑證日期來作為源憑證號,同時不選則憑證類型。
三、導入方法解剖。
方法一:進入AO數(shù)據(jù)庫后臺,找到以下數(shù)據(jù)庫,并找到憑證庫表AOC_Finance_7430c7cf-b176-43a9-a9cd-045e21e58fa4_000(這個庫是所建項目的數(shù)據(jù)庫,這個庫不是系統(tǒng)自帶的),將憑證庫的兩個主鍵約束字段去掉。因為在數(shù)據(jù)插入到AO憑證庫時,在日志管理中會出現(xiàn)如下錯誤提示:違反了 PRIMARY KEY 約束 'PK_AO_憑證庫'。不能在對象 'dbo.憑證庫' 中插入重復鍵,兩個主鍵為電子數(shù)據(jù)編號,分錄序號。個人認為,電子數(shù)據(jù)編號,分錄號的約束作用不大,因為我們將數(shù)據(jù)導入AO后上傳服務器,還要對電子數(shù)據(jù)編號進行重新編碼,而分錄號如果是從財務數(shù)據(jù)后臺導出的完整數(shù)據(jù),使用憑證日期,憑證號就能確定一張會計憑證,分錄號只是多一張會計憑證內(nèi)分錄的不重復約束。這種方法對分錄號修改后,適用于在導入過程中使用選擇憑證表的分錄號字段,若不進行修改,則無法使用憑證表分錄號,同時,該方法下導入的財務數(shù)據(jù),無法通過AO間相互導入導出。
方法二:在不修改數(shù)據(jù)庫后臺的情況下,對憑證表的導入過程中,使用分錄自動編號功能,經(jīng)測試也能夠成功導入,也能夠在AO用戶間互相導入導出。
以上兩種方法優(yōu)缺點:方法一對基礎數(shù)據(jù)進行了保留,特別是在原數(shù)據(jù)分錄上,未做修改,但由于對基礎數(shù)據(jù)庫的主鍵進行了改動,導致無法在AO成員間進行數(shù)據(jù)交互。方法二沒有對基礎數(shù)據(jù)庫進行修改,能夠在AO成員間進行數(shù)據(jù)交互,操作方法簡單。但是,對數(shù)據(jù)分錄進行了重新編排,沒能保留原數(shù)據(jù)的分錄號。
四、后期工作
1、與被審計單位提供的總賬余額表進行核對,查看導入數(shù)據(jù)是否與總賬余額一致。
2、保存好導入模塊,以便下次使用。這里有一個注意事項,就是在使用方法一編寫的模塊導入過程中,仍然會出現(xiàn)報錯情況,提示信息為:數(shù)據(jù)庫中不存在憑證庫數(shù)據(jù)表或數(shù)據(jù)為空!此問題本人也為找到是什么原因,但是以原數(shù)據(jù)表為基礎,新建一個模塊卻能夠導入,方法二則沒有出現(xiàn)以上情況,制作的導入模塊具有通用性。