起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 412|回复: 19

急,请问设置代码启动流程接收人的岗位

[复制链接]
发表于 2010-2-5 16:34:37 | 显示全部楼层 |阅读模式
lFlowControl.StartupFlow(lBizURL, AStartProc, lFlowValue); 代码启动流程
参数  lExecutor
这个怎么放进去
Business.Model.Org.OrgExpr.OrgKey(ADept, 'FZR', '')+'OR'+Business.Model.Org.OrgExpr.OrgKey(ADept, 'ZR', '');


procedure TZJ.UserStartFlow(AFlowUrl,ADept,ARole,APerson,AStartProc,AFlowID,ASubject,ADescription:string);
var                        {流程URL,部门,岗位,人员               ,流程ID,流程主题     }
  lBizURL: TBizURL;
  lFlowValue: TFlowValue;
  lFlowControl: TFlowControl;
  lExecutor: TOrgURL;
  StrSubject:String;
begin
  lBizURL := TBizURL.Create;
  lFlowValue := TFlowValue.Create;    //流程实例
  lFlowControl := TFlowControl.Create(Self.Context);//流程控制组件
  lExecutor := TOrgURL.Create(cDeptID,cPositionMemberID,cOperatorNameID);  //执行者
  lBizURL.URL := AFlowUrl;
  try
    lFlowValue.IDs.Add(AFlowID);            //流程ID
    lFlowValue.Subject:= ASubject;     //流程主题
    lFlowValue.Description := ADescription;   //流程描述
        //启动流程实例
     // Business.Model.Org.OrgExpr.OrgKey(ADept, 'FZR', '')+'OR'+Business.Model.Org.OrgExpr.OrgKey(ADept, 'ZR', '');
    lFlowControl.StartupFlow(lBizURL, AStartProc,lExecutor, lFlowValue);
    lFlowControl.FlowRunnerbyIndex[0].CurrentTask.PreemptMode := TTaskPreemptMode.omFirstProcess;
    StrSubject:=DataSetBroker1.DataSet.FieldByName('BZDH').AsString+' '+DataSetBroker1.DataSet.FieldByName('BZMC').AsString+'('+DataSetBroker4.DataSet.FieldByName('LQBM').AsString+')';
    lFlowControl.FlowRunnerByIndex[0].CurrentTask.subject:=StrSubject;//这是任务主题
    lFlowControl.FlowRunnerByIndex[0].CurrentTask.TaskMessages[0].ReceiverDeptID := ADept;//传入接收者的部门ID
    lFlowControl.FlowRunnerByIndex[0].CurrentTask.TaskMessages[0].ReceiverPositionID :=ARole;//  Business.Model.Org.OrgExpr.OrgKey(ADept, 'FZR', '')+'OR'+Business.Model.Org.OrgExpr.OrgKey(ADept, 'ZR', '');//岗位; //传入接收者的岗位ID
    lFlowControl.FlowRunnerByIndex[0].CurrentTask.TaskMessages[0].ReceiverID :=APerson; //传入接收者的人员ID

    //流程实例数据保存到数据库
    lFlowControl.FlowRunnerbyIndex[0].CurrentTask.SaveToDB;
  finally
    lFlowControl.Free;
    lFlowValue.Free;
    lBizURL.Free;
  end;
end;

问题1如上怎么设置接收人只能是ZR FZR下的人员,以前好像弄过一次,现在想不起来了,帮帮忙
问题2
流程A->B->C
启动流程后ZR FZR下的人员接收的是B功能,那么B怎么能回退到A发起者那里去呢? 全部代码在上面了
回复

使用道具 举报

发表于 2010-2-5 16:45:46 | 显示全部楼层
1/因为这个是产生了任务,也就是设定了谁去接收这个任务,所以只能设置接受人。
http://bbs.justep.com/forum.php?mod=viewthread&tid=14322 你这样设置是抢占方式的。只有一个人能处理这个任务。
设定到岗位,就是人员那个参数不要填写就可以了。
2、没看懂什么意思。
回复 支持 反对

