Epicor BAQ - BAQ设计与调用

目录

  • 一、BAQ设计常用功能
    • 1.跨公司查询
    • 2.修改作者
    • 3.添加筛选条件
    • 4.使用BAQ参数
    • 5.子查询
  • 二、在客制化中调用BAQ取数
  • 三、在BPM中调用BAQ取数
  • 四、结束


一、BAQ设计常用功能

1.跨公司查询

在BAQ的General页面勾选Cross-company后,BAQ可以跨公司查询数据。
在这里插入图片描述

2.修改作者

在BAQ设计中,如果BAQ的作者不是当前账号,系统是不允许进行修改的,这个时候我们可以使用Actions/Change Author功能把BAQ的作者修改为当前账号。
在这里插入图片描述

3.添加筛选条件

BAQ筛选条件分为Table Criteria和SubQuery Criteria两类,Table Criteria只能对Table栏位进行筛选,而SubQuery Criteria既能对Table栏位进行筛选,也能对查询结果的Calculated栏位进行筛选。
在这里插入图片描述

4.使用BAQ参数

先使用Actions/Define Parameters功能定义BAQ参数,定义好之后,就可以在筛选条件中使用定义的参数作为筛选条件。
在这里插入图片描述
在这里插入图片描述

5.子查询

BAQ中可以通过下图方式,添加子查询,
在这里插入图片描述

子查询可以分为如下几类:

类型描述
TopLevel简单查询的默认值;每个BAQ只可以包含一个TopLevel子查询。
UnionUnion用于合并两个表的数据,两个表所有选定的列数据类型需要相同,并且合并后两个表中重复的数据只保留一行。
UnionAllUnionAll用法与Union一样,但是合并后两个表中重复的数据也会保留。
IntersectIntersect返回两个或多个选择查询的结果。但是,它只返回所有查询都有的行。如果一条记录存在于一个查询中而不存在于另一个查询,则将从结果中忽略该记录。
Except返回Except操作左侧查询中的所有非重复值,并且这些值也不是从右侧查询中返回的。
CTE公共表表达式(CTE)可以看作是在单个SELECT的执行范围内定义的临时结果集,也可以用作子查询。
CTE的常见用途是查询分层数据。返回分层数据是递归查询的常见用法,例如:在组织结构图中显示员工,或在物料清单场景中显示数据,在该场景中,父产品有一个或多个组件,而这些组件又可能有子组件或是其他父产品的组件。
InnerSubQueryInnerSubQuery通常作为另一个查询中的嵌套查询,即将当前查询的结果用到另外一个查询中。

子查询返回行可设定为如下几种

类型描述
All默认值;指定返回结果为查询到的所有行。
Distinct指定返回结果去掉其中重复的行。
Top指定返回的行数或行百分比。
使用With Ties时需要同时指定Order By列,如果在查询数据中有与返回结果最后一行的Order By列的值相同的行,则这些行也会加到返回结果中,这时候返回的行数将超过指定返回的行数或行百分比
DistinctTop对应于同时使用Distinct和Top子句。

在这里插入图片描述

二、在客制化中调用BAQ取数

这里使用DynamicQueryAdapter来获取BAQ查询到的数据,数据筛选使用BAQ参数。

方法代码如下:

/// <summary>从BAQ获取数据</summary>public DataTable GetBAQData(Ice.Lib.Framework.EpiTransaction otrans, string queryID, Parameter[] queryParameter, bool clearParameter = true){DataTable result = null;try{using (Ice.Adapters.DynamicQueryAdapter dqa = new Ice.Adapters.DynamicQueryAdapter(otrans)){dqa.BOConnect();Ice.BO.QueryExecutionDataSet dsQueryExecution = dqa.GetQueryExecutionParametersByID(queryID);if (clearParameter) dsQueryExecution.ExecutionParameter.Clear();//清除已有的BAQ参数if (queryParameter != null){for (int r = 0; r < queryParameter.Length; r++){//重新添加BAQ参数dsQueryExecution.ExecutionParameter.AddExecutionParameterRow(queryParameter[r].ParameterID, queryParameter[r].ParameterValue, queryParameter[r].ValueType, queryParameter[r].IsEmpty, Guid.NewGuid(), "A");}}dqa.ExecuteByID(queryID, dsQueryExecution);//执行BAQ查询if (dqa.QueryResults.Tables["Errors"].Rows.Count > 0){throw new Exception(queryID + "," + Convert.ToString(dqa.QueryResults.Tables["Errors"].Rows[0]["ErrorText"]));}result = dqa.QueryResults.Tables["Results"];}}catch (Exception ex){throw new Exception(queryID + "," + ex.Message);}return result;}/// <summary>BAQ参数数据类型</summary>public class DataType{public static string Nvarchar = "nvarchar";public static string Bit = "bit";public static string Date = "date";public static string Decimal = "decimal";public static string Int = "int";}/// <summary>BAQ参数</summary>public class Parameter{public string ParameterID { get; set; }public string ParameterValue { get; set; }public string ValueType { get; set; }public bool IsEmpty { get; set; }public Parameter(string parameterID, string parameterValue, string dataType, bool isEmpty = false){ParameterID = parameterID;ParameterValue = parameterValue;ValueType = dataType;IsEmpty = isEmpty;}}

