金蝶K3-V10.7財務軟件數(shù)據(jù)庫數(shù)據(jù)導入AO方法 |
【點擊數(shù): 607 】【時間:2011-06-07 09:39:16.0】 |
近日,,在對某單位財務備份數(shù)據(jù)進行轉(zhuǎn)換時發(fā)現(xiàn),該單位財務軟件為金蝶K3,,目前已升級至V10.7版本,,而筆者AO中的采集轉(zhuǎn)換模板為V10.0版本,無法通過模板直接轉(zhuǎn)換,。筆者決定采集該單位財務軟件的后臺數(shù)據(jù),,用數(shù)據(jù)庫數(shù)據(jù)采集方法進行數(shù)據(jù)采集。該軟件的后臺數(shù)據(jù)存放在SLQ SERVER2000數(shù)據(jù)庫中,將SLQ SERVER2000服務管理停止后,,從庫中直接將數(shù)據(jù)拷貝至審計人員電腦,。以下為筆者分析轉(zhuǎn)換過程。
1 表及表結構分析
要想將后臺數(shù)據(jù)轉(zhuǎn)換到AO中,,需要提取3張表,,即憑證表、科目表和余額表,。打開SLQ SERVER2000的企業(yè)管理器,,將被審計單位的數(shù)據(jù)附加到SLQ SERVER2000中。經(jīng)過對庫中所有表進行分析后,,筆者找出了轉(zhuǎn)換所需要的表:
1.1 憑證表:金蝶K3-V10.7財務軟件憑證表在后臺分為憑證主表和憑證子表兩張表存儲,。
憑證主表:表名為t_Voucher。
表中包含字段有:fdate憑證日期,,fperiod會計期間,,fnumber憑證號,fexplanation摘要,,ftrantype單據(jù)類型,,fgroupid憑證類型1為記賬憑證。
憑證子表:表名為t_VoucherEntry,。
表中包含字段有:fexplanation摘要,,faccountid科目內(nèi)碼,fdetailid核算項目,,fdc余額方向1為借,,0為貸,famount金額,,fquantity數(shù)量,,fmeasureunitid單位內(nèi)碼,funitprice單價,。
需要注意的是:憑證表中科目代碼需要faccountid科目內(nèi)碼與科目表中的faccountid關聯(lián)得到fnumber科目代碼,。
1.2 科目表:表名為t_Account。
表中包含字段有:faccountid科目內(nèi)碼,,fnumber科目代碼,,fname科目名稱,fdc借貸方向,,1為借,,-1為貸。
1.3 余額表:表名為t_balance,。
表中包含字段有:fyear會計年度,fperiod會計期間,,faccountid科目內(nèi)碼,,FBeginBalance期初余額,用正負表示借貸方向,,fdetailid核算項目使用內(nèi)碼,。
2 前期表整理
2.1 科目表整理
經(jīng)對科目表分析得知,金蝶K3-V10中原科目編碼長度有3,、4,、7、8,、10,、11、13(編碼長度中含區(qū)分級數(shù)的“.”),,為不規(guī)則編碼,,向AO中導入時需將其轉(zhuǎn)換成規(guī)則的編碼。筆者將其改為4-3-3-3格式, 一級不足的后加“9”,,其他各級位數(shù)不足的前加“9”,,整理過程及sql語句如下:
Sql語句:
update dbo.t_Account set fnumber=fnumber+''9''
where len(fnumber)=3
Sql語句:
Update dbo.t_Account set fnumber=left(fnumber,4)+ ''9''+substring(fnumber,6,2)
Where len(fnumber)=7
Sql語句為:
Update dbo.t_Account set fnumber=left(fnumber,4)
+right(fnumber,3)
Where len(fnumber)=8
Sql語句為:
update dbo.t_Account set fnumber=left(fnumber,4)
+''9''+substring(fnumber,6,2)+''9''
+substring(fnumber,9,2)
where len(fnumber)=10
Sql語句為:
update dbo.t_Account set fnumber=left(fnumber,4)
+''9''+substring(fnumber,6,2)+right(fnumber,3)
where len(fnumber)=11
Sql語句為:
Update dbo.t_Account set fnumber=left(fnumber,4)
+''9''+substring(fnumber,6,2)+''9''+substring(fnumber,9,2)+''9''+substring(fnumber,12,2)
where len(fnumber)=13
注意此時需將科目表中的科目編碼fnumber字段替換成ccode字段,,否則將與憑證主表中的憑證號fnumber字段重復,。
Sql語句為:
select FAccountID,FNumber ccode,FName,FDC
into a_code
from dbo.t_Account
2.2 余額表整理
Sql語句為:
select *
into a_a_balance
from t_balance
where fyear=2009 and fperiod=1 and fdetailid=0 and fcurrencyid=0
Sql語句為:
select a.*,b.ccode,b.fname
into a_ye
from a_a_balance a join a_code b
on a.faccountid=b.faccountid
select ccode,fname,sum(fbeginbalancefor) as ye
into a_yeb
from a_ye
group by ccode,fname
2.3 憑證表整理
將憑證主表和憑證子表合成一張表,,將科目代碼和科目名稱存入新憑證表a_accvouch
select a.FDate,a.FYear,a.FPeriod,a.FNumber,
a.FExplanation,a.FTranType, b.FAccountID,
b.FDetailID,b.FDC,b.FAmount,b.FQuantity,
b.FUnitPrice,c.ccode,c.fname
into a_accvouch
from dbo.t_Voucher a join dbo.t_VoucherEntry b on a.fvoucherid=b.fvoucherid join a_code c on b.faccountid=c.faccountid
where a.fyear=2009
3 將整理好的表導入AO中
通過上述整理,得到新的3張表,,即憑證表a_accvouch,、科目表a_code,、余額表a_yeb,根據(jù)AO軟件的數(shù)據(jù)庫數(shù)據(jù)導入要求,,分步將3張數(shù)據(jù)表導入AO,。
打開AO,依次點擊“采集轉(zhuǎn)換-財務數(shù)據(jù)-財務軟件數(shù)據(jù)庫數(shù)據(jù)-采集數(shù)據(jù)-新建”,,新建一個賬套,,并雙擊該賬套。
再依次點擊“添加”,,選擇sql server再單擊“設置”, 在彈出的對象框中進行如下設置:
3.1 “選擇或輸入服務器名稱”下的下拉菜單中選擇“(local)”,;
3.2 “輸入登錄服務器信息”下的選項中,選擇第一個“使用windows nt 集成安全設置(w)”,;
3.3 “在服務器上選擇數(shù)據(jù)庫(d)”的下拉菜單中選擇上述整理好的3張表所在數(shù)據(jù)庫名,。
然后點擊“測試連接”后彈出“測試連接成功”窗口,依次點擊“確定”后,,點“刷新”按鈕后,,顯示區(qū)域就會出現(xiàn)數(shù)據(jù)源,點擊“下一步”后選中3張表,,然后依次點擊“下一步”,,選擇直接生成財務數(shù)據(jù)臨時表。在導入方式下有兩種方式,,選擇“源數(shù)據(jù)憑證表為一張表”(原為兩張表,,經(jīng)過整理后變成一張表)。
以下為3張數(shù)據(jù)表導入過程:
導入所需字段:期初余額Ye(正數(shù)為借方余額,、負數(shù)為貸方余額),、科目編碼:ccode
導入所需字段:科目名稱fname、科目借貸方向fdc,、科目編碼:ccode
導入所需字段:憑證日期fdate,、憑證流水號fnumber、憑證類型ftrantype,、發(fā)生額famount,、發(fā)生額方向fdc(借方為1、貸方為0),、摘要fexplanation,、科目編碼 ccode
憑證表導入后,經(jīng)過科目方向調(diào)整,、科目余額調(diào)整和賬表重建,,數(shù)據(jù)導入工作就完成了,。
縱觀整個數(shù)據(jù)導入過程,前期基礎表的整理是關鍵,,必須先將原不規(guī)則的科目代碼整理成規(guī)則的科目代碼,,為了方便導入,在數(shù)據(jù)量不大的情況下,,可將憑證主表和憑證子表合并成一張表導入,。(淮安市審計局供稿 王新建) |
|