Bax*_*XTR 1 xpages xpages-ssjs
我在我的组合框值中执行了以下代码,但它是空的虽然我确实将一些用户放入了带有"Reviewer"角色的ACL中:
var arr=new Array();
var acl:NotesACL=database.getACL();
var acle:NotesACLEntry=acl.getFirstEntry();
while(acle.getRoles().contains('[Reviewer]')){
arr.push(acle.getName());
acle=acl.getNextEntry(acle);
}
return arr;
Run Code Online (Sandbox Code Playgroud)
我的数据库在服务器上.我正在使用8.5.3 FP3 UP1.
您列出的代码将在遇到未启用指定角色的条目时立即退出while循环.因此,如果第一个条目没有角色,它将永远不会进入循环.我建议对代码进行三处更改:
new Array()...... [ ]而是使用.除了每次只输入更少的字符外,在浏览器中,数组文字的表现更好,所以即使在SSJS中也存在这种习惯,因为SSJS的性能差异不太明显.同样,虽然这与您的具体示例无关,但请勿使用new Object(); 只是用{ }.acle来null,并检查作用内部循环.这将确保返回具有指定角色的所有条目,而不管它们在ACL中的顺序如何.将三个更改放在一起,修改后的代码如下所示:
var arr = [ ];
var acl:NotesACL=database.getACL();
var acle:NotesACLEntry=acl.getFirstEntry();
var nextEntry:NotesACLEntry = null;
while(acle != null){
if (acle.getRoles().contains('[Reviewer]')) {
arr.push(acle.getName());
}
nextEntry = acl.getNextEntry(acle);
acle.recycle();
acle = nextEntry;
}
return arr;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1038 次 |
| 最近记录: |