首页 > 其他分享 >E9代码使用事务

E9代码使用事务

时间:2023-11-28 13:46:46浏览次数:26  
标签:事务 String rs 代码 request E9 getRequestManager import weaver

 

注意代码里有两行update语句

第一行是文本值,可以修改。

第二行fpsl 是数字,改为文本的话会报错。

提交事务,最终效果两行都没有改变。证明事务回滚成功。

package com.test;




import com.engine.sunnypol.util.SapRfc;
import org.apache.http.client.config.RequestConfig;
import org.springframework.transaction.annotation.Transactional;
import weaver.conn.RecordSet;
import weaver.conn.RecordSetTrans;
import weaver.general.BaseBean;
import weaver.interfaces.workflow.action.Action;
import weaver.soa.workflow.request.MainTableInfo;
import weaver.soa.workflow.request.Property;
import weaver.soa.workflow.request.RequestInfo;

import java.util.*;

public class ActionTest extends BaseBean implements Action {
    @Transactional
    public String execute(RequestInfo request) {
        /*
         *  Process custom interface code example
         *
         *  1:Log
         *    writeLog("in my online edited action");
         *
         *  2:Exception
         *    boolean error=true;
         *    if(error) {
         *        request.getRequestManager().setMessageid("90001");
         *        request.getRequestManager().setMessagecontent("System Abnormal Termination Process Submission!");
         *    }
         *
         *  3:Get requestid
         *  String requestId = request.getRequestid();
         *
         *  4:Get form tableName
         *  String tablename = request.getRequestManager().getBillTableName();
         *
         *  5:Find form content
         *    RecordSet rs = new RecordSet();
         *  rs.execute("select * from "+tablename+" where requestid =  "+requestId);
         *    rs.next();
         *    String mainid = rs.getString("id");                                //id:Form primary key
         *    String formData = rs.getString("formData");                    //formData:Field name for form design
         *
         *
         */
        String requestId = request.getRequestid();
        String tablename = request.getRequestManager().getBillTableName();


        RecordSetTrans recordSetTrans = new RecordSetTrans();
        recordSetTrans.setAutoCommit(false);
        try {
            recordSetTrans.executeSql("update formtable_main_291_dt1 set wlbm = '123' where id = 10");
            recordSetTrans.executeSql("update formtable_main_291_dt1 set fpsl = 'zhuangjun' where id = 11");
            recordSetTrans.commit();

        }catch (Exception e){

            recordSetTrans.rollback();
            request.getRequestManager().setMessageid("90001");
            request.getRequestManager().setMessagecontent("系统业务处理失败或者网络问题,请稍后重试!错误信息:"+e.getMessage());
            return Action.FAILURE_AND_CONTINUE;
        }finally {

        }



        return Action.SUCCESS;
    }

    private void test()  {
        RecordSet rs = new RecordSet();
        rs.execute("update formtable_main_291_dt1 set wlbm = '45645623311' where id = 10");
        rs.execute("update formtable_main_291_dt1 set wlbm = '78978923311' where id = 11");
//        throw new Exception("test");
        throw new RuntimeException("test");
    }





}

 

标签:事务,String,rs,代码,request,E9,getRequestManager,import,weaver
From: https://www.cnblogs.com/stfzhuang/p/17861764.html

相关文章

  • 配置Oracle链接服务器使用分布式事务​
    1现象在SQLServer中创建指向Oracle的链接服务器,SQL语句在事务中向链接服务器插入数据。返回链接服务器无法启动分布式事务的报错。2解决在Windows平台下,SQLServer依赖分布式事务协调器(MSDTC)来使用分布式事务,OracleClient使用OracleServicesforMicrosoftTransactionServer......
  • 代码随想录-哈希
    242.有效的字母异位词https://leetcode.cn/problems/valid-anagram/description/classSolution{public:boolisAnagram(strings,stringt){if(s.size()!=t.size())returnfalse;inthash[26]={0};for(inti=0;i<s.size......
  • 用了这款插件,零代码基础也能写代码你信吗?
    一、写在前面使用过chatGPT的同学,可能都会有过这样的经历?遇到代码不会的问题,本能的就会去求助chatGPT,然后并根据chatGPT的回答去优化代码。但是,没了的话,chatGPT是不是也帮不上忙了?还是只有我是这样的情况 ̄□ ̄||当然,这也让我偶然发现这个插件,对于我这种代码渣渣来说,真的是有种被带飞的感......
  • 根据累进税率计算每月个人所得税 python代码
    使用时将工资、社保和公积金替换即可,累进税率表和起征点根据所在当地调整importnumpyasnp#累进税率表:交税比例及速算扣除数tax_rates={36000:{"tax_rate":0.03,"quick_deduction":0},144000:{"tax_rate":0.1,"quick_deduction":2520},300000:{&quo......
  • 【git】pycharm上推送代码到云仓
    1、pycharm中安装插件,并且重启2、出现shareprojectongitee,如果是初识提交,会有addfilesforinitialcommit修改代码后,提交......
  • Java 实现统一社会信用代码有效性校验
    一、调用工具类:importcom.yf.utils.StringUtils;importjava.util.HashMap;importjava.util.Map;/***统一社会信用代码有效性校验**@authorFengQing*@programruoyi-vue-file*@description*@date2023/09/11*/publicclassTyshxydmVerificationUtil......
  • 【git】pycharm上拉取云仓代码
    前言当我们在github上看到别人写的项目,想拉到本地学习下。如何用pycharm把git仓库的代码拉取到本地电脑呢?环境准备:1.本地电脑已经安装了git2.已经注册过github账号3.pycharmpycharm配置先自己注册github账号,本地安装git环境,打开Pycharm-File-Settings-Versioncontr......
  • Lua-curl库做数据抓取代码示例
    --导入Lua-curl库luarocksinstallluacurl--创建一个curl实例,localc=curl.init()--设置信息c.setopt(curl.PROXY,")--设置目标URLc.setopt(curl.URL,"")--设置获取类型为GETc.setopt(curl.GET,true)--执行请求localresponse=c.perform()--检查......
  • 低代码部署方式大揭秘:满足你的多种选择
    本文由葡萄城技术团队原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。、前言低代码开发平台为企业提供创新的应用程序开发和部署方法,让非技术人员也能够轻松创建和发布应用程序。通过直观的图形化界面和少量编码,企业可以......
  • spring事务学习
    1,spring方法内部调用亲自测试:同一个类中一个方法(无事务)调用另一个方法(有事务),事务不生效问题同一个类中一个方法(有事务)调用另一个方法(有事务),事务会生效   ......