起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10907|回复: 14

[结贴] 关于在流程事件里编写java更新其他表单字段内容的问题。

[复制链接]

70

主题

320

帖子

579

积分

高级会员

Rank: 4

积分
579
QQ
发表于 2018-11-22 10:26:26 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
是这样,我有两个概念表,一个叫CarUsing,生成库表叫HU_CarUsing,另一个叫CarInfo,生成库表叫HU_CarInfo。用来做一个车辆管理的小系统。CarInfo里存了所有车辆的信息,包括租赁状态。CarUsing是车辆请用申请单,带流程。
现在想做的事情是:通过CarUsing申请的车辆,在CarInfo里要找到对应的车辆将租赁状态字段修改为“已预约”,这样别人提交CarUsing就无法申请这辆车了。

我在CarUsing的流程设置里,在结束前的一个节点,设置onAfterAdvance事件,编写了代码,但是会报错。代码如下:
我没有改默认的数据源名称,只是把system指向了我的数据库。
代码中,Period是租车天数,我想做个判断,就是租车天数超过90天,就不更新租赁状态字段,由流程里另外的支线来控制这个字段的更新。
public static void businessActivity6AfterAdvance() {                private static final String datasource = "system";       
      Integer Days = this.comp(mainData).getValue("Period");
       public static JSONObject HU_CarInfo(JSONObject params, ActionContext context) throws SQLException, NamingException {
    Connection conn = context.getConnection(datasource);
    JSONObject rt = new JSONObject();
    String CarNo = params.getString("CarNo");
    String CarStatus = params.getString("CarStatus");
    java.sql.PreparedStatement pstmt = null;
    String sql="";
  if(Days < 90)
    {
    sql = "UPDATE HU_CarInfo SET CarStatus='已预约' WHERE CarNo = '"+CarNo+"';
  }
    pstmt = conn.prepareStatement(sql);
    pstmt.execute();
    rt.put("state", "1");
    return rt;
      }
  }


这段代码我是从baas找到的参考复制过来修改的,但会报错。我这个项目因为涉及到与外部系统对接,所以引用了3个jar包,您看看会不会是这个jar包导致的。 libs.rar (1.64 MB, 下载次数: 193)

70

主题

320

帖子

579

积分

高级会员

Rank: 4

积分
579
QQ
 楼主| 发表于 2018-11-22 10:29:29 | 显示全部楼层
报错信息:
Caused by: com.justep.exception.BusinessException: 编码: JUSTEP151044; 提示: 编译模块"/huanan/Safety/process/CarUsing"中的类"CarUsingProcess"出错
警告: [options] 未与 -source 1.5 一起设置引导类路径
警告: [options] 源值1.5已过时, 将在未来所有发行版中删除
警告: [options] 目标值1.5已过时, 将在未来所有发行版中删除
警告: [options] 要隐藏有关已过时选项的警告, 请使用 -Xlint:-options。
E:\BeX5_V3.8\model\BIZ\huanan\Safety\process\CarUsing\dsrc\CarUsingProcess.java:16: 错误: 非法的表达式开始
                private static final String datasource = "system";       
                ^
E:\BeX5_V3.8\model\BIZ\huanan\Safety\process\CarUsing\dsrc\CarUsingProcess.java:16: 错误: 非法的表达式开始
                private static final String datasource = "system";       
                        ^
E:\BeX5_V3.8\model\BIZ\huanan\Safety\process\CarUsing\dsrc\CarUsingProcess.java:16: 错误: 需要';'
                private static final String datasource = "system";       
                              ^
