Помощь нубу

  • Автор темы Автор темы beloff
  • Дата начала Дата начала
  • Теги Теги
    xpages
варнинг - поХ
а эррор не даст скомпИлится хоть ты тресни)))
у тебя страничка скомпилена ДО первого эррора, всё , что позже - в расчёт не принимается
это эроры по другим базам, в этой все ок

кстати о птичьках:
@Word (JavaScript)
Returns a word from a string.
@Word(value:string, separator:string, n:int) : string
такшта, всё короче (вот не пользовался, и ваще собак в JS забываю, а они шустрее :)
это тоже видел только оно тоже не работает (пустое место выдает)
 
это тоже видел только оно тоже не работает (пустое место выдает)
работает, но раз пустоту выдаёт, значь пустота на входе или штота невнимательно делал
я смотрю, ты ток 1 кусок стринги берёшь и 1 раз, тада луче сразу в computedfield положить @Word(document1.getItemValueString('AuthorName'),'*',2);
без буферного эдитбокса
 
  • Нравится
Реакции: Vertigo и beloff
работает, но раз пустоту выдаёт, значь пустота на входе или штота невнимательно делал
я смотрю, ты ток 1 кусок стринги берёшь и 1 раз, тада луче сразу в computedfield положить @Word(document1.getItemValueString('AuthorName'),'*',2);
без буферного эдитбокса
отработало, за это наше вам нижайшее. (y)

Вопрос следующий:
внутри существующего документа сделал кнопку. По кнопке должен выходить новый документ с передачей данных в поля из родительского. С чего начать?
 
точно так же, как в классике, ток SSJS - создай док, запиши чёнадо, сохрани
var doc = database.createDocument(); //это current database естественно, если в другую - её надо сначала получить (так же, как и в LS)
doc.form = "myform";
doc.field = document1.field
......
doc.save()
ток не забывай, что всякая фигня, типа - document1.field с твоей странички, это инфа в бекэенде - в памяти на сервере, соотв. чтоб её получить оттуда, её надо туда сначала отправить) (если они на страничке изменялись\вычислялись\редактировались)
обычно, в общем случае, эти айтемы должны быть отрефрешены
------------------------
если хочется в CSJS, используй REST service (в экстеншин лайбрари он) - тогда можешь без рефрешей брать инфу со страничке (прям, которую видишь на экране)
это лучшая практика ИМХО (произвольная и удобная комбинация клиентского и серверного JS)
такшта почитай про него - примеров в инете море на любой вкус

если не читал, почитай, там и твой последний вопрос есть
 
Последнее редактирование:
не секонд едишн ли часом надыбал?) а то поделись...
Second Edition - это вообще не книга, а дополнение к первой книге. Там всего одна глава "Xpages Mobile Application Development". Конечно, может быть это "демо" вариант какой-нибудь, но по крайней мере я других нигде не видел.
 
Second Edition - это вообще не книга, а дополнение к первой книге. Там всего одна глава "Xpages Mobile Application Development". Конечно, может быть это "демо" вариант какой-нибудь, но по крайней мере я других нигде не видел.
Не, ты рекламу видел
 
