Разработка в Lotus (очень старая тема)

  • Автор темы Fossil Code
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

GROMILA

Для: Constantin A Chervonenko

Здравствуйте, Константин. Во многом учился на Ваших форумовских ответах, но вот неоднократно встречающееся мнение по поводу невозможности репликации в реляционных СУБД не совсем понимаю.

Репликация в РСУБД (Oracle и MSSqlServer) настраивается и поддерживается подобно репликации в Lotus.
Только, на мой взгляд, более гибкая по своим возможностям.
Можно даже вмешаться на программном уровне в этот процесс!!!!!
Можно устроить слияние одновременно измененнных данных, например.

И вот по-моему два Ваших высказывания противоречат друг другу:

СУБД поддерживают механизмы целостности данных, но не имеют (и не могут иметь!) встроенного механизма репликации.
репликация в СУБД (как и транзакция в LN) возможна, НО только на уровне отдельного приложения

А в Lotus разве не на уровне приложения (базы)?
Поясните боле подробно в чем разница-то?
 
F

Fossil Code

Выскажусь и я о наболевшем.

Совершенно все именно так! Это наши общие "грабли", по которым еще ходить и ходить, к сожалению. Особенно требования заказчика к тому, что он хочет видеть: не столько содержательно, сколько интерфейсно. Помню был жуткий скандал, как мы с бухгалтером орали друг на друга... Просто ей поставили ей в ексцелл пару табличек, имевших элементарный, нужный ей функционал... Камнем преткновения была позиция: "Поставьте мне нормальную программу! Вот такую!!!" -- и показывает типичную клипперовскую менюшку...

Не претендуя на многое, хотел бы высказаться по поводу подхода, который себя, похоже оправдывает. Этот подход начинается немного в стороне от привычной реляционщикам и не Лотусовым программистам работы с массивами информации в неких специально изобретенных (в зависимости от инструментария) формах и форматах, скрытых от конечного пользователя. Подход "интерфейс отдельно -- данные отдельно" для Лотуса срабатывает со скрипом, поэтому при первоначальном анализе задачи изучается бумажная реализация процесса, входящие и исходящие документы, которые считаются не столько носителями нужной информации, сколько основными единицами, с которыми предстоит работать. И пользователи очень хорошо принимают объяснение, что "эти документы, что у вас сейчас на столе, будут в точно таком же виде у вас в компьютере, и технология вашей работы не изменится, разве что станет быстрее и легче их искать, а еще появится целый ряд автоматизированных для вас операций..."

И это правильно, товарищи. Скажем, если воспроизводить технологию работы с бумагой, то Лотус хорошо соблюдает принцип "карте -- место" и не апдейтит автоматом доки при изменении в справочники. И в этом смысле он хорошо обеспечивает целостность данных! Очевидный недостаток оборачивается несомненным достоинством. Несложно обеспечить, за счет видов и поиска, легкий доступ к документам. А вот когда речь заходит о выполнении массовой обработки -- лучше выгрузиться в реляционку или вообще в пакетную софтинку... (Сам Iris говорит об использовании Лотуса в роли фронт-енда к корпоративным реляциям.) А когда речь о бантиках и форматировании, скажем, для печати -- выгружаться в Word или таблицы. Чтобы в Лотусе оставалась в основном логика документарного воплощения "бизнес-процесса". Хорошо иметь распределенный набор баз "первички", между которыми и происходит документарное движение, а в дополнение к ним -- консолидирующие базы, которые и служат базой для проведения массовых расчетов, если нужно.

В том же ключе: ну очень трудно, если вообще возможно (у меня ни разу толком не вышло) сделать для Лотуса последовательную нумерацию документов в распределенных базах. Соль в том, что делать этого не следует в принципе, но убедить клиента в качестве идентификатора документа использовать код unid или notesid не всегда, к сожалению, удается, как ни ссылайся на примеры из каталогов импортных производителей...

Вот, примерно так боремся.
 
L

LuMee

