Xpages 如何使用@unique()在SSJS中生成像unique string这样的注释?
在Notes公式中,@Unique函数根据Notes用户的ID名称和时间返回唯一字符串。因此,当我在Notes中创建多个文档时,唯一字符串的第一部分总是源自我的名字Paul Della NebbiA,如下所示: PDNA-AJBQYD PDNA-AJBYL PDNA-AJBJN 如果我使用不同的ID App DEV2登录Notes,@Unique字符串的第一部分如下所示: ADEV-AJBZG ADEV-AJBQZQ ADEV-AJBQS 我希望在SSJS中生成类似的结果,以便在创建新文档时为其生成唯一标识符。但是,@Unique()字符串的第一部分似乎总是从服务器和域名派生而来 下面是我用来生成唯一id的SSJS代码:Xpages 如何使用@unique()在SSJS中生成像unique string这样的注释?,xpages,xpages-ssjs,Xpages,Xpages Ssjs,在Notes公式中,@Unique函数根据Notes用户的ID名称和时间返回唯一字符串。因此,当我在Notes中创建多个文档时,唯一字符串的第一部分总是源自我的名字Paul Della NebbiA,如下所示: PDNA-AJBQYD PDNA-AJBYL PDNA-AJBJN 如果我使用不同的ID App DEV2登录Notes,@Unique字符串的第一部分如下所示: ADEV-AJBZG ADEV-AJBQZQ ADEV-AJBQS 我希望在SSJS中生成类似的结果,以便在创建新文档时为其
newdoc.replaceItemValue("AssignmentId",session.evaluate("@Unique").elementAt(0) );
那么,在SSJS中有没有办法让@Unique()像在Notes中一样工作,并根据经过身份验证的用户名生成前四个字符呢?也许你可以通过Java试试?在我的代码中,我使用了
java.util.UUID.randomUUID().toString()
也许你可以通过java试试?在我的代码中,我使用java.util.UUID.randomUUID().toString()
这可能是一个很长的过程,但我在我的环境中使用它来模拟Notes的唯一ID
var user = @Name("[CN]",session.getEffectiveUserName());
var last = @UpperCase(@Right(user," "));
var first = @UpperCase(@Left(user," "));
var a = @Left(first,1);
var b = @Left(last,2);
var c = @Right(last, 1);
var id = session.evaluate("@Unique").elementAt(0);
var d = @Right(id,6);
if (user == "Anonymous") {
return id;
}else{
a + b + c + "-" + d;
};
这可能还有很长的路要走,但这是我在环境中用来模拟Notes唯一ID的东西
var user = @Name("[CN]",session.getEffectiveUserName());
var last = @UpperCase(@Right(user," "));
var first = @UpperCase(@Left(user," "));
var a = @Left(first,1);
var b = @Left(last,2);
var c = @Right(last, 1);
var id = session.evaluate("@Unique").elementAt(0);
var d = @Right(id,6);
if (user == "Anonymous") {
return id;
}else{
a + b + c + "-" + d;
};
我从Java方面使用了
evaluate
方法,效果很好。如果您使用的是OpenNTF domino API,他们会添加一个方法session.getUnique()来解决这个问题。至少在Java中……我从Java方面使用了evaluate
方法,效果很好。如果您使用的是OpenNTF domino API,他们添加了一个方法session.getUnique(),解决了这个问题。至少在Java中。。。。