ecology 9建立自定义Java接口并部署到对应节点
- 集成中心中选择 “注册自定义接口” 选项
- 点击 “在线编辑”,并定义接口动作名称,然后保存
- 然后可以看到我们的自定义接口已经注册完毕,保存的接口存于数据库(可连接到数据库后使用SELECT JAVACODE FROM actionsetting WHERE ACTIONNAME =‘接口标识’ 查看所保存的Java文件)
- 添加相关代码,并设置某个流程中的特定节点触发(可以看到注释的代码中包含了一些常用方法的使用,可以一一测试)
- 在对应流程节点中添加自定义的接口
- 选择需要触发的接口并点击确定
- 添加完成后可以看到对应节点后有个绿勾,表示已添加动作
- 测试对应流程,表单提交后查看服务器日志 ecology.log,可以看到我们注册并部署的自定义接口已经被执行
- 然后,新增一些接口内的常用输出语句, 其中获取的requestId是指当前操作的表单。注意:别忘了点击保存
代码:
writeLog("********************************进入自定义接口***************************");
String requestid = request.getRequestid(); // 请求ID
writeLog("请求id是:"+requestid);
String tableName = request.getRequestManager().getBillTableName();
writeLog("当前表单名称是 :"+tableName);
writeLog("以上是输出信息!!!!!");
writeLog("********************************自定义接口执行完毕***************************");
- 再次测试流程,提交后查看服务器ecology.log日志,可以看到,我们利用注释的已经集成好的方法可以很方便的获取到表单名称以及requestId,获取到 requestId 后,获取表单的内容也轻而易举
- 获取已经提交并保存到数据库的字段,以下是更新后的代码
package weaver.interfaces.workflow.action.javacode;
import weaver.interfaces.workflow.action.Action;
import weaver.general.BaseBean;
import weaver.general.BaseBean;
import weaver.soa.workflow.request.RequestInfo;
import weaver.conn.RecordSet;
/**
* 在线自定义action接口
*/
public class Action20220810015631 extends BaseBean implements Action{
/**
* 流程路径节点后选择aciton后,会在节点提交后执行此方法。
*/
public String execute(RequestInfo request) {
writeLog("********************************进入自定义接口***************************");
String requestid = request.getRequestid(); // 请求ID
writeLog("请求id是:"+requestid);
String tableName = request.getRequestManager().getBillTableName();
writeLog("当前表单名称是 :"+tableName);
writeLog("以上是输出信息!!!!!");
//获取表单提交到数据库的信息
RecordSet rs = new RecordSet();
rs.executeSql("select * from "+tableName+" where requestId = "+requestid);
if(rs.next()){
writeLog("rs有值");
String xmmc = rs.getString("xmmc");
String gsmc = rs.getString("gsmc");
String jkmc = rs.getString("jkmc");
writeLog("项目名称: "+xmmc);
writeLog("公司名称: "+gsmc);
writeLog("接口名称: "+jkmc);
}else{
writeLog("rs无值");
}
writeLog("********************************自定义接口执行完毕***************************");
/*
* 流程自定义接口代码示例
*
* 1:日志
* writeLog("in my online edited action");
*
* 2:异常
* boolean error=true;
* if(error) {
* request.getRequestManager().setMessageid("90001");
* request.getRequestManager().setMessagecontent("系统异常终止流程提交!");
* }
*
* 3:获取requestid
* String requestId = request.getRequestid();
*
* 4:获取表单名称
* String tablename = request.getRequestManager().getBillTableName();
*
* 5:查找表单内容
* RecordSet rs = new RecordSet();
* rs.execute("select * from "+tablename+" where requestid = "+requestId);
* rs.next();
* String mainid = rs.getString("id"); //id:表单主键
* String wenben = rs.getString("wenben"); //wenben:表单设计的字段名称
*
*
*/
return Action.SUCCESS;
}
}
注意:这里使用 RecordSet 需要导入相关类,否则无法使用!!!并且取的字段名称与数据库相对应
- 再次测试流程并输入相关表单中的内容,查看系统日志ecology.log,可以看到提交到数据库中的内容已经被取到
以上为全部内容。