@服务管理 @服务脚本 @定时代理 @服务接口编写 @脚本编写

O2OA提供的服务管理中心可以让用户使用Javascript语言自由编写脚本的处理逻辑来实现与第三方的数据交互,数据同步以及系统内的数据处理等工作,也可以编写系统内的定时任务脚本。本文主要介绍O2OA系统定时代理和接口的脚本编写。

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

输出调试信息


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后台服务

服务查看和调试

打开 http://centerserver:20030/x_program_center/jest/list.html

本小节中的“服务根(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() );


调用外系统的服务

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


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 获取组织中的人员、人员属性、组织、组织属性、身份、群组和角色。

具体请查看API的org章节



推荐文章:

数据中心-查询配置中日期格式jpql sql匹配写法
2021-02-07
在jpql中,对日期格式有特殊的写法,格式如下:Date-{d'yyyy-mm-dd'}-forexample:{d'2019-12-31'}Time-{t'h
平台维护-待办待阅数据的查询操作和管理
2021-02-26
O2OA提供平台数据维护应用,用于对平台应用类数据的维护操作,用户可以在应用市场选择安装平台维护应用。本篇主要简单介绍系统待办、已办、待阅、已阅数据的查询和维护
开发知识-人大金仓数据安装
2021-02-07
一、安装程序  1、在安装前要创建一个帐号,不能用root帐号安装。  2、安装执行./setup.sh -iconsole    3、接受“此许可协议条款”,
o2oa集成yozo
2021-08-30
@移动办公@O2OA微信办公@微信公众号办公@微信办公@手机办公O2OA平台是一个企业办公类系统,为了方便实现在线编辑word、excel、ppt文件,与永中y
数据中心-数据视图开发
2021-12-06
@数据中心@数据视图@数据统计@视图开发@数据汇总O2OA提供的数据管理中心,可以让用户通过配置的形式完成对数据的汇总,统计和数据分组展现,查询和搜索数据形成列
消息队列-配置activeMQ、kafka消息队列
2021-02-07
一、配置activeMQ消息队列第一步:配置消息提醒文件messages.json从o2server/configSample目录中COPY一份到o2serve
服务集成-与外部系统数据交互
2021-03-03
O2OA允许用户自行修改源码或者增加源码来扩展系统服务,也可以包装功能更强的业务服务。本文主要介绍如何在O2OA中开发接口与外部系统进行数据交互。
系统集成-腾讯企业邮集成配置
2021-02-25
O2OA平台并不包含企业邮箱解决方案,我们建议将专业的商业邮箱集成到O2OA中,作为更优的企业邮箱解决方案。本篇主要介绍如何在O2OA中如何集成腾讯企业邮。
Office在线协作使用手册
2022-01-04
@在线Word编辑@在线协同@开源办公系统@在线Excel编辑@在线Office @文档管理@文档协同O2OAOffice在线协作模块,可以让使用者完全基于浏览
系统架构-集群部署配置及操作说明
2021-02-26
O2OA平台使用分布式架构设计,提供灵活的扩展方案用于对服务器的负载能力进行扩展,保障系统的高可用性。本篇主要介绍如何部署O2OA服务器集群。

results matching ""

    No results matching ""