一种外系统业务数据导入NC生成会计凭证的方法设计与实现
2014-11-14刘天宇李金新
刘天宇+李金新
摘 要: 为了方便让业务人员进行简单的操作实现业务系统与财务系统间数据转化,减少复杂操作步骤,提高工作效率。采用在Web前端开放一个任务触发器,同时配置简单、少量的数据提取条件,让后台数据接口程序根据已知条件从共同中间库完成数据提取。同时利用数据持久化,JNDI(命名目录服务)等技术完成数据导入,最终成功实现了从业务数据到生成会计凭证的需求。进而探索了一条通过中间库实现跨系统数据转化的新思路,使得两个系统充分发挥了各自的优势,最大程度地服务于企业。
关键词: ERP系统; 数据接口; 会计凭证; J2EE
中图分类号: TN919?34; TP315 文献标识码: A 文章编号: 1004?373X(2014)22?0075?03
Design and implementation of generation of financial documents from outside business data imported into NC
LIU Tian?yu, LI Jin?xin
(College of Electronic Information, Hangzhou Dianzi Unversity, Hangzhou 310018, China)
Abstract: In order to realize data conversion from business system to the financial system, reduce the complex operation steps, and improve the work efficiency for the business person, a task trigger is opened at the Web front?end and a small amount of condition configuration are added to let the data interface program extract data from a common intermediate database according to the known conditions, and utilize the data persistence and JNDI to complete data import. With the above steps, the requirement about generating the accounting documents was achieved successfully. A new way to realize the conversion of the data from other system was obtained with this method, which can make a full use of two systems advantages to give an excellent service to enterprises to the full extent.
Keywords: ERP system; data interface; accounting document; J2EE
0 引 言
NC(New Century)是用友软件集团ERP软件产品,是面向集团的世界级高端企业管理软件。目前NC基于8 000家集团企业客户的实力,使其在同类产品市场占有率已经达到亚太第一。NC采用J2EE架构,包含7大核心模块,以及一个开放的集团级开发平台UAP,利用最新的互联网技术、云计算技术、移动应用技术等,形成了集团管控8大领域15大行业68个细分行业的解决方案[1]。本文将阐述利用Java语言,进行客户化接口程序开发,完成从外系统取出业务数据,导入NC财务模块生成会计凭证的过程。
1 数据对接总流程介绍
1.1 接口设计意义
会计凭证是整个公司经营的重要反映,是实现各项经营指标具体化、成本控制可视化的数据基础,必须能充分反映出公司各项经营指标,为决策分析、方案制定和运营管理提供基础财务数据[2?3]。保证数据信息安全、可持久化的前提下,设计一个可扩展的、高效率的数据接口,不仅可以提高企业财务的工作效率,还充分发现各自系统的优势[4]。
1.2 流程介绍
由于两个系统的框架不同,对外封闭,以及数据格式不统一等因素。本文提出一种将业务数据转移到公共的中间库中,然后开发接口从中间表中取出数据,最终导入NC财务模块的办法。系统流程示意图如图[5?6]。
图1 系统流程示意图
2 开发程序设计
基于J2EE架构的NC在表示层是面向Web的服务。故在NC中注册的任务触发器直接在Web前端面向财务业务人员,配置待提取数据的筛选条件,让后台程序去完成后续包括生成凭证的全部过程,最终在Web页面上返回执行结果。任务触发器操作以及后台数据接口实现流程图如图2所示。
图2 任务触发器以及数据接口实现流程图
上述过程主要分为3个阶段:前期配置阶段、数据加工处理阶段、数据分类保存阶段。
(1) 前期配置阶段:主要工作有中间表元数据定义,中间件服务启动,数据库实例连接。中间表元数据定义是将中间表的主子表定义为2个事务性的JavaBean,即2个VO类。表中的每个字段为JavaBean中一个私有属性,外界通过访问器访问。如:
public class YBNCBillHVO extends VauleObject{
private String vaccount;
public String getVaccount() {
return vaccount;}
public void setVaccount(String vaccount) {
this.vaccount = vaccount;}
为了数据可持久化,VO类需要实现java.lang.Cloneab和java.io.Serializable这两个接口,同时采用DAO的设计模式,核心DAO类是对JDBC的封装和改进,完成对数据库增、删、改、查等操作的同时,对业务层提供了一个面向对象的接口,使得开发人员将更多的时间去实现业务逻辑上,并且在以后的维护上带来了极大的便利[7]。
中间件服务使用Tomcat,利用JDBC连接池与两系统数据库连接。JDBC是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
(2) 数据加工处理阶段:主要工作包括数据处理以及调用接口传入后台实现类。数据处理包括数据提取、转换、加工三步骤。数据提取的实现是使用DAO类的查询方法,返回VO类数组。数据转换是通过将中间表数据一一映射到NC内部临时表中。数据加工是通过定义一个对外公开的远程接口,其接口包含一个加工的方法。定义一个这样的接口是为了方便以后的扩展和维护[8]。但是接口的实现类是部署在服务器上,如果从客户端访问该接口的实现方法时,需要用到目录服务技术JNDI,并且要在XML配置文件中声明[9]。部分代码如下:
nc.itf.hzyb.IDapMsgVOConverter IdapMsgVO =
(IDapMsgVOConverter)NCLocator.getInstance().lookup(IDapMsgVOConverter.class.
getName());
DapMsgVO[] msgvos = IdapMsgVO.convert((MidBillVO[]) bills);
XML配置信息如下:
remote=true表示远程组件,singleton=true表示单例模式,tx=NONE表示非事务性公共组件。
调用内部接口将数据导入核心实现类。同样用JNDI寻求服务将处理好的数据交给后台核心处理类。数据参数一个是对应中间表VO类数组,一个是带有会计凭证信息的VO类数组。
(3) 数据分类保存阶段:主要工作包括凭证模板匹配,会计科目分类,数据保存[9]。凭证模板匹配和会计科目分类过程,都是NC根据VO数组中各属性的值去匹配系统内部基础数据表中的主键值的过程。数据保存工作是调用JDBC完成数据批量导入。
3 性能测试
系统硬件环境为Windows XP,Tomcat 6.0,Oracle11g,软件环境为NC5.6,IE 9。图3为数据接口程序完成以后结果回显图。这里返回的结果是会计实时凭证,当前录入人选择需要组合的实时凭证进行编号,点击生成,进入会计凭证界面(图4),审核确认以后,点击保存,即可生成会计凭证。先生成实时凭证为了降低出错率,控制财务风险。
图3 生成实时凭证结果回显
图4 会计凭证界面
4 结 语
在本次ERP系统的实施中,通过客户化接口程序的开发,实现了外部系统数据导入,完成了生成会计凭证的需求,提高了企业财务的工作效率。本文重点介绍了系统整体流程以及开发程序涉及到JDBC、数据持久化、JNDI等接口技术的使用方法,了解这些技术的使用对实现跨系统数据集成有着重要的意义和参考价值[10]。
参考文献
[1] 占慧莲,张子健.用友NC财务管理系统的操作要点[J].中国管理信息化,2010,13(12):3?5.
[2] 蒲勇.中国人寿业务系统与SAP ERP数据接口系统的设计与数据分析[D].成都:电子科技大学,2013.
[3] 高娟.浅谈高校会计凭证档案信息化管理[J].教育探索,2013(16):148?149.
[4] 黎胜利,张文波,蒲亚军.Oracle ERP财务模块与金算盘财务软件接口问题的研究[J].现代电子技术,2013,36(2):48?50.
[5] 张晓鹏.浅谈计算机软件数据接口的几种实现思路和应用[J].科技情报开发与经济,2010,20(18):127?128.
[6] 李剑波,蔡伟周.综合监控系统的数据接口开发与应用[J].机电工程技术,2012,41(9):39?41.
[7] 孙晓菲.关于一种ERP系统数据持久化结构的设计[J].微电子学与计算机,2013(4):115?118.
[8] 简玲.基于Web的企业财务信息管理系统的设计和实现[D].成都:电子科技大学,2012.
[9] 用友软件股份有限公司.NC财务会计平台技术红皮书[M].北京:用友软件股份有限公司,2009.
[10] 关宇平.SAPR/3系统客户化接口程序的开发方及实现[J].计算机系统应用,2007(2):47?50.
public class YBNCBillHVO extends VauleObject{
private String vaccount;
public String getVaccount() {
return vaccount;}
public void setVaccount(String vaccount) {
this.vaccount = vaccount;}
为了数据可持久化,VO类需要实现java.lang.Cloneab和java.io.Serializable这两个接口,同时采用DAO的设计模式,核心DAO类是对JDBC的封装和改进,完成对数据库增、删、改、查等操作的同时,对业务层提供了一个面向对象的接口,使得开发人员将更多的时间去实现业务逻辑上,并且在以后的维护上带来了极大的便利[7]。
中间件服务使用Tomcat,利用JDBC连接池与两系统数据库连接。JDBC是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
(2) 数据加工处理阶段:主要工作包括数据处理以及调用接口传入后台实现类。数据处理包括数据提取、转换、加工三步骤。数据提取的实现是使用DAO类的查询方法,返回VO类数组。数据转换是通过将中间表数据一一映射到NC内部临时表中。数据加工是通过定义一个对外公开的远程接口,其接口包含一个加工的方法。定义一个这样的接口是为了方便以后的扩展和维护[8]。但是接口的实现类是部署在服务器上,如果从客户端访问该接口的实现方法时,需要用到目录服务技术JNDI,并且要在XML配置文件中声明[9]。部分代码如下:
nc.itf.hzyb.IDapMsgVOConverter IdapMsgVO =
(IDapMsgVOConverter)NCLocator.getInstance().lookup(IDapMsgVOConverter.class.
getName());
DapMsgVO[] msgvos = IdapMsgVO.convert((MidBillVO[]) bills);
XML配置信息如下:
remote=true表示远程组件,singleton=true表示单例模式,tx=NONE表示非事务性公共组件。
调用内部接口将数据导入核心实现类。同样用JNDI寻求服务将处理好的数据交给后台核心处理类。数据参数一个是对应中间表VO类数组,一个是带有会计凭证信息的VO类数组。
(3) 数据分类保存阶段:主要工作包括凭证模板匹配,会计科目分类,数据保存[9]。凭证模板匹配和会计科目分类过程,都是NC根据VO数组中各属性的值去匹配系统内部基础数据表中的主键值的过程。数据保存工作是调用JDBC完成数据批量导入。
3 性能测试
系统硬件环境为Windows XP,Tomcat 6.0,Oracle11g,软件环境为NC5.6,IE 9。图3为数据接口程序完成以后结果回显图。这里返回的结果是会计实时凭证,当前录入人选择需要组合的实时凭证进行编号,点击生成,进入会计凭证界面(图4),审核确认以后,点击保存,即可生成会计凭证。先生成实时凭证为了降低出错率,控制财务风险。
图3 生成实时凭证结果回显
图4 会计凭证界面
4 结 语
在本次ERP系统的实施中,通过客户化接口程序的开发,实现了外部系统数据导入,完成了生成会计凭证的需求,提高了企业财务的工作效率。本文重点介绍了系统整体流程以及开发程序涉及到JDBC、数据持久化、JNDI等接口技术的使用方法,了解这些技术的使用对实现跨系统数据集成有着重要的意义和参考价值[10]。
参考文献
[1] 占慧莲,张子健.用友NC财务管理系统的操作要点[J].中国管理信息化,2010,13(12):3?5.
[2] 蒲勇.中国人寿业务系统与SAP ERP数据接口系统的设计与数据分析[D].成都:电子科技大学,2013.
[3] 高娟.浅谈高校会计凭证档案信息化管理[J].教育探索,2013(16):148?149.
[4] 黎胜利,张文波,蒲亚军.Oracle ERP财务模块与金算盘财务软件接口问题的研究[J].现代电子技术,2013,36(2):48?50.
[5] 张晓鹏.浅谈计算机软件数据接口的几种实现思路和应用[J].科技情报开发与经济,2010,20(18):127?128.
[6] 李剑波,蔡伟周.综合监控系统的数据接口开发与应用[J].机电工程技术,2012,41(9):39?41.
[7] 孙晓菲.关于一种ERP系统数据持久化结构的设计[J].微电子学与计算机,2013(4):115?118.
[8] 简玲.基于Web的企业财务信息管理系统的设计和实现[D].成都:电子科技大学,2012.
[9] 用友软件股份有限公司.NC财务会计平台技术红皮书[M].北京:用友软件股份有限公司,2009.
[10] 关宇平.SAPR/3系统客户化接口程序的开发方及实现[J].计算机系统应用,2007(2):47?50.
public class YBNCBillHVO extends VauleObject{
private String vaccount;
public String getVaccount() {
return vaccount;}
public void setVaccount(String vaccount) {
this.vaccount = vaccount;}
为了数据可持久化,VO类需要实现java.lang.Cloneab和java.io.Serializable这两个接口,同时采用DAO的设计模式,核心DAO类是对JDBC的封装和改进,完成对数据库增、删、改、查等操作的同时,对业务层提供了一个面向对象的接口,使得开发人员将更多的时间去实现业务逻辑上,并且在以后的维护上带来了极大的便利[7]。
中间件服务使用Tomcat,利用JDBC连接池与两系统数据库连接。JDBC是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
(2) 数据加工处理阶段:主要工作包括数据处理以及调用接口传入后台实现类。数据处理包括数据提取、转换、加工三步骤。数据提取的实现是使用DAO类的查询方法,返回VO类数组。数据转换是通过将中间表数据一一映射到NC内部临时表中。数据加工是通过定义一个对外公开的远程接口,其接口包含一个加工的方法。定义一个这样的接口是为了方便以后的扩展和维护[8]。但是接口的实现类是部署在服务器上,如果从客户端访问该接口的实现方法时,需要用到目录服务技术JNDI,并且要在XML配置文件中声明[9]。部分代码如下:
nc.itf.hzyb.IDapMsgVOConverter IdapMsgVO =
(IDapMsgVOConverter)NCLocator.getInstance().lookup(IDapMsgVOConverter.class.
getName());
DapMsgVO[] msgvos = IdapMsgVO.convert((MidBillVO[]) bills);
XML配置信息如下:
remote=true表示远程组件,singleton=true表示单例模式,tx=NONE表示非事务性公共组件。
调用内部接口将数据导入核心实现类。同样用JNDI寻求服务将处理好的数据交给后台核心处理类。数据参数一个是对应中间表VO类数组,一个是带有会计凭证信息的VO类数组。
(3) 数据分类保存阶段:主要工作包括凭证模板匹配,会计科目分类,数据保存[9]。凭证模板匹配和会计科目分类过程,都是NC根据VO数组中各属性的值去匹配系统内部基础数据表中的主键值的过程。数据保存工作是调用JDBC完成数据批量导入。
3 性能测试
系统硬件环境为Windows XP,Tomcat 6.0,Oracle11g,软件环境为NC5.6,IE 9。图3为数据接口程序完成以后结果回显图。这里返回的结果是会计实时凭证,当前录入人选择需要组合的实时凭证进行编号,点击生成,进入会计凭证界面(图4),审核确认以后,点击保存,即可生成会计凭证。先生成实时凭证为了降低出错率,控制财务风险。
图3 生成实时凭证结果回显
图4 会计凭证界面
4 结 语
在本次ERP系统的实施中,通过客户化接口程序的开发,实现了外部系统数据导入,完成了生成会计凭证的需求,提高了企业财务的工作效率。本文重点介绍了系统整体流程以及开发程序涉及到JDBC、数据持久化、JNDI等接口技术的使用方法,了解这些技术的使用对实现跨系统数据集成有着重要的意义和参考价值[10]。
参考文献
[1] 占慧莲,张子健.用友NC财务管理系统的操作要点[J].中国管理信息化,2010,13(12):3?5.
[2] 蒲勇.中国人寿业务系统与SAP ERP数据接口系统的设计与数据分析[D].成都:电子科技大学,2013.
[3] 高娟.浅谈高校会计凭证档案信息化管理[J].教育探索,2013(16):148?149.
[4] 黎胜利,张文波,蒲亚军.Oracle ERP财务模块与金算盘财务软件接口问题的研究[J].现代电子技术,2013,36(2):48?50.
[5] 张晓鹏.浅谈计算机软件数据接口的几种实现思路和应用[J].科技情报开发与经济,2010,20(18):127?128.
[6] 李剑波,蔡伟周.综合监控系统的数据接口开发与应用[J].机电工程技术,2012,41(9):39?41.
[7] 孙晓菲.关于一种ERP系统数据持久化结构的设计[J].微电子学与计算机,2013(4):115?118.
[8] 简玲.基于Web的企业财务信息管理系统的设计和实现[D].成都:电子科技大学,2012.
[9] 用友软件股份有限公司.NC财务会计平台技术红皮书[M].北京:用友软件股份有限公司,2009.
[10] 关宇平.SAPR/3系统客户化接口程序的开发方及实现[J].计算机系统应用,2007(2):47?50.