调用样例:

List<Parameter> parList= new List<Parameter>();
parList.Add(new Parameter("PackNum", Convert.ToInt32(edvShipHead.CurrentDataRow["PackNum"]).ToString(), DataType.Int));
DataTable dt = GetBAQData(oTrans, "BK_GetShipData", parList.ToArray());

三、在BPM中调用BAQ取数

在BPM中,可以使用DynamicQuery的BO方法来获取BAQ查询到的数据,数据筛选也使用BAQ参数,相关代码如下:

//实例化DynamicQuery的BO对象
Ice.Contracts.DynamicQuerySvcContract boDynamicQuery = Ice.Assemblies.ServiceRenderer.GetService<Ice.Contracts.DynamicQuerySvcContract>(Db);
//实例化BAQ查询需要的数据集
Ice.Tablesets.QueryExecutionTableset dsQueryExecution = new Ice.Tablesets.QueryExecutionTableset();
//在数据集中添加BAQ查询需要的参数
Ice.Tablesets.ExecutionParameterRow drRow = new Ice.Tablesets.ExecutionParameterRow();
drRow.ParameterID = "PackNum";  
drRow.ParameterValue = packNum.ToString();
drRow.ValueType = "int";
drRow.IsEmpty = false;
drRow.RowMod = "A";
drRow.SysRowID = new Guid();
dsQueryExecution.ExecutionParameter.Add(drRow);
//获取BAQ查询到的数据
DataSet dsResults = boDynamicQuery.ExecuteByID("BK_GetShipData", dsQueryExecution);

四、结束

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/26484.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Cloudflare 错误 1006、1007、1008 解决方案 | 如何修复

根据不完全统计&#xff0c;使用 Cloudflare 的网站比例已经接近 20%。因此&#xff0c;在日常工作中&#xff0c;比如进行网页抓取时&#xff0c;您可能经常会遇到一些因 Cloudflare 而产生的困难。例如&#xff0c;遇到 Cloudflare 错误 1006、1007 和 1008&#xff0c;这些错…

水电表抄表解决方案

1.简述&#xff1a;水电表抄表方案的必要性 水电表抄表是物业管理服务中不可或缺的一环&#xff0c;它涉及到费用计算、资源优化配置及其环保节能监管等各个方面。传统的手工抄表方法不但耗时费力&#xff0c;且容易出差错&#xff0c;因而&#xff0c;现代化抄表方案是十分重…

Java——重载

一、重载&#xff08;Overload&#xff09; 1、重载是什么 方法重载&#xff08;Method Overloading&#xff09;是Java中实现多态的一种方式。它允许在同一个类中定义多个同名的方法&#xff0c;只要这些方法的参数列表不同。这些不同的参数列表可以通过不同的参数类型、参数…

构建全面框架 | 简化基因组+线粒体遗传进化联合分析

近日&#xff0c;凌恩生物客户河北农业大学、浙江大学及英国格林威治大学的研究团队合作&#xff0c;在《Insect Science》杂志上发表了题为“A comprehensive framework for the delimitation of species within the Bemisia tabaci cryptic complex, a global pest-species g…

GStreamer安装——iOS

安装iOS开发 支持从iOS6开始的所有版本 先决条件 iOS开发需要下载Xcode和iOSSDK。Xcode 可以在App Store或 这里 iOSSDK&#xff0c;如果它还没有包含在您的Xcode版本中&#xff0c; 可以从下载选项卡下的Xcode首选项菜单下载。 最低要求iOS版本为6.0。的最低要求版本 Xcode…

计算机网络知识点(三)

目录 一、简述TCP连接和关闭的状态转移 二、简述TCP慢启动 三、简述TCP如何保证有序 四、简述TCP常见的拥塞控制算法 五、简述TCP超时重传 一、简述TCP连接和关闭的状态转移 状态转移图 图中上半部分是TCP的三次握手过程的状态变迁&#xff0c;下半部分是TCP四次挥手过程的…

Unity接入PS5手柄和Xbox手柄以及Android平台的(以及不同平台分析)

Unity接入PS5手柄和Xbox手柄以及Android平台的&#xff08;以及不同平台分析&#xff09; 介绍Unity手柄小知识PC端和编辑器上的摇杆事件和滑动事件PS5手柄Xbox手柄北通手柄 安卓环境下&#xff08;安卓手机或者安卓模拟器&#xff09;PS5手柄Xbox手柄北通手柄 总结 介绍 最近…

