xlink实现修改操作

要求:将base_agv_info表中agv_no以128开头的状态status置为1,1为前台指定传入

1、先启动redis和zookeeper

2、Eclipse中iTMS_STD下业务处理-公共资源-公共组件-Default中创建组件cyz

 

3、创建需要用到的脚本,在package workspace中按如下目录创建

 
书写脚本,代码中ALIAS获取的是组件中的数据源,reqdata是前台传入的值,retMsg是输出的信息。
/**
 * 
 */
package com.zjft.bpe.test;

import java.sql.Connection;

import com.zjft.bpe.stdlib.exception.ParamNotExistException;
import com.zjft.bpe.stdlib.exception.UnrecognizedScopeException;
import com.zjft.bpe.stdlib.util.ModuleUtil;
import com.zjft.log.ZjLogger;
import com.zjft.zjfz.datamodule.BizDataModule;
import com.zjft.zjfz.db.DbOperate;
import com.zjft.zjfz.engine.IWFEngine;
import com.zjft.zjfz.util.LoggerUtil;
import com.zjft.zjfz.wfactivety.WFActivity;
import com.zjft.zjfz.wfdata.WFData;

/**
 * @author cyz
 *
 */
public class TestUpdate {
    private final static String DB_ALIAS = "ALIAS";    //数据源
    private final static String REQ_DATA = "reqData";  //前端传入的值
    private final static String RETMSG = "retMsg";     //输出的值
	
	public String process(IWFEngine engine, WFActivity activity, WFData wfd, String wfName) throws ParamNotExistException, UnrecognizedScopeException  {
		BizDataModule dm = wfd.getDataModule();
        ZjLogger log = LoggerUtil.getLog(dm.getChannelId(), dm.getTxCode());
        ModuleUtil moduleUtil = new ModuleUtil(wfd, wfd.getDataModule(), activity, log);
		
        String alias = moduleUtil.getParamValue(DB_ALIAS);
		String reqData = moduleUtil.getParamValue(REQ_DATA);
		int reqData1 = 0;
		try {
			reqData1 = Integer.valueOf(reqData).intValue();
		} catch (Exception e) {
			// TODO: handle exception
		}
		try {
			Connection conn = wfd.getTxConnection(alias);
			String updateStatus = "update base_agv_info set status = "+      reqData1 +" where agv_no like '128%' ";
			DbOperate.executeCUID(updateStatus, conn, log);
			
		} catch (Exception e) {
			// TODO: handle exception
			 log.error("异常:" + e.getMessage());
	            moduleUtil.setParamValue(RETMSG, "修改状态失败");
	            return "fail";
		}
		moduleUtil.setParamValue(RETMSG, "修改状态成功");
		return "ok";
		
	}
	
	

}
4、双击cyz组件,设置组件属性:脚本导入刚写好的脚本,参数的名称要与脚本中的名称一致,数据源需要注意:传入的参数是全局变量,需要设置BusinessInfo,输出的信息需要往下传递,设置成局部变量即可。传入的值全部放在reqMsg中,输出的值全都放在repMsg中,所以这里参数值要写成reqMsg.reqData。出口的状态要与脚本中的return相同。

组件设置好了以后,点击window-show view-other,点开Git

点开javaCtr.xml

会看到这里会生成组件的相关信息

5、交易列表-basic-test下新建updateStatus交易,绘制流程图

 

设置响应,有两种方法,第一种选择系统组件的数据处理组件,用它设置成功响应

在这里设置输出的信息:上面提到输出的信息都放在rspMsg中,所以字段名/值rspMsg.retCode(成功码,我们设置00000), rspMsg.retMsg获取cyz传入的值(蓝色标记所示)

还有一种方法是在交易业务组件中

这里可以直接设置retCode和retMsg的值,也可以继承cyz传下来的值

6、Eclipse完成上述工作以后要用gradle编译

7、Idea启动ucp和bpe(可设置断点)
8、Postman在请求时,传入的数据要是json格式。

效果如图:

查看数据库:

 

总结:

(1)每次更改eclipse脚本和流程图,都要重启bpe。

(2)输入信息都放在reqMsg中,输出信息都放在rspMsg中

(3)设置响应的两种方式:系统组件中的数据处理组件、标准业务组件中设置响应码和响应信息

(4)Postman传值要求json格式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值