用友NC5.7凭证集成解决方案
1. 业务集成背景
因公司需要在我方公司系统出具财务报表,需要将原系统对方NC5.7凭证数据集成到我方系统。 2. 集成思路分析
用友NC5.7且运行于外网环境,另对方不提供专门的用友集成开发顾问,只提供一个数据管理员提供用友备份数据,基于此情况,我们制定了如下的开发思路:
1. 因为外网环境不能被内网环境访问,由数据管理员提供数据备份文
件,我们将备份数据导入到一个中间库。
2. 我方将凭证集成过程中用到的基础数据(工程项目,组织机构,员
工,客商)抽取转换,并调用我方集成平台发布的数据接收接口。 3. 我方将用友凭证数据从中间数据库抽取转换,并调用我方集成平台
发布的凭证数据接收接口。
因我方有下发的主数据及凭证标准代码,作为集成实施,基础数据及凭证数据的接收侧代码的部署实施都已经很熟悉,则下面主要讲怎么样将用友凭证数据转换为我们需要的数据格式。 3. 用友NC5.7系统分析
由于对方不提供用友开发顾问,那么我们就需要自己去摸索用友系统凭证数据表方面的表关系。做事情要抓住重点,根据凭证接口的实施维护经验,首先要找到凭证三张表即:
凭证主表:用来保存凭证的制证人,会计期间,会计年度,凭证主摘要,凭证编号等主要字段。
凭证明细表:用来保存借贷方(原币,本位币)金额,摘要,分录号,科目,外
币币种,汇率,借贷方向字段等主要信息
辅助明细表:用来保存辅助对象的数据信息。
很幸运的我们从网络上下载到了一个完整的NC5.7数据字典。然后就根据数据
字典提供的信息,在中间数据库进行数据摸索查询,定位。下表是我们确定的数据字段对应表:
所需字段 业务日期 制证人 摘要 金额 取自用友数据表 Gl_voucher Gl_voucher Gl_voucher Gl_detail Gl_detail 表字段 prepareddate Pk_prepared explanation DebitAmount (原币借发生额) CreditAmount (原币贷发生额) LocalDebitAmount (本位币借发生额) LocalCreditAmount (原币贷发生额) Pk_corp Pk_accsubj Pk_currtype excrate1(汇率1) excrate2(汇率2) detailindex no year period pk_vouchertype 是否和其他表有关联(如有,请列出关联表) Sm_user.cuserid 公司代码 科目 币种 汇率 Gl_voucher Gl_detail Gl_detail Gl_detail Gl_detail Gl_voucher Gl_voucher Gl_voucher Gl_voucher 凭证行号 凭证号 会计年份 会计月份 凭证类型 客户供应商 工程项目 部门档案 职工 现金流 Bd_corp.pk_corp Bd_accsubj.pk_accsubj Bd_currtype.Pk_currtype bd_vouchertype. pk_vouchertype bd_cubasdoc bd_jobbasfil bd_deptdoc bd_psndoc bd_cashflow 用友辅助数据的设计则是首先在数据表Gl_freevalue建立一条辅助数据信息,然后根据明细表Gl_detail中的assid关联到该辅助明细。用友辅助记录的关联思路如下:
1. 首先查询凭证明细数据表 select * from gl_detail,得到辅助明细数据字段Assid;
2. 根据得到的assid,查询数据表 select * from gl_freevalue where freevalueid=’Assid’;则该条数据信息就是该明细科目的辅助对象信息。但是怎样确定该辅助对象是哪个类型的辅助对象,以便在转换凭证明细报文的时候添加合适的主数据映射类型呢?那么就需要一张比较牛的基础数据表:bd_bdinfo;根据查询gl_freevalue得到的数据字段checktype字段值,进行数据表查询select * from bd_bdinfo where pk_bdinfo=’checktype’,该条数据中的bdname字段会显示该辅助对象的类型。
3. 从新审视bd_bdinfo数据表中的所有数据,在这张表中记录了所有的辅助对象类型。数据字段basedoctablename字段信息会告诉你该字段信息取自那张数据表。那么你会很快的查询到集成过程中需要用到的辅助对象信息,比如查询我们需要用到的税项信息,则可以做一下查询
Select * from bd_bdinfo where bdname like '%税项%',取到pk_defdef及basedoctablename;
Select * from basedoctablename where pk_jobtype=’ pk_defdef’;会查询出来用友系统中所有的税率信息,就可以拿来和我方系统中的税率信息做主数据映射了。
相关推荐: