数据库
首页 > 数据库> > 通过OA操作数据库

通过OA操作数据库

作者:互联网

好模糊
image
现在在做的工作,对表的增删查改

image
这是在开发一个流程的通过出口条件
image
然后在后端中添加外部条件方法,流转设置--节点信息--节点后附加操作--外部接口--点击接口来源后面的+

这是在通过RequestInfo对象得到流程的信息代码

点击查看代码
import weaver.interfaces.workflow.action.*;
import weaver.soa.workflow.request.RequestInfo;
import weaver.workflow.request.RequestManager;


public class Tested implements Action{
    @Override
    public String execute(RequestInfo requestInfo) {
        //requestInfo对象可以获得流程的一些基本信息
        //获取流程路径id
        String workflowsId = requestInfo.getWorkflowid();
        //获取流程id
        String requestId = requestInfo.getRequestid();

        //requestManager对象可以获得流程的流转信息,RequestManager中有很多方法,你可以为每个方法设置备注信息
        RequestManager requestManager = requestInfo.getRequestManager();
        //流程当前所在节点id
        int currentNodeId = requestManager.getNodeid();

        //流转到下一个节点id
        int nextNodeid = requestManager.getNextNodeid();

        //流程表单id
        int formId = requestManager.getFormid();

        //是否为单据
        int isBill = requestManager.getIsbill();

        //获取表名
        String tableName = isBill == 1 ? requestManager.getBillTableName() : "workflow_form";
        return Action.SUCCESS;
    }
}
下面是根据上面获取到的信息来进行数据库的相关操作,Action中提供了两个数据库操作类,可以在Action中使用进行数据库操作,不过我们公司使用的是Hutool。一起来看看吧! 一个是不支持事务的RecordSet 另一个是支持事物的RecordSetTrans 拿表名 ![image](https://www.icode9.com/i/l/?n=20&i=blog/2451771/202112/2451771-20211207150235920-594861258.png) 拿列名 ![image](https://www.icode9.com/i/l/?n=20&i=blog/2451771/202112/2451771-20211207150305579-915764214.png)
点击查看代码
        //不带事务控制
        RecordSet rs = new RecordSet();
        //查询操作
        rs.executeQuery("select * from"+ tableName +"where requestid = ?",requestId);
        //更新操作
        rs.executeUpdate("update"+tableName+"set rq = ? where requestid = ?", "2021-12-6", requestId);

        //带事务控制
        RecordSetTrans trs = new RecordSetTrans();
        trs.setAutoCommit(false);
        try {
            //查询操作
            rs.executeQuery("select * from" + tableName + "where requestid = ?", requestId);
            //更新操作
            rs.executeUpdate("update" + tableName + "set rq = ? where requestid = ?", "2021-12-6", requestId);
            trs.commit();
        }catch (Exception e){
            trs.rollback();
        }
现在来通过action返回失败标识的提示信息,阻断前台流程的提交,并且显示提示信息。说人话就是通过先查流程相关表中的数据, 流程错误类型 ![image](https://www.icode9.com/i/l/?n=20&i=blog/2451771/202112/2451771-20211207152839658-1138653707.png)

标签:rs,数据库,tableName,requestManager,OA,2451771,操作,流程,requestId
来源: https://www.cnblogs.com/RainASnow/p/15656968.html