关键词:流程开发,流程引擎,流程设计,工作流,流程数据交互,服务调用,O2OA
在复杂的流程设计中通常需要与第三方系统进行数据交互,除了在表单上进行服务调用的方式以外,O2OA还可以使用服务调用环节,在流程运行时完成服务调用。本文主要介绍如何在O2OA平台中设计流程时使用服务调用环节来与第三方系统完成数据交互。
http://{hostip}:{port}/service. 多数情况下,我们需要在实际运行过程中动态指定流程中需要调用的服务的地址以及其他的URL参数,那么URL的参数化也需要有一个方法来实现,本章主要讲述此功能
很多情况下,服务的地址是通过脚本,或者其他服务在执行过程中计算得到的,所以在流程定义时无法直接在服务调用环节上写死配置。比如有一个服务的地址,开发环境和测试环境的地址是不一样的,如果环境切换,所有的服务调用所有的地址都需要修改,希望有一个地方可以统一进行配置修改。
实际上脚本可以完成复杂的过程实现,为了能简单明了地说明问题,这里,我们尝试把一个服务的主机IP和服务的端口写到脚本文件里。后续到脚本里进行获取。
1、使用脚本来记录参数
在流程应用中新建一个脚本,取名为serviceAddress(名字可任意取)。
新建脚本
添加脚本内容:
this.address = {
"host": "dev.o2oa.net",
"port": "8000"
}
这里定义了一个address对象,用于存储服务的地址和端口,以备后续使用。
**
2、 在流程中添加一个“服务调用”活动
配置“调用”属性如下图:
在服务调用环节添加参数脚本
配置REST地址为:
将服务地址中的IP地址或域名用{host}参数代替,端口用{port}代替。
在参数脚本中选择第一步中创建的serviceAddress脚本。
在代码框中输入代码: http://{host}:{port}/service;
this.parameters.put("host", this.address.host);
this.parameters.put("port", this.address.port);
将host和port设置为脚本中配置的值。
**
3、 运行流程到服务调用可正常访问服务。
在开发环境、测试环境和生产环境切换时,只需修改serviceAddress脚本中的json数据即可。
4、自定义服务调用HTTP头信息
在很多时间,调用第三方系统服务的时候,需要指定的HTTPHEADER,需要带一些认证标识,或者其他第三方指定的信息,此时需要在发送请求时对httpHeader进行编辑,此篇上要讲述该功能
在流程服务调用活动的调用属性中,可找到“消息头脚本“,在代码框中使用:
this.headers.put(“name”, “value”);
或者一次添加多个HttpHeader:
this.headers.put({
"name1": "value1",
"name2": "value2"
});
如下图所示:
在服务属性中编辑消息头。
当然也可以创建一个脚本,在脚本中写好设置消息头代码,在此处引用。
点击右侧加号可以引入脚本