一种外系统业务数据导入NC生成会计凭证的方法设计与实现
- 格式:doc
- 大小:20.50 KB
- 文档页数:5
NC接口系统设计方案前言1 NC接口的目标与范围⏹NC接口的目标以NC集团财务管理系统为核心,通过应用集成整合各类应用系统,实现集团范围内业务系统与NC集团财务管理系统的无缝对接和业务协作,达到财务业务一体化和单据数据信息的共享,提高NC财务业务数据的录入效率和准确性,避免凭证和业务单据的重复录入。
⏹应用集成的范围➢基础档案的协同:主要包括客商档案、会计科目、人员档案等;➢总账数据的协同:主要包括总账凭证以及凭证中涉及的辅助核算;➢业务单据的协同:主要包括应收单、应付单、付款单、收款单、出入库单等多种单据;2详细设计方案2.1业务系统与NC系统的对接。
2.1.1接口内容(1)整合业务系统的基础档案到NC基础档案。
业务系统和NC系统基础档案的接口环节主要就是基础数据的唯一识别码和基础档案的导入和导出,即取业务系统系统中的档案数据按照用友NC系统的标准格式,传递给NC,并自动生成基础档案的唯一标识。
(2)整合业务系统的业务数据到NC总账凭证。
业务系统和NC系统总账模块的接口环节主要就是业务数据的导出和凭证数据导入,即取业务系统中的业务数据按照用友NC系统的凭证格式,生成NC 可以识别的单据数据,并通过后台传递给NC,生成NC凭证,凭证依据单据流水号作为唯一标识。
(3)整合业务系统的业务数据到NC业务单据。
业务系统和NC系统业务模块的接口环节主要就是业务数据的导出和业务数据的导入,即取业务系统中的业务数据按照用友NC系统的业务单据格式,生成NC可以识别的业务单据数据,并通过后台传递给NC,生成NC单据,单据依据单据流水号作为唯一标识。
2.1.2接口定义与设计考虑到用友NC系统数据交换平台的技术实现方式,对于上述接口内容本身的技术实现可以做如下设计:2.1.3接口分析由于此处业务系统的单据需要与NC进行对接,并且达到信息的共享和软件的集成,首先需要进行基础信息的对照,包括(客商信息、人员档案、凭证类型、辅助核算的设置),如需要协同的单据类型比较单一,则不需要进行大量数据的维护,如需要系统的单据类型比较多,则需要进行大量数据的设置和维护。
今天我把我刚研究出来的凭证导入跟大家分享一下,我走的野路子都是自己研究的,希望可以给大家做下借鉴。
我没有使用外面下的导入工具,是因为我确实不会用我们公司有U8和NC所以我只用U8和NC里面的工具就可以了。
如果你有U8的EAI和NC的信息交换平台可以使用。
方法不好请大家多提意见。
现在我来开始讲1进入U8EAI界面,增加外部系统注册进入界面的公司和年限要和相关帐套的帐套号和年限相对应。
名字和系统编码和随便取但是一定要与NC保持一致。
方面后面少修改2点击导入导出设置这里我们只介绍凭证导出通过制单日期我们可以选择性的导出凭证,这里我想导出3月份凭证3导出凭证这里大家都应这么操作吧U8和NC之间是通过XML文件来传递的。
而因为U8和NC的设置不同导致我们要花大力气去修改XML文件,其实我这边也是用的很笨的方法,就是直接修改XML文件,通过导入报错来修改XML文件,我们首先来看看导出的数据里面有什么吧。
我这里使用的是EDITPLUS 打开,用EXCEL是不能修改的,我试了一天都没试好。
后来找到这个软件,这个软件功能和EXCEL差不多,我们只需要他的替换功能就行了看不清楚的放大看吧。
这个是凭证的表头里面含有从U8过来的数据红色字体的数据里面只需要把proc="Query"改成proc="add"就行了下面又几个必填的数据<company></company> 公司<voucher_type>记</voucher_type> 凭证类别<fiscal_year>2013</fiscal_year> 会计年度<accounting_period>3</accounting_period> 会计月度<voucher_id>290</voucher_id> 凭证号<attachment_number>1</attachment_number> 分录<date>2013-03-31</date> 凭证日期<enter>张习勤</enter> 操作员<cashier></cashier><signature></signature><checker>周敏</checker> 这个去掉周敏不需要填<posting_date></posting_date><posting_person></posting_person><prepareddate>2013-03-31</prepareddate> 这是以前没有的要加一行这个是单据日期,没有回报错,和凭证日期一致<voucher_making_system>外部系统交换平台</voucher_making_system> 导入系统<memo1></memo1><memo2></memo2><reserve1>AP</reserve1> 去掉AP不需要<reserve2>AP0000000000263</reserve2> 单据号<revokeflag></revokeflag>写了字都需要注意修改利用里面的替换功能可以一起修改上面的类别,下面就是凭证的具体内容,这个是一张凭证两个分录<voucher_body><entry><entry_id>1</entry_id> 分录号<account_code>5401010406</account_code> 科目<abstract>1.11张强报销xx项目的招待费</abstract> 摘要<settlement></settlement><document_id></document_id><document_date>2013-01-25</document_date> 时间和上面一致不用改<currency></currency> 这个币种要写 CNY 一般是人民币<unit_price></unit_price><exchange_rate1></exchange_rate1><exchange_rate2>0</exchange_rate2><debit_quantity>0</debit_quantity><primary_debit_amount>0</primary_debit_amount> 这个是原币要和地下的的本币一致<secondary_debit_amount></secondary_debit_amount><natural_debit_currency>1040</natural_debit_currency> 借方本币<credit_quantity>0</credit_quantity><primary_credit_amount>0</primary_credit_amount> 贷方原币<secondary_credit_amount></secondary_credit_amount><natural_credit_currency>0</natural_credit_currency> 贷方本币<bill_type></bill_type><bill_id></bill_id><bill_date></bill_date><auxiliary_accounting> 这个地下是辅助核算,可根据NC里的叫法来修改,比如在NC里面我们叫<item name="dept_id">02</item> 部门客户辅助核算我们这边可以这样写<item name="personnel_id">02016</item> 员工 <item name="客户辅助核算">02</item><item name="cust_id"></item> 客户这样系统导入才不会报错<item name="supplier_id"></item> 供应商我们通过筛选把为0的都替换掉然后修改他们的名称<item name="item_id">055</item> 项目档案<item name="item_class">97</item> 项目类别<item name="operator"></item> 操作员<item name="self_define1"></item><item name="self_define2"></item><item name="self_define3"></item><item name="self_define4"></item><item name="self_define5"></item><item name="self_define6"></item><item name="self_define8"></item><item name="self_define9"></item><item name="self_define10"></item><item name="self_define11"></item><item name="self_define12"></item><item name="self_define13"></item><item name="self_define14"></item><item name="self_define15"></item><item name="self_define16"></item></auxiliary_accounting><detail><cash_flow_statement></cash_flow_statement><code_remark_statement></code_remark_statement></detail></entry><entry><entry_id>2</entry_id><account_code>122104</account_code><abstract>1.11张强报销xx项目的招待费</abstract><settlement></settlement><document_id></document_id><document_date></document_date><currency></currency><unit_price></unit_price><exchange_rate1></exchange_rate1><exchange_rate2>0</exchange_rate2><debit_quantity>0</debit_quantity><primary_debit_amount>0</primary_debit_amount><secondary_debit_amount></secondary_debit_amount> <natural_debit_currency>0</natural_debit_currency><credit_quantity>0</credit_quantity><primary_credit_amount>0</primary_credit_amount><secondary_credit_amount></secondary_credit_amount> <natural_credit_currency>1040</natural_credit_currency> <bill_type></bill_type><bill_id></bill_id><bill_date></bill_date><auxiliary_accounting><item name="dept_id"></item><item name="personnel_id"></item><item name="cust_id"></item><item name="supplier_id"></item><item name="item_id"></item><item name="item_class"></item><item name="operator"></item><item name="self_define1"></item><item name="self_define2"></item><item name="self_define3"></item><item name="self_define4"></item><item name="self_define5"></item><item name="self_define6"></item><item name="self_define8"></item><item name="self_define9"></item><item name="self_define10"></item><item name="self_define11"></item><item name="self_define12"></item><item name="self_define13"></item><item name="self_define14"></item><item name="self_define15"></item><item name="self_define16"></item></auxiliary_accounting><detail><cash_flow_statement></cash_flow_statement><code_remark_statement></code_remark_statement></detail></entry></voucher_body></voucher>把这些注释改完了之后就可以开始设置NC了第一步进入系统交换平台---交换平台日志注意这两个就可以了,可以调整传输上线第二部外部系统交换平台这里要和U8的名称保持一致。
如何通过外部交换平台导入NC基本档案
一、xml文件的创建
1、外部系统信息设置
2、交换规则定义
3、编辑xml文件,将下图中表体内容复制粘贴
注:此处复制后会保证导入到excel中表格内容可以自动扩展,否则的话只能录入一行数据。
二、将XML导入EXCEL,并制作导入模板
对于XML文件表头标签的含义大家可以参见NC外部交换平台资料,写好这个文件之后。
新建一个EXCEL文档(这里以EXCEL 2007为例),然后打开数据连接将上面写好的XML映射进来,如图:
将XML文件导入EXCEL:
XML导入后的界面:
点击XML源后,将第一步导入的行都删除:
将XML源里的标签拖到相应位置:
输入值后,批量导出XML文件,这样就可以直接导入外部交换平台:
三、交换规则文件定义
根据导入需要,修订交换规则文件,详细说明可以参见外部交换平台操作手册。
SAP项目**股份有限公司操作说明书程序名称:SAP财务凭证传NC开发目录1.功能描述 (3)2.适用范围 (3)3.基础档案维护 (3)3.1.会计科目 (3)3.1.1输入屏幕 (3)3.1.2新增修改删除 (3)3.1.3导入导出 (4)3.2.客商辅助 (5)3.3.部门维护 (5)4.凭证导出 (5)5.核对 (6)1. 功能描述SAP所产生的财务凭证,以既定格式按天导出EXCEL,操作人员转化为XML后,导入NC系统。
2. 适用范围一期上线的10个公司。
3. 基础档案维护3.1. 会计科目科目对照表事务码ZFI005,科目对照表3.1.1输入屏幕3.1.2新增修改删除点击按钮,进入后点击,如下界面可修改、新增、复制、删除,注意只能修改对应NC科目编码,辅助分类不能修改。
辅助核算说明,按此设置维护辅助核算3.1.3导入导出在初始界面点击,实现导入导出EXCEL的功能,导入格式可参照查询格式整理。
3.2. 客商辅助同科目,事务码ZFI006。
客户对照表由SD提供,供应商对照表由MM提供。
3.3. 部门维护同科目,事务码ZFI007,注意成本中心和利润中心分别维护,皆对应NC的部门。
部门部门对照表对照表4. 凭证导出事务码ZFI008,按天按公司代码导出,界面如下显示查询结果后,如下图,点击导出EXCEL表,然后转为XML格式文件5. 核对如果凭证有误,取查询结果里面memo2字段为SAP凭证号,按凭证核对。
如果报表为空,先查询基础档案是否维护。
U8自定义辅助核算凭证传入NC
对于U8自定义辅助核算的凭证如何传到NC系统中去,本文做了详细介绍,从设置自定义项目到凭证顺畅传输,手把手教您学会整个过程,读者可以在本文中举一反三,应用于实际中。
第一步:在U8里面添加自定义辅助核算。
U8辅助核算
1.基础档案-其他-自定义项,单据头,设置单据头的项目名称。
2.设置会计科目的辅助核算科目。
3.添加U8自定义项目档案的内容
第二步:在NC里面添加自定义项。
集团-客户化-基本档案-自定义项-自定义项定义-自定义项档案定义
增加自定义项档案定义,在这里增加的档案名称一定要和U8里面的自定义项的名称一致。
例如:
NC-档案名称为:a,U8辅助核算的名称:a
NC自定义项档案定义:
然后给自定义项添加内容:
NC自定义项内容:
U8自定义项目档案的内容:
以上两个地方要一一对应。
第三步:对应会计科目
客户化-基本档案-财务会计信息-会计科目,修改科目辅助核算,选择刚才添加的自定义项档案,如下图:
科目列表显示:
第四步:设置基础数据对照表。
应用集成-信息交换平台-基础数据对照表-增加刚才添加的自定义项,并且对照项目数据档案:
进入U8设置科目指定备查项,指定科目的备查项,选择自定义的项,见下图:
在U8里面添加凭证,给科目指定备查项,见下图:
传输成功:
注意:
如果不能导入,请把“外部系统设置”里面,按编码设置就OK了。
通过上面的操作,我们就可以把带有自定义辅助核算的凭证从U8传输到了NC中,接下来我们就可以在NC系统中,进行相关的凭证操作了。
用友U8测试部 顾海龙
2012年01月。
数据导入功能的使用说明目前NC系统的很多档案(或单据)录入数据的方式一般是手工一条条的在界面上输入然后保存到数据库,如果遇到了稍微多一些的数据,用户必须重复完成同一个操作,这样使得用户会把大量的时间和精力放在导入过程上,这种导入方式效率很低,也违反了软件可以消除人类重复劳动的基本理念。
为了使实施人员、测试人员和用户能够提高数据录入的效率,NC5.5特增加了数据导入功能。
通过该功能可以实现数据的批量录入,用户只需用事先准备好的数据文件进行导入而不必像原来那样重复的在界面输入和保存。
在批量导入期间,用户完全可以去做其他事情,只要最后来查看导入日志就可以知道数据导入的详细情况,如果有出错的数据未能保存到数据库,可以根据日志错误信息修改该数据进行二次导入。
这样就可以节省大量手工录入的时间。
目前的导入文件只支持Microsoft Office Excel的CSV文件。
进行数据导入操作的一般流程是:数据导入工具使用图解1,进入工具界面2,选择待导入档案(已经实现数据导入功能的档案(或单据))3,导出格式文件1)导入项目设置:左侧为界面的所有可输入项目,右边为必输项,可以根据具体的业务需要自定义导入项目列表,设置完成后点击“生成Excel”。
2)保存格式文件:选择保存位置和保存的文件名。
3)格式文件一览4,在格式文件中填写数据格式文件中第一行是表名和列名信息,根据对应的列输入数据,第一列是关键字信息,当档案(或单据)是主子表时才需要填写。
具体例子如下:4.1 单表体(代表档案:币种)文件中每一行数据代表一条币种信息4.2 单表头(代表档案:部门档案)文件中每一行数据代表一条部门档案信息4.3 主子表(代表档案:客商基本档案)主表信息在最上面的数据区,子表在下面的数据区,数据区之间用一个空行来隔离,如果一条主表数据有多条子表数据可以在第一列为每条数据设置关键字,由关键字来确定主子表数据的对应关系,如下图的编码是“qqq1”的客商(关键字为“1”)对应的发货地址是“q1”和“q2”(关键字为“1”),对应的银行账号是“a1”和“a2”(关键字为“1”)。
NC凭证导入操作说明江西GBU 黄建军***************.cn一、外部系统信息设置:如果外部系统中基础档案数据名称或者编码与NC系统一致,那么直接在外部系统信息设置里选择相应的翻译策略即可,如果外部系统的基础数据名称或编码与NC系统不一致,则需要进行基础数据对照。
注:“外系统编码”必须与导入模板中“sender”项的编码值保持一致。
“凭证类别”的匹配规则需设置为“仅按对照表”,其他基础数据匹配规则设置为“按编码”。
二、基础数据对照表:用于NC系统中没有外系统中的基础数据或NC系统中的数据和外系统中的数据不一致时的对照。
三、整理导入模板并转换为XML文件:按模板格式整理好需导入的数据,并转换为xml格式(其中要将excel的宏安全降到最低级)。
注:以下设置是基于EXCEL 2003版本中操作。
1、设置EXCEL宏安全级别:打开“工具”--“宏”--“安全性”菜单;将“安全级”设置为“低”;2、按下图操作,执行左上角的”转换成XML”功能将整理好的文件转换为XML格式。
注:模板中第一行的“sender”项的编码值必须与外部系统信息设置中的“外系统编码”保持一致。
“公司编码”需设置为需导入的对应公司编码。
因导入的匹配规则是按编码,故表中的“科目编码”和各项“辅助核算值”请参照系统中正确的编码进行整理。
每一张凭证的A-G列信息,只要在第一条分录行整理,本凭证的其他分录行不需要。
导出成xml格式时,默认路径为c:\凭证.xml,可以修改存放路径和文件名。
四、手动加载:用于手动加载数据至NC系统,并即时返回回执文件。
发送完毕之后,可通过查看系统自动返回的“日志文件”或到“交换平台日志”功能节点去检查是否导入成功。
五、检查是否导入成功的方法:1.查看系统返回的日志文件:下图是打开日志文件(文件位置会默认在桌面上,显示的文件名为bkMsg_凭证_+时间.xml)后显示的内容,提示处理完毕说明是成功导入了;如果不成功,则会有其它提示;表明相关校验规则不满足,造成凭证不能成功导入。
外部交换平台应用指南(5.0)本文档适用于5.0外部交换平台所有用户,和以前版本不同地方将重点介绍,并以红色字体标明。
本文档分为五个部分,1.外部交换平台自身功能介绍。
2.导入文件介绍。
3.导入步骤详细介绍及常见提示解决方法。
4.导出步骤介绍。
5.升级介绍。
外部交换平台介绍:1.1功能介绍:外部交换平台是用来在NC和其他外部系统之间交换数据的工具。
其他外部系统如U8产品,或者其他公司的产品,只要遵守了共同约定的数据规范(在该平台中使用的是XML文档),就可以实现诸如基本档案、会计凭证和各种业务单据的系统间的交换。
外部交换平台与其他系统交换数据主要有两种方式,异步发送方式和同步发送方式。
异步发送方式又分两种方式,手动加载方式和预警加载方式。
手动加载方式是指在Server端启动了NC系统后,由客户端登陆到NC系统,通过外部交换平台的手动加载界面把客户端的业务文档手动传送到Server端的NC系统,或者用电子邮件发送到Server端,然后由有权限的用户通过手动加载界面加载到Server 端。
预警加载方式是一种自动加载方式,借助于NC预警平台设定所要发送的业务文档、发送触发的时间等,然后交由预警平台将数据发送到Server端的NC 系统。
同步发送方式是一种自定义的发送方式,通过编写代码向NC Server端发起POST 方法的请求,建立连接后直接将业务文档的数据写入连接,NC Server端从连接中读取数据内容后进行后续处理。
其他系统编写和调用这种自定义代码,可以实现与NC系统间的实时交互。
利用外部数据交换平台还可以通过发送XML格式的查询条件导出NC系统的数据(需业务插件支持),导出的数据可以附着在回执文件中,也可以直接向外部系统回发HTTP请求。
在某些应用场景下,还可以通过配置NC系统内的单据动作脚本,在某一业务操作被触发时向外系统发送数据。
1.2按发送流程介绍节点:交换平台日志(参数设置)(必须)外部交换平台参数设置类似于NC客户化参数设置,用来设置外部交换平台各参数,各参数的意义下面具体介绍。
用友NC操作方法及流程一、期初建账1、总账初始设置期初余额2、帐套刚建好,第一次建账只需点击期初建账;次年年初则需先点击年初重算,保存,然后期初建账。
3、第二年年初建账。
2011年12月份的帐结完后,切换到2012年1月登陆,2012年科目余额表的期初是没有数字的,需要到期初余额处进行年初重算。
将所有科目选择到右边,点确定。
弹出对话框,点“是”然后试算看下是否平衡,平衡后点:期初建账,一直“下一步”到“建账”完成为止。
2012年期初余额就会自动转过来、以上图示是以2010年年初建账为例。
二、报账中心1、设置审批流客户化→流程配置→审批流定义→应收应付报账中心1)差旅费报销单增加→选择HR人员或角色→工具箱→分别选取开始、转移、虚活动、结束→按经营授权表设置比如出纳的审批流为:2)费用报销单(审批流定义同上)2、单据录入财务管理→报账中心→日常业务→单据处理→单据录入选择单据类型1)费用报销单增加→增行根据实际业务要求填写2)差旅费报销单(操作方法同上)3、单据管理该节点可修改、查询已保存或暂存的单据1)查询双击打开单据管理节点,进入单据管理界面,如图:点击查询,弹出如下对话框:选择需要查询单据的条件,点击确定,进入查询后界面:2)修改双击需要修改的单据,进入单据操作界面,如下:选择单据操作里面的修改,进行编辑,然后保存。
3)审核4、签字确认5、凭证生成三、总账1、制单打开财务会计→总账→凭证管理→制单节点,如图:双击打开,进入如下界面:点击增加,进入按照单据填写摘要,并编制会计分录;如为现金或银行存款业务,还需定义现金流量。
2、审核打开财务会计→总账→凭证管理→审核节点,进入如下界面:点击查询,输入需要审核的单据的条件,如图所示:然后确定,进入查询后界面:选中需要审核的单据,点击审核。
3、记账同审核。
4、结账5、打开财务会计→总账→期末处理→结账节点,进入如下界面:连续点击下一步,出现以下界面:点击结账,确定。
NC凭证导入操作说明江西GBU 黄建军***************.cn一、外部系统信息设置:如果外部系统中基础档案数据名称或者编码与NC系统一致,那么直接在外部系统信息设置里选择相应的翻译策略即可,如果外部系统的基础数据名称或编码与NC系统不一致,则需要进行基础数据对照。
注:“外系统编码”必须与导入模板中“sender”项的编码值保持一致。
“凭证类别”的匹配规则需设置为“仅按对照表”,其他基础数据匹配规则设置为“按编码”。
二、基础数据对照表:用于NC系统中没有外系统中的基础数据或NC系统中的数据和外系统中的数据不一致时的对照。
三、整理导入模板并转换为XML文件:按模板格式整理好需导入的数据,并转换为xml格式(其中要将excel的宏安全降到最低级)。
注:以下设置是基于EXCEL 2003版本中操作。
1、设置EXCEL宏安全级别:打开“工具”--“宏”--“安全性”菜单;将“安全级”设置为“低”;2、按下图操作,执行左上角的”转换成XML”功能将整理好的文件转换为XML格式。
注:模板中第一行的“sender”项的编码值必须与外部系统信息设置中的“外系统编码”保持一致。
“公司编码”需设置为需导入的对应公司编码。
因导入的匹配规则是按编码,故表中的“科目编码”和各项“辅助核算值”请参照系统中正确的编码进行整理。
每一张凭证的A-G列信息,只要在第一条分录行整理,本凭证的其他分录行不需要。
导出成xml格式时,默认路径为c:\凭证.xml,可以修改存放路径和文件名。
四、手动加载:用于手动加载数据至NC系统,并即时返回回执文件。
发送完毕之后,可通过查看系统自动返回的“日志文件”或到“交换平台日志”功能节点去检查是否导入成功。
五、检查是否导入成功的方法:1.查看系统返回的日志文件:下图是打开日志文件(文件位置会默认在桌面上,显示的文件名为bkMsg_凭证_+时间.xml)后显示的内容,提示处理完毕说明是成功导入了;如果不成功,则会有其它提示;表明相关校验规则不满足,造成凭证不能成功导入。
一种外系统业务数据导入NC生成会计凭证的方法设计与实现作者:刘天宇李金新来源:《现代电子技术》2014年第22期摘要:为了方便让业务人员进行简单的操作实现业务系统与财务系统间数据转化,减少复杂操作步骤,提高工作效率。
采用在Web前端开放一个任务触发器,同时配置简单、少量的数据提取条件,让后台数据接口程序根据已知条件从共同中间库完成数据提取。
同时利用数据持久化,JNDI(命名目录服务)等技术完成数据导入,最终成功实现了从业务数据到生成会计凭证的需求。
进而探索了一条通过中间库实现跨系统数据转化的新思路,使得两个系统充分发挥了各自的优势,最大程度地服务于企业。
关键词: ERP系统;数据接口;会计凭证; J2EE中图分类号: TN919⁃34; TP315 文献标识码: A 文章编号: 1004⁃373X(2014)22⁃0075⁃03Design and implementation of generation of financial documents from outside business data imported into NCLIU 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; J2EE0 引言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类需要实现ng.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配置信息如下:nc.itf.hzyb.IDapMsgVOConverternc.impl.hzyb.convert.DapMsgVOImplremote=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.。