金蝶K3通过WEBSERVICE增加凭证指引
1.测试WEBSERVICE是否能正常使用。
WEBSERVICE安装完成后,在开始菜单-金蝶 K3
WISE创新管理平台-金蝶K/3工具下,打开“客户端工具包”,选择“Adapter适配器”下的“k/3
WebServices”,打开后即可启动K/3 Web
Services测试工具,可通过选择“服务类型”和“调用的方法”,在请求文件路径中修改测试的参数,点执行时会开展WebService的测试并获取测试结果,如下图。
2.在C#中调用凭证接口。
打开C#.NET新建一个winform项目,在解决方案资源管理器窗口点击右键添加服务引用。弹出对话框如下图。
3.调用代码如下(代码在K/3 14.2的环境下编写,其他环境如有错误请做适当修改)
增加引用
using WindowsFormsApplication1.Vos;
private void VoucherUpdate()
{
//特别注意,所有对象的属性都要按要求设置内容,切记不可图省事,否则提示下标越界错误。
VoucherServicesSoapClient VServices = new
VoucherServicesSoapClient();
string
errstr = string.Empty;
Voucher[]
voh2={new Voucher()};
voh2[0].FNumber = 719; //凭证号
voh2[0].FNumberSpecified = true;
//凭证号是否更改
voh2[0].FDate = "2015-09-01"; //日期
voh2[0].FExplanation = "摘要"; //摘要
voh2[0].FGroup = "记";
//凭证字
voh2[0].FPeriod = 9;
//期间
voh2[0].FPeriodSpecified = true; //期间是否更改
voh2[0].FYear = 2015;
//年
voh2[0].FYearSpecified = true;
//年是否更改
voh2[0].FSerialNum = 5058;
//凭证序号
voh2[0].FSerialNumSpecified = true; //凭证序号是否更改
voh2[0].FAttachments = 0;
//附件数量
voh2[0].FAttachmentsSpecified = true; //附件数量是否更改
voh2[0].FReference = ""; //参考信息
voh2[0].FCashier = "NONE"; //出纳员
voh2[0].FHandler = "";
//会计主管
voh2[0].FTransDate = "2015-09-01"; //
发生日期
voh2[0].FPreparer = "Administrator"; //制单人
voh2[0].FPoster = "NONE";
//记账人
//增加两个凭证分录
Entries[]
ents = { new Entries(), new Entries() };
//-------设置第一个凭证分录属性
//具体字段解释请查询 select * from t_FieldDescription
where FTableID=1
ents[0].FExplanation = "凭证录入检测-分录1";
ents[0].FAccountNumber = "1406";
ents[0].FAccountName = "发出商品";
ents[0].FCurrencyNumber = "RMB";
ents[0].FCurrencyName = "人民币";
ents[0].FAmount = 1000;
ents[0].FAmountSpecified = true;
ents[0].FAmountFor = 1000;
ents[0].FAmountForSpecified = true;
ents[0].FEntryID = 0;
ents[0].FEntryIDSpecified = true;
ents[0].FDC = 1;
ents[0].FDCSpecified = true;
ents[0].FSettleTypeName = "";
ents[0].FTransNo = "";
ents[0].FSettleNo = "";
ents[0].FMeasureUnit = "";
ents[0].FMeasureUnitUUID = "";
ents[0].FExchangeRate = 1;
ents[0].FExchangeRateSpecified = true;
ents[0].FQuantitySpecified = true;
ents[0].FUnitPriceSpecified = true;
//-------设置第二个凭证分录属性
ents[1].FExplanation = "凭证录入检测-分录2";
ents[1].FAccountNumber = "1601.04";
ents[1].FAccountName = "运输工具";
ents[1].FCurrencyNumber = "RMB";
ents[1].FCurrencyName = "人民币";
ents[1].FAmount = 1000;
ents[1].FAmountForSpecified = true;
ents[1].FAmountFor = 1000;
ents[1].FAmountSpecified = true;
ents[1].FDC = 0;
ents[1].FDCSpecified = true;
ents[1].FEntryID = 1;
ents[1].FEntryIDSpecified = true;
ents[1].FSettleTypeName = "";
ents[1].FTransNo = "";
ents[1].FSettleNo = "";
ents[1].FMeasureUnit = "";
ents[1].FMeasureUnitUUID = "";
ents[1].FExchangeRate = 1;
ents[1].FExchangeRateSpecified = true;
ents[1].FQuantitySpecified = true;
ents[1].FUnitPriceSpecified = true;
voh2[0].Entries = ents;
//为第一个凭证分录增加两个核算科目
DetailEntries[] dets = { new DetailEntries(), new DetailEntries()
};
//设置核算科目数据
dets[0].FDetailNumber = "1.1.2.007";
dets[0].FTypeNumber = "001";
dets[0].FTypeName = "客户";
dets[1].FDetailNumber = "00011";
dets[1].FTypeNumber = "003";
dets[1].FTypeName = "职员";
voh2[0].Entries[0].DetailEntries = dets;
//保存
VServices.Update(out errstr,6, "administrator", "", voh2, false,
true, 0);
//参数说明:
//
iAisID:账套ID,通过账套查询服务获取,类型:inteager
//
在 KDAcctDB 数据库中查询select * from t_ad_kdAccount_gl
的facctid字段
//
strUser:用户名称,必须为K/3中的合法用户,类型:string
//
strPassword:用户密码,目前通过明文传递,类型:string
//
Data:业务数据,符合Schema规范,类型:数组
//
bCheckByUUID:指明是否按UUID更新数据。True表示按UUID更新数据,False表示按Number,Name更新数据,类型:Boolean
//
bAddNewOnly:是否只增加记录,true表示只增加不覆盖记录,
//
false表示既增加又覆盖记录,类型:boolean
}
}
文章评论