Xpages 如何使用@unique()在SSJS中生成像unique string这样的注释?

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中生成类似的结果,以便在创建新文档时为其

在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代码:

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中。。。。