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


Вопрос-ответ

RSS
Главная   Вопрос-ответ   Как Lotus Notes поддерживает иерархию документов

Как Lotus Notes поддерживает иерархию документов

Вопрос:

Добрый день.
Наткнулся на Ваш замечательный ресурс совсем недавно и был очень обрадован наличием столь доступной, объёмной и «понятливой» информации. Я думаю, что к моему мнению подпишутся многие из новичков Лотуса, так как ресурсов для начинающих не существует толком, а Ваш сервис подходит и для специалистов, и для полных мемберов ;) Огромное Вам за это спасибо.
Но, естественно, я к Вам не только с благодарностью, а еще и с просьбой =)
Если честно, то я совершенно не понял структуры построения ответных документов. Я просто не понимаю, как это реализуется Лотусом изнутри… а дело в том, что если я не понимаю чего то в вещах, то при столкновении с проблемой лоб-в-лоб я начинаю рождать все новые проблемы. =)

Пример банален и прост. Есть БД «Индустрии». Существуют так называемые постиндустрии и подиндустрии.
Например:

1.Financial Services
1.1 Комерческий Банк (КБ)
1.2 Инвистиционный Банк (IB)
1.3 Управляющая Компания (УК)
1.4 Страхование
1.5 ...
1.6 ...
2.Недвижимость
2.1 Development
2.2 Инвестиционно-строительные компании
2.3 Подрядные организации
2.4 ...
2.5 ...
2.6 ...
3. ...

Причем в последующем предразумевается добавлять и постиндустрии, и характерные для них подиндустрии. Т.е. БД не должна быть постоянной.
Я знаю, что это реализуется посредством построения вида… Но вот проблема с тем, как это сделать пошагово. Одна форма нужна для этого, или две? Если у Вас есть время и желание, то огромная просьба объяснить это как можно подробнее… по этому примеру. Буду чрезмерно благодарен, и в случае, если Вам понадобится какая либо помощь… то я всегда буду рад помочь, чем смогу, посодействовать в чем-то и.т.д.
Заранее огромное спасибо!

С уважением, Николай.

Ответ:


Николай, добрый день!
Довольно-таки сложно полностью ответить на Ваши вопросы

Самый простой ответ:
Признак респонсного документа - наличие специального поля $REF специального типа Response Reference List со значением 32-байтного числа, содержащего UNID родительского документа

Вся иерархия в представлениях строится исходя из этого признака
Ответный документ может иметь только одного родителя

Это самое очевидное
Теперь дополнительно:
Интерфейсом Lotus Domino Designer предусмотрено три типа документов:
главный документ,
ответ
ответ на ответ

Тонкость различия между вторым и третьим типами заключается в том, что при создании документа из иерархического представления
по форме типа ответ документ становится не респонсом к текущему документу, а респонсом к главному документу иерархии (если это не одно и то же)
В прочих случаях (создание не из иерархического представления, создание из интерфейса документа) что ответ, что ответ на ответ создают документ следующего уровня иерархии
Не помню, имел ли я когда необходимость использования описанной детали, поэтому могу сказать, что всегда для меня есть два типа формы: главный документ и ответ на ответ
Но это ещё не всё.
Собственно, форма не прибита на гвоздях к документу, документ можно создавать/открывать по любым формам. Но если открываешь респонсный документ по главной форме, а потом сохраняешь его, то поле $REF удаляется (документ перестаёт быть ответом). В обратном случае (открытие главного документа по респонсной форме) интерфейс Notes не даёт сохранить документ, выдавая ошибку.
Но... предусмотрено замечательное интерфейсное поле $RefOptions, которое блокирует обработку типа документа
В этом случае нам становится нужна всего одна форма (главный документ) и размещённое в ней computed-for-display текстовое поле с формулой примерно такого вида @If(@IsAvailable($Ref); "1"; "0")


Дальше можно усложнить задачу
Есть некоторые структуры, для которых не всегда подходит однозначная иерархия Главный документ - Ответ
Известен следующий приём, когда значение поля $Ref копируется в другое поле (допустим, Ref1), а само поле вычищается из документа
В этом случае системная иерархия главный документ - документ-ответ отсутствует, она существует только в конкретном приложении, но разработчик может создать на основе этих значений иерархическое представление какой ему нужно иерархии сущностей
Для этого в формуле отбора представления определяется дефолтное значение $REF
DEFAULT $REF := Ref1 - в одном представлении для создания одной иерархии
DEFAULT $REF := Ref2 - а в другом представлении иерархия может быть вывернута "с ног на голову"

Но я увлёкся, рассказывая о неочевидных вещах
Здесь, мне кажется, Вы можете поэкспериментировать с одной формой и полем $RefOptions (только в этом случае поле $REF надо будет прописывать при создании документа) либо сделать стандартно две формы.
Ну и представление с взведённой галочкой Show response documents in hierarchy задаст нужную иерархию документов (остальные красивости - twisties - в свойствах столбца)

Успехов!
Николай Норкин
 
  Опубликовано — 10/17/2008 |    

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