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", чтобы убедиться, что вы получили правильный формат.

Другие вопросы по тегам