O2OA教程
  • 概述
  • 安装管理及配置
    • 服务器主机推荐配置
    • 平台下载及安装部署
    • 平台升级操作说明
    • 平台基本能力介绍
    • 平台目录结构说明
    • 平台配置文件说明
    • O2OA与移动办公
      • 连接O2云使用APP
      • 集成到企业微信
      • 集成到阿里钉钉(DingTalk)
      • 配置绑定微信扫码登录
    • 平台数据库配置
      • 接入第三方数据库
      • 数据库驱动JAR包的更新或新增
      • 数据库配置信息样例
      • 访问和操作H2数据库
      • 清除废弃的业务数据
      • 压缩H2数据库
    • 平台存储库配置
    • 组织人员架构及管理
      • 密码管理
        • 管理员密码管理
        • 普通初始化密码
        • 用户重置密码
      • 组织架构,组织职位,组织属性
        • 组织架构创建过程
          • 顶组织创建
          • 下级组织创建
          • 组织管理设定
        • 组织职位管理
        • 组织职务意义与使用
      • 人员身份,人员属性
        • 人员信息创建
        • 人员与组织的关系(人员身份)
        • 人员数据导入
      • 角色管理
        • 内置角色介绍
        • 角色信息管理
      • 群组管理
      • 常用脚本
        • 人员信息
        • 组织信息
        • 群组信息
        • 角色信息
      • 数据同步接口
        • 人员数据接口
          • 新增用户
          • 修改用户
          • 删除用户
          • 修改用户密码
          • 修改汇报对象
        • 组织数据接口
          • 新增组织
          • 修改组织
          • 删除组织
    • O2OA集群部署
      • 非对称集群配置
    • 平台消息提醒配置
    • 平台审计日志配置
    • 平台工作日节假日配置
    • API接口服务
    • 启用HTTPS(SSL)
      • 自签名SSL证书验证HTTPS功能
    • SSO与单点认证
      • SSO配置
      • 约定密钥单点认证配置
      • SSO客户端程序
      • SSO服务端程序
    • 平台维护工具
      • 备份恢复数据
      • 自动执行数据备份与恢复
      • 待办
      • 已办
      • 待阅
      • 已阅
      • 流转中工作
      • 已完成工作
      • 授权管理
    • 相关数据表
    • 全文检索功能部署
    • 平台错误日志
      • 日志所在目录
      • 日志使用class
  • 业务开发与设计
    • 流程应用开发与设计
      • 流程开发设计入口
      • 应用创建及权限设置
      • 创建流程
        • 新建流程
        • 新建活动
        • 修改活动属性
        • 修改路由
        • 保存流程
        • 活动配置
        • 路由配置
      • 创建表单
        • 创建表单
        • 修改表单字段
        • 保存表单
      • 常用事件脚本说明
      • 数据字典配置
      • Excel数据导入数据网格(仅支持IE)
      • 流程实际样例需求准备
      • 流程应用的导出导入
      • 拆分流程样例
      • 流程服务调用环节使用
        • 服务地址URL动态参数
        • 自定义HTTP头信息
    • 内容管理与信息发布
      • 创建栏目
      • 创建分类
      • 创建表单
      • 设置表单
      • 栏目的权限
      • 分类的权限
      • 测试发布
      • 如何使用流程发布信息
        • 新建信息发布流程
        • 给分类配置信息发布流程
    • 门户管理与应用包装
      • 功能简介
      • 表单设计
      • 部件设计
      • 脚本开发
      • 数据源使用
      • 相关接口
      • 门户样例
      • 模板导入
      • 其他
    • 数据视图与数据统计
      • 视图
      • 数据表
      • 查询语句
    • 定时任务与服务接口
      • 前后端脚本的差异
      • 代理和接口的脚本编写
      • 代理
      • 接口
    • 系统交互样例
      • 登录认证 For Java
        • 发送用户账号密码进行登录认证
        • 发送用户名使用SSO进行登录认证
      • 流程控制 For Java
        • 启动一个新的流程实例(工单)
      • 外系统启动流程
      • 数据导出
        • 数字档案
    • 项目样例说明
      • 公文
    • 数据字典使用说明
    • 前端开发API说明
      • 业务数据 - Object: data
      • 流程实例 - Object: workContext
      • 内容管理实例 - Object: documentContext
      • 组织架构管理 - Object: org
        • 人员信息: person 操作
        • 人员属性: personAttribute操作
        • 组织信息: unit操作
        • 组织职务: unitDuty
        • 组织属性: unitAttribute
        • 身份信息: identity
        • 角色信息: role
        • 群组信息: group
  • 平台内置应用介绍
    • 会议管理
    • 日程安排
    • 个人文件
    • 执行力管理
    • 考勤管理
    • 论坛管理
    • 办公中心
    • 脑图管理
    • 系统应用权限控制
  • 源码的编译及管理
    • 服务器源码编译
    • 移动端源码介绍
      • Android端编译打包处理
      • IOS端打包处理
    • 平台程序调试方法
      • 前端代码调试定位
      • 后端代码的远程调试
  • 常见问题
    • H2数据库异常修复
    • O2OA平台异常
      • 阿里云ECS服务器的端口启用
      • IOS移动办公无法收到验证码
      • 集群配置
    • 数据导出或者导入时发生OOM异常
    • 服务器错误