>> как получить выбранный в emb. view документ?
А в чем собственно проблема?
Ну как в чем... Есть форма, на ней лежит emb. view, в котором выбран документ. На форме еще есть кнопка, по нажатии которой мне нужно этот выбранный документ достать и обработать. Долгие часы и дни поисков по конференциям привели меня к выводу, что такое можно сделать только длинными и ненадежными кружными путями, работоспособность коих в общем-то никем не гарантирована.
>Понимаю конечно, что многие мои проблемы обусловлены недостаточным пониманием идеологии Лотус
Но! Ведь попробовав раз - ем и сейчас )))
Думаю, для меня лично Лотус останется просто интересным опытом в жизни - по окончании проекта вряд ли еще к нему вернусь.. Или вернусь, но только если Лотус дадут свежий (6.5 хотя бы) - 5ка слишком жестко портит мою хрупкую нервную систему :angry:
А насчет показа таблички в форме, который "не смогу" сделать, правильный ответ (не геройский) таков, что я бы вообще не стал этого делать! Цена вопроса играет роль: вынь да положь табличку в форме потому, что "надо так и не иначе"? Чтобы предоставить соотв. информацию не обязательно "вставлять в форму" динамическую табличку. Можно генерировать по запросу статический документ, куда инф. и пропишется табличном виде. А то и без таблички -- видом, фолдером, а то и полнотекстовым поиском. Право слово, не стал бы "упираться", поискал бы содержательно такое же, а интерфейно -- иное, решение.
Обычно да, такое допустимо, но не всегда. И потом, хочется сделать приложение еще и удобным для пользователя, чтобы нужные данные/функции были по возможности под рукой, а не требовали для доступа к себе длительных странствий по всевозможным вьюхам и папкам.
А это из другой оперы, из мультиплатформности, переносимости, обратной совместимости и т.п.. Как в Java: много-ли интерфейсных бантиков вы можете навешать на апплет, если SWING не включена в состав VM? Т.е. условно в Lotus-VM есть AWT, но (еще?) нет swing
Если уж на то пошло, то в "зрелых" версиях Java даже в AWT возможностей поболе будет. Про Swing вообще речь не идет - нет смысла сравнивать... А ведь уже вполне можно было бы сделать, сколько лет-то Лотусу :)
Несколько напрягает жесткая связь между данными и их представлением: документу строго соответсвует форма, элементу ввода на форме - поле документа (либо не можешь редактировать, либо потом придется выковыривать поле из сохраненного документа, если оно там не нужно), группу документов можно отобразить только в виде вью (или папки - суть, то же самое). Понятно, что по-другому не сделать в рамках самой концепции Лотуса, но все равно неприятно.
 
M

morpheus

<!--QuoteBegin-LuMee+30:11:2006, 12:00 -->
<span class="vbquote">(LuMee @ 30:11:2006, 12:00 )</span><!--QuoteEBegin-->Ну как в чем... Есть форма, на ней лежит emb. view, в котором выбран документ. На форме еще есть кнопка, по нажатии которой мне нужно этот выбранный документ достать и обработать. Долгие часы и дни поисков по конференциям привели меня к выводу, что такое можно сделать только длинными и ненадежными кружными путями, работоспособность коих в общем-то никем не гарантирована.
[snapback]49358" rel="nofollow" target="_blank[/snapback]​
[/quote]
можно... длинными и окольными .. :angry:
 
L

LuMee

