电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

用友ERP-U8知识----UAP关键字'where'附近有语法错误.ppt

用友ERP-U8知识----UAP关键字'where'附近有语法错误.ppt_第1页
1/13
用友ERP-U8知识----UAP关键字'where'附近有语法错误.ppt_第2页
2/13
用友ERP-U8知识----UAP关键字'where'附近有语法错误.ppt_第3页
3/13
UAP-关键字’where’附近有语法错误ERP客户服务中心143号工程师尚宏波客户自定义UAP报表,用SQL语句定义了一个数据源,SQL语句在查询分析器中验证通过,在数据源配置界面检验通过。但是在报表查询过滤时,软件报错,如何解决?问题描述确认客户环境:872版本确认操作过程:客户称第一次在定义数据源时,多加了一个where条件(wherePurBillVouch.cPBVCode=‘200908050013’),导致在查询出结果时只有一条记录,这样再在过滤界面加条件过滤,是否软件会出现两个where,导致语法错误。但是同时客户称,重新修改去掉该语句还是不行,已经删除此报表,重新建,也不行。难道软件还在某方面有记录?确认问题发生时的操作:报错的发生确认:客户在报表过滤界面增加了日期和发票号两个条件,不输入任何条件,直接进行过滤没有问题,可过滤出所有记录。但是只要输入条件,就报错:在关键字’where’附近有语法错误。问题确认根据客户描述进行分析,首先排除软件记忆上次语句这个问题,因为已经删除报表重新建也不行,如果在原报表上修改不行,删除重建可以,则有可能是有记录。再来分析客户的操作:只有在选择了过滤条件之后,才会报错,不选择则没有问题,通过这个现象可判定问题就出现在过滤条件与原报表SQL语句的组合上面。为分析客户问题:让客户将SQL语句以邮件形式进行发送,在演示账套中进行模拟测试。问题分析SQL语句如下:selectPurBillVouch.cPBVCodeas[发票号],PurBillVouch.dPBVDateas[发票日期],PurBillVouch.cVenCodeas[供应商编码],vendor.cVenNameas[供应商名称],sum(purbillvouchs.iOriSum)as[原币价税合计],AP_ApplyPayVouch.coperatoras[申请人],AP_ApplyPayVouch.cexch_nameas[币种],sum(AP_ApplyPayVouchs.iapplyamt_f)as[申请原币金额],sum(AP_ApplyPayVouchs.iapplyaMt)as[申请本币金额],AP_ApplyPayVouch.cdigestas[申请备注],sum(Ap_CloseBills.iAmt_f)as[付款原币金额],sum(Ap_CloseBills.iAmt)as[付款本币金额]frompurbillvouch----发票主表关联子表leftjoinpurbillvouchsonpurbillvouchs.pbvid=purbillvouch.pbvid---付款申请单子表关联发票leftjoinAP_ApplyPayVouchsonpurbillvouchs.id=AP_ApplyPayVouchs.ibvid---申请单主表关联子表leftjoinAP_ApplyPayVouchonAP_ApplyPayVouchs.pid=AP_ApplyPayVouch.pid---付款单子表关联申请单主表leftjoinAp_CloseBillsonAP_ApplyPayVouch.cvouchid=Ap_CloseBills.ccovouchid---付款单主表关联字表leftjoinAp_CloseBillonAp_CloseBills.iid=Ap_CloseBill.iid---存货档案关联订单存货leftjoinInventoryonpurbillvouchs.cInvCode=Inventory.cInvCode---关联供应商leftjoinVendoronPurBillVouch.cVenCode=vendor.cVenCodegroupbyPurBillVouch.cPBVCode,PurBillVouch.dPBVDate,PurBillVouch.cVenCode,vendor.cVenName,purbillvouchs.iTaxRate,AP_ApplyPayVouch.coperator,AP_ApplyPayVouch.cdigest,AP_ApplyPayVouch.cexch_name问题测试在UAP中新建报表,数据源类型选择SQL脚本查询,检验没有问题,同时在查询分析器中进行测试此段SQL语句也没有问题。问题测试设计好报表,增加过滤条件aa(发票号),报表发布后在软件中进行验证,不选择过滤条件,正常;输入过滤条件,问题重现!!问题测试既然可以重现客户问题,就好办了,打开事件探查器,跟踪:找到相应的查询过滤语句在SQL来验证:问题测试打开查询分析器,跟踪语句是插入一临时表,直接将语句提出来执行,发现问题了,where条件放在了groupby的后面,明显语法错误。验证了之前的分析:判定问题就出现在过滤条件与原报表SQL语句的组合上面。问题测试问题找到了,解决方案返回UAP数据源定义界面看一下:软件在定义界面有五个界面,分别对应Select脚本、Where脚本、GroupBy脚本、Having脚本、OrderBy脚本。解决方案:修改数据源,将Select脚本中的groupby脚本放在GroupBy脚本页签当中,问题解决。解决方案跟踪一下执行语句:where语句位置正确。解决方案UAP在定义报表时,满足一些个性化的需求时,客户经常会用到SQL语句的数据源,相应的语句要写在相应界面当中,这样增加过滤条件时,系统才可以正常组合SQL语句。问题总结

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

用友ERP-U8知识----UAP关键字'where'附近有语法错误.ppt

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信