电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

金蝶EAS_WebService总账_新接口开发指南(二):将凭证引入到EAS系统中

来源:金蝶云社区作者:金蝶2024-09-229

金蝶EAS_WebService总账_新接口开发指南(二):将凭证引入到EAS系统中

概述

  我们的系统本身是有凭证引入接口的:直接接口WSVoucher.importVoucher和间接接口GLWebServiceFacade.importVoucher,并且被使用了很多年。但随着客户应用的不断深入,EAS总账作为核心财务系统的地位越来越高,原接口在有些场景下已无法满足需要,特列是大数据量导入时,容易发生内存溢出,甚至宕机。另外因为原接口的声明形式,无法扩展与重构,所以我们提供了一个新的接口WSVoucher.nImportVoucher以满足客户的需求。该接口单次可传的数据量是原接口的10倍以上,错误信息提示更加准确,速度更快,更加稳定,并且具有一定的扩展性。


1、到http://localhost:6888/ormrpc/services下载凭证用wsdl服务描述文件,这里要修改为你服务器的地址和端口,然后鼠标右键wsdl->链接另存为...

将文件后缀改为wsdl后保存到项目根目录,并生成客户端代码。


2、添加架包:在项目的根目录下建一个lib目录,然后将EAS服务端的server\lib\common\bos\common.jar,server\lib\patch\sp-fi_gl-server.jarserver\lib\common\trd\fastjson-xxx.jar拷贝到新建的lib下:

将架包引入到项目中:右键项目->Properties->Java Build Path->Libraries->Add JARs

注:附件中的示例工程并没有引入common.jar和sp-fi_gl-server.jar,而是将用到的类提取到了ziputils.jar中,引入的是ziputils.jar。另外对于JSON也可以使用其它库,如Gson,Jackson,Json-lib。


3、编写代码(完整代码在附件工程中的类client.VoucherImportTest),使用凭证引入新接口WSVoucher.nImportVoucher引入凭证,以下是发起调用的代码片段:

以下是凭证数据构造的代码片段:

凭证数据jsonRows是一个List<List<String>>形式的字符串,如果把它展开,形如一个excel表格:

构造数据时,对于非必录项或是无关项就填空字符串""即可,如果不填会造成错位。运行后,看到这样的信息,说明有凭证引入成功。


以下是本次引入的凭证信息,两条分录,分录1不带辅助账,分录2带两行辅助账:

以下是本次引入凭证的现金流量信息:


4、凭证引入新接口WSVoucher.nImportVoucher的第1个参数jsonRows,它是一个List<List<String>>形式的json字符串,所有明细项都要求是字符串,目前支持以下字段:

字段名

字段别名是否必录说明值格式(示例)
companyNumber公司编码标识字段,EAS系统中公司的编码,与voucherNumber,periodYear,periodNumber,[voucherType],[bizStatus]一起确定哪些连续行是同一个凭证的数据。ZZZ02-01
companyName公司名称公司名称,导入时不会对该字段进行处理。公司1
voucherNumber凭证号
标识字段,如果公司没有可用的编码规则且系统参数GL_031允许凭证使用手工编码时,该编码也将作为凭证的入库编码。v001
voucherId凭证ID凭证ID,通过引出接口将会获得该值,当overwrite值为true,该值支持凭证覆盖引入。
importKey全局标识用于外部系统在eas中标识自己。GL_016参数设置为"是",GL_016_1为"是",importKey不为空时,将使用该字段判断重复引入,两个凭证的importKey一样时,不允许重复引入,半角字符,不能超过88个。keyxxxxxx
externalId异构系统单据ID以EAS凭证做为下游单据的异构系统单据ID,比如外部的凭证ID,费用单据ID。1783231139637370000
periodYear会计期间年标识字段,要与bookedDate相匹配,空字符串或期间年。

空或2022

periodNumber会计期间编码标识字段,要与bookedDate相匹配,periodYear不为空时,只填月份即可,如3,当periodYear为空时,要填完整编码,如202203。3或202203
bookedDate记账日期凭证的登账日期2022-03-31
bizDate业务日期业务的发生日期2022-03-31
voucherType凭证类型可选标识字段,凭证类型编码(或名称)。
bizStatus凭证状态

可选标识字段,凭证状态的值或名称,如:0暂存;1已提交;2已作废;3已审核;5已过账,目前该字段并不作为导入凭证的状态。0
description参考信息
GL_016参数设置为是,GL_016_1为否(或为是且importKey为空)时,将使用该字段判断重复引入,建义使用importKey方式。webservice test
voucherAbstract摘要分录摘要,第一条分录的值同时作凭证的摘要。webservice test
attaches附件数量附件数量。0
isCheck复核是否复核。true或false,1或0
creator制单人制单人编码(或名称),每一行(包括现金流量行)最好都填上,会对性能有一定优化。lhh11
auditor审核人审核人编码(或名称),isAudit为true,要提供审核人。lhh11
poster过账人过账人编码(或名称),isPost为true时,要提供过账人。lhh11
cashier出纳人出纳人编码(或名称),审核或过账涉及复核时,要提供出纳人。lhh11
sourceSys来源系统来源系统,默认为11(基础系统),可填的值请参考com.kingdee.eas.framework.SystemEnum。11或基础系统
sourceType来源类型来源类型,默认为4(其它系统引入),可填的值请参考com.kingdee.eas.fi.gl.SourceType。4或其它系统引入
sourceBillId来源单ID来源单ID,半角字符,不能超过44个idxxxxxx
凭证分录行