можно... длинными и окольными .. :(
Об чем и я... вроде бы даже по вашему совету делал в свое время такое с помощью JavaScript и фреймов. Сначала получилось, а потом в один прекрасный день перестало работать, причем не только в текущей версии, но и старой, которую я незадолго до прекрасного дня убрал в архив абсолютно рабочей <_< В чем был прикол, гадаю до сих пор...
 
30.05.2006
1 345
12
BIT
0
Если уж на то пошло, то в "зрелых" версиях Java даже в AWT возможностей поболе будет. Про Swing вообще речь не идет - нет смысла сравнивать... А ведь уже вполне можно было бы сделать, сколько лет-то Лотусу <_<
Так и знал, что к словам придираться будут. С Жабой не сравниваю, только аналогии провожу. Вы можете произвольно расширять java-vm? А если уж сравнивать, то поскольку жаба моложе, над ней не висит такой огромный груз обратной совместимости. Которой она, впрочем, не особо и заморачивается (аппликухи 1.1.8 под 1.3.х не идут!). M$-way :(
Несколько напрягает жесткая связь между данными и их представлением: документу строго соответсвует форма, элементу ввода на форме - поле документа
Глупости. Особенно - документ=форма. Да и item != field. Это издержки книжек типа ".. за 40 минут" и творений Линдт+Керн
 
M

Mihal

<!--QuoteBegin-LuMee+30:11:2006, 12:00 -->
<span class="vbquote">(LuMee @ 30:11:2006, 12:00 )</span><!--QuoteEBegin-->Несколько напрягает жесткая связь между данными и их представлением: документу строго соответсвует форма, элементу ввода на форме - поле документа (либо не можешь редактировать, либо потом придется выковыривать поле из сохраненного документа, если оно там не нужно).
[snapback]49358" rel="nofollow" target="_blank[/snapback]​
[/quote]

Ууууу... Форма и документ - не одно и то же. Документ - то, что храниться в базе, форма - элемент дизайна (хранящийся в базе в виде документа, кстати <_< ). Да, документ может создаваться по форме. может отображаться по форме. Но я могу создать докмент по одной форме, потом отредактировать по другой, потом ещё раз открыть по третей. Поле и итем - тоже не одно и то же. Итем - то, из чего состоит документ. Поле - элемент формы (хранящийся в базе в виде итема :(. Да, когда документ открывается по форме, то его итемы раскидываются по полям :).

Вот такая вот загагулина...
 
30.05.2006
1 345
12
BIT
0
Репликация в РСУБД (Oracle и MSSqlServer) настраивается и поддерживается подобно репликации в Lotus.
Репликация чего? Таблицы или базы данных?? И что такое "база данных"? Для разных приложений БДой будет разный набор таблиц.
Или (как в последених Ораклях) - репликация журнала транзакций? Да, это интереснее. Но:
пусть 1й клиент модифицировал запись "А"; 2-й - запись "Б" одной и той-же таблицы. Конфликта нет, строчки отреплицировали друг-другу и 3-му клиенту. А с его точки зрения (его прикладухи) эти записи взаимосвязаны! Он ничего не делал, но данные разрушены;
или пусть 1й модифицировал "А" с учетом того, что "Б" неизменна (а 2й - наоборот). Приехали.. Конфликт обеспечен, причем механизма его обнаружения и отображения НЕТ
Только, на мой взгляд, более гибкая по своим возможностям.
Можно даже вмешаться на программном уровне в этот процесс!!!!!
Можно устроить слияние одновременно измененнных данных, например.
Я о том и говорю: зная все взаимосвязи прикладных данных, размазанных по десяткам таблиц (нормализация-ж!), вы часто (не всегда) можете запрограммировать правила синхронизации с учетом выявления и разрешения конфликтов. Т.е. напишете свой репликатор для конкретного приложения. Для другого набора таблиц он будет непригоден.
И вот по-моему два Ваших высказывания противоречат друг другу:
А в Lotus разве не на уровне приложения (базы)?
Поясните боле подробно в чем разница-то?
Как раз потому, что в LN база=приложение, а одна сущность=один документ (с неизбежной избыточностью), и возможен общесистемный репликатор. Но попробуйте только нормализовать данные LN (размазать сущность между базами и документами) - чему он ужасно сопротивляется, как репликация и развалится (будет крошить ваши сущности).
 
E

Elena Nefedova

2. второе ИЛИ ВЫЧИСЛЯЕМОЕ ПОЛЕ не дает прокручиваемой таблицы плюс организчения на размер выводимой информации табличного вида.
Это почему же у вас вычисляемое поле не дает прокручиваемой таблицы? Оно что - от моего чем-то принципиально отличается?
Или я что-то упустила, и имелось в виду поле с конкретными параметрами?

Что внедрение вида из другой базы пока оставляет желать лучшего - согласна.

И что там про пешку - таки вы уверены, что задача неразрешима? Я иначе думаю.
 
G

GROMILA

1. Я требую примера чиста реляционного принципа, справедливого для Лотуса!
2. Примерчик будет как только у мя руки освободятся да желание возникнет.

Пожалуйста.

с точки зрения по соотношению занимаемых должностей:
Представление1: ФДолжность, ОргДолжность, ФИО, ФАтрибуты

Логическая модель базы данных
Сотрудник может занимать несколько организационный должностей и обладать несколкими функциональными должностями. Сотрудников - боле 1000.

Сущность: Функциональная должность (ряд атрибутов)
Сущность: Организационная должность (ряд атрибутов)
Сущность: Сотрудник (ФИО, список орг должностей, список функц должностей)

Руководству в оперативном режиме следует выводить информацию в двух разрезах:
1. По функц должностям
ФДолжность, ОргДолжность, ФИО, ФАтрибуты, ОргАтрибуты

2. По орг должностям
ОргДолжность, ФИО, ОргАтрибуты

Физическая модель базы данных в РСУБД
4 Таблицы: ФДолжности, ОДолжности, Сотрудники, Отношение MxN ФОСотрудники
и SQL запросами разруливаем вывод на экран
При удалении ФДолжности или Переименовании ничего прогать не нужно

Физическая модель базы данных в Lotus

ваш ход, коллега
 
E

Elena Nefedova

Теперь немного про "наболевшее" <_<

1. Тот, кто жалуется на "нереляционность" и описывает ужасы лотуса, видимо, привык к транзакционной обработке данных некоторыми РСУБД вроде Oracle.
А кто попробовал использовать реляционную базу без транзакций (что было распространено для MySQL), тот уже ни на что не жалуется.

2. О языках. Ну вот нету в LS каких-то возможностей. В формулах нету других, в JS - третьих...
Их на то 5 языков и встроено, чтоб программеры утюгом гвозди не забивали.
Уважаемые коллеги! изучайте разные языки - это облегчит жизнь, не говоря уж об украшении вашего резюме :(



PS: я ничего не имею против Oracle или других РСУБД
 
M

Mihal

Пожалуйста.

с точки зрения по соотношению занимаемых должностей:
Представление1: ФДолжность, ОргДолжность, ФИО, ФАтрибуты
...........................................

Брррр. К чему тут мой ход? Вы сказали, что реляционные принципы справедливы и для Лотуса. Я несогласился (причём категорически). Попросил пример. Вы пытаетесь меня втянуть в придумывание примера <_<. Ай, нечестно :(.

Но если уж на то пошло, то в вашем примере для Лотуса всё будет совсем не так, как для реляционки. В общем, реляционный принцип "несколько" не подходит.

И у меня такое чувство, что вы пытаетесь доказать, что Лотус хуже реляционки :). Если да, то это не относится обсуждаемой в этой ветке теме :). Откройте новую. Там и поспорим что лучше, молоток или отвёртка :).
 
E

Elena Nefedova

Физическая модель базы данных в РСУБД
4 Таблицы: ФДолжности, ОДолжности, Сотрудники, Отношение MxN ФОСотрудники
и SQL запросами разруливаем вывод на экран
При удалении ФДолжности или Переименовании ничего прогать не нужно
Я не хочу лезть поперед Михала в пекло и предлагать свой вариант приложения в лотусе.

Хочу только уточнить - если должность реально переименовали , то что у человека в трудовой книжке будет написано? Отдел кадров предыдущее название замазкой замажет? или все-таки напишет "переведен с должности дворника на должность менеджера метлы"?
И лотус это замечательно зафиксирует.

PS: "Есть многое на свете, друг Горацио, что и не снилось нашим мудрецам..."
 
F

Fossil Code

В нескольких последних ответах заметно повышенное внимание к нескольким особым аспектам разработки в Лотусе, что вызывает желание заменить ранее намеченный пунктир тонкой, но сплошной линией :) Так, сказать, обозреть с высоты воробьиного полета.

Понравилась реплика госпожи Нефедовой о mySQL... Разрешите напомнить, что есть "реляционность": это всего лишь wrapper, оболочка, предоставляющая доступ к данным в терминах теории множеств, с использованием элегантных математически строгих операций этой теории. Поэтому те, кто привык к реляциям, на деле привык именно к упомянутой абстрактной модели данных. Как ни удивительно ( :D ), существуют и другие модели данных! В частности, ISAM, индексно-последовательный доступ к данным, родившийся во времена оно, когда компьютеры были большими. Если приподнять реляционное одеяло, то мы увидим голые ISAM-файлы.

К чему это? Да просто до мощных, промышленных RDB, все базы данных программировались, как ИСАМы. А это совсем другая методология и другая абстрактная модель данных! И другой набор операций над данными. И, нужно сказать, ИСАМ требует больше труда и изобретательности, хотя, в принципе, его возможности шире. Нужно опредилить состав записей, наборы ключей, по которым они будут индексированы, т.е. без четкого уяснения семантических и формальных (синтаксических) взаимосвязей результат определенно будет плачевным. В отличие от реляций, где простая (может быть автоматизирована, спасибо мат. модели) процедура нормализации практически гарантирует качество реализации БД. Все понятно: низкоуровневое средство (ИСАМ) по определению мощнее, но требует для достижения мощного результата больше труда и мастерства, чем качественно реализованная высокоуровневая оболочка. (Другой пример: ассемблер по сравнению с языками высокого уровня). И вот: тот, кому приходилось писать базы данных на обычных языках в файловой системе с помощью разных, поддерживаемых на уровне ОС методов доступа к файлам (в т.ч. ИСАМ), тот уже вообще ни на что никогда не жалуется!

Уважаемые, Лотус реализует ISAM-идеологию доступа к данным! Виды с категориями, отсортированные по первым нескольким столбцам, getDocumentByKey... Еще вопросы будут? :)

