起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 329|回复: 15

【搞定】[新版]**

[复制链接]
发表于 2007-7-7 17:42:11 | 显示全部楼层 |阅读模式
如何在一个流程中实现对另外一批流程的转发.详细的需求为我在交班的时候将我没处理的工作给下一个接班的人.我的每一个工作都是对应流程表中的一个流程ID都是流程.而接班人接班的时候需要将我的工作变成他的.现在接班是一个流程,接班的工作又是多个流程.如何实现??急
回复

使用道具 举报

发表于 2007-7-9 09:57:02 | 显示全部楼层
那正在处理的怎么办,

其实平台的任务生成后,
1、都存放到任表和任务消息表 这两个表中,
2、这两个表分别有两个 状态字段,标识任务或者任务消息的状态,根据状态字段来处理
3、任务表 和任务消息表 是一对一或者一对多的关系
4、任务消息表 中 有字段表示处理的人,把它们都修改为接班的就可以了,
这可以参考《用户手册》第九章的 9.11.2 和9.11.3 的相关章节
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-9 11:22:07 | 显示全部楼层
那在接班人的代办任务中会出现接班的任务吗?
回复 支持 反对

使用道具 举报

发表于 2007-7-9 11:33:40 | 显示全部楼层
只要流转了就会有。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-9 14:39:54 | 显示全部楼层
我要做的就是通过交接班流程的流转将别人的任务变为我的任务.任务是另一批流程的任务.平台提供了转发功能可以将自己无法做的事情转给别人,可目前我处在交接班流程,怎样才能把其他流程中交班人不能处理的任务转为我接班人的任务?您回答的修改任务消息表的执行人,那我可以将交班人改为接班人,但我要在我的任务中交班人的任务也成为我接班人的任务.我接班人需要接着处理这批任务.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-9 15:29:15 | 显示全部楼层
上面可能讲的不好理解
要实现的功能是
1。获取当前操作人员的当前代办任务
2。将代办任务转发给其他人。
现在想的解决方案是通过代码遍历代办任务列表,实现转发,但不知道如何写转发代码
回复 支持 反对

使用道具 举报

发表于 2007-7-9 16:02:55 | 显示全部楼层
1、查询出当前操作员所有的待办任务
http://bbs.justep.com/forum.php?mod=viewthread&tid=3710

2、修改每一个待办任务的当前任务消息接收者为接班人
  TTask.TaskMessages: TTaskMessages; //任务消息列表
  TTaskMessages.FindTaskMessage(ADeptID: string; APositionID: string; APersonID: string): TTaskMessage;
NameSpace: Business.Model.Flow
--------------------------------------------------------------------------------
TTaskMessage = class(Business.System.TPersistent)
protected
  function GetReceiverKind: Business.Model.TBizObjectKind;
public
  constructor create(AOwner: TTaskMessages);
  procedure Assign(Source: Business.System.TPersistent); override;
  procedure Destroy; override;
  property Changed: Boolean; readonly;
  property FinishTime: Double;
  property Flag: string;
  property GUID: string;
  property IsController: Boolean;
  property Owner: TTaskMessages; readonly;
  property Parent: TTaskMessage; readonly;
  property ParentGUID: string;
  property ReceiverDeptID: string;
  property ReceiverDeptName: string;
  property ReceiverID: string;
  property ReceiverName: string;
  property ReceiverOgnID: string;
  property ReceiverOgnName: string;
  property ReceiverPositionID: string;
  property ReceiverPositionName: string;
  property ReceiveTime: Double;
  property Sequence: Longint;
  property State: TTaskMessageState;
  property Task: TTask; readonly;
end;


3、保存修改到数据库
  TTask.SaveToDB;
回复 支持 反对

使用道具 举报

发表于 2007-7-9 16:34:53 | 显示全部楼层
提供一个思路,利用系统的被代理功能。
可以使用组织机构资源库中的TORGLIB.Deputied,也可以参照系统代理功能的实现方法,自己来写代码
回复 支持 反对

使用道具 举报

发表于 2007-7-9 18:31:10 | 显示全部楼层

7楼的方法似乎破坏了流程

通过提供的流程记录图看这个流程记录
执行人有这个人变成了另外一个人,
事实上做的是一个转发功能。
有没有方法解决这个问题。即保留上次执行者的任务信息,新建一条任务,从而使流程能够正确连贯。
回复 支持 反对

使用道具 举报

发表于 2007-7-10 09:46:53 | 显示全部楼层
就是说搂主的需求是填写的执行人和实际执行人不一致?这比较怪异,后期问题会比较多。
而且新建一条任务,那原来的任务是算完成了还是没完成呢?
而且系统不提供这两条任务之间的关联,即在任务监控中无法看到这两条流程的相应关系,如果搂主一定要实现这样的逻辑的话,那还是把逻辑整理清楚,而且您的开发量还是比较大的。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-12 12:24 , Processed in 0.038876 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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