|
0 / 0 / 0
Регистрация: 26.06.2010
Сообщений: 29
|
|
Транзакции в Лотусе04.08.2010, 16:34. Показов 22998. Ответов 15
Метки нет (Все метки)
Добрый день!
Подскажите кто как решает вопрос по реализации транзакционной записи в БД. В большей степени интересует работа через C API, но можно и к LotusScript. Если будут какие-то готовые решения, то вообще замечательно При создании документов мне видится пока один вариант: отдельно вести список созданных документов, при завершении транзакции очищать этот список. Если транзакция не завершена, то считывать из списка все доки и удалять их из БД. С изменениями полей посложнее будет, т.к. надо хранить предыдущие значения. И при откате транзакции может возникнуть ситуация, что мне надо восстановить поле, которое после меня уже кто-то изменил... Буду рад любым идеям
0
|
|
| 04.08.2010, 16:34 | |
|
Ответы с готовыми решениями:
15
Jvm в лотусе 6.5.1 Отчет в лотусе Письма в Лотусе |
|
0 / 0 / 0
Регистрация: 28.06.2009
Сообщений: 1,567
|
|
| 04.08.2010, 16:44 | |
|
Что за откат транзакции?
Что для Вас вообще Транзакция в лотусе?
0
|
|
|
0 / 0 / 0
Регистрация: 26.06.2010
Сообщений: 29
|
||
| 04.08.2010, 17:24 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 28.06.2009
Сообщений: 1,567
|
||
| 04.08.2010, 17:28 | ||
софтина походу внешняя? ну так и пишите транзакции какие надо куда угодно+данные про лотусиный док (UNID и пр. что надо)... по необходимости - набор обратных операций... но чуднО - всё равно..
0
|
||
|
0 / 0 / 0
Регистрация: 26.06.2010
Сообщений: 29
|
||
| 04.08.2010, 18:08 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 28.06.2009
Сообщений: 1,567
|
||||
| 04.08.2010, 18:42 | ||||
идеология лотуса особо не подразумевает таких манипуляций...ибо
0
|
||||
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
|
| 04.08.2010, 19:57 | |
|
в простом случае - сохранение всех меняемых доков в ДХЛ, до транзакции, в случае отката - импорт из негоже (с реплейсом текущих)
0
|
|
|
0 / 0 / 0
Регистрация: 28.06.2009
Сообщений: 1,567
|
|
| 05.08.2010, 10:52 | |
|
ну нам же надо знать как обычно:
- создание (тут для отката просто список UNID-ов и потом удалить по списку) - удаление (тут для отката слив в DXL и потом залить) - изменение (тут для отката слив в DXL перед изменением, а потом надо проверять не успел ли поменяться, а если успел - значит принимать какие-то решения) это для простого случая, но, например, не просто создать, а ещё воркфлоу применить - там и почта полетит и пр.
0
|
|
|
0 / 0 / 0
Регистрация: 26.06.2010
Сообщений: 29
|
||
| 05.08.2010, 12:20 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 15.03.2009
Сообщений: 615
|
|
| 05.08.2010, 13:20 | |
|
блокировки могут помочь. суть способа - сохранять изменения одновременно и как можно позже.
перед изменением документа лочим его, добавляем в коллекцию( класс - обертка, поддерживающая хранение доков из разных БД ) commit - сохранение коллекции, разлочка rollback - просто разлочка. это конечно не классическая транзакция, но бОльшая часть проблем у меня решилась. блокировка заодно решает проблему, связанную с доступом: когда в процессе сохранения коллекции выясняеца, что у юзера нет прав сохранить предпоследний документ... Прямое попадания баллистической ракеты в серверную такая схема конечно не переживет - т.е. от аппаратных/сетевых сбоев в момент сохранения защиты нету, но для обычных задач мне хватало.
0
|
|
|
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
|
|
| 05.08.2010, 13:49 | |
|
turumbay
я вот пытаюсь вас понять и не могу неужели лотус изменил меня настолько что логика процедур, которые я пишу каждый день уже не должна содержать в себе откат транзакций... Что мешает строить свои изменения таким образом, чтобы они продолжались с прерванного места? И что плохого что часть данных будет уже новой? уж лучше часть чем вообще ничего
0
|
|
|
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
|
||
| 05.08.2010, 13:55 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 28.06.2009
Сообщений: 1,567
|
|||
| 05.08.2010, 14:00 | |||
если поступления не произошло - док СПИСАНИЕ помечаем неактуальным и заново... не вижу тут никаких откатов транзакций...
0
|
|||
|
0 / 0 / 0
Регистрация: 15.03.2009
Сообщений: 615
|
|||
| 05.08.2010, 14:30 | |||
|
вообще, транзакции - отличная тема для пятничного флейма. скользкая, неочевидная, с кучей "а вот если так, то..."
я выписал клиенту накладную: запасы уменьшились, дебиторка выросла. И меня не устроит, что товар уже списался, а баланс клиента еще не изменился. Если это произошло - система находится в некорректном состоянии. То, что систему переодически можно проверять на целостность - проблему смягчает, но не решает. речь о том, что бывает ситуация, когда нужно изменить два документа одновременно, в рамках одной "транзакции". И домино не предоставляет этого функционала. Чтоб ни накручивали - всегда в результате будет два последовательных вызова doc.save. И нет возможность обеспечить атомарность такой операции.Т.е. проблема - системная. Ее можно всячески смягчать( блокировки, доп. проверки и т.п. ), но чистого решения нет.
0
|
|||
|
Mykty0x
|
|
| 05.08.2010, 14:46 | |
|
Имхо, по большому счёту надо писать серверную задачу для домины, которая будет перехватывать обращения к документам и реализовывать "промежуточный слой" с возможностью откатить операции, при желании. Аппаратные сбои должен обрабатывать лотусовый журнал транзакций.
Но это сложно, имхо на энтузиазме даже тех.задание нормальное не получится :sorry: |
|
|
0 / 0 / 0
Регистрация: 28.06.2009
Сообщений: 1,567
|
||
| 05.08.2010, 15:49 | ||
если в пределах домино - тут и так все ясно.. Речь идет о некоей внешней софтине, которая по каким-то своим событиям дергает лотус... А тут атомарность транзакции размыта: есть транзакция внешней софтины, есть транзакция коммуникации с лотусом, есть транзакция действия в лотусе... Не вижу что может помешать в рамках одной внешней транзакции выполнить N транзакций в лотусе. Внешние транзакции вообще тупо ставят некий признак в доках лотуса (у меня так с 1С - там проводки, отправки в клиент-банк, прием выписок банка и пр.), а лотусина уже обрабатывает признаки как её надо... Как по мне - тема явно из-за попыток лотус заставить делать реляционные дела (с соответствующим подходом)
0
|
||
| 05.08.2010, 15:49 | |
|
Помогаю со студенческими работами здесь
16
String в Лотусе Web в лотусе [?] web на лотусе... вложения в лотусе, редактирование Учусь программировать на Лотусе Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|