找回密码
 注册账号

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

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

[求助] 调用API新增采购订单记录 提示关键词"Group"附近有语法错误

[复制链接]
发表于 2018-2-8 17:49:26 | 显示全部楼层 |阅读模式

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

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

×
[ 本帖最后由 w02108 于 2018-2-8 18:11 编辑 ]\n\n调用API,想新增一条采购订单记录,代码写完后,结果返回“关键词 group 附近有语法错误”,然后调用不成功。我把赋值代码贴出来,看看是哪里写的不对?
           /第一步:构造u8login对象并登陆(引用U8API类库中的Interop.U8Login.dll)
            //如果当前环境中有login对象则可以省去第一步
            U8Login.clsLogin u8Login = (clsLogin)_loginInfo.U8Login;
            //第二步:构造环境上下文对象,传入login,并按需设置其它上下文参数
            U8EnvContext envContext = new U8EnvContext();
            envContext.U8Login = u8Login;
            //第三步:设置API地址标识(Url)
            U8ApiAddress myApiAddress = new U8ApiAddress("U8API/ProductIn/Add");
            //第四步:构造APIBroker
            U8ApiBroker broker = new U8ApiBroker(myApiAddress, envContext);            //第五步:API参数赋值            BusinessObject DomHead = broker.GetBoParam("DomHead");
            DomHead.RowCount = 1; //设置BO对象(表头)行数,只能为一行
         
            DomHead[0]["poid"] = maxid; //主关键字段,int类型,必填
            DomHead[0]["cbustype"] = "普通采购"; //采购类型,string类型
            DomHead[0]["dPODate"] = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")); //单据日期
            DomHead[0]["cmaketime"] = DateTime.Parse(DateTime.Now.ToString()); //单据创建日期
            DomHead[0]["cDepCode"] = "12";//部门编码
            DomHead[0]["cPersonCode"] = "T00524"; //业务员编码
            DomHead[0]["cPOID"] = "PD041802070002";//采购订单号
            DomHead[0]["nflat"] = 1; //汇率,double类型
            DomHead[0]["cexch_name"] = "人民币"; //币种,string类型,必填
            //DomHead[0]["cappcode"] = "D041711250006"; //请购单号,string类型
            DomHead[0]["iTaxRate"] = 17.00; //税率,double类型
            DomHead[0]["cVenCode"] = "0011"; //供应商编码,string类型,必填
            DomHead[0]["cdefine1"] = "完税后交货价"; //表头自定义项1,string类型
            DomHead[0]["cdefine2"] = "增值税"; //表头自定义项1,string类型
            DomHead[0]["cPTCode"] = "01"; //采购类型,string类型
            DomHead[0]["cstate"] = 0; //状态(数据库),tinint类型.
            DomHead[0]["cmaker"] = "刘炎栓"; //制单人,string类型
            DomHead[0]["iverifystateex"] = 1; //审核状态,int类型.单据审核状态 (-1,终审不同意,0,未提交,1已提交,2,终审同意)
            DomHead[0]["iDiscountTaxType"] = 0;//操税类型,int类型。0应税外加,1应税内含
            //方法二是构造BusinessObject对象,具体方法如下:
            BusinessObject domBody = broker.GetBoParam("domBody");
            domBody.RowCount = 10; //设置BO对象行数
           
            domBody[0]["ID"] = maxcid; //主关键字段,int类型
            domBody[0]["POID"] = maxid; //主表id,int类型
            domBody[0]["cInvCode"] = "AE-05-000060"; //存货编码,string类型
            domBody[0]["iQuantity"] = 5.00; //数量,decimal类型
            domBody[0]["iTaxPrice"] = 20.00; //含税单价,double类型
            domBody[0]["iTax"] = 17.00; //原币税额,double类型
            domBody[0]["isum"] = 100.00; //原币价税合计,double类型
            domBody[0]["iPerTaxRate"] = 17.00; //税率,double类型
            domBody[0]["dArriveDate"] = (DateTime)DateTime.Parse("2018-02-25"); //计划到货日期,DateTime类型
            domBody[0]["ivouchrowno"] = 1;//行号,int类型
            domBody[0]["iUnitPrice"] = 17.09;//原币无税单价
            domBody[0]["iMoney"] = 85.45;//原币无税金额
            //domBody[0]["iTax"] = 2.91;//原币税额
            domBody[0]["iNatUnitPrice"] = 17.09;//本币无税单价
            domBody[0]["iNatMoney"] = 85.45;//本币无税金额
            domBody[0]["iNatTax"] = 2.91;//本币税额
            //domBody[0]["iAppIds"] = 1000000185;//采购请购单子表标识 int类型
            domBody[0]["bGsp"] = 0;//是否质检 int类型
            domBody[0]["bTaxCost"] = 0;//价格标准(0无税,1含税) int 类型
            //domBody[0]["cupsocode"] = "D041711250006";//来源单据号 string类型
            domBody[0]["iordertype"] = 0;//销售订单类型  int 类型
            domBody[0]["bgift"] = 0;//是否赠品  int 类型
            //给普通参数VoucherState赋值。此参数的数据类型为int,此参数按值传递,表示单据状态:2新增,1修改,0非编辑
            broker.AssignNormalValue("VoucherState", new int());
            MSXML2.IXMLDOMDocument2 CurDom = new MSXML2.DOMDocumentClass();
            broker.AssignNormalValue("CurDom", CurDom);
            //给普通参数UserMode赋值。此参数的数据类型为int,此参数按值传递,表示模式,0:CS;1:BS
            broker.AssignNormalValue("UserMode", 0);
            //调用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.String,此参数按值传递,表示错误描述:空,正确;非空,错误
            System.String result = broker.GetReturnValue() as System.String;
            if (result.Length > 0)
            {
                Console.Write(result);
                Console.ReadLine();
            }
            //获取out/inout参数值

            //获取普通OUT参数curID。此返回值数据类型为string,在使用该参数之前,请判断是否为空
            string curIDRet = broker.GetResult("curID") as string;
            //if (curIDRet.Length > 0)
            //    Console.Write(curIDRet);

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

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

发表于 2018-2-11 08:45:21 | 显示全部楼层
看不懂
回复 点赞 拍砖

使用道具 举报

发表于 2018-2-11 14:44:02 | 显示全部楼层
开起跟踪器看下哪个语句出错了

点评

什么跟踪器?SQL Profiler?  详情 回复 发表于 2018-3-7 16:55
回复 点赞 拍砖

使用道具 举报

 楼主| 发表于 2018-3-7 16:55:41 | 显示全部楼层
beruning 发表于 2018-2-11 14:44
开起跟踪器看下哪个语句出错了

什么跟踪器?SQL Profiler?

点评

是的,你开起来,看到哪个步骤出错了  详情 回复 发表于 2018-3-13 15:08
回复 点赞 拍砖

使用道具 举报

发表于 2018-3-13 15:08:51 | 显示全部楼层
w02108 发表于 2018-3-7 16:55
什么跟踪器?SQL Profiler?

是的,你开起来,看到哪个步骤出错了
回复 点赞 拍砖

使用道具 举报

发表于 2022-9-29 13:24:55 | 显示全部楼层
结束本次调用,释放API资源
回复 点赞 拍砖

使用道具 举报

发表于 2022-9-29 13:26:20 | 显示全部楼层
好像都没有这个东西
回复 点赞 拍砖

使用道具 举报

发表于 2022-9-30 20:11:25 | 显示全部楼层
我增加成功,但是采购报表查询不到,什么原因啊
回复 点赞 拍砖

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 09:50 , Processed in 0.043315 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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