起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 303|回复: 16

【结帖】求实现流程回退功能的代码**

[复制链接]
发表于 2007-10-15 10:06:09 | 显示全部楼层 |阅读模式
求实现流程回退功能的代码
回复

使用道具 举报

发表于 2007-10-15 11:01:49 | 显示全部楼层
FlowBroker1.FlowControl.FlowBack(nil)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-15 15:18:35 | 显示全部楼层
就这样就行了吗?谁回退的,回退到哪一步等,不用指定?
这是在非流程环境下实现的,这是贾工上次来我们这的遗留问题。
:)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-15 15:20:29 | 显示全部楼层
启动、流转、结束他都做了,回退也顺便以下巴。
:)
回复 支持 反对

使用道具 举报

发表于 2007-10-15 15:36:11 | 显示全部楼层
哦,我还以为在流程里面呢,贾工 出差了,
启动、流转、结束他都做了,回退你参考一下他写流转的代码,都类似的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-15 18:05:51 | 显示全部楼层
我先看看
回复 支持 反对

使用道具 举报

发表于 2007-10-16 08:54:51 | 显示全部楼层
好,别忘记把结果反馈一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-16 11:53:10 | 显示全部楼层
这有一段流程流转的代码,能不能帮解释一下
function TFlowCreator.FlowOut(AProcUnitID, ASubject: String; ASender, AReceiver: TOrgUrl;
  AStartTime: TDateTime): Boolean;
var
  lTask: TTask;
  lProcUnit: TProcActivity;
begin
  try
    if (not Assigned(FFlow)) or (FFlow.Tasks.Count=0) then
      raise Exception.Create('FlowOut : 流程未启动');
    if FFlow.State = TFlowState.fsFinished then
      raise Exception.Create('FlowFinish : 流程已结束');
    lProcUnit := FindProcUnit(AProcUnitID);
    if not Assigned(lProcUnit) then
      raise Exception.Create('FlowOut : 错误的环节ID');
    lTask := CreateTask(lProcUnit, ASubject, ASender, AReceiver, AStartTime, AStartTime,
      TTaskState.tsStarted, TTaskMessageState.tmsSend);
    if not Assigned(lTask) then
      raise Exception.Create('FlowOut : 创建任务失败');
    {流转处理}
    lTask.PrevGUID := FCurrentTask.GUID;
    FCurrentTask.NextGUID := lTask.GUID;
    FCurrentTask.State := TTaskState.tsFinished;
    FCurrentTask.FinishTime := AStartTime;
    FCurrentTask.TaskMessages[0].State := TTaskmessagestate.tmsFinished;
    Flow.Tasks.Add(lTask);

    FlowEngine.SaveTask(FCurrentTask);
    FlowEngine.SaveTask(lTask);
    FCurrentTask := lTask;
    result := true;
  except
    result := false;
  end;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-16 11:54:06 | 显示全部楼层
还有就是,说明以下,回退的时候要做哪些工作
回复 支持 反对

使用道具 举报

发表于 2007-10-16 14:24:31 | 显示全部楼层
楼主,8楼的代码,哪句不理解呢,其实你设置断点跟踪一下,看一下值,结合你的需求就知道了。

回退需要做的需要看你的实际的需求了,
例如 回退到哪个环节、回退的主题、任务的接收者、紧迫程度、最后的完成期限等等
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-29 06:06 , Processed in 0.040698 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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