我正在尝试以编程方式向通讯录中添加新名称,但出现以下错误:
[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 /组织
我期待您的建议。谢谢。
答案 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();
对此行为的解释将不胜感激。