O2OA API

O2OA API (-4de57c8)

简介

  • O2OA 是一个高度可定制化的企业级办公平台,您可以通过脚本语言扩展平台功能。

  • O2OA 前端脚本运行在浏览器和移动端h5页面,基于您使用浏览器的Javascript引擎,使用Javascript语法。

  • O2OA 后端脚本运行在服务器上,基于JDK8标准的Nashorn,遵循ECMAScript 5.1规范。除本API的modules.server章节外,后端脚本还支持该文章所描述的特性:https://www.yuque.com/o2oa/course/vu3ll8

  • 本API是O2OA脚本的编写说明,您可以通过脚本访问和操作平台内的各种对象。

API总览

Namespace

  • 平台中的全局命名空间

web

平台全局对象 - o2

mobile

  • 移动端H5页面除了可以使用web章节以及Class章节描述的API,还可以使用下列API:

平台移动APP API - o2m

Modules

  • 为脚本封装的对象、方法和类。通过this[moduleName]调用。

web

  • 前台脚本(浏览器/移动端H5页面)可以使用的对象、方法和类。

内容管理实例 - documentContext业务数据 - data流程实例 - workContext
脚本引用 - include方法定义 - define表单等待 - wait
流程及内容管理表单 - form门户页面 - page数据字典 - Dict
组织查询 - org视图执行 - view查询视图执行 - statement
导入数据 - importer查询视图 - queryStatement视图 - queryView
当前用户 - session服务调用 - Actions数据表执行 - Table

server

  • 后台脚本(服务端)可以使用的对象、方法和类。
common 通用后台api

控制台输出打印 - print()分等级控制台输出 - console方法定义 - define()
服务调用 - Actions组织查询 - org脚本引用 - include()
数据字典 - Dict数据表执行 - Table查询视图执行 - statement
视图执行 - view通用service调用 - service当前用户全称 - currentPerson

process 流程后台api

流程实例 - workContext流程数据 - data流程实例业务数据 - assignData
服务调用参数 - parameters服务调用消息体 - body服务调用消息头 - headers
服务调用的响应 - response服务调用请求对象 - request超时时间设置 - expire
调用活动的子流程业务数据 - embedData

service 服务管理api

服务的响应对象 - response数据中心查询语句参数 - parameters传入的服务消息体文本 - requestText

FormComponent

  • FormComponent为表单页面组件,在前台脚本中可以使用。可以通过this.form.get("fieldId")获取。

Process 流程表单组件

操作条 - Actionbar地址选择 - Address附件 - Attachment
按钮 - Button日期选择 - Calendar多选按钮 - Checkbox
组合框 - Combox通用组件 - Common数据网格移动端(过时) - DatagridMobile
数据网格PC端(过时) - DatagridPC数据表格移动端 - DatatableMobile数据表格PC端 - DatatablePC
数据模板 - Datatemplate容器组件 - Div公文编辑器 - Documenteditor
自动完成输入框 - Elautocomplete按钮组件 - ElbuttonElcarousel
级联选择框 - Elcascader多选组件 - Elcheckbox颜色选择 - Elcolorpicker
通用组件 - Elcommon容器组件 - Elcontainer日期选择 - Eldate
日期时间选择 - Eldatetime下拉菜单 - Eldropdown图标组件 - Elicon
输入框 - Elinput数字输入框 - Elnumber单选按钮 - Elradio
评分组件 - Elrate选择框 - Elselect滑块组件 - Elslider
开关组件 - Elswitch时间选择 - Eltime树形控件 - Eltree
流程表单 - FormHTML编辑器 - Htmleditoriframe - Iframe
图片 - Image图片编辑组件 - ImageClipper导入数据组件 - Importer
文本组件 - Label流程记录组件 - Log流程图 - Monitor
数字输入组件 - NumberNtko Office控件 - Office意见输入框 - Opinion
人员组织组件 - Org单选按钮 - Radio阅读记录组件 - ReadLog
下拉选择 - Select侧边操作条 - Sidebar统计图表组件 - SmartBI
统计组件 - Stat查询视图 - Statement查询视图选择 - StatementSelector
子表单 - Subform分页组件 - Tab表格 - Table
多行文本输入 - Textarea文本输入框 - TextfieldTinyMCEEditor编辑器 - TinyMCEEditor
树组件 - Tree视图 - View视图选择 - ViewSelector
手写板 - WritingBoard

CMS 内容管理表单组件

