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

时间:2018-10-05 15:23:08

标签: xpages xpages-ssjs domino-designer-eclipse ssjs

我正在尝试以编程方式向通讯录中添加新名称,但出现以下错误:

  

[TypeError]调用方法NotesDocument.replaceItemValue(string,Array)发生异常   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 /组织

我期待您的建议。谢谢。

3 个答案:

答案 0 :(得分:2)

您不能在字段中存储数组。将export default { viewModel: NavMenuViewModel, template: { mycustomerajaxloader: 'Home/NavMenu'} }; 改为java.util.Vector并与之集成。

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

我能够使用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();

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