Текущее время: Пн, дек 10 2018, 21:14

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: LUW внутри другого LUW
СообщениеДобавлено: Ср, дек 05 2018, 12:42 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, апр 12 2006, 15:36
Сообщения: 54
Как нибудь можно делать коммит в одну таблицу (журнал), не коммитя остальные таблицы (с данными)?
Code:
insert tab1.
perform write_log_and_commit. "<-- как это сделать?
"дальше какой-то код, и какая-нибудь проверка:
if check <> ok.
  rollback work. "откатывается tab1, а в журнале записи уже лежат
else.
  commit work.
endif.

Т.е. есть несколько таблиц с данными и таблица с журналом.
И нужно записывать сообщения в журнал с коммитом и иметь возможность откатить записи в таблицы с данными.

Данные в таблицы записываются обычным insert, не ФМ в update task.

Раньше я почему-то думал, что можно сделать так
call function 'Z_WRITE_LOG_AND_COMMIT' destination 'NONE'.
или так
call function 'Z_WRITE_LOG_AND_COMMIT' starting new task.
Но такие вызовы ФМ делают неявный коммит, и записи пишутся в таблицы.

Понятно, что можно переработать логику, писать лог во внутреннюю таблицу. Интересует именно можно ли реализовать такой трюк.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LUW внутри другого LUW
СообщениеДобавлено: Ср, дек 05 2018, 13:29 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 15:51
Сообщения: 1850
Откуда: КраснАдар
Пол: Мужской
В этой теме недавно похожий вопрос разбирался, там еще ссылка на более раннее обсуждение. Но я бы логику переписал.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LUW внутри другого LUW
СообщениеДобавлено: Ср, дек 05 2018, 19:51 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 12:11
Сообщения: 962
надо данные записывать в транзакции SAP (sap luw), т.е. в модулях обновления in update task,
а журнал в текущей транзакции БД (db luw), т.е. достаточно вызвать ф/м DB_COMMIT, желательно после commit/rollback work

в крайнем случае можно задать другой connection в sql операциях, напр NRIV*SHADOW


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: LUW внутри другого LUW
СообщениеДобавлено: Ср, дек 05 2018, 20:04 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, май 12 2011, 17:06
Сообщения: 260
Похоже на viewtopic.php?f=13&t=91536


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LUW внутри другого LUW
СообщениеДобавлено: Чт, дек 06 2018, 19:20 
Специалист
Специалист

Зарегистрирован:
Вт, июн 10 2014, 10:41
Сообщения: 154
А некторые ещё и так извращаются: https://blogs.sap.com/2018/12/03/parall ... -channels/


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: LUW внутри другого LUW
СообщениеДобавлено: Пт, дек 07 2018, 14:07 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, дек 16 2010, 16:23
Сообщения: 96
Откуда: Набережные Челны
Пол: Мужской
Попробуй подпрограмму записи в лог сделать в виде отдельной программы и внутри делай commit. Программу вызывай через SUBMIT.


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

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


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

Сейчас этот форум просматривают: Ahrefs [Bot], Google [Bot], Mail.RU Bot


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

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