找回密码
 注册账号

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

初学者课程:T3自学|T6自学|U8自学软件下载课件下载工具下载资料:通资料|U8资料|NC|培训|年结积分规则 | 使用常见问题Q&A
知识库:U8 | | NC | U9 | OA | 政务U8|U9|NCC|NC65|NC65客开|NCC客开新手必读 | 任务 | 快速增金币用友QQ群[微信群]
查看: 5873|回复: 1

[求助] 审核材料出库单接口,提示类型不匹配

[复制链接]
发表于 2018-5-8 14:47:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

×
static void Main(string[] args)
        {
            //第一步:构造u8login对象并登陆(引用U8API类库中的Interop.U8Login.dll)
            //如果当前环境中有login对象则可以省去第一步
            U8Login.clsLogin u8Login = new U8Login.clsLogin();
            String sSubId = "AS";
            String sAccID = "(default)@999";
            String sYear = "2015";
            String sUserID = "demo";
            String sPassword = "DEMO";
            String sDate = "2015-01-01";
            String sServer = "localhost";
            String sSerial = "";
            if (!u8Login.Login(ref sSubId, ref sAccID, ref sYear, ref sUserID, ref sPassword, ref sDate, ref sServer, ref sSerial))
            {
                Console.WriteLine("登陆失败,原因:" + u8Login.ShareString);
                Marshal.FinalReleaseComObject(u8Login);
                return;
            }

            //第二步:构造环境上下文对象,传入login,并按需设置其它上下文参数
            U8EnvContext envContext = new U8EnvContext();
            envContext.U8Login = u8Login;

            //第三步:设置API地址标识(Url)
            //当前API:审核单据的地址标识为:U8API/MaterialOut/Audit
            U8ApiAddress myApiAddress = new U8ApiAddress("U8API/MaterialOut/Audit");

            //第四步:构造APIBroker
            U8ApiBroker broker = new U8ApiBroker(myApiAddress, envContext);

            //第五步:API参数赋值

            //给普通参数sVouchType赋值。此参数的数据类型为System.String,此参数按值传递,表示单据类型:11
            broker.AssignNormalValue("sVouchType", "11");

            //给普通参数VouchId赋值。此参数的数据类型为System.String,此参数按值传递,表示单据Id
            broker.AssignNormalValue("VouchId", "0000000056");

            //该参数errMsg为OUT型参数,由于其数据类型为System.String,为一般值类型,因此不必传入一个参数变量。在API调用返回时,可以通过GetResult("errMsg")获取其值

            //给普通参数cnnFrom赋值。此参数的数据类型为ADODB.Connection,此参数按引用传递,表示连接对象:调用方控制事务时需要传入连接对象
          //  broker.AssignNormalValue("cnnFrom", null);

            //给普通参数TimeStamp赋值。此参数的数据类型为System.Object,此参数按值传递,表示单据时间戳,用于检查单据是否修改,空串时不检查
         //   broker.AssignNormalValue("TimeStamp", "");

            //该参数domMsg为OUT型参数,由于其数据类型为MSXML2.IXMLDOMDocument2,非一般值类型,因此必须传入一个参数变量。在API调用返回时,可以直接使用该参数
            MSXML2.IXMLDOMDocument2 domMsg = new MSXML2.DOMDocument();
            broker.AssignNormalValue("domMsg", domMsg);

            //给普通参数bCheck赋值。此参数的数据类型为System.Boolean,此参数按值传递,表示是否控制可用量
         //   broker.AssignNormalValue("bCheck", true);

            //给普通参数bBeforCheckStock赋值。此参数的数据类型为System.Boolean,此参数按值传递,表示检查可用量
         //   broker.AssignNormalValue("bBeforCheckStock", true);

            //给普通参数bList赋值。此参数的数据类型为System.Boolean,此参数按值传递,表示传入空串
           // broker.AssignNormalValue("bList", null);

            //给普通参数MakeWheres赋值。此参数的数据类型为VBA.Collection,此参数按值传递,表示传空
          //  broker.AssignNormalValue("MakeWheres", null);

            //给普通参数sWebXml赋值。此参数的数据类型为System.String,此参数按值传递,表示传入空串
          //  broker.AssignNormalValue("sWebXml", "");

            //给普通参数oGenVouchIds赋值。此参数的数据类型为Scripting.IDictionary,此参数按值传递,表示返回审核时自动生成的单据的id列表,传空
          //  broker.AssignNormalValue("oGenVouchIds", null);

            //第六步:调用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();
                return;
            }

            //第七步:获取返回结果

            //获取返回值
            //获取普通返回值。此返回值数据类型为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;

            //获取普通OUT参数domMsg。此返回值数据类型为MSXML2.IXMLDOMDocument2,在使用该参数之前,请判断是否为空
           // MSXML2.IXMLDOMDocument2 domMsgRet = (object)(broker.GetResult("domMsg"));

            //结束本次调用,释放API资源
            broker.Release();
            return;

        }

发表于 2018-11-7 10:39:18 | 显示全部楼层
你的字段有问题   有问题可以加我企鹅 1101350716
回复 点赞 拍砖

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|站长微信|Archiver|手机版|小黑屋|用友之家 ( 蜀ICP备07505338号|51072502110008 )

GMT+8, 2024-6-6 19:40 , Processed in 0.031715 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表