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

QQ登录

只需一步,快速开始

查看: 6819|回复: 11

[结贴] 流程结束后如何更改数据库数据?

  [复制链接]

34

主题

136

帖子

258

积分

中级会员

Rank: 3Rank: 3

积分
258
QQ
发表于 2014-6-9 16:35:57 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
流程结束后,根据某些参数(比如年月)更改数据库表的字段值,该怎么处理?流程中的.Java文件怎么获取界面数据源的数据吗?

38

主题

829

帖子

1656

积分

金牌会员

过客

Rank: 6Rank: 6

积分
1656
QQ
发表于 2014-6-9 16:46:47 | 显示全部楼层
本帖最后由 daniel007 于 2014-6-9 16:47 编辑

流程结束后,你可以通过更新语句对数据库进行更新呀,连接数据库更新就行,界面的数据源在流程中已经保存了,存在数据库相关概念中,可以直接用Sql语句取出来就行。
例如:while(res1.next()){
     guid2 = CommonUtils.createGUID();
     String sql1 ="update B_Form_CostMateConfDeta set shipmentsNum = '"+res1.getString("sellNuber")+"' where fid='"+res1.getString("source")+"'";
     conn = ModelUtils.getConnection("/ERP/businessManagement/preStockMt/preStockApp/data");
     ps4 = conn.prepareStatement(sql1);
     ps4.execute();
    }

评分

参与人数 1 +2 收起 理由
jishuang + 2 赞一个!

查看全部评分

回复 支持 反对

使用道具 举报

15

主题

650

帖子

1723

积分

金牌会员

Rank: 6Rank: 6

积分
1723
QQ
发表于 2014-6-9 16:55:47 | 显示全部楼层
找到process 选择主环节,单击onAfterFinish 在静态方法中,首先获得流程上下文,然后获得本流程的Task,在得到主数据ID,根据主数据ID获得本界面的数据源数据,然后更新就可以了。
Task task = ProcessUtils.getProcessContext().getTask();//获取流程的上下文,然后得到本流程的TASK
String mainId = task.getData1(); //得到主数据ID
根据主数据ID获得本界面的数据,然后就可以修改了。

评分

参与人数 1 +3 收起 理由
jishuang + 3 赞一个!

查看全部评分

回复 支持 反对

使用道具 举报

34

主题

136

帖子

258

积分

中级会员

Rank: 3Rank: 3

积分
258
QQ
 楼主| 发表于 2014-6-9 16:57:18 | 显示全部楼层
daniel007 发表于 2014-6-9 16:46
流程结束后,你可以通过更新语句对数据库进行更新呀,连接数据库更新就行,界面的数据源在流程中已经保存了 ...

参数怎么获取呢?部分参数没有在数据库表中。
回复 支持 反对

使用道具 举报

38

主题

829

帖子

1656

积分

金牌会员

过客

Rank: 6Rank: 6

积分
1656
QQ
发表于 2014-6-9 17:02:19 | 显示全部楼层
sdwaji 发表于 2014-6-9 16:57
参数怎么获取呢?部分参数没有在数据库表中。

如果说获取时间,比如当前时间,你可以调用方法呀:getCurrentDate()
获取当前的日期
<static> java.sql.Timestamp  getCurrentDateTime()
获取当前的日期时间
<static> java.sql.Time  getCurrentTime()
获取当前的时间
<static> int  getDay(java.util.Date date)
获取给定日期的天
<static> Integer  getDayOfWeek(java.util.Date date)
获取给定日期所在周的第几天
你可以参考API中个方法调用。
回复 支持 反对

使用道具 举报

34

主题

136

帖子

258

积分

中级会员

Rank: 3Rank: 3

积分
258
QQ
 楼主| 发表于 2014-6-9 17:06:51 | 显示全部楼层
daniel007 发表于 2014-6-9 17:02
如果说获取时间,比如当前时间,你可以调用方法呀:getCurrentDate()
获取当前的日期
java.sql.Timest ...

不是系统里的参数,都是动态的参数。我再试试其他方法吧,谢谢
回复 支持 反对

使用道具 举报

34

主题

136

帖子

258

积分

中级会员

Rank: 3Rank: 3

积分
258
QQ
 楼主| 发表于 2014-6-9 17:16:49 | 显示全部楼层
daniel007 发表于 2014-6-9 16:46
流程结束后,你可以通过更新语句对数据库进行更新呀,连接数据库更新就行,界面的数据源在流程中已经保存了 ...

如果用这种方法怎么知道我要查询哪年哪月呢(年月也是动态的)?这样不还是没法查询吗
回复 支持 反对

使用道具 举报

38

主题

829

帖子

1656

积分

金牌会员

过客

Rank: 6Rank: 6

积分
1656
QQ
发表于 2014-6-9 17:27:46 | 显示全部楼层
sdwaji 发表于 2014-6-9 17:16
如果用这种方法怎么知道我要查询哪年哪月呢(年月也是动态的)?这样不还是没法查询吗 ...

哦,你要手动输入,那就在就面上input中手动输入,或者使用日历选择,然后调用Action,把你手动输入的参数传入Action查询之后返回就行。
回复 支持 反对

使用道具 举报

310

主题

4938

帖子

4767

积分

论坛元老

Rank: 8Rank: 8

积分
4767
QQ
发表于 2014-6-9 22:47:25 | 显示全部楼层
本帖最后由 yinlun 于 2014-6-9 22:48 编辑

楼主,后台java是无法直接获取界面上的值,只能先获取当前流程实例关联的sData1,再去数据库里获取、更新数据;

还有,你流程已经结束了(已经没有界面了),再根据某些参数(比如年月)更改数据库表的字段值,你的这些参数哪里来???是数据库里已经保存的呢,还是获取当前日期的年月呢?
QQ:179785966
回复 支持 反对

使用道具 举报

34

主题

136

帖子

258

积分

中级会员

Rank: 3Rank: 3

积分
258
QQ
 楼主| 发表于 2014-6-10 08:54:00 | 显示全部楼层
yinlun 发表于 2014-6-9 22:47
楼主,后台java是无法直接获取界面上的值,只能先获取当前流程实例关联的sData1,再去数据库里获取、更新数 ...

参数是在界面的,而且不固定,我就是想在流程结束时触发一个事件,通过参数,对数据库的数据进行修改等操作
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 04:30 , Processed in 0.071015 second(s), 30 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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