SAPфорум.RU https://sapboard.ru/forum/ |
|
LUW внутри другого LUW https://sapboard.ru/forum/viewtopic.php?f=13&t=97128 |
Страница 1 из 1 |
Автор: | Димкин [ Ср, дек 05 2018, 11:42 ] |
Заголовок сообщения: | LUW внутри другого LUW |
Как нибудь можно делать коммит в одну таблицу (журнал), не коммитя остальные таблицы (с данными)? 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. Но такие вызовы ФМ делают неявный коммит, и записи пишутся в таблицы. Понятно, что можно переработать логику, писать лог во внутреннюю таблицу. Интересует именно можно ли реализовать такой трюк. |
Автор: | John Doe [ Ср, дек 05 2018, 12:29 ] |
Заголовок сообщения: | Re: LUW внутри другого LUW |
В этой теме недавно похожий вопрос разбирался, там еще ссылка на более раннее обсуждение. Но я бы логику переписал. |
Автор: | trop [ Ср, дек 05 2018, 18:51 ] |
Заголовок сообщения: | Re: LUW внутри другого LUW |
надо данные записывать в транзакции SAP (sap luw), т.е. в модулях обновления in update task, а журнал в текущей транзакции БД (db luw), т.е. достаточно вызвать ф/м DB_COMMIT, желательно после commit/rollback work в крайнем случае можно задать другой connection в sql операциях, напр NRIV*SHADOW |
Автор: | LAT [ Ср, дек 05 2018, 19:04 ] |
Заголовок сообщения: | Re: LUW внутри другого LUW |
Похоже на viewtopic.php?f=13&t=91536 |
Автор: | UKY [ Чт, дек 06 2018, 18:20 ] |
Заголовок сообщения: | Re: LUW внутри другого LUW |
А некторые ещё и так извращаются: https://blogs.sap.com/2018/12/03/parall ... -channels/ |
Автор: | broker.chelny [ Пт, дек 07 2018, 13:07 ] |
Заголовок сообщения: | Re: LUW внутри другого LUW |
Попробуй подпрограмму записи в лог сделать в виде отдельной программы и внутри делай commit. Программу вызывай через SUBMIT. |
Автор: | Besa [ Пт, дек 14 2018, 10:13 ] |
Заголовок сообщения: | Re: LUW внутри другого LUW |
UKY написал(а): А некторые ещё и так извращаются: https://blogs.sap.com/2018/12/03/parall ... -channels/ Не знал раньше про AMC, запишу себе Но на первый взгляд, согласен, это извращение относительно поставленной задачи. |
Автор: | Besa [ Пт, дек 14 2018, 10:18 ] |
Заголовок сообщения: | Re: LUW внутри другого LUW |
broker.chelny написал: Попробуй подпрограмму записи в лог сделать в виде отдельной программы и внутри делай commit. Программу вызывай через SUBMIT. Не пойдет это, потому что submit... По-моему, наиболее корректно делать через secondaty db connection который встроен уже в SBAL, если позволяет версия системе, если нет, то DB_COMMIT, но он не всегда может подойти в зависимости от контекста, в зависимости от того как уже написан код. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |