实战培训

当前位置:首页>帮助手册>实战培训

O2OA二次开发-使用开源平台搭建完整OA(12)-O2OA与第三方系统的数据交互实现

时间:2022-03-25   

OA系统中服务管理的介绍

O2OA办公开发平台提供的服务管理可以让用户使用Javascript语言自由编写脚本,来实现与第三方系统的数据交互、数据同步、以及系统内的数据处理等工作,也可以编写OA系统内的定时任务脚本。

服务管理包括代理和接口两部分,接口是指O2OA平台通过脚本提供restful服务供外部系统或其他程序使用代理跟服务一样,也是通过脚本实现的一个功能块,但是它可以定时触发。

OA系统服务管理入口 :系统菜单→服务管理

image (13).png


需求

1、通过接口发起部门收文流程

2、定时代理配置

接口

“接口”可以提供Http服务让外部程序调用,使用Javascript编写,可以直接调用Java类。

入口

点系统菜单→服务管理→接口配置 打开

image (14).png


前面的课程中,我们创建过“部门收文”流程,现在我们来通过接口发起这个部门收文流程。

首先,创建一个 “startProcess” 接口:

this.entityManager; //实体管理器,一个java类,JPA实例管理类,用于跟后端交互

this.applications; //访问系统内服务,一个java类,调用后端接口

this.requestText//请求正文,调用接口时接收到的请求正文

this.request//请求,调用接口时接收到的请求对象

this.currentPerson//当前用户,调用这个接口的用户

this.response//响应对象,返回给调用方的数据。通过this.response.setBody(data)设置响应内容

this.organization; //组织访问,获取到o2oa平台内的组织类

this.org; //组织快速访问方法,获取到o2oa平台里组织的方法

this.service; //webSerivces客户端,调用wsdl


image (15).png

写入 发起流程  接口代码:

var appId = "6e075ac7-3eb3-436f-8ba1-e98f9b64349e";
var process = "4cca966f-3682-45c8-bddc-f2980654dc5e";

var data = JSON.parse(this.requestText);
data.application = appId;
data.process = process;

var action = this.Actions.load("x_processplatform_service_processing");
action.WorkAction.assignCreate(//平台封装好的方法
    data,//body请求参数
    function (json) { //服务调用成功的回调函数, json为服务传回的数据
        this.response.setBody("success!");
    }.bind(this),
    function (json) { //服务调用失败的回调函数, json为服务传回的数据
        this.response.setBody(json);
    }.bind(this)
);

接口调用参数,data 参数为对应业务数据

{
  "identity":"李秋水@2010200_HR_000012@I",
  "title":"接口调用收文标题",
	"processing": true,
  "data":{
    "receivedFileNo": "123"
  }
}

测试运行


image (16).png


允许访问的地址表达式:一个白名单,允许访问这个接口的终端ip

鉴权:是:调用时需要传入用户信息(token)才可以

          否:不需要

注意:鉴权选择是和否,那么对应的调用接口地址是不一样的。

详细请参考:接口调用说明

image (17).png


image (18).png

调试里测试接口运行

image (19).png

postman模拟调用接口测试

调用地址:http://px.o2oa.net:20030/x_program_center/jaxrs/invoke/startProcess/execute

调用方法:POST

head:Content-Type:application/json; charset=utf-8

image (20).png


body 里填入调用参数

image (21).pngimage (21).png

接口返回

image (22).png


现在我们到待办中看看流程是否已经成功发起

image (24).png

代理

“代理”是运行在服务器端的定时任务,使用Javascript编写,可以直接调用Java类。

入口

点系统菜单→服务管理→代理打开

image (25).png


触发时间

点击“定时任务cron表达式”可选择cron表达式进行触发时间的配置。cron表达式详解请自行百度。

我们这边就新建一个代理,每分钟 print一句欢迎信息

image (26).png

打开日志管理中,我们查看一下代理运行情况

image (27).png


在日志查看器中,我们就可以看到每分钟输出

image (28).png


以上就是使用开源的协同办公OA项目——O2OA开发平台与第三方系统进行数据交互的教程。







上一篇:O2OA二次开发-使用开源平台搭建完整OA(13)-将O2OA集成到钉钉

下一篇:源码编译