Второе. В документации к современным Лотусам этого нет, но в старых релизах очень хорошо прописывалась идеология работы пользователя. Это сейчас Лотус начал постепенно сползать неизвестно куда, но и теперь его насквозь пронизывает идеология "Офиса". То есть предполагается, что пользователь так же свободно создает свои базы, формы, виды, как и работает с электронными таблицами! И совершенно естественно, что для рядового пользователя не предусмотрены мощные хитромудрые средства, которыми нашпигованы т.н. профессиональные движки СУБД. Наверное это обстоятельство является определяющим по отношению к функционалу, доступному разработчику, и хорошо характеризует модель БД, принятую в Лотусе. Наряду с этим, Лотус реализовал системные сервисы, которые можно-таки считать образцом для подражания иных СУБД. Например, "родные" RTF поля выглядят чужеродными и неорганичными в реляционках. А чего вы хотели? Они не укладываются в мат. модель! Другой пример -- Лотус первая в мире СУБД, реализовавшая технологию клиент-сервер. Ну и так далее.

Словом, модель данных Лотуса простая, но низкоуровневая, а интерфейс пользователя и разработчика рассчитан на RAD режим эксплуатации, в стиле настольной автоматизации "своими руками", поэтому сравнительно беден и не удовлетворяет гуру, привыкшего месяцами "копаться" в навороченных "бэкэндах", совершая ему одному заметное шаманство. Как говорилось: "приходит пользователь и стоит над душой, пока я ему это не сделаю..." Но, Лотус в то же время работает на движке, который реализовывал и реализует потрясающие по силе и новаторству технологии, которые служат образцом в индустрии. Вот такая оценка ситуации.
 