Powered by GitBook
On this page
  • 输出调试信息
  • 调用JAVA类
  • 调用服务
  • 调用O2OA后台服务
  • 调用本系统服务管理中的接口
  • 调用外系统的服务
  • 人员组织操作

Was this helpful?

  1. 业务开发与设计
  2. 定时任务与服务接口

代理和接口的脚本编写

本节内容适用于流程设计中的脚本

输出调试信息

var text = "在服务器控制台输出的消息"
print( text );

调用JAVA类

//classString 为类名字符串,比如 "java.util.Calendar"
var Class = Java.type( classString );
var object = new Class();
//object.method()

或者

var object = new Class();
//比如 var simpleDateFormat = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

样例:

获取当前日期后的第5天

function setDate(){
    var Date = java.util.Date();
    var Calendar = Java.type("java.util.Calendar");
    var GregorianCalendar = Java.type("java.util.GregorianCalendar");
    var now = new Date();
    var calendar = new GregorianCalendar();
    calendar.setTime(now);
    calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - Config.waitDay);
    return calendar.getTime();
}

调用服务

调用O2OA后台服务

服务查看和调试

本小节中的“服务根(serviceRoot)”如下:

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

考勤模块相关服务

查找method,后台服务有GET\POST\PUT\DELET几种方法,可以在服务详情中找到,如下图:

本小节中的“路径(path)”,可以在服务详情中找到,如下图:

以上图的服务为例,最后拼接成下列两种路径均可使用

/jaxrs/work/workorworkcompleted/dcd8e168-2da0-4496-83ee-137dc976c7f6

或

work/workorworkcompleted/dcd8e168-2da0-4496-83ee-137dc976c7f6

GET方法

var applications = resources.getContext().applications();
//serviceRoot 服务根
//path 路径
applications.getQuery( serviceRoot, path );

样例:

已知work id为dcd8e168-2da0-4496-83ee-137dc976c7f6,获取work内容,并解析成JSON。

var applications = resources.getContext().applications();
var serviceRoot = "x_processplatform_assemble_surface";
var path = "work/workorworkcompleted/dcd8e168-2da0-4496-83ee-137dc976c7f6"
var resp = applications.getQuery( serviceRoot, path );
var json = JSON.parse( resp.toString() );

POST方法

var applications = resources.getContext().applications();
//serviceRoot 服务根
//path 路径
//string 数据字符串,json转字符串可以用 JSON.stringify( json )
applications.postQuery( serviceRoot, path, string );

样例:

已知发文流程的ID为“0b7c5c43-caa8-4789-a263-308508d44016”,发起人的dn是“张三@zhangsan@I”。需要发起一个流程。

查到发起流程的路径是“jaxrs/work/process/{processFlag}”。

