Войти
 
 
   
 
  
Новости Notes.ру Библиотека Биржа труда Вопрос - ответ Форум Регистрация Поиск О проекте
Разделы
Вся лента вопрос-ответ
Рубрики
   Разработка notes-приложений
   Разработка web-приложений
   Администрирование Notes&Domino
   Почта Lotus Domino
   Общие вопросы
 
Дополнительные инструменты в панели инструментов   
Шаблоны и примеры Читать статью
 
Классы для работы со стабами удалённых документов для Windows64   
Шаблоны и примеры Читать статью
 
Базовые компоненты XPages Extension Library: Widget Container   Серия статьей дающая представление о базовых компонентах Extension Library, их основных свойствах и мест применения
О Notes Читать статью
 


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

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 |    

Мероприятия
18.12.2012   Опыт реализованных проектов на базе технологий IBM
24.10.2012   Решения IBM для построения надежной ИТ-инфраструктуры и сервисов
09.10.2012   Форум «Ударим СЭДом по бездорожью, разгильдяйству и непрозрачным бизнес-процессам! Система электронного документооборота CompanyMedia 4.0: вперед в будущее!»
Пресс-релизы
02.06.2011   ООО "АДБ.РУ" выпустило очередную версию системы управления контентом для Lotus Domino - Logosphere 2.7.
21.01.2010   Компания «Поликом Про» выполнила для компании «Синергия» пилотный проект по внедрению системы защиты электронной почты IBM Lotus Protector for Mail Security
22.12.2009   Новые технологии разработки приложений на базе Lotus Domino
Биржа труда
18.04.2012 - разработчик Lotus Notes (ОАО "УРАЛСИБ")
26.07.2011 - Программист Lotus (удаленная работа) ()
06.06.2011 - Эксперт (Lotus Notes/Domino) (Крупный банк (ТОП-5))
Последнее на форуме
 
А так же:
Как удалить профиль?
16.04.2016 00:08:51
Скопировать в буфер поле документа
24.05.2015 08:55:52
Импорт DXL-описания документов в Lotus Domino. Одноимённые поля
16.04.2015 16:49:58
 
© LOGOSPHERE.RU