当前位置: 首页
>公共服务>审计知识

中科江南预算单位账务服务平台AO采集方法

发布日期:2020-01-09 11:37信息来源:计算机审计中心

随着新政府会计准则制度在各级行政事业单位的全面施行,各级财政部门也逐渐开始推行网络版预算单位财务核算软件,以荆门市为例,目前全市大多数县(市、区)预算单位财务软件已更换为中科江南预算单位账务服务平台,笔者根据对其后台数据的研究分析,为大家简述中科江南预算单位账务服务平台数据采集转换到AO2011中的方法,供各位审计同仁参考。

一、账务平台后台原始数据库结构分析。中科江南预算单位账务服务平台数据集中存储在财政部门,后台数据库为ORACLE,笔者通过对后台数据库表结构的分析及模拟系统前台业务操作,最终确定了AO2011采集转换所需的主要表格,分别为账套表FAP_BOOKSET、账套类型表FAP_BOOKSET_TYPE、会计科目表BASE_ACCOUNT_SUBJECT、期初余额表ACC_REMAIN、凭证主表ACC_VOUCHER、凭证明细表ACC_VOUCHER_DETAIL、用户表FAP_USER、预算项目表BASE_BUDGET_ITEM、功能分类表BASE_BUDGET_SUBJECT、经济分类表BASE_BUDGET_SUBJECT_ITEM、 

资金性质表BASE_MONEY_KIND、往来表BASE_CURRENT、部门表ASE_DEPARTMENT 、资产类别表BASE_CARD_TYPE 等。

二、创建存储过程生成六张标准表。编写SQL语句,创建名为ZWCL的存储过程,设置账套号为变量@SET_CODE,生成科目表、余额表、凭证表、辅助信息表、辅助余额表、辅助凭证表,需要注意的是会计科目表中会计科目为系统默认模版科目与预算单位实际新增科目的并集(可根据实际情况进行调整),SQL语句如下:

drop proc zwcl

go 

create proc zwcl 

@set_code varchar(100)

as 

begin 

drop table a_kmb,a_yeb,a_pzb,a_fzxxb,a_fzyeb,a_fzpzb

--生成科目表

select DISP_CODE 科目代码,DISP_NAME 科目名称,IS_DEBIT 科目方向 --(1-借,0-贷)

into a_kmb 

from BASE_ACCOUNT_SUBJECT 

where SET_TYPE=60 and (OG_CODE='00001' or OG_CODE=@set_code) --60为政府会计新制度账套类型

order by DISP_CODE

--生成余额表

select *

into a_yeb 

from (

select a.SET_CODE 账套号,b.DISP_CODE 科目代码,b.IS_DEBIT 余额方向 ,sum(a.BALANCE) 期初余额

from ACC_REMAIN a join (

select * from BASE_ACCOUNT_SUBJECT 

where SET_TYPE=60 and (OG_CODE='00001' or OG_CODE=@set_code))b 

on a.AS_CODE=b.IN_CODE

where  a.YEAR=2019 and IS_DELETED=0 and set_code =@set_code 

group by a.SET_CODE,b.DISP_CODE,b.IS_DEBIT

union all

select a.SET_CODE 账套号,left(b.DISP_CODE,4) 科目代码,b.IS_DEBIT 余额方向 ,sum(a.BALANCE) 期初余额

from ACC_REMAIN a join (

select * from BASE_ACCOUNT_SUBJECT 

where SET_TYPE=60 and (OG_CODE='00001' or OG_CODE=@set_code))b 

on a.AS_CODE=b.IN_CODE

where  a.YEAR=2019 and a.IS_DELETED=0 and len(b.disp_code)>4 and set_code =@set_code 

group by a.SET_CODE,left(b.DISP_CODE,4),b.IS_DEBIT

union all

select a.SET_CODE 账套号,left(b.DISP_CODE,6) 科目代码,b.IS_DEBIT 余额方向 ,sum(a.BALANCE) 期初余额

from ACC_REMAIN a join (

select * from BASE_ACCOUNT_SUBJECT 

where SET_TYPE=60 and (OG_CODE='00001' or OG_CODE=@set_code))b 

on a.AS_CODE=b.IN_CODE

where  a.YEAR=2019 and a.IS_DELETED=0 and len(b.disp_code)>6 and set_code =@set_code 

group by a.SET_CODE,left(b.DISP_CODE,6),b.IS_DEBIT

union all

select a.SET_CODE 账套号,left(b.DISP_CODE,8) 科目代码,b.IS_DEBIT 余额方向 ,sum(a.BALANCE) 期初余额

from ACC_REMAIN a join (

select * from BASE_ACCOUNT_SUBJECT 

where SET_TYPE=60 and (OG_CODE='00001' or OG_CODE=@set_code))b 

on a.AS_CODE=b.IN_CODE

where  a.YEAR=2019 and a.IS_DELETED=0 and len(b.disp_code)>8 and set_code =@set_code 

group by a.SET_CODE,left(b.DISP_CODE,8),b.IS_DEBIT

union all

select a.SET_CODE 账套号,left(b.DISP_CODE,10) 科目代码,b.IS_DEBIT 余额方向 ,sum(a.BALANCE) 期初余额

from ACC_REMAIN a join (

select * from BASE_ACCOUNT_SUBJECT 

where SET_TYPE=60 and (OG_CODE='00001' or OG_CODE=@set_code))b 

on a.AS_CODE=b.IN_CODE

where  a.YEAR=2019 and a.IS_DELETED=0 and len(b.disp_code)>10 and set_code =@set_code 

group by a.SET_CODE,left(b.DISP_CODE,10),b.IS_DEBIT

union all

select a.SET_CODE 账套号,left(b.DISP_CODE,12) 科目代码,b.IS_DEBIT 余额方向 ,sum(a.BALANCE) 期初余额

from ACC_REMAIN a join (

select * from BASE_ACCOUNT_SUBJECT 

where SET_TYPE=60 and (OG_CODE='00001' or OG_CODE=@set_code))b 

on a.AS_CODE=b.IN_CODE

where a.YEAR=2019 and a.IS_DELETED=0 and len(b.disp_code)>12 and set_code =@set_code 

group by a.SET_CODE,left(b.DISP_CODE,12),b.IS_DEBIT)x

