起步软件技术论坛-X3

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

【结贴】代码启动流程后执行者的问题??**

[复制链接]
 楼主| 发表于 2010-4-27 11:01:50 | 显示全部楼层
1、url 显示的值确实是主任和副主任(如图)

2、你是说
lFlowControl.FlowRunnerByIndex[0].CurrentTask.TaskMessages[0].ReceiverDeptID := ADept;//传入接收者的部门ID
    lFlowControl.FlowRunnerByIndex[0].CurrentTask.TaskMessages[0].ReceiverPositionID :=ARole;//岗位; //传入接收者的岗位ID
    lFlowControl.FlowRunnerByIndex[0].CurrentTask.TaskMessages[0].ReceiverID :=APerson; //传入接收者的人员ID

这3个用urls来代替?

如啼眼.jpg

12.41 KB, 下载次数: 157

回复 支持 反对

使用道具 举报

发表于 2010-4-27 11:29:49 | 显示全部楼层
ok,那就行了阿
这样改造下那个代码即可:
    lFlowControl.FlowRunnerByIndex[0].CurrentTask.TaskMessages.Items[0].ReceiverDeptID := ADept;//传入接收者的部门ID
    lFlowControl.FlowRunnerByIndex[0].CurrentTask.TaskMessages.Items[0].ReceiverPositionID :=ARole;//  Business.Model.Org.OrgExpr.OrgKey(ADept, 'FZR', '')+'OR'+Business.Model.Org.OrgExpr.OrgKey(ADept, 'ZR', '');//岗位; //传入接收者的岗位ID
    lFlowControl.FlowRunnerByIndex[0].CurrentTask.TaskMessages.Items[0].ReceiverID :=APerson; //传入接收者的人员ID

/////////////////上面这段保留,但要注意,一定是主任或者副主任这个人员成员才可以哦
//然后再添加一个任务消息,用如下代码
lFlowControl.FlowRunnerbyIndex[0].CurrentTask.TaskMessages.AddTaskMessage(nil,'bm1','gw2','ry4');    //这里可以用url的参数,具体你自己看方法的参数,我只是给个例子

然后就可以从任务表和任务消息表中去看一下,一个任务对应两个任务消息。那个工作台的过滤就用人员的方式,不要部门的方式。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-27 11:41:35 | 显示全部楼层
urls 这个里面的参数怎么取那个bm1,gw2,ry4?老方我取不出来。。。。
回复 支持 反对

使用道具 举报

发表于 2010-4-27 11:48:48 | 显示全部楼层
呵呵,很简单的
var
  lUrl: TBizURL;
  lOrgUrl: TOrgURL;  
  i : Integer;
begin
  lUrl := TBizURL.Create;
  try
    for i := 0  to  urls.count -1 do  //urls就是你上面的那个TStringList
    begin
       lOrgUrl:= TOrgurl.Create(lUrl);   
       //然后就可以通过这个lOrgUrl来访问他的三个ID了
   Dialogs.ShowMessage(lOrgUrl.DeptID);  
    end;
  finally
     lUrl.Free;
  end;
end;
回复 支持 反对

使用道具 举报

发表于 2010-4-27 11:50:57 | 显示全部楼层
另,建议你上面UserStartFlow这个方法也不需要传入那么多参数了,因为你的执行者是通过里面的组织机构表达式算出来的,所以只需要传入你需要的东东就可以了。当然传入也没关系了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-27 12:31:12 | 显示全部楼层
已经写成这样了:lFlowControl.FlowRunnerbyIndex[0].CurrentTask.TaskMessages.AddTaskMessage(nil,lOrgUrl.DeptID,lOrgUrl.PositionID,lOrgUrl.PersonID);

可是问题依旧,工作台的过滤就用人员的方式的话每个人登陆进去都看不见待办任务。。。
而且好像任务传不进去?(如图)

cvb.jpg

36.79 KB, 下载次数: 175

回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-27 12:44:08 | 显示全部楼层
而另外一条数据是这样(如图)

vbn.jpg

29.23 KB, 下载次数: 181

回复 支持 反对

使用道具 举报

发表于 2010-4-27 13:10:41 | 显示全部楼层
你看46楼47楼的任务数据,执行者并不是人员成员。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-27 13:27:20 | 显示全部楼层
我就是那样修改了代码就出这个效果了。。。。会是什么原因呢?怎么取不到一样?
回复 支持 反对

使用道具 举报

发表于 2010-4-27 13:33:44 | 显示全部楼层
这就要你自己跟踪下代码,看传入的三个id的参数值是否正确。
或者你可以这么测试下:直接传入固定的部门id、岗位id、人员id,然后看效果。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-9 13:17 , Processed in 0.041233 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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