NotesException: неизвестный или неподдерживаемый тип объекта в векторе
Я пытаюсь добавить новые имена в адресную книгу программно, но получаю следующую ошибку:
[TypeError] Возникла исключительная ситуация при вызове метода NotesDocument.replaceItemValue(string, Array) Неизвестный или неподдерживаемый тип объекта в векторе
Фрагмент кода ниже:
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 = Джон Доу /O= Орг
Вместо этого он сохраняется в исходном формате ниже:
Джон Доу / Орг
Я с нетерпением жду ваших предложений. Благодарю.
3 ответа
Вы не можете хранить массив в поле. Делать newg
java.util.Vector вместо этого и интегрировать с этим.
Для OpenNTF Domino API команда написала много кода для автоматического преобразования в Векторы, которые могут охватывать Массивы.
Я смог решить проблему, используя 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();
Объяснение этого поведения будет оценено.
Не используйте массив (который является JS). Инициализируйте это как Вектор.
var newg: java.util.Vector = new java.util.Vectory ();
Затем найдите методы Vector, чтобы увидеть, как добавить этот вектор. Не уверен, что вам придется конвертировать имена, используя метод Name, но я бы сохранил их как "CN=Joe Smith/O=Test Org", чтобы убедиться, что вы получили правильный формат.