起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 173|回复: 4

【结贴】这样的需求,在平台中怎样实现**

[复制链接]
发表于 2007-6-22 10:00:19 | 显示全部楼层 |阅读模式
有这样一个需求,在平台中怎样实现?
需求描述:我自己做了一个查询,我要根据我的查询结果的某一个字段(通过双击某条记录),来显示流程中某一个环节,然后直接操作流程的环节。
就类似平台中工作台的功能,(平台中工作台的功能,就是显示所有的流程任务,当安鼠标右键点处理时,就处理选定的流程)简单来说,就是我用自己的查询,直接就可以打开相应的工作任务,而不必进入平台中工作台,再处理
回复

使用道具 举报

发表于 2007-6-22 12:55:26 | 显示全部楼层
1、做一个查询功能,列出你的业务数据

2、通过这个业务数据检索到对应的流程,
NameSpace: Business.Model.Flow
--------------------------------------------------------------------------------
TLoadFlowParam = class(Business.System.TPersistent)
public
  constructor create;
  procedure Assign(Source: Business.System.TPersistent); override;
  procedure Destroy; override;
  property CreateDateTimeRange: TDateTimeRange;
  property GUIDs: Business.System.TStrings;
  property IDs: Business.System.TStrings;
  property ProcURLs: Business.System.TStrings;
  property States: TFlowStates;
end;

3、用runTask方法运行这个流程的当前任务
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-27 09:49:00 | 显示全部楼层
"通过这个业务数据检索到对应的流程",这段不太明白?我可以通过流程主题,或者是流程字段来调出相应的任务,但这段代码,不太清楚,还有就是"用runTask方法运行这个流程的当前任务",我运行的任务,是通过流程字段或者是流程主题,关联的特定任务,对于第三点,也是不太明白
回复 支持 反对

使用道具 举报

发表于 2007-6-27 18:14:16 | 显示全部楼层
1、获得流程实例
var
  lFlowParam: TLoadFlowParam;
begin
  if Assigned(FFlowList) then
    FFlowList.Free;
  FFlowList := TObjectList.Create;
  lFlowParam := TLoadFlowParam.Create;
  try
    lFlowParam.States := [TFlowState.fsProcessing, TFlowState.fsWaiting];
    lFlowParam.GUIDs.Add('AE8D4F2D673C438A90E6CB78E198F176'); //通过流程GUID获得流程实例
    Flow.FlowEngine.GetFlows(lFlowParam, FFlowList);
    FFlow := TFlow(FFlowList.Items[0]);
    if Assigned(FFlow) then
      begin
        memo1.Lines.Clear;
        memo1.Lines.Add(SysUtils.IntToStr(FFlowList.Count));
        memo1.Lines.Add(FFlow.Subject);

      end;
  finally
    lFlowParam.Free;
  end;
end;


2、获得流程当前任务
var
  lTask: TTask;
  lList: TList;
begin
  lList := TList.Create;
  try
    FFlow.GetLastTasks(lList); //获得流程的当前任务
    lTask := TTask(lList.Items[0]);
    if Assigned(lTask) then
      begin
        memo2.Lines.Clear;
        memo2.Lines.Add(SysUtils.IntToStr(lList.Count));
        memo2.Lines.Add(lTask.Subject);
        memo2.Lines.Add(lTask.SenderName);
      end;
  finally
    lList.Free;
  end;
end;

3、运行任务
SystemCore.TSystemCore.FuncManager.RunTask(Context, lTask); //需要引用系统核心库
回复 支持 反对

使用道具 举报

发表于 2007-6-29 11:50:48 | 显示全部楼层
楼主,没有其他问题,我就结贴了。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-12 04:01 , Processed in 0.039325 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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