起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 212|回复: 13

【结】工作任务报错??!**

[复制链接]
发表于 2008-3-28 09:10:03 | 显示全部楼层 |阅读模式
岗位成员有新的代办任务,然后去处理的时候报错(RT)

qq截图未命名.jpg

17.62 KB, 下载次数: 118

回复

使用道具 举报

发表于 2008-3-28 09:27:42 | 显示全部楼层
这是个什么任务?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-28 09:41:10 | 显示全部楼层
最初由 jiahaiminghr 发布
[B]这是个什么任务? [/B]


是这样的.做了个功能,然后有权限的人员可以给制定的某个人员分配任务.然后被分配的该人员进协同去执行该任务的时候就报这个错了!
回复 支持 反对

使用道具 举报

发表于 2008-3-28 10:04:12 | 显示全部楼层
分配的是什么任务?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-28 10:08:18 | 显示全部楼层
最初由 jiahaiminghr 发布
[B]分配的是什么任务? [/B]


(如图)右边的被选定的人员去执行左边交待的事情!

qq截图未命名2.jpg

15.66 KB, 下载次数: 106

回复 支持 反对

使用道具 举报

发表于 2008-3-28 11:13:15 | 显示全部楼层
这个任务是你自己生成的吧,该任务类型是啥呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-28 11:37:25 | 显示全部楼层
最初由 atiger 发布
[B]这个任务是你自己生成的吧,该任务类型是啥呢? [/B]


是自己生成的.类型:ATaskTypeName
回复 支持 反对

使用道具 举报

发表于 2008-3-28 13:56:55 | 显示全部楼层
应该是任务关联定义有问题了。

楼主这个功能是怎么设置的关联?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-28 14:24:32 | 显示全部楼层
最初由 jiahaiminghr 发布
[B]应该是任务关联定义有问题了。

楼主这个功能是怎么设置的关联? [/B]


AFuncURL:='Biz:\OABGZDHXT\GRGZJH.FUNC'; //要关联的任务
ATaskTypeName:='上级分派';              //关联的任务的名称
ATaskTypeID:='AssignTask';               //关联的任务的ID
ASubject:=memoSubject.Text;                           //主题
ABizField:='Biz:\OABGZDHXT\BGZDHSJK.DATABASE\GZJHB.TABLE\JHBH.Field';
ABizFieldValue:=OrgTreeView1.SelectedNode.BizURL.ID;
//任务接受者
APerson:=OrgTreeView1.SelectedNode.BizURL.ID;
APosition:=OrgTreeView1.SelectedNode.Parent.BizURL.ID;
ADept:=OrgTreeView1.SelectedNode.Parent.Parent.BizURL.ID;

这些是用到的代码?
然后自己做了个资源集来引入
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-28 14:27:12 | 显示全部楼层
资源集

procedure TWLCGN.UserStartTask(AFuncURL, ATaskTypeName, ATaskTypeID,
  ASubject, ABizField, ABizFieldValue, ADept, APosition, APerson,ASendDept,
  ASendPosition,ASendPerson : 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 := ASendDept;
  lTask.SenderPositionID := ASendPosition;
  lTask.SenderID := ASendPerson;
  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 TWLCGN.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;
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-9 14:23 , Processed in 0.046380 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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