Springboot高校实训管理平台-计算机毕业设计源码01557

目 录 摘要 1 绪论 1.1 研究背景 1.2 研究意义 1.3论文结构与章节安排 2 高校实训管理平台系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据增加流程 2.2.2 数据修改流程 2.2.3 数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系…

2006-2024年款别克君越维修手册和电路图资料更新

经过整理&#xff0c;2006-2024年款别克君越&#xff08;含君越混动版&#xff09;全系列已经更新至汽修帮手资料库内&#xff0c;覆盖市面上99%车型&#xff0c;包括维修手册、电路图、新车特征、车身钣金维修数据、全车拆装、扭力、发动机大修、发动机正时、保养、电路图、针…

MT7981B+MT7976C+MT7531A RF定频测试方法

1、从下面网址下载QA软件包&#xff0c;然后在WIN系统下安装QA环境。 https://download.csdn.net/download/zhouwu_linux/89428691?spm1001.2014.3001.5501 在WINDOWS 7系统下先安装WinPcap_4_1_3.exe。 2、搭建硬件环境&#xff0c;电脑先连接仪器&#xff0c;主板网络与电…

028、工具_Pipeline

Redis客户端执行一条命令分为如下四个过程: 1)发送命令 2)命令排队 3)命令执行 4)返回结果 其中1)+4)称为Round Trip Time(RTT,往返时间)。 Pipeline(它能将一组Redis命令进 行组装,通过一次RTT传输给Redis,再将这组Redis命令的执行结果按顺序返回给客户端,图3-…

layui一个页面多个table显示时工具栏被下方的table遮挡

记录&#xff1a;layui一个页面多个table显示时工具栏被下方的table遮挡 css代码&#xff1a; [lay-idcurrentTableId] .layui-table-tool {position: relative;z-index: 9999;width: 100%;min-height: 50px;line-height: 30px;padding: 10px 15px;border-width: 0;border-bot…

服务架构的设计原则

墨菲定律与康威定律 在系统设计的时候&#xff0c;可以依据于墨菲定律 任何事情都没有表面上看起来那么简单所有的事情都会比你预计的时间长可能出错的事总会出错担心的某一个事情的发送&#xff0c;那么它就更有可能发生 在系统划分的时候&#xff0c;可以依据康威定律 系…

智能家居建材,打造未来家居生活

智能家居建材&#xff0c;正引领着家居行业的新潮流。它融合了先进的科技与人性化的设计&#xff0c;为我们打造了一个充满未来感的家居新体验。 想象一下&#xff0c;当你走进家门&#xff0c;智能门锁自动识别你的身份&#xff0c;轻轻一推即可进入。室内环境自动调节到最舒适…

elementPlus 图标不显示 属性模式不显示

问题&#xff1a; elementPlus 属性模式图标不显示 <el-input placeholder"请输入用户名" :suffix-icon"Avatar"> //这个图标不显示 之前在main.ts里全局引入了icons-vue。这里的script里也没引入。 解决&#xff1a; 在当前的script中重新引入a…

【学习笔记】Kali

纯个人总结&#xff0c;有什么不对的地方欢迎指正。 笔记根据个人学习进度持续更新… 一、 认识Kali 基础了解 Kali是一套基于Debian发行版的一款操作系统。&#xff08;这里讲一个误区&#xff0c;我以前一直以为kali就属于deepin下的操作系统&#xff0c;但是我知道deepin是…

HTML静态网页成品作业(HTML+CSS+JS)—— 美食企业曹氏鸭脖介绍网页(4个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;使用Javacsript代码实现 图片轮播切换&#xff0c;共有4个页面。 二、…

使用pyqt对yolov5进行简答部署

YOLOv5是一种高效的实时目标检测算法&#xff0c;广泛应用于各类计算机视觉任务中。为了实现便捷的图形用户界面&#xff08;GUI&#xff09;&#xff0c;我们采用了PyQt框架。PyQt是一个Python绑定的Qt库&#xff0c;用于创建跨平台的应用程序。 在本研究中&#xff0c;我们首…

「React」RSC 服务端组件

前言 RSC&#xff08;React Server Components&#xff09;是React框架的一个新特性&#xff0c;它允许开发者编写只在服务器端渲染的组件。与传统的服务器端渲染&#xff08;SSR&#xff09;不同&#xff0c;RSC的目标是提升性能和用户体验&#xff0c;同时减少客户端加载的J…

【每日一练】day3

✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天开心哦&#xff01;✨✨ &#x1f388;&#x1f388;作者主页&#xff1a; &#x1f388;丠丠64-CSDN博客&#x1f388; ✨✨ 帅哥美女们&#xff0c;我们共同加油&#xff01;一起…