天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 3424|回复: 14

[已解决] 路径执行脚本是一个独立事务,流程提交是另一个独立事务,如何使得这两者成为一个操作

[复制链接]
bess 发表于 2012-12-31 11:57:15 | 显示全部楼层 |阅读模式
本帖最后由 spiral 于 2012-12-31 17:30 编辑

在物品发放流程的发放节点,希望做到发放审批人点击提交的同时,批量更新各物品明细(申请表单的子表单)的位置字段。
2. 路径执行脚本是一个独立事务,而流程提交应该是另一个独立事务,如何使得这两者成为一个单元操作?

摘自原帖子:
http://www.teemlink.com/bbs/view ... &extra=page%3D1
原作者:广州爱帛
spiral 发表于 2012-12-31 12:07:10 | 显示全部楼层
您好,不太明白您的意思
如果您希望在提交流程的时候执行,您可以把业务放在流程处理的动作执行后脚本中运行
如果您希望把“路径执行脚本”和“流程提交”的2个业务合并起来,您只需要把2者的脚本合并即可
广州爱帛 发表于 2012-12-31 13:08:05 | 显示全部楼层
上面说的“流程提交”是指OA核心自己的流程处理。

假设业务流程是更新一批物品的位置信息,放在流程的发放节点执行后脚本实现。

会存在一种情况:OA自身的流程处理事务成功了,流程状态进入到下一节点(比方是签收确认节点);但发放节点执行后脚本的数据库事务失败了,物品的位置信息依然是原状态(比如仍在仓库)。那么签收节点根本无法签收,物品还在仓库。
 楼主| bess 发表于 2012-12-31 13:39:58 | 显示全部楼层
您好,请问您这里说的"放在流程的发放节点执行后脚本实现。"具体是指的什么呢?是说您的脚本写在平台关联线上的写的脚本么?
在脚本没错误之前,脚本出错了,流程不应该会提交的过去的.
请问您那边具体是什么问题,可否告知您具体的业务需求以及您目前的设计?
purple 发表于 2012-12-31 13:41:01 | 显示全部楼层
您好,请问您说的,发放节点执行后脚本具体是指写在什么位置的脚本?流程的关联线路径执行脚本么?如果是,请问什么情况会出现您所说的,脚本执行失败,提交却正常提交到下一节点了?如果不是,请告知,您所描述的内容的具体操作,以便我们这边帮您分析定位问题,谢谢。
广州爱帛 发表于 2012-12-31 13:46:03 | 显示全部楼层
稍等,我这边再测试一下。
 楼主| bess 发表于 2012-12-31 13:47:46 | 显示全部楼层
好的!有问题,我们在沟通!
广州爱帛 发表于 2012-12-31 14:45:15 | 显示全部楼层
我在流程节点的“路径执行脚本”实现业务数据更新:
  1.         var parentId = doc.getId();
  2.         var sql = "update tlk_tb_fa_fetch_app_dt set item_tc_pur_qty = 123 where parent = '" + parentId + "'"; // 测试代码
  3.         $PRINTER.println("  *  sql:[" + sql + "]");
  4.         try {
  5.                 updateByDSName("epooa", sql);
  6.         } catch (e) {
  7.                 $PRINTER.println("  *  e:[" + e + "]");
  8.                 return "更新物品明细失败!";
  9.         }
复制代码
然后在数据库禁止数据表 tlk_tb_fa_fetch_app_dt 的数据更新(做触发器抛异常),测试发现似乎 updateByDSName() 在更新失败时不会抛异常。导致业务数据未按要求更新,但是流程状态却进入下一节点了。
spiral 发表于 2012-12-31 14:57:59 | 显示全部楼层
您好,try{}catch(e){}机制目前这部分存在问题,已经提交至研发那边修复,我们建议您尽量排除有可能会出现错误的可能,以保证系统可以正常运行
广州爱帛 发表于 2012-12-31 15:01:02 | 显示全部楼层
嗯。。考虑改用存储过程做,由存储过程返回事务成功与否吧。。

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 20:20

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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