К основному контенту

Использование @-Формул семейства @DocChildren

Возникающие задачи подтолкнули к мысли об использовании @-функции @DocChildren. До этого особо не сталкивался с данной функцией и другими из ее семейства, по крайней мере по серьезным вопросам. И вот момент настал...

Статья касается не только @DocChildren, но и:
@DocDescendants
@DocLevel
@DocNumber
@DocParentNumber
@DocSiblings


Мне потребовалось не только получить визуальный результат наличия респонзов первого уровня, но и обработать их. Как и ожидалось - визуально определялось все корректно, но когда дело дошло обработки - начались проблемы. Результат использования в формуле не давал никакого результата.

Согласно Designer's Help у функции есть ограничения, но их описание меня не смутило:
1. Перевести результат в число нельзя
2. Функцию можно использовать только в названии окна (Window Title) и формулах колонок представлений (View column formulas)
3. Функция не работает в какой-либо другой формуле.

По идее, должно было смутить 3-е ограничение, но я посчитал, что речь идет об использовании где-либо еще, кроме названий окна и колонок. Оказалось, что это не так. Обработать результат данной функции не возможно в какой-либо формуле. Это печально, но решаемо другими средствами (см. ниже); меня больше волновал вопрос - почему?

Наиболее развернуто ответ звучит следующим образом:
Все перечисленные функции отрабатывают только после построения представления (View) на машине пользователя, т.к. понятное дело, что пользователь может иметь доступ не ко всему набору документов и результат работы функции для двух человек может быть разным. При построении представления (View):
1. Идет расчет формул в колонках
2. Сортировка полученного результата (без результатов формул сортировка не возможна)
3. Расчет специальных функций - тех, которые рассмотрены здесь - поскольку их результат не может быть вычислен до сортировки представления.

Соответственно при расчете формулы в колонке, значение специальной функции не известно и не может быть принято в расчет.

Вывод:
Использование специальных функций возможно, по-большому счету, только для визуального отображения результата в колонке или названии окна. Каких-либо манипуляций (использование в формуле) с результатом провести не получится, т.к. результат выполнения спец. функций на момент расчета формул в колонке не известен.

Workaround, или как это обойти:
Достаточно простой и очевидный способ обойти данную неприятность - по факту сохранения ответного документа, производить манипуляции с родительским: считать кол-во ответных документов, писать их юниды, просто фиксировать факт наличия ответных документов и т.д.

Источники, полезные ссылки:

Контакты:

Комментарии

Популярные сообщения из этого блога

Занимательные алгоритмы. Поиск цикла в односвязном списке

И снова про тараканов, которые иногда возникают в голове. Как-то раз, засыпая, я задумался на курьезными задачками из своей сферы деятельности (Lotus Notes), которые можно было бы задать на собеседовании, плавно перешел к воспоминаниям о своих первых собеседования, когда опыта работы еще не было. Опыт самих собеседований у меня не велик а места, где задавались действительно интересные задачи (а не задачки типа: написать сортировку массива любым известным способом) вообще равны одному - это ABBYY. Как минимум одна задачка в списке на знание и понимание классических алгоритмов, описанных в книге Дональда Кнута -  Искусство программирования .

Unit-testing object validation when validator has DI

Summary Unit test object validation when validator(s) has a dependency. For instance, we have some custom field and cross-field validators. Want to test their combination. Additionally some of validators have dependencies, injected through constructor or setters. You're not using property injection, right? Shortcut If you are just searching for an answer, here's the fast way: Declare CustomConstraintValidatorFactory that implements javax.validation.ConstraintValidatorFactory Override getInstance method and on facing your constraint validator class instantiate it Otherwise delegate validator construction to org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorFactoryImpl Build validator factory and provide it your CustomConstraintValidatorFactory Build validator, using that factory... Go to demo project on GitHub for details:  https://github.com/MrArtemAA/blog-demos/blob/master/test-validator-with-injection/src/test/java/ru/artemaa/d

Lotus Notes FAQ. 8/9 Eclipse. Как настроить уведомления о Sametime сообщениях

Н а написание данной "инструкцию" натолкнул мой коллега. Помню, первый раз сам долго искал, как отключить постоянно выпрыгивающие уведомления о новых сообщениях в Sametime. И так, речь идет о клиентах IBM Notes 8+ версии Standart (Eclipse based). Как настроить уведомления о Sametime сообщениях?