O2OA使用手册
第1章 功能简介及概述
第6章 平台部署与配置
  • 6.1 安装部署-在Windows系统中部署O2OA开发平台
  • 6.2 安装部署-在Linux系统中部署O2OA开发平台
  • 6.3 安装部署-在宝塔/PHPStudy中部署O2OA开发平台
  • 6.4 安装部署-O2OA开发平台之HTTP端口规划
  • 6.5 安装部署-平台服务器版本升级操作说明
  • 6.6 安装部署-私有化部署服务器架构推荐
  • 6.7 安装部署-O2OA开发平台集群部署配置及操作说明
  • 6.8 安装部署-在线部署自定义应用的WAR包和JAR包
  • 6.9 服务器配置与管理-​O2OA主要配置文件说明
  • 6.10 服务器配置与管理-服务器端口冲突和端口修改
  • 6.11 服务器配置与管理-如何修改服务器内存占用率?
  • 6.12 服务器配置与管理-如何访问和操作H2内置数据库
  • 6.13 服务器配置与管理-​如何在O2OA中使用MySQL数据库?
  • 6.14 服务器配置与管理-如何修改平台支持的数据库驱动包
  • 6.15 服务器配置与管理-O2OA使用openGauss(华为高斯数据库)配置
  • 6.16 服务器配置与管理-O2OA开发平台平台数据库配置信息样例
  • 6.17 服务器配置与管理-配置O2OA服务器连接O2云
  • 6.18 服务器配置与管理-O2OA实现服务器随操作系统自动启动
  • 6.19 服务器配置与管理-文件存储服务器配置
  • 6.20 服务器配置与管理-工作日节假日配置
  • 6.21 服务器配置与管理-为平台增加全文检索功能
  • 6.22 服务器配置与管理-消息提醒配置说明
  • 6.23 服务器配置与管理-自定义消息提醒
  • 6.24 服务器配置与管理-定制消息通知的内容
  • 6.25 服务器配置与管理-消息通知过滤
  • 6.26 服务器配置与管理-为待办创建配置邮件通知
  • 6.27 服务器配置与管理-待办待阅数据的查询操作和管理
  • 6.28 服务器配置与管理-​自动执行平台数据的备份与恢复
  • 6.29 服务器配置与管理-数据导出导入与系统数据备份
  • 6.30 ​服务器配置与管理-定期自动执行数据备份与恢复
  • 6.31 系统安全-O2OA作为认证中心实现基于OAUTH2单点认证
  • 6.32 系统安全-O2OA基于Nginx的SSL跳转、转发配置
  • 6.33 O2OA(翱途)开发平台如何基于nginx上下文分发的方式快速集群部署
  • 6.34 系统安全-访问日志相关配置
  • 6.35 系统架构-平台集群化部署之基于Nginx端口分发机制实现集群部署
  • 6.36 系统安全-审计日志相关配置
  • 6.37 系统安全-平台日志文件说明
  • 6.38 系统架构-基于nginx快速集群部署-上下文分发
  • 6.39 系统安全-O2OA日志输出设置log4j2.xml
  • 6.40 系统安全-用户密码初始化规则的设定
  • 6.41 系统安全-启用HTTPS(百度云版)
  • 6.42 系统安全-启用HTTPS(腾讯云版)
  • 6.43 系统安全-自签名SSL证书验证HTTPS功能
  • 6.44 系统安全-登录密码RSA加密
  • 6.45 系统安全-用户登录IP限制
  • 6.46 系统安全-在用户登录过程中启用图形验证码
  • 6.47 系统安全-平台部署之使用非root用户运行服务
  • 6.48 系统安全-O2Server启用国密加密设置
  • 6.49 系统安全-日志应用使用说明
  • 6.50 系统安全-用户重置密码操作
  • 6.51 系统安全-超级管理员(xadmin)密码修改
  • 6.52 系统安全-使用Web端运行服务器管理命令
  • 6.53 系统安全-o2server无法正常显示验证码解决办法
  • 6.54 O2OA(翱途)开发平台前端安全配置建议(一)
  • 第16章 开发知识及常见问题
  • 16.1 常见问题-SQLServer中创建新数据库使用哪个中文编码?
  • 16.2 如何替换登录页面二维码中默认的logo图标
  • 16.3 O2OA(翱途)流程引擎中如何修改,定制流程的流转记录
  • 16.4 mysql数据库备份
  • 16.5 domain不正确的时候如何强制设置成正确的
  • 16.6 配置文件中使用密文存储密码
  • 16.7 常见问题-连接MySQL出现 Public Key Retrieval is not allowed 的错误
  • 16.8 常见问题-查看表结构
  • 16.9 常见问题-7.2及以上版本开启web代理后请求中没有正确使用web端口问题解决方式
  • 16.10 linux环境libreoffice安装及使用
  • 16.11 在O2OA中使用网络会议(二):Openmeetings与O2OA认证配置
  • 16.12 在O2OA中使用网络会议(一):Openmeetings-5.1.0亲手安装整理 Step-By-Step
  • 16.13 藕粉社区问答系列1
  • 16.14 藕粉社区问答系列2
  • 16.15 藕粉社区问答系列3
  • 16.16 快速入门-平台相关资料汇总
  • 16.17 快速入门-服务器总体介绍汇总
  • 16.18 快速入门-流程表单载入基础数据
  • 16.19 快速入门-常用表单脚本样例汇总
  • 16.20 快速入门-自定义表数据分页样例
  • 16.21 OEM白标-如何修改平台中的Logo图标和文字
  • 16.22 云服务器-阿里云ECS服务器的端口启用
  • 16.23 开发知识-React篇:在O2OA平台框架中使用React
  • 16.24 开发知识-React篇:在O2OA门户页面中使用React
  • 16.25 开发知识-Vue篇:在Vue应用中集成O2OA
  • 16.26 开发知识-Vue篇:使用Vue-CLI开发O2应用
  • 16.27 开发知识-Vue篇:在O2门户页面中使用Vue
  • 16.28 平台中使用Druid数据库连接及监控
  • 16.29 开发知识-在PAAS平台上部署O2OA开发平台
  • 16.30 开发知识-如何使用Tomcat架设webdav服务器
  • 16.31 开发知识-单个端口模式的Nginx和系统配置
  • 16.32 开发知识-Linux非root用户如何使用80端口启动O2OA
  • 16.33 开发知识-O2OA平台启用Eruda进行移动端调试
  • 16.34 开发知识-神通数据库安装
  • 16.35 开发知识-人大金仓数据安装
  • 16.36 开发知识-中标麒麟安装达梦数据库(DM8)
  • 16.37 开发知识-中标麒麟安装人大金仓详细步骤
  • 16.38 开发知识-使用VNC连接中标麒麟V7操作系统
  • 16.39 开发知识-鲲鹏(ARM)麒麟操作系统如何替换yum源?
  • 16.40 开发知识-数据优化知识点
  • 16.41 水印安全-附件水印|加密|文档格式转换图片|PDF
  • 16.42 消息队列-配置activeMQ、kafka消息队列
  • 16.43 常见问题-数据导出或者导入时发生OOM异常
  • 16.44 常见问题-如何让用户在首次登录时,必须对初始密码进行修改
  • 16.45 常见问题-如何在模块部署中控制模块的访问权限
  • 16.46 常见问题-如何在平台中开发Ftp文件上传文件的服务?
  • 16.47 常见问题-如何使用服务管理调用WebService
  • 16.48 常见问题-如何使用脚本调用外部服务
  • 16.49 常见问题-如何使用脚本控制流程自动流转
  • 16.50 常见问题-如何通过脚本调用系统内服务
  • 16.51 常见问题-接口代码疑惑解答汇总
  • 16.52 常见问题:Maven编译o2server错误: Java Heap Space
  • 16.53 常见问题-集群配置后启动报错:NullPointerException
  • 16.54 常见问题-服务器错误:can not decrypt token
  • 16.55 常见问题-IOS移动办公无法收到验证码
  • 16.56 常见问题-服务器和日志时间相差12小时的问题
  • 16.57 常见问题-为什么127.0.0.1可以访问但其他IP无法访问
  • 16.58 藕粉社区问答系列4
  • 16.59 开发知识-React篇:在React应用中集成O2OA

  • 数据中心-查询配置开发

    时间:2023-03-10   

    O2OA提供的数据管理中心,可以让用户通过配置的形式完成对数据的汇总,统计和数据分组展现,查询和搜索数据形成列表数据展现。也支持用户配置独立的数据表来适应特殊的业务的数据存储需求。本文主要介绍如何在O2OA中开发和配置自定义数据查询语句JPQL及对应的视图。

    一、先决条件

    1、O2Server服务器正常运行,系统安装部署请参考文档《如何在服务器上安装部署O2OA》

    2、以拥有管理员权限或拥有数据中心管理员(QueryManager角色)的用户账号登录O2OA(翱途)开发平台,如:xadmin

    二、查询配置功能简介

    查询配置是建立在表基础上的查询语句配置。配置查询语句后,在应用中可调用执行。

    对系统表,目前支持流程平台的待办、已办、待阅、已阅、流程实例、已完成流程实例和阅读的查询操作;还支持内容管理平台的文档查询操作。

    对自建表,支持查询、更新和删除操作。

    image (10).png

    查询配置功能入口

    点系统的左上角图标->应用->数据中心平台->具体应用->查询配置打开

    2021-10-25_17-31-23.png

    }7[ON]J7OH7VWRIAZX2K)Y5.png

    三、知识储备需求

    1、JPQL语法

    查询语句用的是JPA JPQL语句,如下面的语句从系统表Task中获取待办:

    SELECT o FROM Task o WHERE o.person = :person

    JPQL官网:https://www.objectdb.com/java/jpa/query/jpql/structure

    中文简介:https://www.codercto.com/a/4338.html

    2、动态传参

    查询语句中的where语句的值可以使用json传入,如:

    查询语句的设计为 :

    select o from tableName o where o.name=:n

    在调用查询语句服务的时候传入 json:

    {
        "n" : "zhangsan"
    }

    最终系统在后台根据这些设计拼接成为如下语句:

    select o from tableName o where o.name='zhangsan'

    如下图所示:

    image (1).png

    了解JPQL语句动态传参可以点击链接查看:https://www.objectdb.com/java/jpa/query/parameter

    也可以看本文档的parameter说明,点击查看

    四、创建查询配置

    打开数据中心应用,点击导航上的“配置”,再点击“新建图标”就可以创建查询配置了:

    image (2).png

    在界面上有四栏,左边是本应用的所有查询配置列表;中上查询语句编辑区,中下是调试区和视图配置区域;右侧是属性配置区域。

    2021-10-29_0-47-43.png

    五、配置语句

    本区域配置完成后,就可以在服务中使用查询语句。

    image (3).png

    配置项

    内容

    说明

    如何创建语句

    直接编写JPQL创建语句

    如:

    SELECTFROM tempCard  o where o.isBranch=:n

    通过脚本创建语句

    可以在查询语句和总数语句中使用脚本编写,可以通过返回字符串,如:

    return "SELECTFROM tempCard  o where o.isBranch=:n"

    另外,在脚本中,可以使用parameters获取传入的parameter参数,见本文的“查询语句的后台服务->参数说明->body参数->parameter”。

    访问对象类型

    系统表

    指平台创建的表,选择此项后,支持流程平台的待办、已办、待阅、已阅、流程实例、已完成流程实例和阅读的查询操作;还支持内容管理平台的文档查询操作。

    自建表

    指二次开发人员在数据中心中创建的"数据表"

    语句类型

    JPQL语句类型

    访问对象类型选择“系统表”时,支持select。

    访问对象类型选择“自建表”时,支持selectupdatedelete。

    数据表

    数据库表名称


    字段


    帮助在语句编辑区域插入字段,不保存至后台。

    查询语句

    查询数据表记录内容的语句

    后台服务“executeV2”返回的data标签。

    总数语句

    查询数据表记录条数的语句

    后台服务“executeV2”返回的count标签。

    在进行分页查询的时候,可以在第一次查询执行,翻页的时候不执行,以节省服务器资源。

    样例:SELECT count(o.id) FROM tempCard o where o.isBranch=:n

    测试语句

    左侧

    用json的方式传入语句中的参数

    右侧

    根据左侧参数执行的结果

    视图

    以配置的形式可视化展现数据

    详细配置见下一章节。

    1、日期格式的写法

    在jpql中,对日期格式有特殊的写法,格式如下:

    Date - {d 'yyyy-mm-dd'} - for example: {d '2019-12-31'}

    Time - {t 'hh:mm:ss'} - for example: {t '23:59:59'}

    Timestamp(DateTime) - {ts 'yyyy-mm-dd hh:mm:ss'} - for example: {ts '2020-01-03 13:59:59'}

    示例如下图:

    1649213470421222.png

    2、in的写法

    在jpql中,如果需要过滤字段的值在传入的列表范围中,可以使用in比较运算符。

    如:

    select o from test12 o where o.month in ("一月","二月")

    六、配置查询视图

    可以用查询视图来实现数据的展现。

    点击界面上的“视图”Tab,可以切换到视图配置界面:

    image (4).png

    1、视图配置

    视图支持查询语句的可视化展现。具有列式、分页、查询等功能。

    image (5).png

    1)基本属性

    配置项

    内容

    说明

    名称

    视图名称


    别名

    视图别名


    视图样式


    选择后可切换不同的视图样式风格

    显示序号


    是否显示每列的序号,分页每页序号延续编号

    每页行数

    填写数字

    每页返回的页数

    隐藏操作条


    是否显示操作条

    操作运行的脚本api可以查看:链接

    选择

    无、单选、多选

    单选表示可以在视图中选中一行。

    多选表示可以在视图中选中多行,并且分页后选中的行值会被保留。

    脚本中获取选中行API查看:链接

    无选择隐藏首列


    选择设置为“无”的时候,是否隐藏系统默认创建的首列。

    无数据显示


    当返回的数据为空时,视图上显示的文本。

    默认选中行脚本

    视图加载每一行的时候运行

    可以在脚本中使用this.target获取当前行。

    this.target.data 为当前行数据

    this.target.node 为当前行DOM节点

    this.target.row 为当前行对应的平台类对象

    this.target.view 为当前视图的平台类对象。

    结果return true 表示选中。

    如:下面的脚本判断数据中的person和登录用户中文名称匹配即选中。

    if(this.target.data.person ==this.session.user.name){

      return true;

    }

    2)过滤配置

    过滤配置分为“作为默认过滤条件”和“作为自定义过滤”。

    作为默认过滤条件为加载视图的时候作为过滤条件。

    作为自定义过滤是用户选择条件后点击查询的过滤条件。

    默认过滤条件

    image (6).png

    配置项

    内容

    说明

    标题

    过滤标题


    参数

    过滤的参数

    和查询语句中形如 :field的where条件,见上图。

    数据类型



    输入

    可以填写固定值,或者系统提供的一些默认公式,比如点击“当前人”,系统会填上@person

    脚本

    脚本API请查看链接,this.target指向当前视图的平台类对象。

    自定义过滤条件

    image (7).png

    配置项

    内容

    说明

    选择


    可选择对应表的所有字段,选择后在标题、路径、数据类型中自动填写数据。不保存在后台

    标题

    过滤标题


    路径

    表别名.字段名

    见上图。

    数据类型



    用户输入

    在使用界面提供输入框让用户输入。

    可选

    脚本API请查看链接,this.target指向当前视图的平台类对象。

    返回格式为:

    return [  "选项文本1|选项值1", "选项文本2|选项值2"]

    3)样式配置

    当在视图的基本配置中切换“视图样式”后,会替换成对应的css代码,可以修改代码呈现不同的视图界面。

    样式名称

    说明

    container

    表格容器样式

    table

    表格样式

    titleTr

    标题行样式

    titleTd

    标题单元格样式

    contentTr

    内容行样式

    contentSelectedTr

    选中的内容行样式

    contentTd

    内容单元格样式

    checkboxNode

    多选节点样式

    checkedCheckboxNode

    选中的多选节点样式

    radioNode

    单选节点样式

    checkedRadioNode

    选中的单选节点样式

    noDataTextNode

    视图无数据时显示的节点样式

    tableProperties

    表格属性

    4)事件配置

    视图在加载或执行过程中的事件。

    样式名称

    说明


    queryLoad

    视图加载前执行

    可以使用脚本计算单元格的内容。api可以查看:链接

    this.target 指向当前视图的平台类对象。

    postLoad

    视图,包括视图界面和当前页数据加载后执行

    postLoadPageData

    加载当前页数据后,画出界面内容前执行,跳页后也会执行

    postLoadPage

    加载当前页内容后执行,跳页后也会执行

    queryLoadItemRow

    加载每行之前执行

    可以使用脚本计算单元格的内容。api可以查看:链接

    this.target 指向当前行的平台类对象。

    postLoadItemRow

    加载每行之后执行

    selectRow

    选择行后执行

    可以使用脚本计算单元格的内容。api可以查看:链接

    this.event指向当前行的平台类对象。

    unselectRow

    取消选择行后执行

    2、视图列配置

    image (8).png

    1)基本属性

    配置项

    内容

    说明

    列标题

    视图标题列上的文本


    列名

    视图列名称


    默认值


    对应列无内容时的值

    打开文档

    打开文档

    点击该列时是否打开文档

    打开文档脚本(优先于id路径)

    点击该单元格时运行的脚本,api可以查看:链接

    this.target指向单元格的平台类对象,this.target.data指向当前行的数据。

    id路径

    当查询语句的表是内容管理或者是流程时可以使用,

    Id是cms文档id/流程work id)相对单条数据的路径。

    如查询语句返回的是数组,那么填写的是"document id/work id"所在的下标。

    如查询语句返回的是对象,那么填写"document id/work id"所在的标签名称。

    选择路径


    正确填写了查询语句,再测试语句或刷新视图数据可显示(刷新)选择路径。选择以后自动在数据路径上填写路径名称,不在后台保存。

    数据路径


    指该列相对单条数据的路径。比如 0,title,或 0.title。

    如查询语句返回的是数组,那么填写的是该列值所在的下标。

    如查询语句返回的是对象,那么填写该列值所在的标签名称。

    隐藏


    是否隐藏该列

    组织对象


    是否为组织对象,如果选是,会把全称转换成中文名称显示。

    如:“张三@zhangshan@P” 显示成 “张三”。

    HTML值


    如果选择是,那么使用innerHTML给单元格赋值,否则使用innerText给单元格赋值。

    显示脚本


    可以使用脚本计算单元格的内容。api可以查看:链接

    this.target.value 为当前单元格数据路径的值。

    this.target.data 为当前行数据

    this.target.json 为当前行的配置

    this.target.node 为当前行当前个DOM对象

    this.target.row 为当前行的平台类对象。

    使用 return "xx" 返回单元格内容。

    2)单元格样式配置

    样式名称

    说明

    标题单元格样式

    标题单元格样式

    标题单元格属性

    表格样式

    内容单元格样式

    内容单元格样式

    内容单元格属性

    内容单元格属性

    3)单元格事件配置

    视图在加载或执行过程中的事件。

    样式名称

    说明

    事件上下文

    loadTitle

    加载标题单元格后执行的事件

    api可以查看:链接

    this.target.data 为当前行数据

    this.target.json 为当前行的配置

    this.target.node 为当前行当前个DOM对象

    this.target.row 为当前行的平台类对象。

    loadContent

    加载内容单元格后执行的事件

    click

    点击单元格的事件

    mousedown

    按下鼠标时执行

    mouseup

    鼠标还原时执行

    mouseover

    鼠标经过时执行

    mouseout

    鼠标移除时执行

    七、预览视图

    点击预览按钮:

    image (9).png

    效果如下:

    image (11).png

    1、点击“导出Excel”可下载视图内容

    2、输入文字->敲回车,进行搜索

    3、点击高级搜索,可以输入文字进行搜索

    八、使用查询语句

    1、在脚本中使用查询语句

    1)直接调用后台服务查询数据

    filterList 和 parameter 参数见本文“查询语句的后台服务->参数说明->body参数”。

    o2.Actions.load("x_query_assemble_surface").StatementAction.executeV2(
     		statementFlag, //语句id、语句名称或语句别名
       	mode, //执行模式:data|count|all
        page, //页码,数字
        size,  //每页条数
        {
    			filterList: [],
          parameter: {}
        }, //请求的json
        function(json){
            //json为执行結果
        },
        function(xhr){ 
            //如果返回错误,在这里处理
        },
        async //同步还是异步
    )

    2)使用平台封装好的api查询数据

    参见api https://www.o2oa.net/api/module-statement.html#.execute

    3)使用平台封装好的api选择数据

    参见api https://www.o2oa.net/api/module-statement.html#.select

    2、表单和页面中的查询视图组件

    可以在内容管理表单、流程管理表单或门户页面中嵌入查询视图组件,用来显示数据。

    2021-04-30_18-09-13 (1).png

    3、表单中的选择视图组件

    可以在内容管理表单、流程管理表单嵌入选择视图组件,用来选择数据。

    image (12).png

    九、查询语句的后台服务

    http://{hostip}/x_query_assemble_surface/jest/index.html

    V)I0%87[`BO4336[7Y@TG_T.png

    查询语句执行依托的后台服务是“executeV2”,如下图

    1、参数说明

    1)uri 参数:

    flag: 查询语句的id/名称/别名

    mode: data表示获取匹配的具体数据,返回的数据在data标签;count表示获取匹配的数据条目数,返回的数据在  count标签;all表示同时获取count和data数据。

    page: 需要返回数据的页码。

    size: 每页的数量。

    2)body参数:

    filterList: 参见api文档说明 https://www.o2oa.net/api/global.html#StatementFilter

    parameter: 过滤条件值参数,对查询语句where语句的形如":person"的参数部分进行赋值有以下规则:

      • 参数名称为下列值时,后台自动赋值:person(当前人),identityList(当前人身份列表),unitList(当前人所在直接组织), unitAllList(当前人所在所有组织), groupList(当前人所在群组)。

      • 如果对比的是日期时间,值为 "{ts '2021-04-29 11:01:01'}";如果对比的是日期,值为"{d '2021-04-29'}";如果对比的是时间,值为 "{t '11:01:01'}"。

      • 如果运算符用的是 like, noLike,模糊查询,值为 "%{value}%"。


    logo_all@1.5x.png

    以上是对查询配置开发的介绍,希望对您有帮助。如果您想进一步了解数据中心的其他设计元素,可以查看以下文章:

    《数据中心-视图开发》

    《数据中心-数据表开发》

    《数据中心-统计配置》

    《数据中心-导入模型配置》