发信人: nhyad() 
整理人: kamkam(2002-05-04 22:00:11), 站内信件
 | 
 
 
     根据运行代理的特点,可能改改变代理限制,如在桌面上还是在服务器上,前台还是后台,或者在NOTES客户端还是WEB客户端。以下依次解释:
 
      1、桌面或服务器
    
         如果代理是基于服务器的数据库上一个代理的一部分,它运行在服务器上,而且有以下触发条件之一:
 
          *在新邮件到达以前
          *在新邮件到达以后
          *创建或者修改了文档
          *按每小时、每天、每周或每月的时间日程安排
 
         在服务器上运行的时候,除非服务器是本地的,否则检查所有约束和ACL。其它所有代理(通过以下菜单选项调用:操作菜单、列表选择或文档粘贴)均运行在工作站上,而不管数据库本身在本地还是在服务器上。这一点大家要注意。运行在工作站上的代理将受到当前运行者的权限约束。若代理在WEB运行,Notes将执行所有的约束和ACL检查,这是因为此时代理总是在服务器上运行。
 
      2、前台或后台
 
         前台和后台的概念我个人感觉上和第一点比较类似,不过的确有此一说,主要分别在于大家在写代码时能否用到的一些类,一般在类中不要使用UI类,这是前台类,这个规定在目前社区中形成了一个约定俗成的规则,但实际上如果代理是在前台运行,你可以根本不理会这个规则,但如果代理在后运行请不要使用前台类,会出现以前很多同志们提出来的错误。
 
         前台运行的代理中使用到UI类的话,一定要先保存文档,否则好象会出错,呵呵。
 
       *  如果代理通过NOTES用户界面触发(手工通过操作菜单、按钮调用代理或从代理列表选择执行),NOTES在前台运行代理,这种代理中可以使用UI类。
 
       *  如果通过日程安排或事件(如文档更新、新邮件到达等)调用代理,则NOTES在后台运行代理。
 
       *  前后台的代理概念不能用于WEB调用的代理,因为此时代理总是在WEB服务器运行,它结合了前台和后台两种环境。
 
 
 
 san_thanks:
 个人经验吗?看起来挺别扭。 
 本地数据库也可以设成要根据ACL的权限。 
 此外,本地代理有一个要考虑的重要因素,就是ECL。 
 
 kamkam:
 【 在 nhyad 的大作中提到:】 
 nhyad: 
     我将这句话“运行在工作上的代理将忽略约束检查”修改成“运行在工作站上的代理将受运行者的权限约束”,不知道你是否有不同意见? 
 
 san_thanks: 
    我想作者本意应该不是说代理操作本地数据库,而是说代理程序是装载到本地运行的意思。 
    至于ECL的限制,是所有lotus程序都要遵守的,不单指代理,所以不必特定指出了 
 
 nhyad:
 答san_thanks: 
    ECL中,每个人自己的机器上,ECL被设成最大权限,可以做任何事情,一般不会引起任何提示或错误,不管数据库在服务器或本地。 
    在本地运行代理就相当于执行一段程序,并不会有太大的问题,我没有具体设置所有可能情况,但相信不会有问题。 
 
 答版主: 
    我刚才试过将一位用户不允许执行所有的LS及JAVA代理,我用管理员写了一段LS代码,这位用户照用,而且结果是正确的,你所改后的运行者的权限约束不知是哪里的权限约束? 
 
    非常感谢两位对小弟提出意见,大家共同学习,呵呵。 
 
 dingxiang:
 nhyad的说法是正确的,“运行在工作[站]上的代理将忽略约束检查”。  
 
 
 kamkam:
 在服务器上运行的时候,除非服务器是本地的,否则检查所有约束和ACL。其它所有代理(通过以下菜单选项调用:操作菜单、列表选择或文档粘贴)均运行在工作站上,而不管数据库本身在本地还是在服务器上。这一点大家要注意。运行在工作站上的代理将受到当前运行者的权限约束。若代理在WEB运行,Notes将执行所有的约束和ACL检查,这是因为此时代理总是在服务器上运行。  
 
 看以上这段话,我确实认为你所说的运行在工作站上, 
 
 是指服务器(非本地)上的数据库的代理,运行时代码是load到本地运行 
 
 而不是指运行本地数据库上的代理。 
             ^^^^ 
 不知道我的理解是否有误?请nhyad看看这段话是否有问题?修改一下好吗?毕竟我从自己的理解出发来改,可能误解了作者本意  | 
 
 
 |