entrySeq分录行号当前凭证的分录唯一区别,从1开始编,连续不能有跳跃,当为现金流量行时,为本方科目分录号。1
profitCenterNumber利润中心编码利润中心编码。pc001
accountNumber科目编码分录行科目编码1001
accountName科目名称科目名称,导入时不会对该字段进行处理。科目1
currencyNumber币种分录行币别编码BB01
entryDC借贷方向分录行借贷方向:1借方,0贷方1或0,
measurement计量单位计量单位编码(或名称)。KG或千克
cussent核销/挂账0,1,2,3,默认为0。0
customerNumber内部单位客户编码。c001
localRate汇率本位币汇率,默认为11.01
originalAmount原币金额分录行原币金额1
debitAmount借方金额分录行借方金额,分录方向为借方时必录1
creditAmount贷方金额分录行贷方金额,分录方向为贷方时必录1
qty数量分录行数量1
price单价分录行单价1
凭证辅助账行



asstSeq辅助账行号当前凭证的当前分录的辅助账行唯一区别,从1开始编,连续不能有跳跃1
assistAbstract辅助账摘要辅助账摘要。摘要
assistBizDate业务日期业务日期2022-03-31
assistEndDate到期日到期日2022-03-31
cpCustomerNumber客户编码
科目自定义属性的客户编码。ct001
cpSupplierNumber供应商编码科目自定义属性的供应商编码sp001
cpOrgUnitNumber公司编码科目自定义属性的公司编码com001
cpMaterialNumber物料编码科目自定义属性的物料编码mat001
settlementType结算方式科目自定义属性的结算方式编码t001
settlementNumber结算号科目自定义属性的结算号sn001
bizNumber业务编号科目自定义属性的业务编号bn001
ticketNumber票证号码科目自定义属性的票证号码tn001
invoiceNumber发票号码科目自定义属性的发票号码in001
asstActType1核算项目类型1核算项目类型的编码(或名称)。如果当前为现金流量行,则为现金流量的核算项目类型1。客户
asstActNumber1核算项目编码1核算项目的编码。如果当前为现金流量行,则为现金流量的核算项目编码1。c001
asstActName1核算项目名称1核算项目的名称。如果当前为现金流量行,则为现金流量的核算项目名称1。客户001
asstActType2核算项目类型以下:取决于科目是否核算多个项目,最多8个
asstActNumber2核算项目编码

asstActName2核算项目名称

asstActType3核算项目类型

asstActNumber3核算项目编码

asstActName3核算项目名称

asstActType4核算项目类型

asstActNumber4核算项目编码

asstActName4核算项目名称

asstActType5核算项目类型

asstActNumber5核算项目编码

asstActName5核算项目名称

asstActType6核算项目类型

asstActNumber6核算项目编码

asstActName6核算项目名称

asstActType7核算项目类型

asstActNumber7核算项目编码

asstActName7核算项目名称

asstActType8核算项目类型

asstActNumber8核算项目编码

asstActName8核算项目名称

现金流量字段



itemFlag现金流量标记指示该行是凭证数据行还是现金流量数据行,如果是凭证数据行应设置为0,如果是现金流量数据行可设置为:1包含主表项目,2包含附表项目,3包含主表与附表项目,4补充资料,5现金类冲抵,6合并后冲抵,7附表调整1
oppAccountSeq对方科目分录号对方科目分录行号,该值必须出现在凭证数据的entrySeq中2
oppAsstSeq对方辅助账号对方辅助账行号,该值必须出现在凭证数据的asstSeq1
primaryItem主表项目现金流量项目编码,要参考凭证和itemFlag填写pi001
primaryCoef主表系数本字段暂未使用,系统会自己计算。1
supplyItem附表项目现金流量项目编码,要参考凭证和itemFlag填写si001
supplyCoef附表系数本字段暂未使用,系统会自己计算。1
fullInfoItem补充资料现金流量项目编码,要参考凭证和itemFlag填写fi001
type现金流量性质列当主表项目挂辅助账时,性质应为2(外部)或3(内部),主表项目不挂辅助账,性质应为2(外部)1、2或3
cashflowAmountOriginal现金流量原币金额现金流量原币金额1
cashflowAmountLocal现金流量本位币金额现金流量本位币金额1
cashflowAmountRpt现金流量报告币金额现金流量报告币金额,本字段暂未使用,系统会根据原币金额或本位币金额算出报告币金额

金蝶EAS_WebService总账_新接口开发指南(二):将凭证引入到EAS系统中

概述  我们的系统本身是有凭证引入接口的:直接接口WSVoucher.importVoucher和间接接口GLWebServiceFacade.importVoucher,并且被使用了...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信