执行前后事件
在绘制流程图中,通知和会签节点中有执行前事件、执行后事件,配置方法都有三种:JAVA方法、存储过程和WEB服务。如图1-1所示:
图1-1
1.1 执行前后事件存储过程(Mysql)
配置存储过程,在执行前后事件选择存储过程类型,存储过程中的参数可以引用实体属性(包括内置实体属性和自定义实体属性),实体属性以${属性}表示,字符串不要添加单引号,返回的xml串格式要求如下:
<result><flag></flag><msg></msg></result>
其中flag和msg标签为必输项,flag标示存储过程执行是否成功完成(0:成功,1:失败),msg在flag为1时为存储过程执行失败的原因。
例如:event_demo()
存储过程代码示例:
1 2 3 4 5 |
CREATE PROCEDURE event_demo(OUT rs varchar(5000)) BEGIN /*业务逻辑代码根据需要自己书写*/ SET rs ='<result><flag>0</flag><msg>ok</msg><data><row></row></data></result>'; END |
1.2 执行前后事件存储过程(Oracle)
配置存储过程,在执行前后事件选择存储过程类型,存储过程中的参数可以引用实体属性(包括内置实体属性和自定义实体属性),实体属性以${属性}表示,字符串不要添加单引号,返回的xml串格式要求如下:
<result><flag></flag><msg></msg></result>
其中flag和msg标签为必输项,flag标示存储过程执行是否成功完成(0:成功,1:失败),msg在flag为1时为存储过程执行失败的原因。
例如:set_event()
存储过程代码示例:
1 2 3 4 5 6 7 8 |
create or replace procedure set_event(p_return_msg out VARCHAR2) is begin /*此处可以写入自己的业务逻辑代码*/ p_return_msg :='<'result><flag>0</flag><msg>ok</msg></result>; exception when others then p_return_msg :='<result><flag>1</flag><msg>'||sqlerrm||'</msg></result>'; end set_event; |
1.3 执行前后事件WEB服务
配置WEB服务,在执行前后事件选择WEB服务,WEB服务传入参数不限,返回参数必须为一个符合格式的xml串。配置字符串可以使用实体属性(包括内置实体属性和自定义实体属性),实体属性以${属性}表示,字符串不要添加单引号。
返回值为XML串,格式为:
<result><flag></flag><msg></msg></result>
其中flag和msg标签为必输项,flag标示WEB服务执行是否成功完成(0:成功,1:失败),msg在flag为1时为WEB服务执行失败的原因。
在流程图的函数名中如下配置
例如:${APP_IP}/services/platformWS?wsdl.setevent(${e_demo})。
其中${APP_IP}和${e_demo}为自定义参数
1.4 执行前后事件(Java方法)
配置JAVA方法,在执行前后事件选择JAVA方法,JAVA方法传入参数不限,返回参数必须为一个符合格式的xml串。配置字符串可以使用实体属性(包括内置实体属性和自定义实体属性),实体属性以${属性}表示,字符串不要添加单引号。
<result><flag></flag><msg></msg><data></data></result>。
其中flag和msg标签为必输项,flag标示JAVA方法执行是否成功完成(0:成功,1:失败),msg在flag为1时为JAVA方法执行失败的原因。
1 2 3 4 5 6 7 8 9 10 11 |
package com.xzsoft.xip.platform.demo; public class WfDemo{ public String setEvent(String test) { /*此处可以自己的业务代码,只需要按要求返回xml就可以*/ if ((test== null) || (test.trim().length() == 0)) { return "<result><flag>1</flag><msg>test不能为空 </msg><data></data></result>"; }else{ return "<result><flag>0</flag><msg>成功。</msg><data>"+test+"</data></result>"; } } } |
在函数名中如下配置来调用Java方法
com.xzsoft.xip.platform.demo.WfDemo.setEvent(${demo});
其中${demo}为实体属性