K/3 WISE|外部程序(java)调用webservice凭证接口

0

本帖最后由 程保青 于 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);
*/
        }