E:\BeX5_V3.8\model\BIZ\huanan\Safety\process\CarUsing\dsrc\CarUsingProcess.java:18: 错误: 非法的表达式开始
       public static JSONObject HU_CarInfo(JSONObject params, ActionContext context) throws SQLException, NamingException {
       ^
E:\BeX5_V3.8\model\BIZ\huanan\Safety\process\CarUsing\dsrc\CarUsingProcess.java:18: 错误: 非法的表达式开始
       public static JSONObject HU_CarInfo(JSONObject params, ActionContext context) throws SQLException, NamingException {
              ^
E:\BeX5_V3.8\model\BIZ\huanan\Safety\process\CarUsing\dsrc\CarUsingProcess.java:18: 错误: 需要';'
       public static JSONObject HU_CarInfo(JSONObject params, ActionContext context) throws SQLException, NamingException {
                               ^
E:\BeX5_V3.8\model\BIZ\huanan\Safety\process\CarUsing\dsrc\CarUsingProcess.java:18: 错误: 需要')'
       public static JSONObject HU_CarInfo(JSONObject params, ActionContext context) throws SQLException, NamingException {
                                                     ^
E:\BeX5_V3.8\model\BIZ\huanan\Safety\process\CarUsing\dsrc\CarUsingProcess.java:18: 错误: 非法的表达式开始
       public static JSONObject HU_CarInfo(JSONObject params, ActionContext context) throws SQLException, NamingException {
                                                            ^
E:\BeX5_V3.8\model\BIZ\huanan\Safety\process\CarUsing\dsrc\CarUsingProcess.java:18: 错误: 需要';'
       public static JSONObject HU_CarInfo(JSONObject params, ActionContext context) throws SQLException, NamingException {
                                                                           ^
E:\BeX5_V3.8\model\BIZ\huanan\Safety\process\CarUsing\dsrc\CarUsingProcess.java:18: 错误: 不是语句
       public static JSONObject HU_CarInfo(JSONObject params, ActionContext context) throws SQLException, NamingException {
                                                                            ^
E:\BeX5_V3.8\model\BIZ\huanan\Safety\process\CarUsing\dsrc\CarUsingProcess.java:18: 错误: 需要';'
       public static JSONObject HU_CarInfo(JSONObject params, ActionContext context) throws SQLException, NamingException {
                                                                                   ^
E:\BeX5_V3.8\model\BIZ\huanan\Safety\process\CarUsing\dsrc\CarUsingProcess.java:18: 错误: 不是语句
       public static JSONObject HU_CarInfo(JSONObject params, ActionContext context) throws SQLException, NamingException {
                                                                                            ^
E:\BeX5_V3.8\model\BIZ\huanan\Safety\process\CarUsing\dsrc\CarUsingProcess.java:18: 错误: 需要';'
       public static JSONObject HU_CarInfo(JSONObject params, ActionContext context) throws SQLException, NamingException {
                                                                                                        ^
E:\BeX5_V3.8\model\BIZ\huanan\Safety\process\CarUsing\dsrc\CarUsingProcess.java:18: 错误: 不是语句
       public static JSONObject HU_CarInfo(JSONObject params, ActionContext context) throws SQLException, NamingException {
                                                                                                          ^
E:\BeX5_V3.8\model\BIZ\huanan\Safety\process\CarUsing\dsrc\CarUsingProcess.java:18: 错误: 需要';'
       public static JSONObject HU_CarInfo(JSONObject params, ActionContext context) throws SQLException, NamingException {
                                                                                                                         ^
E:\BeX5_V3.8\model\BIZ\huanan\Safety\process\CarUsing\dsrc\CarUsingProcess.java:27: 错误: 未结束的字符串文字
    sql = "UPDATE HU_CarInfo SET CarStatus='已预约' WHERE CarNo = '"+CarNo+"';
                                                                        ^
16 个错误
4 个警告
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2018-11-22 10:52:58 | 显示全部楼层
dsrc上右键设置为源码路径,根据java文件中的错误提示进行修改
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

70

主题

320

帖子

579

积分

高级会员

Rank: 4

积分
579
QQ
 楼主| 发表于 2018-11-22 13:50:01 | 显示全部楼层
private static final String datasource = "system";       
参数datasource不合法,只允许使用终态。这句话什么意思
还有 Connection conn = context.getConnection(datasource);这个不是官方的连接字符串吗,他这行报的是无法解析context
回复 支持 反对

使用道具 举报

70

主题

320

帖子

579

积分

高级会员

Rank: 4

积分
579
QQ
 楼主| 发表于 2018-11-22 13:56:12 | 显示全部楼层
您要不还是给我写一个bex5的sql结构吧,我来改,用标准的jdbc写法会报错
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2018-11-22 14:19:50 | 显示全部楼层
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

70

主题

320

帖子

579

积分

高级会员

Rank: 4

积分
579
QQ
 楼主| 发表于 2018-11-22 17:07:40 | 显示全部楼层
        public static void costRequestProcessAfterFinish() {
                  try {
                        String key = com.justep.system.process.ProcessUtils.getProcessData1();
                        // 定义更新ksql,由于概念没有主键关系,所以使用概念别名作为概念的主键
                        String kSql = "update X5_CostRequest a set a.fState='已审批' where a='" + key + "'";
                        KSQL.executeUpdate(kSql,null,"/x5demo/bizDemo/data",null);
                }
                catch (Exception e) {
                        throw new RuntimeException (e.getMessage());
                }               
        }

com.justep.system.process.ProcessUtils.这个是概念名和别名的意思是吗?假如我想更新的其实不是当前业务流程的概念而是另一个概念,可以用这个吗
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2018-11-22 17:13:18 | 显示全部楼层
com.justep.system.process.ProcessUtils是平台提供的APIjava类
不是概念名更不是别名

要修改是什么概念的自己的ksql就去操作什么概念的
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

70

主题

320

帖子

579

积分

高级会员

Rank: 4

积分
579
QQ
 楼主| 发表于 2018-11-22 17:36:29 | 显示全部楼层
JUSTEP150210; 提示: 执行KSQL出错, KSQL: update HU_CarInfo set HU_CarInfo.CarStatus='已预约' where HU_CarInfo='C7CD3C1A7DC44904BE7E2A8AC9F7DFC4'
        at CarUsingProcess.businessActivity4AfterAdvance(CarUsingProcess.java:37)
修改后执行报错,会不会是当前操作的流程所在的概念不是HU_CarInfo呢
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2018-11-22 17:38:39 | 显示全部楼层
报错发完整的错误信息啊
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-7-12 02:49 , Processed in 0.062493 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表