E

Elena Nefedova

Для: Fossil Code

Видно, что вы проанализировали множество различной информации.
Не накидаете ли ссылочек в тему?
Особенно по моделям данных.
 
F

Fossil Code

Для: Fossil Code

Видно, что вы проанализировали множество различной информации.
Не накидаете ли ссылочек в тему?
Особенно по моделям данных.

Как ни жаль, ссылками помочь не смогу :) . Просто все, о чем говорил, является результатом не столько недавнего систематического изучения, сколько многолетнего результата более или менее бессистемного самообразования по ходу работы, и уже залегает на уровне подсознательных пережитков палеолита :)
 
G

GROMILA

Я не хочу лезть поперед Михала в пекло и предлагать свой вариант приложения в лотусе.

Хочу только уточнить - если должность реально переименовали , то что у человека в трудовой книжке будет написано? Отдел кадров предыдущее название замазкой замажет? или все-таки напишет "переведен с должности дворника на должность менеджера метлы"?
И лотус это замечательно зафиксирует.

PS: "Есть многое на свете, друг Горацио, что и не снилось нашим мудрецам..."

Это был лишь пример реляционного подхода, который необходимо будет прогать в Lotus с довольно большими затратами времени на разработку и тестирование.

В данной конкретной задаче работа с Функциональной Должностью совсем не требует записи в трудовую, а нужна лишь в рабочих целях для разделения пересекающихся и часто меняющихся контуров ответственности.

