Войти
 
 
   
 
  
Новости Notes.ру Библиотека Биржа труда Вопрос - ответ Форум Регистрация Поиск О проекте
Разделы
О Notes
Советы
Шаблоны и примеры
Литература
Презентации
 
Всё о задаче AdminP. Часть вторая   Во второй части мы завершаем рассмотрение AdminP. В ней рассмотрены запросы междоменного администрирования и способы управления функциями AdminP с помощью настроек документа сервера, команд консоли сервера, файла Notes.ini и интервалов очистки базы данных. В этой статье предполагается, что вы опытный администратор Domino и прочитали первую часть
О Notes Читать статью
 
Всё о задаче AdminP. Proxy-действия в R5 и Domino 6   Приложение к статье об административном процессе
О Notes Читать статью
 
Всё о задаче AdminP. Часть первая   Перевод классической статьи 2003-его года о задаче административного процесса (AdminP). Очень полезна для понимания работы механизма этой задачи. В первой части статьи описаны компоненты задачи AdminP, как они работают, и как их использование помогает сделать работу администратора Domino проще. Задача AdminP (сакращённо от Administration Process, Административный процесс) работает с базой административных запросов (Administration Requests, admin4.nsf)
О Notes Читать статью
 


Советы

Главная   Библиотека   Советы

Переход на R6. Проблема с представлениями в браузере.

Степан Карандин
Проблема
В подавляющем большинстве веб-приложений, построенных на Domino, используются представления. Наиболее простой вариант реализации перехода между порциями документов в виде заключается в использовании пары команд @DbCommand( "Domino" ; "ViewPreviousPage" ) и @DbCommand("Domino";"ViewNextPage")




В процессе размещения Notesnet.ru на сервере для хостинга (предоставлен компанией ADB.RU) мы столкнулись с проблемой. Решение, корректно работающее на Domino R5, привело в случае использования R6.0(Linux) к странным результатам. Например, при переходе ко второй порции документов параметр Start в URL принимал значение "3.22" вместо положенных "20". В процессе анализа было определено, что:
  • в документации сказано, что работать должно
  • свойство БД Web access:Use Java script when generating pages не влияет на симптомы
  • изменение настроек Embedded View не помогло
  • проблема описана неоднократно коллегами на различных форумах

Исходя из результатов анализа, было решено сделать "заплатку". Нам известно, что "маркетинговая особенность" проявляется только на сервере R6. Следовательно, разделим реализацию на две ветви:

1. создадим вычисляемую subform
_version:=@If(@TextToNumber(@Version)>166;"6";"5");
"subform_"+_version

2. в subform, предназначенную для R5, копируем работающий код.

Для манипуляций в R6 используем URL-команды и параметры Domino. Для открытия вида требуется указать его идентификатор, номер документа, с которого начинать вывод(start), а также количество выводимых документов(count). В R6 появилось некоторое количество новых функций, полезных для разработчиков веб-приложений. Одна из них @UrlQueryString, позволяющая "разобрать" параметры запроса без особых усилий со стороны разработчика. Мы будем использовать ее для того, чтобы определить отправную точку.

В созданной subform для R6 помещаем HTML код:
<a href=<computed value 1>!opendocument<computed value 2a>>&lt;&lt;&lt;Назад</a>&nbsp;|&nbsp
<a href=<computed value 1>!opendocument&start=<computed value 2b>>Вперед&gt;&gt;&gt;</a>

В первом Computed text необходимо вычислить текущий URL. Как возможный вариант допустимо использование следующего кода: @ReplaceSubstring(@ReplaceSubstring (@ReplaceSubstring(path_info;query_string;"");"!";"");"?";""). Для формирования параметров запроса используется второй Computed text, но имеются некоторые отличия между случаями перехода на предыдущую порцию и следующую, поэтому необходимо два варианта.

Computed text 2a:
_pos:=@TextToNumber(@UrlQueryString("start"));
_nextpos:=@If(_pos>20;_pos-20;1);
@If(@IsError(_nextpos);"";"&start="+@Text(_nextpos))

Computed text 2b:
_pos:=@TextToNumber(@UrlQueryString("start"));
_nextpos:=@If(@IsError(_pos);1;_pos);
@Text(_nextpos+20)

В приведенных примерах подазумевается, что количество документов в порции равно двадцати, но при необходимости это число может вычисляться динамически... но это уже совсем другая история.
 
  Опубликовано — 04/24/2003 |    



Добавить комментарий
Имя * :
e-mail
Комментарий * :
Код подтверждения * :

Мероприятия
Пресс-релизы
Биржа труда
Последнее на форуме
 
А так же:
Как удалить профиль?
16.04.2016 00:08:51
Скопировать в буфер поле документа
24.05.2015 08:55:52
Импорт DXL-описания документов в Lotus Domino. Одноимённые поля
16.04.2015 16:49:58
 
© LOGOSPHERE.RU