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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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