NotesException:Vector 中的未知或不受支持的对象类型

NotesException: Unknown or unsupported object type in Vector

我正在尝试以编程方式向地址簿添加新名称,但出现以下错误:

[TypeError] Exception occurred calling method NotesDocument.replaceItemValue(string, Array) Unknown or unsupported object type in Vector

下面的代码片段:

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=John Doe/O=Org

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

John Doe/Org

期待您的建议。谢谢

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

对于 OpenNTF Domino API 团队编写了很多代码来自动转换为向量,其中可能涵盖数组。

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

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();

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