使用道具 举报

发表于 2010-2-5 16:59:40 | 显示全部楼层
我机子登不了,换台机子

1.表达式这个怎么使用啊?想让两个岗位下的人员都能处理这条记录Business.Model.Org.OrgExpr.OrgKey(ADept, 'FZR', '')+'OR'+Business.Model.Org.OrgExpr.OrgKey(ADept, 'ZR', '');
2.如图, 怎么能回退到第一级?
3.除了抢占方式lFlowControl.FlowRunnerbyIndex[0].CurrentTask.PreemptMode := TTaskPreemptMode.omFirstProcess;还有什么方式,能否说说


先帮看下怎么处理1和2

未命名.jpg

27.5 KB, 下载次数: 183

回复 支持 反对

使用道具 举报

发表于 2010-2-5 17:16:27 | 显示全部楼层
3.除了抢占方式lFlowControl.FlowRunnerbyIndex[0].CurrentTask.PreemptMode := TTaskPreemptMode.omFirstProcess;还有什么方式,能否说说
这个看流程功能环节的执行规则的任务协作定义的任务抢占方式就知道了(见附件),具体这些表示啥意思,请看《用户手册》第9章 业务流程 9.5.3.3 的相关介绍说明,

无标题.jpg

64.2 KB, 下载次数: 179

回复 支持 反对

使用道具 举报

发表于 2010-2-5 17:20:49 | 显示全部楼层
2.如图, 怎么能回退到第一级?
你的意思在流程已经走到后面,例如第三个环节或者第四个环节,点击回退的时候直接回退到入口环节,是吗?如果是直接设置第三个环节或者第四个环节 的 回退规则,见附件,(业务功能1 是入口环节)

如果不是,请结合3楼的图具体说说吧

无标题.jpg

64.2 KB, 下载次数: 177

回复 支持 反对

使用道具 举报

发表于 2010-2-5 17:23:36 | 显示全部楼层
1.表达式这个怎么使用啊?想让两个岗位下的人员都能处理这条记录Business.Model.Org.OrgExpr.OrgKey(ADept, 'FZR', '')+'OR'+Business.Model.Org.OrgExpr.OrgKey(ADept, 'ZR', '');

http://bbs.justep.com/forum.php?mod=viewthread&tid=30732  11楼
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-2-8 09:15:35 | 显示全部楼层
最初由 atiger 发布
[B]1.表达式这个怎么使用啊?想让两个岗位下的人员都能处理这条记录Business.Model.Org.OrgExpr.OrgKey(ADept, 'FZR', '')+'OR'+Business.Model.Org.OrgExpr.OrgKey(ADept, 'Z..

以下省略...... [/B]


这个帖子是我问的,记得还做过一次的,现在想不起来了  
Business.Model.Org.OrgExpr.OrgKey('HXES', 'FZR', '')+'OR'+Business.Model.Org.OrgExpr.OrgKey('HXES', 'ZR', '')
怎么传进下面那个,我编译不过,能帮写个好不

lFlowControl.StartupFlow(lBizURL, AStartProc,lExecutor, lFlowValue);
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-2-8 09:23:53 | 显示全部楼层
2.  接5楼

A人员代码启动流程之后,B人员的待办那显示的任务,打开的功能是第二级(检验室),现在是B人员怎么能把任务回退到A人员那,A为第一级流程(新检测方法)

未命名.jpg

28.54 KB, 下载次数: 175

回复 支持 反对

使用道具 举报

发表于 2010-2-8 10:04:43 | 显示全部楼层
回复8楼,直接回退就可以了,你现在回退到哪里了呢?
并把界面贴出来看看
回复 支持 反对

使用道具 举报

发表于 2010-2-8 10:07:03 | 显示全部楼层
回复7楼,要用代码执行这个组织机构表达式,参考
http://bbs.justep.com/forum.php?mod=viewthread&tid=19552  4楼
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-11 05:12 , Processed in 0.045767 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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