泛微OA——ecology 9建立自定义Java接口并部署到对应节点

ecology 9建立自定义Java接口并部署到对应节点

  1. 集成中心中选择 “注册自定义接口” 选项
    在这里插入图片描述
  2. 点击 “在线编辑”,并定义接口动作名称,然后保存
    在这里插入图片描述
  3. 然后可以看到我们的自定义接口已经注册完毕,保存的接口存于数据库(可连接到数据库后使用SELECT JAVACODE FROM actionsetting WHERE ACTIONNAME =‘接口标识’ 查看所保存的Java文件)
    在这里插入图片描述
  4. 添加相关代码,并设置某个流程中的特定节点触发(可以看到注释的代码中包含了一些常用方法的使用,可以一一测试)
    在这里插入图片描述
  5. 在对应流程节点中添加自定义的接口
    在这里插入图片描述
  6. 选择需要触发的接口并点击确定
    在这里插入图片描述
  7. 添加完成后可以看到对应节点后有个绿勾,表示已添加动作
    在这里插入图片描述
  8. 测试对应流程,表单提交后查看服务器日志 ecology.log,可以看到我们注册并部署的自定义接口已经被执行
    在这里插入图片描述
  9. 然后,新增一些接口内的常用输出语句, 其中获取的requestId是指当前操作的表单。注意:别忘了点击保存
    在这里插入图片描述
    代码:
     writeLog("********************************进入自定义接口***************************");
     String requestid = request.getRequestid();  // 请求ID
     writeLog("请求id是:"+requestid);
     String tableName = request.getRequestManager().getBillTableName();
     writeLog("当前表单名称是 :"+tableName);
     writeLog("以上是输出信息!!!!!");
    
    
     writeLog("********************************自定义接口执行完毕***************************");
  1. 再次测试流程,提交后查看服务器ecology.log日志,可以看到,我们利用注释的已经集成好的方法可以很方便的获取到表单名称以及requestId,获取到 requestId 后,获取表单的内容也轻而易举
    在这里插入图片描述
  2. 获取已经提交并保存到数据库的字段,以下是更新后的代码
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 需要导入相关类,否则无法使用!!!并且取的字段名称与数据库相对应

  1. 再次测试流程并输入相关表单中的内容,查看系统日志ecology.log,可以看到提交到数据库中的内容已经被取到

在这里插入图片描述

以上为全部内容

  • 3
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
当然可以,下面是一个简单的泛微Ecology 9自定义接口的示例后端代码,供您参考: ```java package com.ecology9.test; import java.util.HashMap; import java.util.Map; import com.actionsoft.bpms.api.common.ApiResponse; import com.actionsoft.bpms.api.common.BizObject; import com.actionsoft.bpms.api.customize.CustomizeAPI; import com.actionsoft.sdk.service.model.QueryModel; import com.actionsoft.sdk.service.response.QueryResponse; import com.actionsoft.sdk.service.response.ResponseData; public class TestCustomizeAPI { public static void main(String[] args) { // 1、新建一条业务数据 BizObject bizObject = new BizObject("BO_TEST"); bizObject.setValue("FIELD1", "VALUE1"); bizObject.setValue("FIELD2", "VALUE2"); ApiResponse addBizObjRes = CustomizeAPI.getInstance().addBizObject(bizObject); System.out.println(addBizObjRes); // 2、查询BO_TEST表中的数据 Map<String, Object> params = new HashMap<String, Object>(); params.put("FIELD1", "VALUE1"); QueryModel queryModel = new QueryModel(); queryModel.setTable("BO_TEST"); queryModel.setWhere(params); QueryResponse queryRes = ResponseData.query(queryModel); System.out.println(queryRes); // 3、更新BO_TEST表中的数据 BizObject bizObjectUpdate = new BizObject("BO_TEST", queryRes.getList().get(0).get("OBJID").toString()); bizObjectUpdate.setValue("FIELD2", "NEW_VALUE2"); ApiResponse updateBizObjRes = CustomizeAPI.getInstance().updateBizObject(bizObjectUpdate); System.out.println(updateBizObjRes); // 4、删除BO_TEST表中的数据 String[] objIds = new String[]{bizObjectUpdate.getId()}; ApiResponse deleteBizObjRes = CustomizeAPI.getInstance().deleteBizObject(objIds); System.out.println(deleteBizObjRes); } } ``` 这段代码实现了以下功能: 1. 新建一条业务数据; 2. 查询BO_TEST表中的数据; 3. 更新BO_TEST表中的数据; 4. 删除BO_TEST表中的数据。 您可以根据自己的需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值