找回密码
 注册账号

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

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

[求助] 调用API新增销售发货单,报类型不匹配

[复制链接]
发表于 2022-5-2 13:43:03 | 显示全部楼层 |阅读模式

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

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

×
U8EnvContext envContext = new U8EnvContext();
envContext.U8Login = u8Login;
  envContext.SetApiContext("VoucherType", 9); //上下文数据类型:int,含义:单据类型:9
U8ApiAddress myApiAddress = new U8ApiAddress("U8API/Consignment/Save");
  U8ApiBroker broker = new U8ApiBroker(myApiAddress, envContext);
BusinessObject DomHead = broker.GetBoParam("DomHead");
DomHead.RowCount = 1; //设置BO对象(表头)行数,只能为一行
                                      
                            #region DomHead
                            ///****************************** 以下是必输字段 ****************************/
                            #region  必填字段
                            DomHead[0]["dlid"] = "1"; //主关键字段,int类型
                            DomHead[0]["cdlcode"] = "1"; //发货单号,string类型
                           DomHead[0]["cmaker"] = u8Login.cUserName; //制单人,string类型
                            DomHead[0]["iexchrate"] = ds.Tables[0].Rows[0]["iExchRate"].ToString(); //汇率,double类型
                            DomHead[0]["breturnflag"] = 0; //退货标识,string类型
                            DomHead[0]["cexch_name"] = ds.Tables[0].Rows[0]["cexch_name"].ToString(); //币种,string类型
                            DomHead[0]["ccuscode"] = ds.Tables[0].Rows[0]["ccuscode"].ToString(); //客户编码,string类型
                            DomHead[0]["cdepcode"] = ds.Tables[0].Rows[0]["cdepcode"].ToString(); //部门编码,string类型
                      BusinessObject domBody = broker.GetBoParam("domBody");
                            domBody.RowCount = 1; //设置BO对象行数

                    domBody[0]["idlsid"] = ds.Tables[1].Rows["idlsid"]; //主关键字段,0类型
                                domBody[0]["cinvname"] = ds.Tables[1].Rows["cinvname"]; //存货名称,string类型
                                domBody[0]["cinvcode"] = ds.Tables[1].Rows["cinvcode"]; //存货编码,string类型
                                domBody[0]["iquantity"] = ds.Tables[1].Rows["iquantity"]; //数量,double类型
                           domBody[0]["cmemo"] = ds.Tables[1].Rows["cmemo"]; //备注,string类型
                                domBody[0]["cinvouchtype"] = ds.Tables[1].Rows["cinvouchtype"]; //cinvouchtype,string类型
                                domBody[0]["dkeepdate"] = ds.Tables[1].Rows["dkeepdate"]; //记账日期,string类型
                                domBody[0]["cscloser"] = ds.Tables[1].Rows["cscloser"]; //行关闭人,string类型
                                domBody[0]["bsaleprice"] = ds.Tables[1].Rows["bsaleprice"]; //报价含税,string类型
                                domBody[0]["bgift"] = ds.Tables[1].Rows["bgift"]; //赠品,string类型
                                domBody[0]["autoid2"] = 1; //序列号行号,string类型
                                domBody[0]["cvencode"] = ds.Tables[1].Rows["cvencode"]; //入库单供应商编码,string类型
                                domBody[0]["irowno"] = 1; //行号,string类型
                                domBody[0]["snlist"] = 1; //序列号,string类型
                               domBody[0]["cunitid"] = ds.Tables[1].Rows["cunitid"]; //销售单位编码,string类型
                                domBody[0]["cfree1"] = ds.Tables[1].Rows["cfree1"]; //自由项1,string类型
                                domBody[0]["cfree2"] = ds.Tables[1].Rows["cfree2"]; //自由项2,string类型
                                domBody[0]["cwhcode"] = ds.Tables[1].Rows["cwhcode"]; //仓库编码,string类型
                                domBody["imassdate"] = ds.Tables[1].Rows["imassdate"]; //保质期,int类型
                                domBody["cmassunit"] = ds.Tables[1].Rows["cmassunit"]; //保质期单位,int类型
                                domBody["bqaneedcheck"] = ds.Tables[1].Rows["bqaneedcheck"]; //是否质量检验,int类型
                                domBody["bqaurgency"] = ds.Tables[1].Rows["bqaurgency"]; //是否急料,int类型
                                domBody["bqachecking"] = ds.Tables[1].Rows["bqachecking"]; //是否在检,int类型
                                domBody["bqachecked"] = ds.Tables[1].Rows["bqachecked"]; //是否报检,int类型
                              domBody[0]["editprop"] = "A"; //编辑属性:A表新增,M表修改,D表删除,string类型
                                domBody[0]["fstockquano"] = ""; //现存件数,string类型
                                domBody[0]["fcanusequano"] = ""; //可用件数,string类型
                                domBody[0]["taskguid"] = ""; //退货申请单id,string类型
                                domBody[0]["crelacusname"] = ""; //责任客户名称,string类型
                                domBody[0]["creasonname"] = ""; //退货原因,string类型
                                domBody[0]["bserial"] = ""; //序列号管理,string类型
                                domBody[0]["binvmodel"] = ""; //是否模型件,string类型
                                domBody[0]["btracksalebill"] = ""; //PE跟单,string类型
                                domBody[0]["fcanusequan"] = ""; //可用量,string类型
                                domBody[0]["fstockquan"] = ""; //现存量,string类型
                                domBody[0]["cgroupcode"] = "002"; //计量单位组,string类型
                                domBody[0]["igrouptype"] = Convert.ToUInt32("2"); //单位类型,uint类型


   //给普通参数VoucherState赋值。此参数的数据类型为int,此参数按值传递,表示状态:0增加;1修改
                            broker.AssignNormalValue("VoucherState", 0);

                            //该参数vNewID为INOUT型普通参数。此参数的数据类型为string,此参数按值传递。在API调用返回时,可以通过GetResult("vNewID")获取其值
                            broker.AssignNormalValue("vNewID", "");


                            ////给普通参数DomConfig赋值。此参数的数据类型为MSXML2.IXMLDOMDocument2,此参数按引用传递,表示ATO,PTO选配
                            MSXML2.IXMLDOMDocument2 domMsg = new MSXML2.DOMDocumentClass();
                            broker.AssignNormalValue("DomConfig", domMsg);

                            //第六步:调用API
                            if (!broker.Invoke())
                            {
                                //错误处理
                                Exception apiEx = broker.GetException();
                                if (apiEx != null)
                                {
                                    if (apiEx is MomSysException)
                                    {
                                        MomSysException sysEx = apiEx as MomSysException;
                                        ListErr.Add(ErrSql("系统异常", sysEx.Message));
                                        //todo:异常处理
                                    }
                                    else if (apiEx is MomBizException)
                                    {
                                        MomBizException bizEx = apiEx as MomBizException;
                                        ListErr.Add(ErrSql("API异常", bizEx.Message));
                                        //todo:异常处理
                                    }
                                    //异常原因
                                    String exReason = broker.GetExceptionString();
                                    if (exReason.Length != 0)
                                    {
                                        ListErr.Add(ErrSql("异常原因", exReason));
                                    }
                                }
                                //结束本次调用,释放API资源
                                broker.Release();
                                return;
                            }

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

                            //获取返回值
                            //获取普通返回值。此返回值数据类型为System.String,此参数按值传递,表示成功返回空串
                            System.String result = broker.GetReturnValue() as System.String;


 楼主| 发表于 2022-5-2 13:57:35 | 显示全部楼层
已解决,回传字段中存在NULL的情况,导致回传错误   结帖
回复 点赞 拍砖

使用道具 举报

发表于 2022-6-13 16:36:05 | 显示全部楼层
学习下。
回复 点赞 拍砖

使用道具 举报

发表于 2022-6-29 21:13:09 | 显示全部楼层
哪个版本

点评

是16版本  详情 回复 发表于 2022-7-25 16:42
回复 点赞 拍砖

使用道具 举报

 楼主| 发表于 2022-7-25 16:42:38 | 显示全部楼层

是16版本
回复 点赞 拍砖

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 19:39 , Processed in 0.036586 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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