资源描述
金蝶EAS
凭证引入 “webservice接口”说明
文档作者: 金向平
创建日期: 2005-11—18
确认日期: 2005-11—18
当前版本: V1.0
拷贝数量: 1
维护作者:吴进
确认日期:2006—9-8
当前版本:V1.1
维护作者:吴进
确认日期:2007—11—5
维护日期:2007—11-30
当前版本:V5。4.0
日期
作者
版本
参考版本
备注
2005—11-18
金向平
V1.0
2006—9-8
吴进
V1。1
V1。0
2007—11—5
吴进
V5.4。0
V1。1
凭证引入“webservice接口”说明
1. EAS发布的 webService 接口
1.1 功能规划
1、 如需调用凭证接口,必需先要登录EAS,先期需要调用 EASLogin 登录 EAS
1.2 EASLogin 发布
1、 发布 EASLogin 客户端
2、 点击 EASLogin(wsdl),获取其 wsdl 地址
3、 制作 bat 文件,利用第三方包,发布登录客户端代码,调用语句如下:
java —Djava。ext.dirs=lib org。apache。axis.wsdl.WSDL2Java http://192。168.16.13:6888/ormrpc/services/EASLogin?wsdl
4、 第三方apache包
5、 代码解释:java –Djava.ext.dirs=lib org.apache
lib 是包放置的文件夹名
1.3 EASLogin 代码调用
1、 调用的各所需参数
2、 所需参数:
* @param userName 用户名 String
* @param password 密码 String
* @param slnName eas String
* @param dcName 数据中心 String
* @param language 语言 String
* @param dbType 数据库类型 int
* @param authPattern 验证方式 默认 "BaseDB” ; 其他认证方式KEY可从easAuthPatterns.xml中获取 String
3、 参数说明
a) 所传参数,如上所列,按顺序传入
b) 查看EASLogin(wsdl),有两个接口,
i. 传参6个,此方式不提倡使用。为保证原有功能,服务端最后也会调用
传参7个的方法,第7参数自动调用"BaseDB”
ii. 传参7个,如调用此方法,则需要查询easAuthPatterns。xml 文档
c) 解决方案:eas
d) 语言:L2 简体中文 L3 繁体中文
e) 服务器地址 + 端口:组合成 URL
f) 数据库类型:0 SQL Server 1 Oracle 2 DB2
g) authPattern 验证方式
i. 默认 ”BaseDB"
ii. easAuthPatterns。xml 文档路径
iii. easAuthPatterns.xml 文档说明
4、 做一个javaBean 类,把此参数 set 到此javaBean 类中
5、 登录代码
a) 登录
b) 登录实现
2. 凭证引入接口
2.1 importVoucher(凭证引入)
1、 凭证引入接口,两个接口方法都可用,且用法一致
2、 凭证 webService 接口生成客户端,可参考 EASLogin 方法
3、 凭证引入参数:importVoucher(wsvoucher[], int isVerify, int isCashflow)
l 传参数第1个:WSWSVoucher[] 普通对象数组,见构造EAS凭证字段以及含义说明
l 传参数第2个:isverify
0 不核销,暂存
1 核销,暂存
2 不核销,提交
3 核销,提交
l 传参数第3个:isImpCashflow
是否引入现金流量 0 不引入 1 引入
4、 凭证引入代码调用说明
5、 返回值String[][]
是一个长度为凭证数,宽度是5的字符串数据
宽度的定义:外部系统凭证号,凭证字,会计年度,会计期间,处理信息,异常信息,金蝶凭证号
2.2 凭证引入原版文档如下
一. “凭证引入”技术方案
其他业务系统数据,传输到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财务凭证需要的信息。
三. “凭证导入接口”调用说明
l 接口:importVoucher(wsvoucher[], int isVerify, int isCashflow)
l 传参数第1个:WSWSVoucher[] 普通对象数组,见构造EAS凭证字段以及含义说明
l 传参数第2个:isverify
0 不核销,暂存
1 核销,暂存
2 不核销,提交
3 核销,提交
l 传参数第3个:isImpCashflow
是否引入现金流量 0 不是 1 是
四. 构造EAS凭证字段以及含义说明如下:
WSWSVoucher 说明:一张凭证占据的行数 = 凭证行*分录行*辅助账行
字体黑色:凭证头字段;深蓝:分录行字段; 橙色:辅助账字段;紫罗兰:现金流量
单元格颜色:灰色 必录项 ;浅青绿:辅助账核算项目(科目多核算项目,最多8个);浅绿:现金流量
字段名
类型
中文说明
是否必录
说明
格式
companyNumber
String
公司编码
是
录入公司编码,必须在EAS中有该编码
bookedDate
String
记账日期
是
凭证的登账日期
2005—11—1
bizDate
String
业务日期
是
业务发生日期
2005—11—1
periodYear
int
会计期间-年
是
必须在EAS中有
2005
periodNumber
int
会计期间—编码
是
必须在EAS中有
11
voucherType
String
凭证字(凭证类型)
是
凭证类型中文名称,必须在EAS中有
记
attaches
int
附件数量
否
description
String
参考信息
否
voucherNumber
String
凭证号
是
凭证唯一区别
1
entrySeq
int
分录行号
是
当前凭证的分录唯一区别
1
voucherAbstract
String
摘要
否
分录摘要
accountNumber
String
科目
是
分录行科目编码,必须在EAS中有
1001。01
currencyNumber
String
币种
是
分录行币别编码,必须在EAS中有
001
localRate
double
汇率
否
本位币汇率:没有时默认为1
1。01
entryDC
int
方向
是
分录行方向:1 借方 —1贷方
originalAmount
double
原币金额
是
分录行原币金额
qty
double
数量
否
分录行数量
measurement
String
计量单位
否
名称,必须在EAS中有
吨
price
double
单价
否
分录行单价
debitAmount
double
借方金额
是
分录行借方金额:分录方向为借方时必录
creditAmount
double
贷方金额
是
分录行贷方金额:分录方向为贷方时必录
creator
String
制单人
是
当前操作人员名称,必须在EAS中有
徐晓霞
poster
String
过账人
否
当前操作人员名称,必须在EAS中有
auditor
String
审核人
否
当前操作人员名称,必须在EAS中有
asstSeq
int
辅助账行号
否
当前凭证的当前分录的辅助账行唯一区别
bizNumber
String
业务编号
否
settlementNumber
String
结算方式
否
settlementType
String
结算号
否
cussent
int
核销/挂账
否
默认为0,
asstActType1
String
核算项目1
否
名称,必须在EAS中有。比如:客户、
客户
asstActNumber1
String
核算对象编码1
否
编码,必须在EAS中有。比如:客户A的编码
01.01
asstActName1
String
核算对象名称1
否
名称,必须在EAS中有。比如:客户A
客户A
asstActType2
String
核算项目2
否
以下:取决于科目是否核算多个项目,最多8个
asstActNumber2
String
核算对象编码2
否
asstActName2
String
核算对象名称2
否
asstActType3
String
核算项目3
否
asstActNumber3
String
核算对象编码3
否
asstActName3
String
核算对象名称3
否
asstActType4
String
核算项目4
否
asstActNumber4
String
核算对象编码4
否
asstActName4
String
核算对象名称4
否
asstActType5
String
核算项目5
否
asstActNumber5
String
核算对象编码5
否
asstActName5
String
核算对象名称5
否
asstActType6
String
核算项目6
否
asstActNumber6
String
核算对象编码6
否
asstActName6
String
核算对象名称6
否
asstActType7
String
核算项目7
否
asstActNumber7
String
核算对象编码7
否
asstActName7
String
核算对象名称7
否
asstActType8
String
核算项目8
否
asstActNumber8
String
核算对象编码8
否
asstActName8
String
核算对象名称8
否
itemflag
int
现金流量标记
是
如引入现金流量,必设置为1
oppAccountSeq
int
对方科目分录号
是
primaryItem
String
主表项目
是
EAS中必存在的主表项目
supplyItem
String
附表项目
否
primaryCoef
int
主表系数
否
supplyCoef
int
附表系数
否
cashflowAmountOriginal
double
现金流量原币金额
是
cashflowAmountLocal
double
现金流量本位币金额
是
cashflowAmountRpt
double
现金流量报告币金额
是
2. 接口说明:
将正确的符合条件的凭证引入到系统中,作为暂存凭证或者提交状态的凭证,错误的和不符合条件的凭证给与提示,不引入到系统。
3. 如果引入核销记录
那么每一张凭证中,需要有往来科目,自动设置核销分录
4. 如果引入现金流量
那么普通对象数组中,也存放现金流量数组,数组中的对象也是WSWSVoucher,
与凭证行的区分标记是:itemFlag字段描述 0 不是现金流量 1 是现金流量
5. 返回值 String[][]
是一个长度为凭证数,宽度是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 0
1 2 0
1 3 0
1 1 3 1
1 2 3 1
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 输入的凭证编码重复
3. 凭证查询、校验、删除接口
4. “凭证查询”接口说明
findVoucher(String comNumber, int year, int periodNumber)
l 输入:公司代码、期间年(2006)、期间月(7 ),
l 输出:凭证字、凭证号、参考消息
l 输出类型: String[], 以“,”组合,需要拆分。
l 默认查询条件:所查凭证来源系统必须为“基础系统”(查询的是先前从webService中引入的凭证,才是基础系统)
l 返回类型:String[]
#0001 未找到公司 #0002 未找到期间
正确结果 转账, 0001, FLY20060701001
5. “凭证校验"接口说明
checkVoucher( String comNumber, int year, int periodNumber, String messageNumber, double localAmount)
l 输入:公司代码、期间年、期间月、参考消息、本位币金额
l 输出:金蝶凭证号
l 输出类型: String
l 默认查询条件:所查公司,必须是财务实体组织
l 返回类型:String
#0001 未找到公司 #0002 未找到期间
#1001 未找到符合条件的凭证
正确结果 凭证号
6. “凭证删除”接口说明
deleteVoucher(String companyNumber, String period, String voucherNumber, String fexp )
参数: String companyNumber "HQF001" 公司编码
String period "2006.09” 期间
String voucherNumber "20” 凭证号
String fexp ”000000112" 参考消息
返回类型:int
0 成功 10000 公司编码不能为空
10001 未找到公司编码 10002 期间输入格式不正确
10003 凭证号不能为空 10004 参考消息不能为空
10005 未找到此凭证或凭证已被删除
10006 凭证删除失败
展开阅读全文