order by 2 

--生成凭证表

select a.SET_CODE 账套号,cast (a.year as varchar(4)) 会计年度,

cast(a.VOUCHER_ID as varchar(10)) 源凭证关联号,cast(a.VOUCHER_NO as varchar(10)) 凭证号,

cast(a.VOUCHER_ID as varchar(10))+cast(b.DETAIL_ID as varchar(10))+cast(b.ASSISTANT_ID as varchar(10)) 分录序号,

c.DISP_CODE 科目代码,b.DEB_MONEY 借方金额,b.CRE_MONEY 贷方金额,b.SUMMARY 摘要,

a.VOUCHER_TYPE 凭证类型 ,a.MAKE_DATE 凭证日期,a.ACCESSORY_NUM 附件数,

d.USER_NAME 制单人,e.USER_NAME 会计主管

into a_pzb

from ACC_VOUCHER a 

join ACC_VOUCHER_DETAIL b 

on a.SET_CODE=b.SET_CODE and a.VOUCHER_ID=b.VOUCHER_ID

join (select * from BASE_ACCOUNT_SUBJECT 

where SET_TYPE=60 and (OG_CODE='00001' or OG_CODE=@set_code))c 

on b.AS_CODE=c.IN_CODE

join FAP_USER d on a.MAKE_USER=d.USER_CODE

join FAP_USER e on a.MANAGE_USER=e.USER_CODE

where a.SET_CODE=@set_code

order by a.MAKE_DATE

--生成辅助信息表

select * 

into a_fzxxb 

from (

select '往来' 辅助类型,DISP_CODE 辅助编码,DISP_NAME 辅助名称 from BASE_CURRENT 

where OG_CODE='00001' OR OG_CODE=@set_code

union all

select '部门' 辅助类型,DISP_CODE 辅助编码,DISP_NAME 辅助名称 from BASE_DEPARTMENT 

where OG_CODE=@set_code

union all

select '预算项目' 辅助类型,DISP_CODE 辅助编码,DISP_NAME 辅助名称 from BASE_BUDGET_ITEM

where OG_CODE=@set_code

union all

select '功能分类' 辅助类型,DISP_CODE 辅助编码,DISP_NAME 辅助名称 from BASE_BUDGET_SUBJECT

union all

select '经济分类' 辅助类型,DISP_CODE 辅助编码,DISP_NAME 辅助名称 from BASE_BUDGET_SUBJECT_ITEM

where OG_CODE='00001' OR OG_CODE=@set_code

union all

select '资金性质' 辅助类型,DISP_CODE 辅助编码,DISP_NAME 辅助名称 from BASE_MONEY_KIND

union all 

select '资产类别' 辅助类型,DISP_CODE 辅助编码,DISP_NAME 辅助名称 from BASE_CARD_TYPE)x

--生成辅助余额表

select a.SET_CODE 账套号,b.DISP_CODE 科目代码,b.IS_DEBIT 余额方向 ,a.BALANCE 期初余额,

c.DISP_CODE 往来辅助编码,d.DISP_CODE 部门辅助编码 ,e.DISP_CODE 预算项目辅助编码,

f.DISP_CODE 功能分类辅助编码,g.DISP_CODE 经济分类辅助编码,h.DISP_CODE 资金性质辅助编码,

i.DISP_CODE 资产类别辅助编码

into a_fzyeb 

from ACC_REMAIN a left join (

select * from BASE_ACCOUNT_SUBJECT 

where SET_TYPE=60 and (OG_CODE='00001' or OG_CODE=@set_code))b 

on a.AS_CODE=b.IN_CODE

left join (select * from BASE_CURRENT where OG_CODE='00001' OR OG_CODE=@set_code) c 

