起步软件技术论坛-X3

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

【结】用代码发任务通知

[复制链接]
 楼主| 发表于 2008-7-16 11:31:05 | 显示全部楼层
在studio中在初始化运行

111111111111.jpg

134.8 KB, 下载次数: 320

回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-16 11:32:52 | 显示全部楼层
直接用客户端运行

2222222222.jpg

133.19 KB, 下载次数: 312

回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-16 11:37:04 | 显示全部楼层
Group-OA中一个有通知 一个没有
回复 支持 反对

使用道具 举报

发表于 2008-7-16 13:40:28 | 显示全部楼层
似乎是数据缓存的问题。楼主请尝试:
1、删除服务端和客户端的DataCache目录
2、或者,取消任务关联定义表的数据缓存设置。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-16 14:04:10 | 显示全部楼层
用1种方法可以了
2的任务关联定义表是那张表
回复 支持 反对

使用道具 举报

发表于 2008-7-16 15:21:31 | 显示全部楼层
协同系统\协同数据库\任务文件夹下的表
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-17 08:25:49 | 显示全部楼层
任务关联定义1

3333333333333333.jpg

152.87 KB, 下载次数: 307

回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-17 08:26:29 | 显示全部楼层
任务关联定义2

444444444444444.jpg

164.6 KB, 下载次数: 307

回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-17 08:31:03 | 显示全部楼层
procedure TInformForm.OnSENDClick(Sender:TObject);//发送通知
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;

     //业务数据的关键字段,用于检索业务数据
     lTaskBizDatarec.BizField := 'Biz:\HGOPERATION\HGOPERATIONDB.DATABASE\t_EvectionReport.Table\LSH.Field';
     //业务数据的关键字段值
     lTaskBizDataRec.Value := ds.DataSet.FieldByName('LSH').AsString;
     lTaskBizData.BizDataKeys.Add(lTaskBizDataRec);

     {任务信息的定义}
     //通过部门、岗位、人员创建组织单元
     lOrgURl := TOrgURL.Create('JSFZC','KFCS','zj');
     lTask.Subject:='通知';
     lTask.Kind:= ''; //无流程任务为空
     lTask.TaskType := 'inf';//自定义任务关联的任务ID
     lTask.TaskTypeName := '通知';//自定义任务关联的任务名称
     //处理任务的功能
     lTask.FuncURL := 'Biz:\HGOPERATION\Inform.Func';

     //lOrgURl := TOrgURL.Create(ADept, APosition, APerson);
     lTask.SenderDeptID := 'JSFZC';
     lTask.SenderPositionID := 'KFCS';
     lTask.SenderID := 'zj';

     //设置业务数据与任务关联关系,保存任务业务关联信息到'系统空间\系统数据库\任务业务数据表’
     lTask.BizDatas.Add(lTaskBizData);

     try
        begin
             lTask.TaskMessages.AddTaskMessage(nil, lOrgURl,
             TTaskmessagestate.tmsSend, 0, False);
             //添加到任务消息列表里
             Flow.FlowEngine.SaveTask(lTask);//保存任务
        end
     finally
        lTask .Free;
     end;
end;

procedure TInformForm.BizFormClose(Sender: TObject; var Action: TCloseAction);
var
   Feng: TFlowEngine;
   fparam:TLoadFlowParam;
   iquery: TQuery;
   guid: string;
   tparam: TLoadTaskParam;
begin

     Feng:=TFlowEngine.Create();
     fparam:=TLoadFlowParam.Create();
     tparam:=TLoadTaskParam.create();
     iquery:=TQuery.Create(nil);

     iquery.ConnectionString:=BizObjConsts.cSysDatabaseConnectionString;
     iquery.CommandText:='select FFlowGuid from TFlowID where FID='''+ds.DataSet.FieldByName('LSH').AsString+'''';
     iquery.Open;

     guid:=iquery.Fields[0].AsString;
     fparam.GUIDs.Add(guid);
     tparam.FlowGUIDs.Add(guid);
     Feng.DeleteFlows(fparam,tparam);
     Feng.DeleteTasks(tparam);
end;
待办里创建任务实现了,但窗口关闭后,待办里的任务消失掉这么弄?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-17 08:37:09 | 显示全部楼层
http://bbs.justep.com/showthread.php?threadid=20671
按照如上帖子做的
guid:=iquery.Fields[0].AsString;执行到这里是空字符串
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-19 22:15 , Processed in 0.045723 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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