起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: huixiangtao

【结贴】寻找一种解决方案

[复制链接]
发表于 2009-10-10 14:15:01 | 显示全部楼层
那你只要把这个任务运行起来,然后进行回退(不需要你自己带代码去改变该任务的状态了),具体请参考
http://bbs.justep.com/forum.php?mod=viewthread&tid=29823
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-10 14:28:19 | 显示全部楼层
我是在一个与流程没有关系的单个功能窗体上,用sql语句从任务表中把过期任务查出来的。然后把查出来的结果在datagrid中展示,右击datagrid,弹出菜单,然后想在菜单的单击事件中,改变该条任务的状态,把该条任务回退给它的发送者。
所以并不想“把任务运行起来,然后点击按钮回退”。
回复 支持 反对

使用道具 举报

发表于 2009-10-10 14:32:42 | 显示全部楼层
不是你理解的意思:运行起任务然后点回退按钮的方式
而是代码运行起任务并代码执行回退。(跟你这个查询出过期的任务功能是否在流程中无关,你的过期任务是流程中的任务吧,那么相当于是运行起你这个过期任务所在的流程环境并做回退,这些都是代码做)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-10 14:52:20 | 显示全部楼层
哦,试验了一把,我确实理解错了。
现在的代码如下所示:
try
         DoGetFlowGUIDs(flow_field_value,lFlowParam.GUIDs);
         lTaskParam.States := [TTaskState.tsStarted, TTaskState.tsProcessing, TTaskState.tsWaiting];
         //以给定的条件查询任务(这里给定的条件由lFlowParam给出,根据流程Guid值查询,lTaskParam条件是按照任务状态,只查询出需要处理的任务)
         Flow.FlowEngine.GetTasks(lFlowParam, lTaskParam, lTasks);
        if lTasks.Count<>0 then
        begin
                lFunc := SystemCore.TSystemCore.FuncManager.RunTask(SystemCore.TSystemCore.Operator.Positions[0], lTasks[0]);
          lFlowControl := lFunc.Context.GetParentContext(BizSys.IL_FLOW).Owner as TFlowControl;
          lFlowControl.Flowback(nil);
        end;
       finally
         lFlowParam.Free;
         lTaskParam.Free;
         lTasks.Free;
       end;
有两个问题:1、想避免看到这个任务运行起来的功能窗体。
如果这个任务必须运行起来才能回退,那么能不能找个办法不让这个运行的任务显示出来呢
2、在运行起来的功能上会弹出对话框:数据已经修改,是否保存?
想实现不弹出这个对话框,并一律选择“不保存”。
3、想把该条任务回退给它的发送者,目前的情况是回退了,但默认执行者并非是发送者。
回复 支持 反对

使用道具 举报

发表于 2009-10-10 15:30:24 | 显示全部楼层
楼主,你参考一下
http://bbs.justep.com/forum.php? ... hlight=%C8%CE%CE%F1
15楼的帖子吧。

function TFlowManagerForm.RunTaskFunc(CreateMainForm: Boolean): Boolean;
……
把这段注视掉,就可以不运行功能窗体了
    lFunc.Run('');
    if CreateMainForm and (lFunc.MainForm <> nil) then
    begin

      lFunc.MainForm.Show;
    end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-10 16:37:02 | 显示全部楼层
我在研究那段代码,那段代码中的dsbTaskMessage是关联业务消息数据表吧,这个数据集也没有过滤,也没有打开,就可以直接用吗?这样的话,怎么知道它指向的是数据集中的哪条数据呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-10 17:05:28 | 显示全部楼层
我用了一下,运行时,有错误。

着急了,有人回答吗?
回复 支持 反对

使用道具 举报

发表于 2009-10-10 17:36:45 | 显示全部楼层
上面的完整例子(studio--业务资源管理器)

5.rar

22.5 KB, 下载次数: 108

回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-10 20:19:39 | 显示全部楼层
真是惭愧啊!我打不开!
我用studio中的业务资源管理器,打开我的电脑----->E盘中解压缩完之后的文件,报错:数据库连接在服务器端未定义,然后就什么也不出现。
这个东西怎么打开呢?
2、我也另外想了想办法,暂时避开了上述问题,现在任务没有显示运行就流转了。但是弹出了回退对话框,希望不弹出回退对话框,并且执行者设为该条任务的发送者。如何实现?
回复 支持 反对

使用道具 举报

发表于 2009-10-12 08:39:52 | 显示全部楼层
1、你是怎么做的呢?分享下。
2、如果不要弹出回退对话框,参考http://bbs.justep.com/forum.php?mod=viewthread&tid=19618 的4楼
执行者代码控制,参考http://bbs.justep.com/forum.php?mod=viewthread&tid=1207
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-15 05:16 , Processed in 0.043826 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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