Текущее время: Ср, июл 23 2025, 16:40

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Логическая транзакция внутри транзакции
СообщениеДобавлено: Ср, май 09 2012, 23:18 
Специалист
Специалист

Зарегистрирован:
Вс, фев 22 2009, 13:01
Сообщения: 101
Пол: Мужской
Коллеги, немного дилетантский вопрос.

Вот есть программа.
Она запускает постинг документа в спецрегистры.
Потом делает COMMIT WORK, чтобы данные записались в БД.
Потом апдейтит слегка уже записанные документы. К сожалению, во время постинга записать то, что нужно не получается. Без COMMIT WORK'а апдейтить еще нечего.
Снова делает COMMIT WORK.

С точки зрения логики эти два шага суть одна транзакция. И долна быть гарантия, что они оба выполнены или что они оба откачены.

Можете подсказать варианты, как этого достичь?
COMMIT WORK'и в моей власти. Могу чего-то другое использовать.

_________________
В теории практика ничем не отличается от теории, но на практике отличается.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Логическая транзакция внутри транзакции
СообщениеДобавлено: Чт, май 10 2012, 08:49 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
Можно попробовать так:
1. Выполняете постинг
2. Стартуете свой ФМ in update task (V1) с вашими апдейтами
3. Выполняете COMMIT

К моменту выполнения вашего ФМа документ уже должен находиться в БД, но транзакция еще не закрыта - в случае ошибки на шаге 2 транзакция откатится.
Нюанс: если ФМ постинга напрямую обновляет БД, без использования ФМов обновлений - то на шаге 2 'in update task' не нужен, просто выполняйте апдейт. Нужно поэкспериментировать

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Логическая транзакция внутри транзакции
СообщениеДобавлено: Чт, май 10 2012, 11:55 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пт, янв 21 2005, 12:40
Сообщения: 371
Пол: Мужской
А если "ФМ in update task" завершится с ошибкой?
Первый-то коммит уже прошел.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Логическая транзакция внутри транзакции
СообщениеДобавлено: Чт, май 10 2012, 12:07 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
PP написал:
А если "ФМ in update task" завершится с ошибкой?
Первый-то коммит уже прошел.

COMMIT здесь только один :wink:

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Логическая транзакция внутри транзакции
СообщениеДобавлено: Чт, май 10 2012, 12:14 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
PP написал:
А если "ФМ in update task" завершится с ошибкой?
Первый-то коммит уже прошел.
Коммит в этом случае только один :)
Процесс будет примерно такой:
1. Выполняете постинг стандартным ФМом. В результате появится кучка модулей обновления в SM13, в БД изменений пока нет
2. Стартуете свой ФМ in update task (V1) с вашими апдейтами - он становится в очередь после модулей обновлений п.1
3. Выполняете COMMIT WORK- модули обновления выполняются по очереди в рамках одной транзакции БД. Если возникает ошибка в одном из модулей - транзакция откатывается целиком

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB