起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 755|回复: 31

【结贴】关于批处理中遇到的问题**

[复制链接]
发表于 2008-5-26 15:13:04 | 显示全部楼层 |阅读模式
a用户提交项目到b用户进行部门审核,c用户提交项目也到b用户进行部门审核,部门审核功能定义了任务批处理规则,没有选择“分组”,也没有进行流程合并。b用户选择返回修改后需要提交的项目分别返回到各自申请人手中进行修改,但是出现了如下图所示问题:

返回修改错误.jpg

960.99 KB, 下载次数: 233

回复

使用道具 举报

 楼主| 发表于 2008-5-26 15:14:58 | 显示全部楼层
但是我选择了呈白色的“项目立项申请”功能后,在执行者那一栏选择a用户和c用户后,系统又提示如下图所示错误:

分配的执行者超过了定义的个数.jpg

53.81 KB, 下载次数: 243

回复 支持 反对

使用道具 举报

发表于 2008-5-26 15:30:32 | 显示全部楼层
2楼是因为你的任务执行规则中范围选择了单个。
根据一楼楼主说吧任务分别流转给两个不同的人,每个人只看到自己提交的数据这里使用批处理肯定是实现不了的,如果允许 看到别人前面提交国的任务数据并进行处理那么可以使用批处理,并且执行范围设置成多个就可以了。
回复 支持 反对

使用道具 举报

发表于 2008-5-26 15:33:37 | 显示全部楼层
这两个错误都是正常的
1、你如果选择“结束”环节,或者选择"项目立项申请"并选择流转的接收者就正常了
2、那是因为“项目立项申请”的执行规则的“范围”定义的是单人,你修改为“多人”或者所有就正常了,见附件图

1.gif

29.63 KB, 下载次数: 247

回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-26 15:57:56 | 显示全部楼层
其实我的主要目的就如3楼所说的,任务分别流转给两个不同的人,每个人只看到自己提交的数据。请问使用批处理实现不了,用什么可以实现阿?
回复 支持 反对

使用道具 举报

发表于 2008-5-26 16:19:37 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-26 17:23:02 | 显示全部楼层
没办法啊,我用了6楼的办法,可是还是要求我把项目立项申请功能的执行者范围为“多个”,设置为多个的话,发现和不用没什么变化啊!能不能告诉一下项目立项申请功能、部门审核功能有没有什么特殊设置阿?我的流程图如下所示:

流程图显示.jpg

52.88 KB, 下载次数: 242

回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-26 17:38:50 | 显示全部楼层
procedure TMainForm.Button1Click(Sender: TObject);
var
  i: Integer;
  lTask: TTask;
  lTasks: TList;
begin
  //流转的任务列表
  lTasks := TList.Create;
  try
    for i:= FlowBroker1.FlowControl.TaskCount-1 downto 0 do
    begin
      lTask := FlowBroker1.FlowControl.TaskByIndex;
      lTasks.Clear;
      lTasks.Add(lTask);
      FlowBroker1.FlowControl.FlowOut(lTasks);
    end;
  finally
    lTasks.Free;
  end;
end;




procedure TMainForm.FlowBroker1BeforeFlowOut(Sender: TObject; Command: TFlowOutCommand);
begin
  //当前这次启动流程流转是不是从主界面上启动的
  if Timer1.OnTimer<>nil then
  begin
    //不允许此次的流转,因为真正的流转动作是在定时器中执行的
    Command.Accept := Timer1.OnTimer=nil;
    //启动定时器,这样在定时器中循环流转所有的任务
    Timer1.Enabled := True;
  end;
end;



procedure TMainForm.Timer1Timer(Sender: TObject);
begin
  Timer1.OnTimer := nil;
  try
    Timer1.Enabled := False;
    Button1.Click;
  finally
    Timer1.OnTimer := Timer1Timer;
  end;
end;
回复 支持 反对

使用道具 举报

发表于 2008-5-26 17:39:15 | 显示全部楼层
应该是4楼的方法,一次只流转一个任务
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-26 17:43:43 | 显示全部楼层
我用的就是你给的连接中的4楼的方法,我一次批处理执行了2条任务,然后让这两条任务分别由不同的执行者执行。
明白我的意思了吗?
如流程图所示,我不同用户项目申请后提交给部门领导审核,部门领导对相同处理结果的项目批处理执行,比如选择了返回修改,那么项目就返回到各自的申请人手中了!
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-14 06:44 , Processed in 0.049335 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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