var applications = resources.getContext().applications();
var serviceRoot = "x_processplatform_assemble_surface";
var path = "work/process/0b7c5c43-caa8-4789-a263-308508d44016";
var string = JSON.stringify({
    "latest" : false,
    "title" : "测试发文流程",
    "identity" : "张三@zhangsan@I",
    "data" : {  //业务数据
         "fileNoPrefix" : "xxx"  //文号冠字
    }
});
var resp = applications.postQuery( serviceRoot, path, string );
var json = JSON.parse( resp.toString() );

PUT方法

var applications = resources.getContext().applications();
//serviceRoot 服务根
//path 路径
//string 数据字符串,json转字符串可以用 JSON.stringify( json )
applications.putQuery( serviceRoot, path, string );

样例:

已知发文流程实例的work id为“0b7c5c43-caa8-4789-a263-308508d44016”,需要更新数据。

查到修改流程数据的路径是“jaxrs/data/work/{id}”。

var applications = resources.getContext().applications();
var serviceRoot = "x_processplatform_assemble_surface";
var path = "data/work/0b7c5c43-caa8-4789-a263-308508d44016";
var string = JSON.stringify({
    "subject" : "测试流程11",
    "fileNoPrefix" : "xxx1"
});
var resp = applications.putQuery( serviceRoot, path, string );
var json = JSON.parse( resp.toString() );

DELETE方法

var applications = resources.getContext().applications();
//serviceRoot 服务根
//path 路径
applications.deleteQuery( serviceRoot, path );

样例:

已知发文流程实例的work id为“0b7c5c43-caa8-4789-a263-308508d44016”,需要删除改流程实例。

查到删除流程实例的路径是“jaxrs/work/{id}”。

var applications = resources.getContext().applications();
var serviceRoot = "x_processplatform_assemble_surface";
var path = "work/0b7c5c43-caa8-4789-a263-308508d44016";
var resp = applications.deleteQuery( serviceRoot, path );
var json = JSON.parse( resp.toString() );

调用本系统服务管理中的接口

样例:现有一个名称为“sendSMS”的接口,接收的requestText为 "{ mobile : mobile, content : content }"

var CipherConnectionAction = Java.type('com.x.base.core.project.connection.CipherConnectionAction');
var Config = Java.type('com.x.base.core.project.config.Config');
var path = "invoke/sendSMS/execute";
var dataString = JSON.stringify({
    "mobile" : "13500000000",
    "content" : "测试短信内容"
});
var resp = CipherConnectionAction.post(false, Config.url_x_program_center_jaxrs() + path, dataString );
//var resp = CipherConnectionAction.post(false, Config.x_program_centerUrlRoot() + path, dataString );
var json = JSON.parse( resp.toString() );

调用外系统的服务

function sendRequest( xml ){
    try{
        print("发起请求:"+xml);
        var url =  'http://hostname/UnifiedWorkbench/ProcessTaskService'
        var ArrayList = Java.type('java.util.ArrayList');
        var heads = new ArrayList();
        var NameValuePair = Java.type('com.x.base.core.project.bean.NameValuePair');
        var p1 = new NameValuePair('Content-Type', 'text/xml; charset=utf-8');
        heads.add(p1);
        var HttpConnectionClass = Java.type('com.x.base.core.project.connection.HttpConnection');
        var resp = HttpConnectionClass.postAsString(url, heads, xml);
        print( "统一待办返回:"+ resp.toString());
    }catch(e){
        print("发送请求出错:");
        print(  e.printStackTrace() );
    }
}

人员组织操作

组织管理中包括人员、人员属性、组织、组织属性、身份、群组和角色。有两种方法可以进行组织管理的操作:

1、通过调用后台组织查询服务“x_organization_assemble_express”进行组织管理的操作。具体服务请查看

“http://applicationServer:20020/x_organization_assemble_express/jest/index.html”

2、你可以通过 this.org 获取组织中的人员、人员属性、组织、组织属性、身份、群组和角色。

Previous前后端脚本的差异Next代理

Last updated 5 years ago

Was this helpful?

打开

样例:现有一个外系统的服务,url为 '',接收的Content-type 为 'text/xml; charset=utf-8'

具体请查看API的章节

http://centerserver:20030/x_program_center/jest/list.html
http://hostname/UnifiedWorkbench/ProcessTaskService
org