六月飞雪 发表于 2014-10-20 16:35:48

API导入产成品入库单报错,坐等高手

在用API做产成品入库单生成的时候报错

API适配器"STAPI.STInOutVoucherAPI"初始化失败,原因:Adapter:'STAPI.STInOutVoucherAPI' is Invalid!

有没有人知道什么原因,是不是下面哪儿填错了


//给普通参数domPosition赋值。此参数的数据类型为System.Object,此参数按引用传递,表示货位:传空
            broker.AssignNormalValue("domPosition", "");
            //该参数errMsg为OUT型参数,由于其数据类型为System.String,为一般值类型,因此不必传入一个参数变量。在API调用返回时,可以通过GetResult("errMsg")获取其值
            //给普通参数cnnFrom赋值。此参数的数据类型为ADODB.Connection,此参数按引用传递,表示连接对象,如果由调用方控制事务,则需要设置此连接对象,否则传空
            broker.AssignNormalValue("cnnFrom", new ADODB.Connection());
            ////该参数VouchId为INOUT型普通参数。此参数的数据类型为System.String,此参数按值传递。在API调用返回时,可以通过GetResult("VouchId")获取其值
            broker.AssignNormalValue("VouchId", "");
            //该参数domMsg为OUT型参数,由于其数据类型为MSXML2.IXMLDOMDocument2,非一般值类型,因此必须传入一个参数变量。在API调用返回时,可以直接使用该参数
            MSXML2.IXMLDOMDocument2 domMsg = new MSXML2.DOMDocument();
            broker.AssignNormalValue("domMsg", domMsg);
            //给普通参数bCheck赋值。此参数的数据类型为System.Boolean,此参数按值传递,表示是否控制可用量。
            broker.AssignNormalValue("bCheck", false);
            //给普通参数bBeforCheckStock赋值。此参数的数据类型为System.Boolean,此参数按值传递,表示检查可用量
            broker.AssignNormalValue("bBeforCheckStock",false);
            //给普通参数bIsRedVouch赋值。此参数的数据类型为System.Boolean,此参数按值传递,表示是否红字单据
            broker.AssignNormalValue("bIsRedVouch", false);
            //给普通参数sAddedState赋值。此参数的数据类型为System.String,此参数按值传递,表示传空字符串
            broker.AssignNormalValue("sAddedState","");
            //给普通参数bReMote赋值。此参数的数据类型为System.Boolean,此参数按值传递,表示是否远程:转入false
            broker.AssignNormalValue("bReMote", false);
            //第六步:调用API
            if (!broker.Invoke())
            {
                //错误处理
                Exception apiEx = broker.GetException();
                if (apiEx != null)
                {
                  if (apiEx is MomSysException)
                  {
                        MomSysException sysEx = apiEx as MomSysException;
                        Console.WriteLine("系统异常:" + sysEx.Message);
                        //todo:异常处理
                  }
                  else if (apiEx is MomBizException)
                  {
                        MomBizException bizEx = apiEx as MomBizException;
                        Console.WriteLine("API异常:" + bizEx.Message);
                        //todo:异常处理
                  }
                  //异常原因
                  String exReason = broker.GetExceptionString();
                  if (exReason.Length != 0)
                  {
                        Console.WriteLine("异常原因:" + exReason);
                  }
                }
                //结束本次调用,释放API资源
                broker.Release();
                mocode = "";
                return false;
            }
            //第七步:获取返回结果
            //获取返回值
            //获取普通返回值。此返回值数据类型为System.Boolean,此参数按值传递,表示返回值:true:成功,false:失败
            System.Boolean result = Convert.ToBoolean(broker.GetReturnValue());
            //获取out/inout参数值
            //获取普通OUT参数errMsg。此返回值数据类型为System.String,在使用该参数之前,请判断是否为空
            System.String errMsgRet = broker.GetResult("errMsg") as System.String;
            //获取普通INOUT参数VouchId。此返回值数据类型为System.String,在使用该参数之前,请判断是否为空
            System.String VouchIdRet = broker.GetResult("VouchId") as System.String;
            ////获取普通OUT参数domMsg。此返回值数据类型为MSXML2.IXMLDOMDocument2,在使用该参数之前,请判断是否为空
            //MSXML2.IXMLDOMDocument2 domMsgRet = Convert.ToObject(broker.GetResult("domMsg"));
            //结束本次调用,释放API资源
            broker.Release();
            mocode = "";
            return result;


txrylc 发表于 2014-12-18 09:29:46

解决了没?我也遇到这个问题了

D版高手 发表于 2014-12-25 08:06:04

同求啊,看来这个问题还是很普遍的,希望用友的能重视一下

pqzc6655321 发表于 2017-11-30 16:21:13

您好,这个问题解决了吗

Clare999 发表于 2019-4-23 19:46:09

求解啊共享一下
页: [1]
查看完整版本: API导入产成品入库单报错,坐等高手