首页新闻招聘找找看知识库
  • 回复:10 浏览:4560 2009-07-17 18:23 来自 mjgforever

    假如我有一个状态机工作流,流程如下,

    A --- B ---- C ---- D ---- E

    假如:整个流程是单向的,工作流正处于B状态,用户将B提交到C状态,现在用户想撤销操作,使工作流重新回到B状态,该如何实现?

  • tsinghe
    2009-07-23 11:36 tsinghe
    重新用另外一个事件驱动就可以
    第1楼 回到顶楼
  • Windie Chai
    2009-07-24 09:11 Windie Chai
    B怎么跳转到C,C就可以用相同的原理跳转到B。
    第2楼 回到顶楼
  • mjgforever
    2009-07-25 14:36 mjgforever
    @Windie Chai
    我的流程已经设计好了,不能更改,所以增加事件不可取。
    另外,假如小李有操作B状态的权限,操作完成后,工作流达到C状态,而小李没有操作C状态的权限。
    我的问题实质是回退操作的问题,就是提交以后,用户发现错了,后退一下。
    第3楼 回到顶楼
  • 生鱼片
    2009-07-25 21:38 生鱼片
    @mjgforever
    我们的系统也有这个功能,我觉得小李一定要C状态的权限才行啊
    第4楼 回到顶楼
  • mjgforever
    2009-07-27 09:27 mjgforever
    @生鱼片

    其实,就是工作流的撤回操作,就像word中的redo何undo一样,把刚刚提交的任务undo一下,前提是工作流还在C状态,还没有流转到D状态。

    我个人认为,这个应该是强制性的功能。如果小李有操作C状态的权限,那他一个人同时可以操作B、C两种状态,个人认为这两个状态可以合二为一了。

    Jiyuan提供了一个解决思路:把“撤回”重构出来公用,流程中记录上一次的状态,等触发“撤回”时,返回上一状态。

    不知大家还有什么思路解决这一问题?
    第5楼 回到顶楼
  • 生鱼片
    2009-07-27 10:07 生鱼片
    @mjgforever
    是啊,在系统的操作条有一个撤回的操作按钮,B状态的将流程提交到C状态之后,他就可以看见这个按钮,如果他想做取消动态就用这个啊。
    第6楼 回到顶楼
  • 生鱼片
    2009-07-27 10:09 生鱼片
    我们每一个流程点都一个域表示该流程点是否允许做撤回的动作,如果允许在有权限做操作的人就可以使用撤回功能了。
    第7楼 回到顶楼
  • mjgforever
    2009-07-28 08:12 mjgforever
    @生鱼片
    谢谢生鱼片,明白你的意思了~~~
    第8楼 回到顶楼
  • gllemail
    2013-08-30 10:20 gllemail
    @mjgforever
    遇到同样问题了,楼主可在?
    第9楼 回到顶楼
  • gllemail
    2013-09-05 11:02 gllemail
    @生鱼片
    不是很懂,可否详谈?
    第10楼 回到顶楼
登录后才能评论,请先登录注册