起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 361|回复: 14

【结】请问如何用代码得到某个功能的执行者呢?**

[复制链接]
发表于 2008-4-11 23:05:24 | 显示全部楼层 |阅读模式
请问如何用代码得到某个功能的执行者呢?
类似于
OrgSelect(OrgCondition('*.psm','',:OrgUnit.FuncRef = '\JUSTEPDEMOSYSTEM\fun_CPDG.Func')) 这样的东西,
因为这样是编译是会出错。
主要是,:OrgUnit.FuncRef = '\JUSTEPDEMOSYSTEM\fun_CPDG.Func')) 不会写
,为什么前面还有一个':'呢?
static function OrgCondition(AMatchFileName: string; AMatchAttribute: string; AMatchIndex: string): string
回复

使用道具 举报

发表于 2008-4-12 14:23:07 | 显示全部楼层
组织机构表达式在代码中调用,是通过 OrgSys.OrgSystem.GetBizURLsByOrgExpr 来调用的,具体参考http://bbs.justep.com/forum.php?mod=viewthread&tid=19552  4楼
或者
http://bbs.justep.com/forum.php?mod=viewthread&tid=20354  8楼
等等,可以在bbs上用“GetBizURLsByOrgExpr”关键字搜索
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-14 10:39:35 | 显示全部楼层

GetBizURLsByOrgExpr怎么用呢?

Org.OrgSys.OrgSystem.GetBizURLsByOrgExpr(AExpr, ABizURLs);怎么用呢?

用它能找到某功能的执行者么?DAExpr写类似OrgCondition('*.psm','',:OrgUnit.FuncRef = '\JUSTEPDEMOSYSTEM\fun_CPDG.Func')) 的东西么?:OrgUnit.FuncRef 处编译会出错! ABizURLs写什么呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-14 14:45:32 | 显示全部楼层

取环节执行者(GetProcUnitExecutor)

我是不是可以用GetProcUnitExecutorPosition来找到功能的执行者(岗位)?但是代码如何写呢?帮助里面没有找到,
我实际上想找出某功能的执行者,不过找流程图中某功能的执行的者也是可以的吧?
回复 支持 反对

使用道具 举报

发表于 2008-4-14 15:15:23 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-14 16:08:11 | 显示全部楼层

我详细说下我想做什么吧,

我有报警监控功能,功能中有代码如下
if  alarmType='1' then
             StartAlarmFlow1(alarmId);//启动报警处理1流程
procedure TMAINFORM.StartAlarmFlow1(AFlowIDPram:String);
var
   lContextCurrent: TContextCurrent;
AFlowUrl,ADept,ARole,APerson,AStartProc,AFlowID,ASubject,ADescription:String;
begin
  lContextCurrent := TContextCurrent.Create(Self.Context);
  ADept:='MSK';//这儿不能写死
  ARole:='KY';//这儿不能写死,我想通过代码得到处理流程中启动功能'BJCL1_NEW',的执行人,那么这个用户登录就可以看到待办任务,请问如何写
  APerson:='ZengBo';//这儿不能写死,
  AFlowUrl:='Biz:\WGXTDEMO\BJCL1LC.Proc';//流程处理1
   ASubject:='代码启动报警处理1';
  ADescription:='代码启动报警处理1描述';
  AStartProc:='BJCL1_NEW';   //流程入口功能ID
  AFlowID:=AFlowIDPram;
     try
       UserStartFlow (AFlowUrl,ADept,ARole,APerson,AStartProc,AFlowID,ASubject,ADescription);
     finally
        lContextCurrent.Free;
     end;
end;

根据你的回复:我写成
ADept:='MSK';
  ARole:='KY';
  APerson:='ZengBo';//若可以得到,AOrgBizURLS,一会儿改
  Org.OrgSys.OrgSystem.GetBizURLsByOrgExpr(Org.OrgExpr.OrgSelect(OrgExpr.OrgCondition('','',:OrgUnit.FuncRef = 'Biz:\WGXTDEMO\BJCL1_new.Func')),AOrgBizURLs);
  jsDialogs.ShowMsg(AOrgBizURLs.Text,'org');
编译出错
[错误]Biz:\WGXTDEMO\WGXT_NEW\BJJKGN_NEW.FUNC.DIR\MainForm.Form.pas(80, 93): line 80: unexpected token: :
请问是如何写呢?或其它方法实现,
谢谢!
回复 支持 反对

使用道具 举报

发表于 2008-4-14 17:23:17 | 显示全部楼层
方法一,用SQL语句得到,参考如下
SELECT OS.FDISPLAYNAME FROM TORGSYSTEM OS, TORGINDEX OI WHERE OS.FKIND IN ( '.DPT', '.PTN','.PTM', '.PSM') AND OI.FGUID = OS.FGUID AND OI.FID = 'OrgUnit.FuncRef' and  OI.FVALUE = '\OPERATION\LCRKGN.Func'

其中
.DPT    显示分配到部门上
.PTN    显示分配到岗位上
.PTM   显示分配到岗位成员上
.PSM   显示分配到人员成员上

\OPERATION\LCRKGN.Func  是功能的BizURL,去掉“Biz:”
回复 支持 反对

使用道具 举报

发表于 2008-4-14 17:32:11 | 显示全部楼层
方法二、用组织机构表达式
参考
Org.OrgSys.OrgSystem.GetBizURLsByOrgExpr('OrgChildren(OrgSelect(OrgCondition('''','''',:OrgUnit.FuncRef = ''\OPERATION\LCRKGN.Func'')),OrgCondition(''*.psm'', '''', ''''), True) or OrgSelect(OrgCondition(''*.psm'','''',:OrgUnit.FuncRef= ''\OPERATION\LCRKGN.Func''))',ABizURLs)

ABizURLs  返回的是一个结果列表
var
  ABizURLs:TStringlist;
  i : integer;
begin
  ABizURLs := TStringlist.Create;
  Org.OrgSys.OrgSystem.GetBizURLsByOrgExpr('OrgChildren(OrgSelect(OrgCondition('''','''',:OrgUnit.FuncRef = ''\OPERATION\LCRKGN.Func'')),OrgCondition(''*.psm'', '''', ''''), True) or OrgSelect(OrgCondition(''*.psm'','''',:OrgUnit.FuncRef= ''\OPERATION\LCRKGN.Func''))',ABizURLs);
  for I := 0 to ABizURLs.Count - 1 do
  begin
    dialogs.ShowMessage(ABizURLs[I]);
  end;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-14 17:45:55 | 显示全部楼层

运行时出错

procedure TMainForm.Button1Click(Sender: TObject);
var
   AOrgBizURLs:TStrings;
begin
  Org.OrgSys.OrgSystem.GetBizURLsByOrgExpr(Org.OrgExpr.OrgSelect(OrgExpr.OrgCondition('','','WGXTDEMOBJCL1_new.Func')),AOrgBizURLs);
  jsDialogs.ShowMsg(AOrgBizURLs.Text,'org');
end;
但是运行时出错,如图,

getorg.jpg

14.2 KB, 下载次数: 187

回复 支持 反对

使用道具 举报

发表于 2008-4-14 17:53:50 | 显示全部楼层
GetBizURLsByOrgExpr  第一个参数是个String,看我写的,有单引号,
看我的代码
第二个参数是TStrings,定义为TStringlist,且需要创建,
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-10 05:42 , Processed in 0.044161 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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