on a.CR_CODE=c.IN_CODE 

left join (select * from BASE_DEPARTMENT where OG_CODE=@set_code) d 

on a.DP_CODE=d.IN_CODE

left join (select * from BASE_BUDGET_ITEM where OG_CODE=@set_code) e 

on a.BI_CODE=e.IN_CODE

left join BASE_BUDGET_SUBJECT f on a.BS_CODE=f.IN_CODE

left join (select * from BASE_BUDGET_SUBJECT_ITEM where OG_CODE='00001' OR OG_CODE=@set_code) g 

on a.BSI_CODE=g.IN_CODE

left join BASE_MONEY_KIND h on a.MK_CODE=h.IN_CODE

left join BASE_CARD_TYPE i on a.CT_CODE=i.IN_CODE

where  a.YEAR=2019 and IS_DELETED=0 and set_code =@set_code 

and(a.CR_CODE is not null or a.DP_CODE is not null or a.BI_CODE is not null

or a.BS_CODE is not null or a.BSI_CODE is not null or a.MK_CODE is not null

or a.CT_CODE is not null)

order by 2

--生成辅助凭证表

select a.SET_CODE 账套号,cast (a.year as varchar(4)) 会计年度,

cast(a.VOUCHER_ID as varchar(10)) 源凭证关联号,cast(a.VOUCHER_NO as varchar(10)) 凭证号,

cast(a.VOUCHER_ID as varchar(10))+cast(b.DETAIL_ID as varchar(10))+cast(b.ASSISTANT_ID as varchar(10)) 分录序号,

c.DISP_CODE 科目代码,b.DEB_MONEY 借方金额,b.CRE_MONEY 贷方金额,b.SUMMARY 摘要,

a.VOUCHER_TYPE 凭证类型 ,a.MAKE_DATE 凭证日期,a.ACCESSORY_NUM 附件数,

d.USER_NAME 制单人,e.USER_NAME 会计主管,f.DISP_CODE 往来辅助编码,g.DISP_CODE 部门辅助编码 ,

h.DISP_CODE 预算项目辅助编码,i.DISP_CODE 功能分类辅助编码,j.DISP_CODE 经济分类辅助编码,

k.DISP_CODE 资金性质辅助编码,l.DISP_CODE 资产类别辅助编码

into a_fzpzb

from ACC_VOUCHER a 

join ACC_VOUCHER_DETAIL b 

on a.SET_CODE=b.SET_CODE and a.VOUCHER_ID=b.VOUCHER_ID

left join (select * from BASE_ACCOUNT_SUBJECT 

where SET_TYPE=60 and (OG_CODE='00001' or OG_CODE=@set_code))c 

on b.AS_CODE=c.IN_CODE

left join FAP_USER d on a.MAKE_USER=d.USER_CODE

left join FAP_USER e on a.MANAGE_USER=e.USER_CODE

left join (select * from BASE_CURRENT where OG_CODE='00001' OR OG_CODE=@set_code) f

on b.CR_CODE=f.IN_CODE 

left join (select * from BASE_DEPARTMENT where OG_CODE=@set_code) g

on b.DP_CODE=g.IN_CODE

left join (select * from BASE_BUDGET_ITEM where OG_CODE=@set_code) h

on b.BI_CODE=h.IN_CODE

left join BASE_BUDGET_SUBJECT i on b.BS_CODE=i.IN_CODE

left join (select * from BASE_BUDGET_SUBJECT_ITEM where OG_CODE='00001' OR OG_CODE=@set_code) j 

on b.BSI_CODE=j.IN_CODE

left join BASE_MONEY_KIND k on b.MK_CODE=k.IN_CODE

left join BASE_CARD_TYPE l on b.CT_CODE=l.IN_CODE

where  a.set_code =@set_code 

and(b.CR_CODE is not null or b.DP_CODE is not null or b.BI_CODE is not null

or b.BS_CODE is not null or b.BSI_CODE is not null or b.MK_CODE is not null

or b.CT_CODE is not null)

order by a.MAKE_DATE

end 

go

存储过程创建后,执行存储过程即直接可生成六张标准表,如某单位账套号为00001000340000100001,则运行语句exec zwcl '00001000340000100001' 即可。

三、使用AO2011采集转换财务数据。打开AO2011选择采集转换-财务数据-财务软件数据库数据-采集数据,将生成的六张标准表导入到AO2011中,选择辅助导入,按提示选择相应字段一步步生成财务数据临时表,注意导入辅助余额表和辅助凭证表时选择数据以单表横排方式存储,完成后保存为模版,再次采集其他单位数据时只需修改执行存储过程的账套号,然后在使用模版采集数据即可,导入成功后打开会计科目审查可见科目代码1-5开头为财务会计,6-8开头为预算会计,如下图:

导入后的账套与系统前台数据进行核对,所有科目余额均与前台一致。(刘津津)

打印 关闭
Produced By 大汉网络 大汉版通发布系统