Xpages NotesException:矢量中的对象类型未知或不受支持

Xpages NotesException:矢量中的对象类型未知或不受支持,xpages,xpages-ssjs,domino-designer-eclipse,ssjs,Xpages,Xpages Ssjs,Domino Designer Eclipse,Ssjs,我试图以编程方式向通讯簿添加新名称,但出现以下错误: 调用方法NotesDocument.replaceItemValue(字符串,数组)时发生[TypeError]异常 矢量中的对象类型未知或不受支持 下面的代码片段: var addressBook = session.getDatabase("","names.nsf"); var gView:NotesView = addressBook.getView("($VIMGroups)"); var gDoc:NotesDocument =

我试图以编程方式向通讯簿添加新名称,但出现以下错误:

调用方法NotesDocument.replaceItemValue(字符串,数组)时发生[TypeError]异常 矢量中的对象类型未知或不受支持

下面的代码片段:

var addressBook = session.getDatabase("","names.nsf");
var gView:NotesView = addressBook.getView("($VIMGroups)");
var gDoc:NotesDocument = gView.getDocumentByKey("groupName", true);

var newg:java.util.Vector = [];
var mems:java.util.Vector = new Array(gDoc.getItemValue('Members'));
newg.push(mems);

var newNames:java.util.Vector = new Array(getComponent("NewMems").getValue());
newg.push(newNames);

gDoc.replaceItemValue("Members", newg);
gDoc.save();
添加单个用户可以很好地工作,但它不会以下面所需的规范格式保存用户:

CN=johndoe/O=Org

而是以以下原始格式保存:

John Doe/Org


我期待你的建议。谢谢。

您不能在字段中存储数组。将
newg
改为java.util.Vector并与之集成


对于OpenNTF Domino API,该团队编写了大量代码来自动转换为向量,这可能涉及数组。

不能在字段中存储数组。将
newg
改为java.util.Vector并与之集成

对于OpenNTF Domino API,该团队编写了大量代码来自动转换为向量,这可能涉及数组。

不要使用数组(这是JS的东西)。将其初始化为向量

var newg:java.util.Vector=new java.util.Vectory()

然后查找Vector方法,查看如何添加到该向量。不确定是否必须使用Name方法转换名称,但我会将它们存储为“CN=Joe Smith/O=Test Org”,以确保获得正确的格式。

不要使用数组(这是JS的东西)。将其初始化为向量

var newg:java.util.Vector=new java.util.Vectory()


然后查找Vector方法,查看如何添加到该向量。不确定是否必须使用Name方法转换名称,但我会将它们存储为“CN=Joe Smith/O=Test Org”,以确保您获得了正确的格式。

我能够使用forloop循环列表并将其推入新创建的数组来解决此问题。使用forloop似乎会有所不同

var newg = [];
var group = new Array(getComponent("NewMems").getValue()), lenGA = group.length;
for(i = 0; i < lenGA; i++){
   newg.push(group[i]);
}
gDoc.replaceItemValue("Members", newg);
gDoc.save();
var newg=[];
var group=newarray(getComponent(“NewMems”).getValue()),lenGA=group.length;
对于(i=0;i

对此行为的解释将不胜感激。

我使用forloop循环列表并将其推送到新创建的数组中,从而解决了这个问题。使用forloop似乎会有所不同

var newg = [];
var group = new Array(getComponent("NewMems").getValue()), lenGA = group.length;
for(i = 0; i < lenGA; i++){
   newg.push(group[i]);
}
gDoc.replaceItemValue("Members", newg);
gDoc.save();
var newg=[];
var group=newarray(getComponent(“NewMems”).getValue()),lenGA=group.length;
对于(i=0;i

对此行为的解释将不胜感激。

是的,我现在已经向变量添加了类型,但仍然得到相同的结果。这是因为您将其声明为向量,但将其初始化为数组。所以它仍然是一个数组。循环和推送值似乎产生了期望的结果。非常感谢您的建议。是的,我现在向变量添加了类型,但仍然得到相同的结果。这是因为您将其声明为向量,但将其初始化为数组。所以它仍然是一个数组。循环和推送值似乎产生了期望的结果。非常感谢你的建议。