起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 885|回复: 10

【结】从人员环境中得到工作台功能问题

[复制链接]
发表于 2010-10-25 10:06:48 | 显示全部楼层 |阅读模式
我想从人员环境中得到工作台功能,
代码如下:
var
  lBizClassURL :TBizClassURL;
begin
lBizClassURL =CreateBizClassURL('Biz:\COLLABORATION\CUSTOMDESKTOPFUNC.FUNC');
lWorktableFunc :=Context.GetBizObjectEx(lBizClassURL,BizSys.IL_PERSON) as TFunc;   

但是,得到的工作台功能是新new的工作台实例,而不是现有的工作台实例,
回复

使用道具 举报

发表于 2010-10-25 10:29:31 | 显示全部楼层
呵呵,GetBizObjectEx 这个方法是在当前调用的环境中如果找不到就创建新的,如果找到,就用找到的那个,
从的描述看,1 当前环境不是人员环节,2就是工作台不在人员环境中,
楼主可以通过调用对象查看器
http://bbs.justep.com/forum.php?mod=viewthread&tid=2551
http://bbs.justep.com/forum.php?mod=viewthread&tid=2357

看一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-10-25 11:04:42 | 显示全部楼层
呵呵,atiger,你没有看清我用的方法,

GetBizObject(AClass: TBizClassURL): TBizObject;
GetBizObjectEx(AClass: TBizClassURL; AIsolationLevel: string): TBizObject;
GetBizObjectEx(AClass: TBizClassURL; AIsolationLevel: string; UseExtSpace: Boolean): TBizObject;

我用的是第二个方法,在BizSys。IL_PERSON环境中得到我想要的TBizObject,如果没有就新建;
顺便问atiger,第三个方法的第三个参数是什么意思?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-10-25 14:16:09 | 显示全部楼层
atiger?问题怎么样了,
回复 支持 反对

使用道具 举报

发表于 2010-10-25 14:43:44 | 显示全部楼层
你掉对象查看器了,登陆不一样,工作台存在的环境也是不一样的
这个是自动登陆, 工作台 存放在 TOrgOperator

无标题.gif

8.18 KB, 下载次数: 250

回复 支持 反对

使用道具 举报

发表于 2010-10-25 14:45:59 | 显示全部楼层
而此楼就是用某个岗位登陆的,工作台就在TOpeatorPositiont

无标题.gif

13.93 KB, 下载次数: 259

回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-10-25 17:18:20 | 显示全部楼层
我用的是 自动登陆,
然后运行下面代码 :
var
  lBizClassURL :TBizClassURL;
begin
lBizClassURL =CreateBizClassURL('Biz:\COLLABORATION\CUSTOMDESKTOPFUNC.FUNC');
lWorktableFunc :=Context.GetBizObjectEx(lBizClassURL,BizSys.IL_PERSON) as TFunc;   

atiger,你测试下,确实会出现两个 工作台实例,
回复 支持 反对

使用道具 举报

发表于 2010-10-26 10:20:07 | 显示全部楼层
呵呵,你7楼的代码能编译过去?我拷贝编译不了。

我是在3088版本上测试的,代码参考如下
参考http://bbs.justep.com/forum.php?mod=viewthread&tid=14250
这个帖子

var
  lBizObject: TBizObject;
  i: Integer;
  lContext: TContext;
  cDesktopURL :string;
begin
  cDesktopURL := 'Biz:COLLABORATIONDesktopFunc.Func';
  lContext := Context.FindParentContext(BizSys.IL_PERSON);    //人员环境
  //在人员环境找工作台功能
  for i:=0 to lContext.ChildCount-1 do
  try
    if SysUtils.SameText(cDesktopURL, (lContext.Children.Owner as TFunc).BizClassURL.BizURL.URL) then
      lBizObject := lContext.Children.Owner;
  except
  end;
end;

运行效果

无标题.gif

10.5 KB, 下载次数: 247

回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-10-27 19:29:08 | 显示全部楼层
测试通过,同意楼上代码,
我想知道为什么Context.GetBizObjectEx 方法不行?
回复 支持 反对

使用道具 举报

发表于 2010-10-29 11:47:08 | 显示全部楼层
楼主,好像是这个方法出问题了,需要跟踪底层代码,先用8楼的方法做吧。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-7 02:14 , Processed in 0.045272 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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