凭证引入“webservice接口”说明
一. “凭证引入”技术方案
其他业务系统数据,传输到EAS系统服务器,通过凭证引入“webservice接口”,转化为
EAS数据。
其他业务系统内的资金流动信息,实时地、非人工干预的传递到EAS系统,以财务凭证的
形式,转化为EAS系统内的财务信息。
二. “凭证引入”技术规范
EAS系统提供WebService 服务,以及产生EAS财务凭证的接口,供其他业务系统调用。
WebService 服务:金蝶在EAS系统上发布WebService服务,提供wsdl文件供客户端下载,
其他业务系统根据下载的wsdl文件,产生客户端。
EAS财务凭证的接口产生的客户端,分为两部分(java客户端举例)
(1) 协议类,包名 localhost.bosws.services.WSWSVoucher
协议类用于获得金蝶在EAS系统上发布WebService服务接口。本用例中为其他业务系统
内的资金流动信息产生EAS财务凭证的接口。
(2) JavaBean类,包名 wsvoucher.client
JavaBean类提供接口需要的参数。本用例中为EAS财务凭证需要的信息。
三. “凭证导入接口”调用说明
1. 接口:importVoucher(wsvoucher[], int isVerify, int isCashflow)
传参数第1个:WSWSVoucher[] 普通对象数组,见构造EAS凭证字段以及含义说明
传参数第2个:isverify
0 不核销,暂存
1 核销,暂存
2 不核销,提交
3 核销,提交
传参数第3个:isImpCashflow
是否引入现金流量
0 不是 / 1 是
四. 构造EAS凭证字段以及含义说明如下:
WSWSVoucher 说明:一张凭证占据的行数 = 凭证行*分录行*辅助账行
字体黑色:凭证头字段;深蓝:分录行字段; 橙色:辅助账字段;紫罗兰:现金流量
单元格颜色:灰色 必录项 ;浅青绿:辅助账核算项目(科目多核算项目,最多 8 个);浅绿:现金流量
字段名
类型
中文说明
是否必录
说明
格式
companyNumber
String
公司编码
bookedDate
bizDate
periodYear
periodNumber
voucherType
attaches
description
voucherNumber
entrySeq
voucherAbstract
accountNumber
String
String
int
int
String
int
String
String
int
String
String
记账日期
业务日期
会计期间-年
会计期间-编码
凭证字(凭证类型)
附件数量
参考信息
凭证号
分录行号
摘要
科目
是
是
是
是
是
是
否
否
是
是
否
是
录 入 公 司 编 码 , 必 须 在 EAS
中有该编码
凭证的登账日期
业务发生日期
必须在 EAS 中有
必须在 EAS 中有
凭 证 类 型 中 文 名 称 , 必 须 在
EAS 中有
2005-11-1
2005-11-1
2005
11
记
凭证唯一区别
当前凭证的分录唯一区别
分录摘要
分录行科目编码,必须在 EAS 1001.01
1
1
001
1.01
吨
徐晓霞
中有
分录行币别编码,必须在 EAS
中有
本位币汇率:没有时默认为 1
分录行方向:1 借方 -1 贷方
分录行原币金额
分录行数量
名称,必须在 EAS 中有
分录行单价
分录行借方金额:分录方向为借
方时必录
分录行贷方金额:分录方向为贷
方时必录
当 前 操 作 人 员 名 称 , 必 须 在
EAS 中有
当 前 操 作 人 员 名 称 , 必 须 在
EAS 中有
当 前 操 作 人 员 名 称 , 必 须 在
EAS 中有
当前凭证的当前分录的辅助账
行唯一区别
默认为 0,
名称 ,必 须在 EAS 中有 。比
如:客户、
编码 ,必 须在 EAS 中有 。比
如:客户 A 的编码
名称 ,必 须在 EAS 中有 。比
如:客户 A
以下:取决于科目是否核算多
个项目,最多 8 个
客户
01.01
客户 A
currencyNumber
String
币种
localRate
entryDC
originalAmount
qty
measurement
price
debitAmount
double
int
double
double
String
double
double
汇率
方向
原币金额
数量
计量单位
单价
借方金额
creditAmount
double
贷方金额
creator
poster
auditor
asstSeq
bizNumber
settlementNumbe
r
settlementType
cussent
asstActType1
String
String
String
int
String
String
String
int
String
制单人
过账人
审核人
辅助账行号
业务编号
结算方式
结算号
核销/挂账
核算项目 1
asstActNumber1
String
核算对象编码 1
asstActName1
String
核算对象名称 1
asstActType2
asstActNumber2
asstActName2
asstActType3
asstActNumber3
asstActName3
asstActType4
asstActNumber4
asstActName4
asstActType5
asstActNumber5
asstActName5
asstActType6
asstActNumber6
asstActName6
asstActType7
String
String
String
String
String
String
String
String
String
String
String
String
String
String
String
String
核算项目 2
核算对象编码 2
核算对象名称 2
核算项目 3
核算对象编码 3
核算对象名称 3
核算项目 4
核算对象编码 4
核算对象名称 4
核算项目 5
核算对象编码 5
核算对象名称 5
核算项目 6
核算对象编码 6
核算对象名称 6
核算项目 7
是
否
是
是
否
否
否
是
是
是
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
asstActNumber7
asstActName7
asstActType8
asstActNumber8
asstActName8
itemflag
oppAccountSeq
primaryItem
supplyItem
primaryCoef
supplyCoef
cashflowAmount
Original
cashflowAmount
Local
cashflowAmount
Rpt
String
String
String
String
String
int
int
String
String
int
int
double
double
double
2. 接口说明:
核算对象编码 7
核算对象名称 7
核算项目 8
核算对象编码 8
核算对象名称 8
现金流量标记
对方科目分录号
主表项目
附表项目
主表系数
附表系数
现金流量原币金额
现金流量本位币金额
现金流量报告币金额
否
否
否
否
否
是
是
是
否
否
否
是
是
是
如引入现金流量,必设置为 1
EAS 中必存在的主表项目
将正确的符合条件的凭证引入到系统中,作为暂存凭证或者提交状态的凭证,错误的和不
符合条件的凭证给与提示,不引入到系统。
3. 如果引入核销记录
那么每一张凭证中,需要有往来科目,自动设置核销分录
4. 如果引入现金流量
5. 返回值 String[][]
那么普通对象数组中,也存放现金流量数组,数组中的对象也是WSWSVoucher,
与凭证行的区分标记是:itemFlag字段描述 0 不是现金流量 1 是现金流量
是一个长度为凭证数,宽度是5的字符串数据
宽度的定义:外部系统凭证号,凭证字,年度,期间,处理信息,异常信息,金蝶凭证号
1. 凭证号: 第 3 方系统自身产生的凭证号
2. 凭证字: 第 3 方系统自身产生的凭证字
3. 年度: 第 3 方系统自身产生的会计年度
4. 期间: 第 3 方系统自身产生的会计期间
5. 处理信息:
6. 异常信息 isVerify:应该是 EAS 在保存凭证时产生的异常,如校验不通过产生的提示
信息等。
7. 金蝶返回凭证号:EAS 产生的凭证号,用于回填 FreightNet 系统的。
8. 处理信息的定义:0000 成功 其他处理信息见后面
5.处理方法:
将正确的符合条件的凭证、核销记录、现金流量引入,返回的信息包含全部内容;
有问题的凭证,只返回凭证号和错误信息定义
6. 参数信息描述
WSWSVoucher 一行 是一个凭证对象或者 是一个现金流量对象
凭证对象行包括:凭证行、分录行、辅助账行,itemFlag = 0
现金流量行包括:凭证号、分录号、现金流量行 itemFlag = 1
在对象传入时,请顺序传入:
比如共有5行记录,3行是凭证对象行,2行是现金流量行,那么格式如下
凭证号 分录号 … 辅助账 … 现金流量(对方科目分录号) … 流量标记
1
1
1
1
1
1
2
3
1
2
0
0
0
1
1
3
3
7. 其他处理信息:
1000 没有凭证数据传入
1001 根据传入的组织编码找不到组织
1002 根据传入的科目编码找不到科目
1003 根据传入的币别编码找不到币别
1004 根据传入的登账日期找不到合适的期间
1005 根据传入的凭证类型名称找不到凭证类型
1006 所引入凭证币别,不属于本科目币别核算值
1007 没有找到核算项目
1008 制单人不能为空
1010 凭证没有找到过账人
1111 其他异常:如保存失败,网络异常等
2001 根据编码没有取得现金流量项目
3001 没有权限新增凭证
3003 登账日期和期间不匹配
3008 组织单元的报告币折算方式没有选取
3100 凭证引入重复
3101 参考消息重复
4001 本位币借贷不相等。
4002 报告币借贷不相等。
4003 凭证类型与分录科目不匹配:{0}({1})
4004 第{0}条分录的第{1}条辅助账必须录入结算方式。
4005 第{0}条分录的第{1}条辅助账非银行科目不允许录入结算方式。
4006 第{0}条分录缺少科目。
4007 同一凭证不允许同时包含表内科目与表外科目。
4008 第{0}条分录的科目带自定义属性或核算项目,但没有辅助账。
4009 第{0}条分录的原币金额不等于辅助账原币金额之和。
4110 第{0}条分录的本位币金额不等于辅助账本位币金额之和。
4111 第{0}条分录的报告币金额不等于辅助账报告币金额之和。
4112 凭证的会计期间不能早于当前会计期间。
4113 分账制,凭证头币种不能为空。
4114 第{0}条分录科目“{1}”的核算币别与分录币别“{2}”不一致。
4115 会计期间不能为空。
4116 凭证类型不能为空。
4117 公司不能为空。
4118 第{0}条分录缺少币别。
4120 第{0}条分录缺少借贷方向。
4121 第{0}条分录的第{1}条辅助账行缺少核算项目组合。
4122 凭证的借方本币与凭证行不符。
4123 凭证的贷方本币与凭证行不符。
4124 凭证的借方报告币与凭证行不符。
4125 凭证的贷方报告币与凭证行不符。
4126 凭证头的行数量与凭证行不符。
4128 第{0}条分录的第{1}条辅助账行缺少必录的自定义属性。
4129 凭证应该至少存在两条分录。
4130 第{0}条分录的科目“{1}”不是明细科目。
4131 第{0}条分录的科目“{1}”已被禁用。
4132 该凭证必须录入现金流量。
4161 该凭证不存在或已经被删除,不能进行这项操作。
4162 凭证的会计期间不能早于当前会计期间。
4300 第{0}条分录是核销分录但没有设置核销标志。
4301 第{0}条分录不是核销分录但设置了核销标志。
4400 第{0}条分录的第{1}条辅助账是核销记录但没有设置对应的往来账记录。
4401 第{0}条分录的第{1}条辅助账不是核销记录但设置了对应的往来账记录。
4501 凭证有错误:{0}
4800 每张凭证至少应该有一条分录。
4302 第{0}条分录缺少摘要。
4109 第{0}条分录的币别与凭证头的币别不一致。
4666 第{0}条分录的数量、金额不能全都为0。
4667 第{0}条分录第{1}条辅助账的数量、金额不能全都为0。
4898 第{0}条分录为往来科目,但它的第{1}条辅助账缺少到期日。
4900 现金流量项目{0}已经被禁用!
4980 第{0}条分录科目所属公司与凭证所属公司不一致。
4345 记账日期不能为空。
4346 业务日期不能为空。
4347 凭证类型不能为空。
4355 输入的凭证编码重复
五. “凭证查询”接口说明
findVoucher(String comNumber, int year, int periodNumber)
输入:公司代码、期间年(2006)、期间月(7 ),默认查询凭证的来源系统为:基
础系统(从外部导入的凭证都为基础系统)
输出:凭证字、凭证号、参考消息
输出类型: String[], 以“,”组合,需要拆分。
默认查询条件:所查凭证来源系统必须为“基础系统”,也就是说,查询的是先期从
webService中引入的凭证,才是基础系统。
返回类型:String[]
#0001 未找到公司
#0002 未找到期间
正确结果 转账, 0001, FLY20060701001
六. “凭证校验”接口说明
checkVoucher( String comNumber, int year, int periodNumber, String messageNumber, double
localAmount)
输入:公司代码、期间年、期间月、参考消息、本位币金额
输出:金蝶凭证号
输出类型: String
默认查询条件:所查公司,必须是财务实体组织
返回类型:String
#0001 未找到公司
#0002 未找到期间
#1001 未找到符合条件的凭证
正确结果 凭证号
七. “凭证删除”接口说明
接口名称deleteVoucher
deleteVoucher(String companyNumber, String period, String voucherNumber, String fexp )
参数:String companyNumber
String period
String voucherNumber
String fexp
“HQF001” 公司编码
“2006.09” 期间
“20” 凭证号
“000000112” 参考消息
返回类型:int
0 成功;10000 公司编码不能为空; 10001 未找到公司编码
10002 期间输入格式不正确;
10003 凭证号不能为空
10004 参考消息不能为空
10005 未找到此凭证或凭证已被删除
10006 凭证删除失败
八.以Java客户端作为第3方软件开发说明。
1. WSDL文件产生客户端
2. 客户端调用(java客户端举例)
//构造调用产生凭证的接口协议类
WSWSVoucherSrvProxyServiceLocator locator =
new WSWSVoucherSrvProxyServiceLocator();
//此处构造EAS凭证需要的信息...start
WSWSVoucher voucher = new WSWSVoucher();
WSWSVoucher[] vouchers = new WSWSVoucher[1] ;
vouchers[0] = voucher;
//...end
try {
//此处调用接口
locator.getWSWSVoucher().importVoucher(vouchers);
} catch (Exception e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}