NotesException: неизвестный или неподдерживаемый тип объекта в векторе - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь программно добавить новые имена в адресную книгу, но получаю следующую ошибку:

[TypeError] Возникла исключительная ситуация при вызове метода NotesDocument.replaceItemValue (string, Array) Unknownили неподдерживаемый тип объекта в векторе

Фрагмент кода ниже:

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

С нетерпением жду ваших предложений.Спасибо.

Ответы [ 3 ]

0 голосов
/ 05 октября 2018

Не используйте Array (который является JS).Инициализируйте его как Vector.

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

Затем найдите методы Vector, чтобы увидеть, как добавить к этому вектору,Не уверен, что вам придется конвертировать имена, используя метод Name, но я бы сохранил их как "CN = Joe Smith / O = Test Org", чтобы убедиться, что вы получили правильный формат.

0 голосов
/ 08 октября 2018

Мне удалось решить эту проблему с помощью 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();

Объяснение этого поведения приветствуется.

0 голосов
/ 05 октября 2018

Вы не можете хранить массив в поле.Вместо этого сделайте newg java.util.Vector и интегрируйте с ним.

Для OpenNTF Domino API команда написала много кода для автоматического преобразования в Векторы, которые могут покрывать массивы.

...