Что касается трудовой, то там фиксируется именно организационная должность (штатная), и данные операции действительно нужно будет где-то в доп таблицах истории перемещений сотрудника фиксировать и проблем в реализации на РСУБД нет совсем.
Это лишь операция, которую нужно будет программить как в РСУБД, так и в Lotus (легче чуток)!!!
Но с РСУБД появится возможность применения средств построения отчетов :) как бонус
 
E

Elena Nefedova

Для: GROMILA

На самом деле каждый стремится разрабатывать на том, на чем умеет.
А приходится - на чем имеет.


Так что вопрос хуже/лучше - он тупиковый изначально.
В любой среде минусы компенсируются плюсами. Иначе - кому нужна такая среда?

Я вас уверяю, что реальных проблем при реализации приведенного примера в лотусе гораздо меньше, чем вы описываете :)
 
G

GROMILA

Я вас уверяю, что реальных проблем при реализации приведенного примера в лотусе гораздо меньше, чем вы описываете :)

Вот все теряют нити почему-то.
Я говорил не о проблемах, а о трудоемкости решения на Лотус довольно примитивных задач, которые в РСУБД решаются очень просто.
И тот факт, что в Лотусе можно быстро состряпать форму и кинуть туда поле не есть преимущество, так как скорее всего форму, представления и код прийдется быстро, но постоянно переделывать и тестировать на бедных пользователях.

Из моего опыта следует, что сделать надежную систему на C#+MSSQL будет гораздо быстрее, чем на Lotus!!!! и пусть не пугает работа со ссылками и графикой, все это решаемо!!!

И если IBM не почешется в сторону GUI и языка запросов в предсталвениях, Lotus так и останется ископаемым животным, дожившим до наших дней с дореляционного периода развития баз данных.
 
M

morpheus

<!--QuoteBegin-GROMILA+1:12:2006, 12:58 -->
<span class="vbquote">(GROMILA @ 1:12:2006, 12:58 )</span><!--QuoteEBegin-->Из моего опыта следует, что сделать надежную систему на C#+MSSQL будет гораздо быстрее, чем на Lotus!!!! и пусть не пугает работа со ссылками и графикой, все это решаемо!!!
[snapback]49482" rel="nofollow" target="_blank[/snapback]​
[/quote]
Надёжную систему чего ? может документооборота или деловодства?

<!--QuoteBegin-GROMILA+1:12:2006, 12:58 -->
<span class="vbquote">(GROMILA @ 1:12:2006, 12:58 )</span><!--QuoteEBegin-->Lotus так и останется ископаемым животным, дожившим до наших дней с дореляционного периода развития баз данных.
[snapback]49482" rel="nofollow" target="_blank[/snapback]​
[/quote]
брэд... он так и остаеться ископаемым :) и ископаеться дальше... вот уж скоро новый выйдет.... откопают из зазакромов.

Нет, имхо Лотус харош и исчо дого будет , так как многие задачи он делат луше других :)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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