Xpages xpage动态更改xpage acl?

Xpages xpage动态更改xpage acl?,xpages,acl,Xpages,Acl,我有一个基本的工作流应用程序,我有困难 在db ACL中,我将所有涉及的人员和组设置为编辑器。 在XPage acl中,我尝试输入名称的计算值。(我称之为nextApprover的字段,存储在与xpage关联的表单/文档中 我试过了 document1.getItemValue("nextApprover"); 及 两者都会在执行Javascript计算表达式时创建运行时错误 我所要做的就是允许下一个用户在其“框”中编辑文档,并允许其他用户在该特定时间阅读文档。我已经四处查看了一段时间。 有什

我有一个基本的工作流应用程序,我有困难

在db ACL中,我将所有涉及的人员和组设置为编辑器。 在XPage acl中,我尝试输入名称的计算值。(我称之为nextApprover的字段,存储在与xpage关联的表单/文档中

我试过了

document1.getItemValue("nextApprover");

两者都会在执行Javascript计算表达式时创建运行时错误

我所要做的就是允许下一个用户在其“框”中编辑文档,并允许其他用户在该特定时间阅读文档。我已经四处查看了一段时间。
有什么建议吗?

通过在文档中使用作者项而不是XPage ACL,您可以获得更好的安全性

尝试此操作(如果
document1
是数据源名称):


如果它不适用于此,并且您仍然希望使用XPage ACL,请为ACL部分发布错误和XPage XML源。

通过在文档上使用作者项而不是XPage ACL,您可以获得更好的安全性

尝试此操作(如果
document1
是数据源名称):


如果它不适用于此,并且您仍然希望使用XPage ACL,请为ACL部分发布错误和XPage XML源。

您无法在XPages ACL名称计算中访问数据源
document1
,因为ACL是首先计算的,然后才是数据源。这就是为什么会出现JavaScript运行时错误

以下是XPages ACL的替代方案:

使用
action=“openDocument”


默认情况下,将以读取模式打开文档

然后在
beforePageLoad
事件中切换到带有
上下文的编辑模式。如果当前用户名在您的字段中,则设置文档模式(“编辑”)



您可能必须更改if子句,具体取决于字段中的实际内容
nextaprover

您无法在XPages ACL名称计算中访问数据源
document1
,因为ACL是首先计算的,然后才是数据源。这就是为什么会出现JavaScript运行时错误

以下是XPages ACL的替代方案:

使用
action=“openDocument”


默认情况下,将以读取模式打开文档

然后在
beforePageLoad
事件中切换到带有
上下文的编辑模式。如果当前用户名在您的字段中,则设置文档模式(“编辑”)



您可能需要根据字段中的实际内容更改if子句
nextaprover

我不确定您所说的“作者项目”是什么意思?你是指与Xpage关联的表单上的Authors字段?我认为这对安全性没有影响。项目通常由表单字段创建,但不一定。用户需要对db拥有作者权限。然后Authors项目决定谁可以编辑文档。我有点迷路。我在表单上放置了Authors和Readers字段,但它们不是crea当我保存文档时,ted。然后,我按照我阅读的说明在postDocumentSave事件中创建项目,但这也不起作用。我试图做的只是允许nextApprover具有对文档的编辑访问权限。这对于使用domino表单构建非常简单。使用
computeWithForm=“onsave”
在您的数据源中。然后,当在表单上定义时,项目类型将是作者。我感谢您的帮助!您在数据源中说使用computeWithForm=“onsave”。您具体在哪里写的?我不确定“作者项目”是什么意思?你是指与Xpage关联的表单上的Authors字段?我认为这对安全性没有影响。项目通常由表单字段创建,但不一定。用户需要对db拥有作者权限。然后Authors项目决定谁可以编辑文档。我有点迷路。我在表单上放置了Authors和Readers字段,但它们不是crea当我保存文档时,ted。然后,我按照我阅读的说明在postDocumentSave事件中创建项目,但这也不起作用。我试图做的只是允许nextApprover具有对文档的编辑访问权限。这对于使用domino表单构建非常简单。使用
computeWithForm=“onsave”
在您的数据源中。当在表单上定义时,项目类型将是作者。非常感谢您的帮助!您可以说使用computeWithForm=“onsave”在数据源中。你具体写在哪里?另一种方法是在计算ACL时基于URL中的UnID获取文档。你可能需要通过将editDocument放入URL中来添加编辑尝试的代码。另外,
setDocumentMode
beforePageLoad
中不起作用,至少在我被迫开发的8.5.2中不起作用lop with lately。它在
afterPageLoad
中起作用。感谢Knut。它起作用了,我能够调整beforePageLoad中的if子句以确定此人是否是组成员等。另一个很好的解决方案是在计算ACL时基于URL中的UnID获取文档。您可能需要添加代码以进行编辑尝试通过在URL中放置editDocument。另外,
setDocumentMode
beforePageLoad
中不起作用,至少在我最近被迫开发的8.5.2中不起作用。它在
afterPageLoad
中起作用。感谢Knut。它起作用了,我能够调整beforePageLoad中的if子句以确定此人是否是gro的成员等等,很好的解决方案
getComponent("nextApprover").getValue();
document1.getValue("nextApprover");