一、视图
View
在O2OA中,视图是展现、查询流程和内容管理数据的重要途径,也是各应用进行数据关联的工具。
入口
点系统的左上角导航->设计中心->数据中心->具体应用->视图打开。
视图的后台服务
http://applicationServer:20020/x_query_assemble_surface/jest/index.html
视图属性
基本
属性名 |
说明 |
标识 |
视图ID |
名称 |
视图名称 |
别名 |
视图别名 |
隐藏视图 |
隐藏后不会在点左上角导航->应用中显示 |
最大行数 |
视图展现的时候返回数据的最多数目 |
每页行数 |
视图展现的时候每页的数据数目 |
可执行人 |
允许执行视图的人。和可执行组织同时为空的时候,所有人可执行 |
可执行组织 |
允许执行视图的组织 |
范围
属性名 |
说明 |
|
可以选择流程平台数据或者是内容管理平台的数据 |
权限 |
带权限:当前人员只能看到流转过的工作 忽略:当前人员可以看到符合过滤条件所有工作,但是没有流转过的不能打开 |
流转状态 |
只有选择流程平台数据的时候起作用 |
选择应用 |
只对应流程平台应用的数据 |
选择流程 |
只对应流程的数据,如果应用和流程同时选择的情,取并集 |
数据类型 |
信息类:只显示内容管理栏目或分类里文档类型设置为“信息”的数据 数据类:只显示内容管理栏目或分类里文档类型设置为“数据”的数据 全部:对文档类型无限制 |
选择栏目 |
只显示对应内容管理栏目的数据 |
选择分类 |
只显示对应内容管理分类的数据,如果栏目和分类同时选择 |
拟稿组织 |
只显示选择的拟稿组织的数据 |
拟稿人员 |
只显示选择的拟稿人员的数据 |
拟稿身份 |
只显示选择的拟稿身份的数据 |
隐藏视图 |
隐藏后不会在点左上角导航->应用中显示 |
时段 |
只显示符合时段内的数据,允许有偏移量 视图默认返回一年内的数据,如果需要返回更早时间的数据,请配置时段。 |
过滤
当选择“作为默认过滤条件”时,视图在执行的时候既根据该过滤条件进行过滤。
当选择“作为自定义过滤数据”时,用户可以根据配置自定义进行过滤。
路径:
平台流程填写对应的以下路径:
{ "$work" : { "title" : "" , //标题 "startTime" : "", //创建时间 "startTimeMonth": "", //创建月份 "completedTime": "", //完成时间 "completedTimeMonth": "", //完成月份 "creatorPerson": "", //拟稿人 "creatorIdentity": "", //拟稿人身份 "creatorUnit": "", //拟稿组织 "creatorUnitLevelName": "", //拟稿组织层级 "application": "", //应用ID "applicationName": "", //应用名称 "applicationAlias": "", //应用别名 "process": "", //流程ID "processName": "", //流程名称 "processAlias": "", //流程别名 "serial": "", //编号 "activityType": "", //活动类型 "activityName": "", //活动名称 "activityArrivedTime": "", //活动到达时间 "workId": "", //工作ID "workCompletedId": "", //已完成工作ID "job": "", //JOB的ID(job) "completed": "", //是否已完成(completed) }, "subject" : "", //标题 "identity1" : [{ //身份/人员/组织/职务/群组 的存储形式 { "name": "李四", //身份名称,不唯一 "unique": "23dd1b53-feed-485d-8c9c-1a4e64ff58a2", //身份唯一标识 "description": "", //身份描述 "distinguishedName": "李四@23dd1b53-feed-485d-8c9c-1a4e64ff58a2@I", //身份全称 "person": "李四@lisi@P", //人员 "unit": "开发部@kfb@U", //组织 "unitName": "开发部", //组织名称, 不唯一 "unitLevel": 2, //组织层级 "unitLevelName": "浙江兰德纵横/开发部", //组织层级名 "orderNumber": 24920439 //排序号 } ... }] ... }
如:流程ID "$work.workId"
标题填写:subject
身份dn填写:identity1.0.distinguishedName (数组用 “.0” 来表示下标)
内容管理填写对应的以下路径:
{ "$document" : { "title" : "", //标题 "publishTime" : "", //发布时间 "creatorPerson" : "", //拟稿人 "creatorIdentity" : "", //拟稿人身份 "creatorUnitName" : "", //拟稿组织 "creatorTopUnitName" : "", //拟稿顶级组织 "appId" : "", //栏目ID "appName" : "", //栏目名称 "categoryId" : "", //分类ID "categoryName" : "", //分类名称 "categoryAlias" : "", //分类别名 "docid" : "", //文档ID }, "subject" : "", //标题 "identity1" : [{ //身份/人员/组织/职务/群组 的存储形式 { "name": "李四", //身份名称,不唯一 "unique": "23dd1b53-feed-485d-8c9c-1a4e64ff58a2", //身份唯一标识 "description": "", //身份描述 "distinguishedName": "李四@23dd1b53-feed-485d-8c9c-1a4e64ff58a2@I", //身份全称 "person": "李四@lisi@P", //人员 "unit": "开发部@kfb@U", //组织 "unitName": "开发部", //组织名称, 不唯一 "unitLevel": 2, //组织层级 "unitLevelName": "浙江兰德纵横/开发部", //组织层级名 "orderNumber": 24920439 //排序号 } ... }] ... }
如:文档ID填写 "$document.docid"
标题填写:subject
身份dn填写:identity1.0.distinguishedName (数组用 “.0” 来表示下标)
列属性
属性 |
说明 |
列标题 |
表格的标题 |
列名 |
列名,当需要操作数据的时候要用到(比如嵌入到表单中选择数据的时候) |
默认值 |
列值为空时的默认值 |
打开文档 |
点击该列的时候,是否打开文档 |
数据路径 |
查看本章-视图属性-过滤-路径的介绍 |
排序 |
该列是否排序,只有第一个排序列有效 |
分类 |
该列是否分类,只能有一个分类列 |
隐藏 |
显示的时候,该列是否隐藏 |
组织对象 |
如果选是,那么只显示数组第一个值的 name 属性 |
HTML值 |
如果选择是,则作为单元格的innerHTML显示 |
显示脚本 |
可以通过脚本对列值进行计算。 this.value:为列原来的值 this.entry.data: 该行所有列的值 显示脚本最终需要 return 放回值 |
视图的使用
在表单、页面中嵌入视图
可以在表单中使用“嵌入视图”组件
选择视图的数据到表单
在表单中使用“选择视图”组件,可以进行流程、内容管理分类直接的数据关联。
当 选择结果处理 选择 “赋值”的时候:
上图中的 field_1 为本表单的组件标识,column_1 为视图的列名。
当用户选择视图后,会将选中行 column_1 列的值赋值给 field_1 。
当 选择结果处理 选择 “脚本”的时候,可以通过 this.target.selectedData 来获取用户选择行的数据。数据格式如下:
{[ bundle : "xxxx", //CMS文档Id/流程jobId data : { //列数据 column1Name : column1Value, //第一列的列名,第一列的列值 column2Name : column2Value, //第二列的列名,第二列的列值 ... }, ... ]}
在脚本中的使用
可以查看API的 view章节进行学习,点击打开链接
二、查询语句
Statement
查询语句是建立在数据表基数上的查询语句配置。配置查询语句后,在应用中可调用执行。
入口
点系统的左上角导航->设计中心->数据中心->具体应用->查询配置打开
查询语句的后台服务
http://applicationServer:20020/x_query_assemble_surface/jest/index.html
创建查询配置
1、创建查询配置;
2、选择语句类型和数据表;
3、编写查询语句,保存
查询语句
语法
查询语句用的是JPA JPQL语句,如 select o from tableName o where o.name='zhangsan'
。
了解JPQL语句可以点击链接查看:https://www.objectdb.com/java/jpa/query/jpql/structure
动态传参
查询语句中的where语句的值可以使用json传入
如:
查询语句的设计为 select o from tableName o where o.name=:n
在调用查询语句的时候传入 json
{ "n" : "zhangsan" }
则 最终在后台拼接成的语句为
select o from tableName o where o.name='zhangsan'
了解JPQL语句动态传参可以点击链接查看:https://www.objectdb.com/java/jpa/query/parameter
使用
需要编写脚本去使用查询语句
方法一
o2.Actions.get( "x_query_assemble_surface" ).executeStatement( statementFlag, //语句id、语句名称或语句别名 page, //页码,数字 size, //每页条数 data, //请求的json function(json){ //json为执行結果 }, function(xhr){ //如果返回错误,在这里处理 }, async //同步还是异步 )
例如:现在已有一个查询语句配置select o from student o where o.class=:class
,存储的别名是 selectStudent,取第一页的10条,那么方法如下:
o2.Actions.get( "x_query_assemble_surface" ).executeStatement(
"selectStudent",1,10,{
class : "01计算机一班"
},function(json){
//json 为返回的结果
}
)
方法二
var action = new this.Action( "x_query_assemble_surface", { executeStatement:{ //服务命名1,自定义 "uri": "/jaxrs/statement/{flag}/execute/page/{page}/size/{size}", //服务地址1,形如 /jaxrs/... "method": "POST" //请求方法,包括 GET POST PUT DELETE } ); action.invoke({ "name": "executeStatement", //自定义的服务名 "parameter": { "flag": statementFlag, //语句id、语句名称或语句别名 "page" : page, //页码,数字 "size" : size //每页条数 }, //uri参数 "data": { }, //请求的正文 "success": function(json){ //服务调用成功时的回调方法,json 是服务返回的数据 //这里进行具体的处理 }.bind(this), "failure" : function(xhr){ //服务调用失败时的回调方法,xhr 为 XMLHttpRequest 对象 //这里进行具体的处理 }, "async" : true, //同步还是异步,默认为true });
例如:现在已有一个查询语句配置select o from student o where o.class=:class
,存储的别名是 selectStudent,取第一页的10条,那么方法如下:
var action = new this.Action( "x_query_assemble_surface", { executeStatement:{ //服务命名1,自定义 "uri": "/jaxrs/statement/{flag}/execute/page/{page}/size/{size}", //服务地址1,形如 /jaxrs/... "method": "POST" //请求方法,包括 GET POST PUT DELETE } ); action.executeStatement({ "name": "executeStatement", //自定义的服务名 "parameter": { //uri参数 "flag": selectStudent, //语句id、语句名称或语句别名 "page" : 1, //页码,数字 "size" : 10 //每页条数 }, "data": { //请求的正文 class : "01计算机一班" }, "success" : function(json){ //json 为返回的结果 } }
来源:oschina
链接:https://my.oschina.net/o2oa/blog/3178251