操作条 - Actionbar地址选择 - Address附件 - Attachment
按钮 - Button日期选择 - Calendar多选按钮 - Checkbox
组合框 - Combox通用组件 - Common数据网格移动端(过时) - DatagridMobile
数据网格PC端(过时) - DatagridPC数据表格移动端 - DatatableMobile数据表格PC端 - DatatablePC
数据模板 - Datatemplate容器组件 - Div自动完成输入框 - Elautocomplete
按钮组件 - ElbuttonElcarousel级联选择框 - Elcascader
多选组件 - Elcheckbox颜色选择 - Elcolorpicker通用组件 - Elcommon
容器组件 - Elcontainer日期选择 - Eldate日期时间选择 - Eldatetime
下拉菜单 - Eldropdown图标组件 - Elicon输入框 - Elinput
数字输入框 - Elnumber单选按钮 - Elradio评分组件 - Elrate
选择框 - Elselect滑块组件 - Elslider开关组件 - Elswitch
时间选择 - Eltime树形控件 - EltreeHTML编辑器 - Htmleditor
iframe - Iframe图片 - Image图片编辑组件 - ImageClipper
导入数据组件 - Importer文本组件 - Label数字输入组件 - Number
Ntko Office控件 - Office人员组织组件 - Org单选按钮 - Radio
下拉选择 - Select统计图表组件 - SmartBI统计组件 - Stat
查询视图 - Statement查询视图选择 - StatementSelector子表单 - Subform
分页组件 - Tab表格 - Table多行文本输入 - Textarea
文本输入框 - TextfieldTinyMCEEditor编辑器 - TinyMCEEditor树组件 - Tree
视图 - View视图选择 - ViewSelector手写板 - WritingBoard
作者组件 - Author评论组件 - Comment内容管理表单 - CMSForm
文档查看日志组件 - CMSLog读者组件 - Reader

Portal 门户页面组件

嵌入的系统应用 - Application按钮 - Button日期选择 - Calendar
多选按钮 - Checkbox通用组件 - Common数据表格移动端 - DatatableMobile
数据表格PC端 - DatatablePC容器组件 - Div自动完成输入框 - Elautocomplete
按钮组件 - ElbuttonElcarousel级联选择框 - Elcascader
多选组件 - Elcheckbox颜色选择 - Elcolorpicker通用组件 - Elcommon
容器组件 - Elcontainer日期选择 - Eldate日期时间选择 - Eldatetime
下拉菜单 - Eldropdown图标组件 - Elicon输入框 - Elinput
数字输入框 - Elnumber单选按钮 - Elradio评分组件 - Elrate
选择框 - Elselect滑块组件 - Elslider开关组件 - Elswitch
时间选择 - Eltime树形控件 - Eltree门户页面 - PortalPage
iframe - Iframe图片 - Image导入数据组件 - Importer
文本组件 - Label人员组织组件 - Org单选按钮 - Radio
下拉选择 - Select统计图表组件 - SmartBI数据源 - Source
数据文本 - SourceText统计组件 - Stat查询视图 - Statement
子数据源 - SubSource分页组件 - Tab表格 - Table
多行文本输入 - Textarea文本输入框 - Textfield树组件 - Tree
视图 - View部件 - Widget

服务

  • 服务是O2OA后台提供的一系列restful服务。
x_processplatform_assemble_surface 流程平台相关服务
x_portal_assemble_surface 门户平台相关服务
x_cms_assemble_control 内容管理平台相关服务
x_query_assemble_surface 数据平台相关服务
x_organization_assemble_express 组织架构相关服务
x_file_assemble_control 云文件相关服务
x_meeting_assemble_control 会议管理相关服务
x_bbs_assemble_control 论坛相关服务
x_calendar_assemble_control 日程管理相关服务
x_hotpic_assemble_control 热点信息相关服务
x_mind_assemble_control 脑图模块相关服务
x_organization_assemble_personal 个人设置相关服务
x_attendance_assemble_control 考勤模块相关服务

使用范围

O2OA 可在多个位置嵌入脚本代码,用于扩展平台和实现自定义功能。嵌入脚本代码分为前端执行代码和服务端执行代码。

  • 前端脚本使用范围:
脚本库 流程平台、门户平台和内容管理平台中,都有脚本设计元素,可以在此创建脚本库。
表单、页面、视图、查询视图、导入模型及其组件事件 流程平台和内容平台的表单、门户平台的页面、数据平台的视图和查询视图中,每个设计组件包含多种事件,包括DOM对象原生事件和O2平台扩展事件。
表单、页面可编辑组件默认值 流程平台和内容平台的表单和门户平台的页面中,可编辑组件或文本组件的默认值可以通过脚本指定。
表单及可编辑组件校验 流程平台和内容管理的表单中,可编辑的字段可以通过脚本进行有效性校验,校验通过返回true,不通过返回提示信息。
流程设计 流程设计主要是后台脚本,但也有除外,流程路由属性的扩展附签和选择附签下的脚本使用的是前台脚本。
  • 后端脚本使用范围:
