2014-12-11 4 views
1

У меня есть функция повторного управления с кнопками для выбора или отмены выбора различных документов - это работает, и я могу идентифицировать каждый выбранный документ с помощью идентификатора doc. У меня есть еще одна кнопка со следующим SSJS. Для выбранных документов я хочу установить поле в базовом документе. Этот скрипт работает, если я делаю простой doc.removePermanently (true) ... но не, если я пытаюсь манипулировать общим значением поля для выбранных документов. Я получаю сообщение об ошибке 500 HTTP Web Server: исключение из командной строки. Каков правильный способ сделать это?XPages setfield from view selection

var docsForAction = sessionScope.get("myList"); 
var doc:NotesDocument; 
for(i=0; i < docsForAction.length; i++){ 
    doc = database.getDocumentByUNID(docsForAction[i]); 
    doc.setValue("Level","10"); 
    } 
docsForAction = []; 
viewScope.put("myList", docsForAction); 
context.reloadPage(); 
+0

Вы не сохранили изменения с помощью doc.save(); –

+0

Я удалил doc.save(); в тестировании ... но с такой ошибкой или без нее. –

+3

Попробуйте использовать 'doc.replaceItemValue (" fld "," val ")' вместо 'doc.setValue()'. Не думайте, что этот метод существует в NotesDocument. –

ответ

1

Возможно, вы получили ошибку 500, потому что у вас нет страницы с ошибкой. Перейдите в Xsp Properties и отметьте «Отобразить страницу ошибки по умолчанию». Затем вы получите более значимую страницу ошибок.

Ошибка, которую вы увидите, вероятна в строке setValue(), причем сообщение имеет значение «null». Это потому, что setValue() не является методом NotesDocument, это метод источника данных dominoDocument (эквивалент XPages «NotesUIDocument», если вы знаете LotusScript).

Выполнение переменной (добавление «: NotesDocument») является хорошим, потому что оно позволяет вам использовать поддержку типа head в редакторе SSJS или в исходной панели. Это даст вам список допустимых методов и допустимые типы параметров.

+0

Благодарим вас за предложения Павла ... все очень полезно. Использование метода replaceItemValue («поле», «значение») решило мою проблему. –