K/3 WISE|外部程序(java)调用webservice凭证接口
本帖最后由 程保青 于 2019-03-25 编辑
外部程序(java)调用webservice凭证接口无法返回数据到K3中,但是程序运行结果返回的值是true,代码如下:package com.jeeplus.modules.thirdparty.kingdee;
import java.net.URL;
import java.util.List;
import javax.xml.namespace.QName;
import com.jeeplus.modules.thirdparty.kingdee.util.ArrayOfVoucher;
import com.jeeplus.modules.thirdparty.kingdee.util.DetailEntries;
import com.jeeplus.modules.thirdparty.kingdee.util.Entries;
import com.jeeplus.modules.thirdparty.kingdee.util.Voucher;
import com.jeeplus.modules.thirdparty.kingdee.util.VoucherServices;
import com.jeeplus.modules.thirdparty.kingdee.util.VoucherServicesSoap;
import java.io.IOException;
import java.io.StringReader;
import java.io.Writer;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import com.sun.xml.internal.bind.marshaller.CharacterEscapeHandler;
public class UpdateVoucher2 {
// 凭证URL
private static final QName SERVICE_NAME = new QName("http://www.kingdee.com/VoucherData", "VoucherServices");
public static void main(String args[]) {
// 客户账套ID
int iAisID = 1;
// 客户账户
String strUser = "Administrator";
String password = "123456";
int _update_iAisID = iAisID;
java.lang.String _update_strUser = strUser;
java.lang.String _update_strPassword = password;
URL wsdlURL = VoucherServices.WSDL_LOCATION;
VoucherServices ss = new VoucherServices(wsdlURL, SERVICE_NAME);
VoucherServicesSoap port = ss.getVoucherServicesSoap();
ArrayOfVoucher av = new ArrayOfVoucher();
Voucher vouchera = new Voucher();
vouchera.setFDate("2019-03-21");// 日期(日期必须在当前凭证期间) 填写
vouchera.setFExplanation("产品入库_调压阀");// 凭证摘要
vouchera.setFAttachments(1L);// 附件数量 默认0 填写
vouchera.setFCashier("none");// 出纳员 默认 none 填写
vouchera.setFGroup("记");// 凭证字 记 填写
vouchera.setFHandler(""); // 会计主管 填 ""
vouchera.setFNumber(900L); // 凭证号 填写
vouchera.setFPeriod(2L); // 期间(凭证期间必须开启)
vouchera.setFPoster("记账人"); // 记账人
vouchera.setFReference(""); // 参考信息 填 ""
vouchera.setFPreparer(""); // 制单人 填写
vouchera.setFSerialNum(1801L); // 凭证序号
vouchera.setFTransDate("2019-03-21"); // 发生日期
vouchera.setFYear(2019L); // 发生日期
// 借方
Entries entries0 = new Entries();
entries0.setFAmount(500d); // 金额 永通需要传的字段信息 填写
entries0.setFAmountFor(0.00); // 外币金额
entries0.setFCurrencyName("人民币"); // 币种名称
entries0.setFCurrencyNumber("RMB"); // 币种代码 RMB
entries0.setFDC(1L); // 0-贷方,1- 借方 填写
entries0.detailEntries = null;
entries0.setFEntryID(0L); // 分录entryID
entries0.setFExchangeRate(0.00);// 汇率 非必录
entries0.setFExplanation("-借款1");// 凭证摘要 填写
entries0.setFMeasureUnitUUID("");// 非必录
entries0.fQuantity = 0.00;
entries0.setFSettleNo("");// 非必录
entries0.setFSettleTypeName("");// 非必录
entries0.setFTransNo("");// 非必录
entries0.fUnitPrice = 0.00;
entries0.setFAccountNumber("1001.01"); // 科目编码 填写
entries0.setFAccountName("库存现金"); // 科目名称 填写
entries0.setFMeasureUnit(""); // 非必录
/* Entries entries0_1 = new Entries();
DetailEntries detailEntries1 = new DetailEntries();
DetailEntries detailEntries2 = new DetailEntries();
detailEntries1.setFTypeNumber("002");
detailEntries1.setFTypeName("部门");
detailEntries1.setFDetailNumber("1501");
detailEntries2.setFTypeNumber("003");
detailEntries2.setFTypeName("职员");
detailEntries2.setFDetailName("9002");
*/
/* detailEntries2.setFTypeNumber("001");
detailEntries2.setFTypeName("客户");
detailEntries2.setFDetailName("1501");
detailEntries2.setFDetailNumber("00011");*/
/* entries0_1.getDetailEntries().add(detailEntries1);
entries0_1.getDetailEntries().add(detailEntries2);*/
// 贷方
Entries entriesa = new Entries();
entriesa.setFAmount(500D); // 金额 永通需要传的字段信息
entriesa.setFAmountFor(0.00); // 外币金额
entriesa.setFCurrencyName("人民币"); // 币种名称
entriesa.setFCurrencyNumber("RMB"); // 币种代码 RMB
entriesa.setFDC(0L); // 0-贷方,1- 借方
entriesa.setFEntryID(0L); // 分录entryID
entriesa.setFExchangeRate(0.00);// 汇率 非必录
entriesa.setFExplanation("-借款2");// 凭证摘要
entriesa.setFMeasureUnitUUID("");// 非必录
entriesa.fQuantity = 0.00;
entriesa.setFSettleNo("");// 非必录
entriesa.setFSettleTypeName("");// 非必录
entriesa.setFTransNo("");// 非必录
entriesa.fUnitPrice = 0.00;
entriesa.setFAccountNumber("1001.01"); // 科目编码
entriesa.setFAccountName("库存现金"); // 科目名称
entriesa.setFMeasureUnit(""); // 非必录
/*DetailEntries detailEntries3 = new DetailEntries();
detailEntries3.setFTypeNumber("003");
detailEntries3.setFTypeName("职员");
detailEntries3.setFDetailName("9002");
entriesa.getDetailEntries().add(detailEntries3);
*/
vouchera.getEntries().add(entries0);
vouchera.getEntries().add(entriesa);
av.getVoucher().add(vouchera);
ArrayOfVoucher _update_data = av;
boolean _update_bCheckByUUID = false;
boolean _update_bAddNewOnly = true;
int _update_iBillClassTypeID = 1013306;
javax.xml.ws.Holder<java.lang.Boolean> _update_updateResult = new javax.xml.ws.Holder<java.lang.Boolean>();
javax.xml.ws.Holder<java.lang.String> _update_strError = new javax.xml.ws.Holder<java.lang.String>();
/* System.out.println("before:");
System.out.println(_update_updateResult.value);
System.out.println(_update_strError.value);
*/
port.update(_update_iAisID, _update_strUser, _update_strPassword, _update_data, _update_bCheckByUUID,
_update_bAddNewOnly, _update_iBillClassTypeID, _update_updateResult, _update_strError);
/* System.out.println("after:");
System.out.println(_update_updateResult.value);
System.out.println(_update_strError.value);
*/
}