Текущее время: Вс, июл 27 2025, 14:38

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: COMMIT собственных данных
СообщениеДобавлено: Вт, апр 01 2008, 18:28 
Начинающий
Начинающий

Зарегистрирован:
Вт, апр 01 2008, 18:08
Сообщения: 3
Добрый день!

Господа профессионалы, помогите любителю :)

Есть некая саповская программа, которая делает некоторые изменения в БД. COMMIT она делает относительно нечасто.

Посреди нее находится вызов метода класса (не BADI), который можно написать самостоятельно. Т.е. класс написан и метод написан мной. В этом методе я делаю запись в собственную Z-таблицу и мне необходимо закоммитить изменения как можно быстрее. В эту таблицу пишет еще N программ и коммитить измененния в ней надо как можно быстрее. И желательно - синхронно, а не в update task. Беда в том, что если я напишу в своем коде COMMIT WORK, то одновременно зафиксирую все изменения, сделанные вышестоящей саповской программой. А это очень нежелательно.

Вообщем мне нужно что-то вроде автономных транзакций ораклового PL/SQL.

Единственная моя мысль - делать свои изменения в отдельном RFC ФМ, вызывая его с параметром DESTINATION 'NONE'. Только я не уверен, что такой ФМ будет выполняться в отдельном LUW.

Подскажите, как вы решаете подобные проблемы?

С уважением,
Евгений


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, апр 01 2008, 19:04 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Кажется на форуме подобное предлагалось. Тогда повторюсь.
Заверните свои апдейт-команды в репорт, махните в него нужные данные из своего класса (можно через память, к примеру) и в нем уже коммит сделайте.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, апр 01 2008, 20:14 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Чисто из любопытства - а что будет, если данные в Z таблице "закомиттятся", а потом основные данные - нет? Как будете разруливать? :?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: re
СообщениеДобавлено: Вт, апр 01 2008, 20:35 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
если невозможно договориться и решено ломать идеологию sap luw :)

+1 John Doe
если не сработает destination 'NONE', то submit .. in update task.

вызвать commit/rollback внутри update task причем стандартного - это как дернуть аварийный стоп-кран,
управление luw-ом обычно всегда снаружи,
можно разве что вызвать db_commit, по уважительной причине


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 02 2008, 00:17 
Начинающий
Начинающий

Зарегистрирован:
Вт, апр 01 2008, 18:08
Сообщения: 3
Jelena написала:
Чисто из любопытства - а что будет, если данные в Z таблице "закомиттятся", а потом основные данные - нет? Как будете разруливать? :?


Ну это мне и в этом случае надо сделать запись в Z-таблице. Такая вот потребность. Долго рассказывать, да и мало кому будет интересно :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: re
СообщениеДобавлено: Ср, апр 02 2008, 00:20 
Начинающий
Начинающий

Зарегистрирован:
Вт, апр 01 2008, 18:08
Сообщения: 3
trop написал(а):
если невозможно договориться и решено ломать идеологию sap luw :)

+1 John Doe
если не сработает destination 'NONE', то submit .. in update task.

вызвать commit/rollback внутри update task причем стандартного - это как дернуть аварийный стоп-кран,
управление luw-ом обычно всегда снаружи,
можно разве что вызвать db_commit, по уважительной причине


Ну LUW я не ломаю. Просто следы в Z-таблице нужно оставлять в любом случае, даже если ROLLBACK у саповской программы пройдет (что очень редко и экстраординарно). Другое дело, что саповская прога может COMMIT сделать через минуту, а Z-таблицу надо освобождать быстро.

Update task не нравится своей асинхронностью. При большой очереди запись может случиться еще позже чем сама программа закоммитится.

/me пошел проверять DESTINATION 'NONE" припарку


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

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


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

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


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

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