我有一个配置文档,我在其中使用单个字段来存储分配给评估某些文书工作的评估者的姓名。在 LotusScript 中,我能够将这些 NotesNames 发送到缩写名称中以构建我的列表,而无需过多的争论。NotesNames 数组将用于组合框中,以允许用户选择评估者姓名。
Function getEvaluatorSelections As Variant
Dim evaluatorArray As Variant
ReDim evaluatorSelections (0) As String
Dim count As Integer
Dim evalName As NotesName
count = 0
evaluatorArray = DetermineMultiValueKeyword ("EVALUATORS")
ForAll entries In evaluatorArray
ReDim Preserve evaluatorSelections (count)
Set evalName = New NotesName ( entries )
evaluatorSelections (count) = evalName.Abbreviated
count = count + 1
End ForAll
If count = 0 Then
getEvaluatorSelections = username
Else
getEvaluatorSelections = evaluatorSelections
End If
End Function
当我在 XPages 中做同样的事情时,我从一个 Vector 开始,并且并不真正了解如何编写 SSJS,这让我受阻。
var thisdb = session.getCurrentDatabase();
var dbProfileView = thisdb.getView("dbprofile");
var evaluatorDoc = dbProfileView.getDocumentByKey("EVALUATORS");
var evaluatorVector:Vector = evaluatorDoc.getItemValue("Value");
return evaluatorVector.toArray();
这将返回完全可分辨的名称,这对我来说已经足够了,但肯定不是客户希望看到的。
我试图将向量值放入一个数组并获取缩写名称,但不断收到错误 500,并带有以下代码的变体:
var thisdb = session.getCurrentDatabase();
var dbProfileView = thisdb.getView("dbprofile");
var evaluatorDoc = dbProfileView.getDocumentByKey("EVALUATORS");
var evaluatorVector:Vector = evaluatorDoc.getItemValue("Value");
var evaluatorArray = new Array (evaluatorVector.toArray());
var returnArray = new Array();
var evalNames:NotesName;
for(var i=1;i<evaluatorArray.length;i++){
evalNames = New NotesName ( evaluatorArray[i] );
returnArray[i] = evalNames.getAbbreviated();
}
return returnArray();
如何在 SSJS 中复制我在 LotusScript 中的内容?还是我完全采取了错误的方法?