принт я видел, только что он куда пишет хз, в хелпе написано в какой то лог, где этот лог
Почитай про view.postScript(alert(.....
Вызывает csjs from ssjs
Это и в дальнейшем будет полезно, штоп комбинировать северный и клиентский js
А ващета, можешь писать в какойнить временное поле или диалогбокс
 
var db:NotesDatabase = session.getCurrentDatabase();
var dbpd:NotesDatabase = sys.getDb("pd");
var doc = currentDocument.getDocument();
var docpd = dbpd.createDocument();
docpd.Form = "Request";
docpd.Curator = "**" & doc.getItemValueString("RqOwnerAddress1");
docpd.AddAccessFromDocSourceRead = doc.RqOwnerTeamMemberAddrs;
docpd.RequestName = doc.RequestName;
docpd.RequestCode = doc.RequestNumber;
docpd.Client = doc.RCustomerCompany;
docpd.ClientID = doc.RCustomerCompanyID;
docpd.LinkOnDocSource = "Requests"
docpd.SourceDbServer = db.getServer();
docpd.SourceDbPath = db.getFilePath();
docpd.DocSourseID = doc.Universalid;
var pageId = appConfig.getString("page_pd_form");
sys.createDoc(pageId);

что-то не передает значения в новый документ из текущего. doc.getItemValueString("RqOwnerAddress1") вывел в компутедполе - значение есть. Что я делаю не так?
 
1 var db:NotesDatabase = session.getCurrentDatabase();
2 var dbpd:NotesDatabase = sys.getDb("pd");
3 var doc = currentDocument.getDocument();
4 var docpd = dbpd.createDocument();
5 docpd.Form = "Request";
6 docpd.Curator = "**" & doc.getItemValueString("RqOwnerAddress1");
docpd.AddAccessFromDocSourceRead = doc.RqOwnerTeamMemberAddrs;
docpd.RequestName = doc.RequestName;
docpd.RequestCode = doc.RequestNumber;
docpd.Client = doc.RCustomerCompany;
docpd.ClientID = doc.RCustomerCompanyID;
docpd.LinkOnDocSource = "Requests"
docpd.SourceDbServer = db.getServer();
docpd.SourceDbPath = db.getFilePath();
docpd.DocSourseID = doc.Universalid;
var pageId = appConfig.getString("page_pd_form");
sys.createDoc(pageId);

что-то не передает значения в новый документ из текущего. doc.getItemValueString("RqOwnerAddress1") вывел в компутедполе - значение есть. Что я делаю не так?
вижу много недопониманий (тут и мой косяк - с сокращёнными записями(( )...
давай разбирацца, по шагам:
1 объект database всегда определён на странице и это - текущая БД, откуда взяли страничку
соотв. var db:NotesDatabase = session.getCurrentDatabase(); - не нужно
2 "var dbpd:NotesDatabase = sys.getDb("pd");" - что за объект sys? и метод getDb()?, я их не вижу, наверно их нету?)
var dbpd = session.getDatabase(database.getServer(),'pd',false); //взяли БД с того же сервера, или session.getDatabase('','pd',false) - если надо с локального компа
3 надо использовать тот (или один из ...) датасорс, кот. определён на страничке, он, обычно обзывается document1 (document2 и тд., если по умолчанию)
если датасорс на страничке НЕ определён, currentDocument НЕ существует в этом контексте (тогда док надо брать из базы напрямую, напр по ID)
4 - норм
5 docpd.replaceItemValue('Form', 'Request');
6 docpd.replaceItemValue('Curator', document1.getItemValueString('RqOwnerAddress1'));//document1 - нужный датасорс
и т.д.....
....
docpd.save(); //сохранили док в БД "pd" на текущем сервере
 
Последнее редактирование:
вижу много недопониманий (тут и мой косяк - с сокращёнными записями(( )...
давай разбирацца, по шагам:
1 объект database всегда определён на странице и это - текущая БД, откуда взяли страничку
соотв. var db:NotesDatabase = session.getCurrentDatabase(); - не нужно
2 "var dbpd:NotesDatabase = sys.getDb("pd");" - что за объект sys? и метод getDb()?, я их не вижу, наверно их нету?)
var dbpd = session.getDatabase(database.getServer(),'pd',false); //взяли БД с того же сервера, или session.getDatabase('','pd',false) - если надо с локального компа
3 надо использовать тот (или один из ...) датасорс, кот. определён на страничке, он, обычно обзывается document1 (document2 и тд., если по умолчанию)
если датасорс на страничке НЕ определён? currentDocument НЕ существует в этом контексте (тогда док надо брать из базы напрямую, напр по ID)
4 - норм
5 docpd.replaceItemValue('Form', 'Request');
6 docpd.replaceItemValue('Curator', document1.getItemValueString('RqOwnerAddress1'));//document1 - нужный датасорс
и т.д.....
....
docpd.save(); //сохранили док в БД "pd" на текущем сервере
also der Reiche nach
2 "var dbpd:NotesDatabase = sys.getDb("pd");" - что за объект sys? и метод getDb()?, я их не вижу, наверно их нету?).
это другая база, берется по скрипту из библиотеки (функция sys метод getDb). База получается, я на компутед выводил этой базы getFilePath() и оно все выводило верно, т.е. другая база получена все ок.
3. документ датасорс это текущий документ, тут все определено верно, просто нужно передать значения из текущего датасорса в новый документ который создается в другой базе dbpd.

остальное поэл, щас переделаю

вижу много недопониманий (тут и мой косяк - с сокращёнными записями(( )...
вопрос еще: как новый док поcле сохранения открыть на edit?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!