起步软件技术论坛-X3

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

【搞定】计划中心里如何代码新增相关任务?**

[复制链接]
 楼主| 发表于 2007-3-1 14:09:14 | 显示全部楼层
函数UserStartTask 编译出错:
lTaskBizDataRec := TTaskBizDataRec.Create; 无法创建,是否要引用什么资源?
回复 支持 反对

使用道具 举报

发表于 2007-3-1 14:24:03 | 显示全部楼层
什么错误提示?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-1 14:32:41 | 显示全部楼层
如图

aa.gif

18.96 KB, 下载次数: 114

回复 支持 反对

使用道具 举报

发表于 2007-3-1 15:32:09 | 显示全部楼层
相关的空间没有Uses

uses
  Business.System, Business.Model, Business.Model.Flow, Business.Model.Org;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-1 16:18:13 | 显示全部楼层
help 中也未找到定义TTaskPubFunc 的资源

bb.gif

16.33 KB, 下载次数: 108

回复 支持 反对

使用道具 举报

发表于 2007-3-1 16:31:43 | 显示全部楼层
那是我创建的一个资源集:

unit TaskPubFunc;

interface

uses
  Business.System, Business.Model, Business.Model.Flow, Business.Model.Org;

type
  TTaskPubFunc = class(TBizLibrary)
  private
    {private declarations}
  public
    procedure UserStartFlow(AFlowUrl,ADept,ARole,APerson,AStartProc,AFlowID,
      ASubject,ADescription:string);
    procedure UserStartTask(AFuncURL, ATaskTypeName, ATaskTypeID, ASubject,
      ABizField, ABizFieldValue, ADept, APosition, APerson : string);
  end;

implementation

{无流程任务
任务表,任务业务数据表,业务数据表: 通过任务guid, 业务数据guid关联}
procedure TTaskPubFunc.UserStartTask(AFuncURL, ATaskTypeName, ATaskTypeID,
  ASubject, ABizField, ABizFieldValue, ADept, APosition, APerson : string);
VAR
  lOrgURL : TOrgURL;
  lTask   : TTask;
  lTaskBizData : TTaskBizData;
  lTaskBizDataRec : TTaskBizDataRec;
begin
  lTask := TTask.Create;

  {任务接受者}
  lOrgURl := TOrgURL.Create(ADept, APosition, APerson);

  {任务业务关联数据定义}
  lTaskBizData := TTaskBizData.Create;
  lTaskBizDataRec := TTaskBizDataRec.Create;
try
  lTaskBizDatarec.BizField := ABizField;       //业务数据的关键字段,用于检索业务数据
  lTaskBizDataRec.Value := ABizFieldValue;     //业务数据的关键字段值
  lTaskBizData.BizDataKeys.Add(lTaskBizDataRec);
  //lTaskBizData.BizDatas.Add(lTaskBizDataRec);

  {任务信息的定义}
  lTask.Subject := ASubject;
  lTask.Kind:= '';                             //无流程任务为空
  lTask.TaskType := ATaskTypeID;               //任务类型,如:工作任务:WORKTASKDEAL, WORKTASK
  lTask.TaskTypeName := ATaskTypeName;
  lTask.FuncURL := AFuncURL;                   //处理任务的功能
  lTask.SenderDeptID := ADept;
  lTask.SenderPositionID := APosition;
  lTask.SenderID := APerson;
  lTask.BizDatas.Add(lTaskBizData);            //设置业务数据与任务关联关系, 保存任务业务关联信息到‘系统空间\系统数据库\任务业务数据表’

  lTask.TaskMessages.AddTaskMessage(nil, lOrgURl, TTaskmessagestate.tmsSend, 0,
    False);                                    //添加到任务列表

  {保存任务}
  Flow.FlowEngine.SaveTask(lTask);             //保存任务信息到‘系统空间\系统数据库\任务表’,任务消息到‘任务消息表’
finally
  //lTaskBizDataRec.Free;
  //lTaskBizData.Free;
  lTask .Free;
  lOrgURL.Free;
end;

end;

{流程表,流程ID表,任务表,任务消息表}
procedure TTaskPubFunc.UserStartFlow(AFlowUrl, ADept, ARole, APerson, AStartProc, AFlowID,
  ASubject, ADescription:string);
var
  lBizURL: TBizURL;
  lFlowValue: TFlowValue;
  lFlowControl: TFlowControl;
  lExecutor: TOrgURL;
begin
  lBizURL := TBizURL.Create;
  lFlowValue := TFlowValue.Create;                    //流程实例
  lFlowControl := TFlowControl.Create(Self.Context);  //流程控制组件
  lExecutor := TOrgURL.Create(ADept, ARole, APerson); //执行者
  lBizURL.URL := AFlowUrl;                            //流程url
  try
    lFlowValue.IDs.Add(AFlowID);                      //流程ID
    lFlowValue.Subject := ASubject+AFlowID;          //流程主题
    lFlowValue.Description := ADescription;           //流程描述
    //启动流程实例           过程url  环节ID      执行者     流程实例值
    lFlowControl.StartupFlow(lBizURL, AStartProc, lExecutor, lFlowValue);
    //流程发送者信息
    lFlowControl.FlowRunnerbyIndex[0].CurrentTask.SenderDeptID := ADept;
    lFlowControl.FlowRunnerbyIndex[0].CurrentTask.SenderPositionID := ARole;
    lFlowControl.FlowRunnerbyIndex[0].CurrentTask.SenderID := APerson;
    //流程实例数据保存到数据库
    lFlowControl.FlowRunnerbyIndex[0].CurrentTask.SaveToDB;
  finally
    lFlowControl.Free;
    lFlowValue.Free;
    lBizURL.Free;
  end;
end;



end.
回复 支持 反对

使用道具 举报

发表于 2007-3-1 16:32:07 | 显示全部楼层
我在功能中调用了这个资源集定义的函数。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-1 16:39:05 | 显示全部楼层
我在信息中能调用这个资源集定义的函数吗?怎么调用.
回复 支持 反对

使用道具 举报

发表于 2007-3-1 16:44:36 | 显示全部楼层
你要自己创建这个资源集。

在为信息添加对资源集的逻辑引用

在信息中代码调用。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-1 17:07:56 | 显示全部楼层
调用函数UserStartTask 这段代码中 dsb.DataSet  指定的是那个表
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-12-26 20:35 , Processed in 0.042249 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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