脚本库 流程平台、门户平台和内容管理平台中,都有脚本设计元素,可以在此创建脚本库。
服务管理 服务管理的接口和定时代理。
流程设计 流程属性的所有脚本(流程事件、时效脚本等等);流程活动的所有脚本(处理人、待阅人、阅读人脚本,拆分依据、时效脚本,活动事件,参数脚本、响应脚本、执行脚本等等);流程路由的条件脚本。
查询配置 查询配置的查询语句和总数语句。
视图列 视图列的显示脚本。

前端脚本使用范围详情

脚本库

流程平台、门户平台和内容管理平台中,都有脚本设计元素,可以在此创建自己的脚本库。如下图: 脚本库

表单、页面、视图、查询视图及其组件事件

流程平台和内容平台的表单、门户平台的页面、数据平台的视图和查询视图中,每个设计组件包含多种事件,包括DOM对象原生事件和O2平台扩展事件。如下图: 事件中的脚本

表单、页面可编辑组件默认值

流程平台和内容平台的表单和门户平台的页面中,可编辑组件或文本组件的默认值可以通过脚本指定。如下图: 事件中的脚本

表单、页面、视图、查询视图的部分属性

流程平台和内容平台的表单、门户平台的页面、数据平台的视图和查询视图中,有许多组件的相关属性可以通过脚本来定义。
如:下拉框、单选多选按钮的可选值、人员字段的选择范围、区段依据等。如下图:
属性中的脚本

表单及可编辑组件校验

流程平台和内容管理的表单中,可编辑的字段可以通过脚本进行有效性校验,校验通过返回true,不通过返回提示信息。如下图: 脚本

流程路由属性的扩展附签和选择附签下的脚本

扩展附签脚本 选择附签脚本

后端脚本使用范围详情

脚本库

流程平台、门户平台和内容管理平台中,都有脚本设计元素,可以在此创建脚本库。 脚本库

服务管理

服务管理的接口和定时代理。 定时代理 接口

流程设计

流程属性的所有脚本(流程事件、时效脚本等等)。 流程属性

流程活动的所有脚本(处理人、待阅人、阅读人脚本,拆分依据、时效脚本,活动事件,参数脚本、响应脚本、执行脚本等等) 流程活动

流程路由的条件脚本。 流程路由

查询配置

查询配置的查询语句和总数语句。 流程路由

视图列

视图列的显示脚本,可以使用this.value获取本列的列值、this.entry.data获取本行的数据。 视图列显示脚本

样例

  • 这是一个简单的样例,用于展现脚本如何编写和运行。
  • 本例中我们要实现一个表单中,两个下拉框从配置数据中获取可选数据,以及实现联动。
  • 我们需要创建一个流程应用,一个表单以及一个数据字典。在表单中创建两个下拉列表框。
  1. 先在表单中创建两个下拉框
    下拉框

  2. 在category1和category2两个下拉框的属性中,选择通过“脚本”编辑可选值。
    category1脚本:
    下拉框

    category2脚本:
    下拉框

  3. 在category1和category2两个下拉框的可选值脚本如下:

    category1的可选值脚本:

var dict = new this.Dict("category");   //获取名为category的数据字典 
var categoryList = dict.get();  //获取数据字典
var options = Object.keys(categoryList);    //获取大类,赋值给options变量
options.unshift("(请选择大类)|");   //在options数组首位插入提示选项,并将“”作为value,“(请选择大类)”作为text
return options; //返回列表,作为列表框的可选值 

category2的可选值脚本:

var dict = new this.Dict("category"); //获取名为category的数据字典 
var categoryList = dict.get(this.data.category1); //获取数据字典,以下拉框category1的值为关键字的数据值(数组) 
return categoryList; //返回列表,作为列表框的可选值 
  1. 在category1的change事件中添加如下代码:
//获category2下拉框,并刷新可选项
this.form.get("category2").resetOption();
  1. 设计数据字典如下图,并命名为:"分类配置",别名为:“category”。 下拉框

  2. 预览表单,即可看到大类下拉框中选项为数据字典中的第一层数据,选择不同的大类可与小类下拉框实现联动。

results matching

    No results matching ''