Текущее время: Вт, июн 04 2024, 14:20

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


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


ВНИМАНИЕ! Прежде чем задавать вопрос, ознакомьтесь со ссылками ниже:

Вопросы по отличиям версий SAP, Add-On, EHP - сюда
Вопросы по SAP Front End (SAPlogon, SAPgui, guiXT и т.д.) - сюда
Вопросы по LSMW - сюда
Вопросы по архивации в SAP - сюда
Вопросы по SAP GRC - сюда
Вопросы по SAP Business Workplace (почте SAP) и SAP Office - сюда
Вопросы по miniSAP (SAP mini basis) - сюда
Вопросы по SAP HANA - сюда
Вопросы по лицензированию продуктов SAP - сюда



Начать новую тему Ответить на тему  [ Сообщений: 35 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: COMMIT/ROLLBACK WORK
СообщениеДобавлено: Вт, дек 14 2004, 16:19 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1554
Откуда: Москва
Всем привет.
Так-то я абапер, так что если что - не пинать.

Чтобы не вдаваться в описания самому, приведу отрывок из хелпа по оператору DELETE FROM dbtab:
========================
Note
The rows are deleted permanently from the database table in the next database commit. Until then, you can cancel the deletion in a database rollback.
=========================

Фишка в том, что записи удаляются непосредственно сразу после DELETE, не дожидаясь комита (смотрел в отладчике, проверял через SE16).

Вероятно, есть какая-то настройка, которая регулирует нужность/ненужность комитов/ролбэков?

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, дек 14 2004, 16:32 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, ноя 17 2004, 18:38
Сообщения: 211
Откуда: МО
Пол: Мужской
В отладчике после каждого шага делается commit. Можно проверить вставив после удаления непосредственно какойнить wait и за время пока прога стоит посмотреть содержимое таблицы.


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

Зарегистрирован:
Вт, авг 17 2004, 08:17
Сообщения: 3150
Откуда: В ВЕЧНОМ БАНЕ
:shock: Мощно задвинул!!! Неужели в самом деле?!!
111 написал(а):
Фишка в том, что записи удаляются непосредственно сразу после DELETE, не дожидаясь комита (смотрел в отладчике, проверял через SE16).

Вероятно, есть какая-то настройка, которая регулирует нужность/ненужность комитов/ролбэков?

:lol: :lol:


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

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1554
Откуда: Москва
Vit написал:
В отладчике после каждого шага делается commit.



ОК, не буду спорить.
Но в отладчик-то я полез не так просто.
Все же удаляет, не дожидаясь комита - хоть в отладчике, хоть в нормальном режиме.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


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

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1554
Откуда: Москва
№1 написал(а):
:shock: Мощно задвинул!!! Неужели в самом деле?!!
:lol: :lol:


Очень много кофе пить вредно.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


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

Зарегистрирован:
Вт, авг 17 2004, 08:17
Сообщения: 3150
Откуда: В ВЕЧНОМ БАНЕ
111 написал(а):
Очень много кофе пить вредно.

А можно код этого шедевра в студию? :wink:


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

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1554
Откуда: Москва
№1 написал(а):
111 написал(а):
Очень много кофе пить вредно.

А можно код этого шедевра в студию? :wink:


За ради Бога.

Code:
       
loop at g_t_payments
   into g_wa_payments where choose eq 'X'.

    delete:
        from zdri_hpaymnt
                       where id eq g_wa_payments-id,
                g_t_payments index sy-tabix.
endloop.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, дек 14 2004, 17:21 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, ноя 17 2004, 18:38
Сообщения: 211
Откуда: МО
Пол: Мужской
>Все же удаляет, не дожидаясь комита - хоть в отладчике, хоть в нормальном режиме.

А как в нормальном режиме определял что удалено не дожидаясь commit? Включи в свою прогу например PERFORM ля-ля ON COMMIT. И проверь, где у тебя комиты валятся ненужные. А проще включи трасировку ST05 и отрассь прогу свою.


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

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1554
Откуда: Москва
Vit написал:
>Все же удаляет, не дожидаясь комита - хоть в отладчике, хоть в нормальном режиме.

А как в нормальном режиме определял что удалено не дожидаясь commit? .


Так и делал - прописывал "PERFORM ля-ля ON COMMIT".
Вызывается четко тогда, когда я явно делаю COMMIT WORK.
Еще делал модуль обновления-пустышку.
Его вызов (CALL FUNCTION ... IN UPDATE TASK) делаю непосредственно перед тем, как начать удалять записи.
Отрабатывает, как и положено - когда я явно делаю COMMIT WORK.

Vit написал:
>
Включи в свою прогу например PERFORM ля-ля ON COMMIT. И проверь, где у тебя комиты валятся ненужные. А проще включи трасировку ST05 и отрассь прогу свою.


В ST05 какая-то хрень - только COMMIT'ы туда попадают, ROLLBACK'и пролетают мимо. Или я чего-то не понимаю.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, дек 15 2004, 11:41 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, ноя 17 2004, 18:38
Сообщения: 211
Откуда: МО
Пол: Мужской
У себя в программе после удалении, ты записей не увидишь вне зависимости от присутствия commit после удаления, но записи реально еще существуют в таблице БД (это можно увидеть через ту же Se16 , при условии не выполнения еще commit в программе).
Такчто я не понял - Каким образом ты увидел что записи удаляются до Commit work?

По поводу roll back , а они у тебя есть в программе?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, дек 15 2004, 13:36 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1554
Откуда: Москва
Vit написал:
У себя в программе после удалении, ты записей не увидишь вне зависимости от присутствия commit после удаления, но записи реально еще существуют в таблице БД (это можно увидеть через ту же Se16 , при условии не выполнения еще commit в программе).


Дык... Так и проверял, с помощью SE16. Другого простого способа вроде бы нет :-)

Vit написал:
Такчто я не понял - Каким образом ты увидел что записи удаляются до Commit work?


Дык... Через SE16. Не в отладке. До комита. Не уходя с текущего экрана (на котором записи были удалены).
Вообще - может, есть где полный список событий, по которым происходит автокоммит? Может быть, что-то с экранной логикой связано?

Vit написал:
По поводу roll back , а они у тебя есть в программе?


:-)))
Конечно, есть. И точно отрабатывает.
На всю программу - один COMMIT, один ROLLBACK.

Code:
     
if f_do_commit eq 'X'.
        commit work .
else.
        rollback work .
*        message i000(zdraft).
endif.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, дек 15 2004, 14:15 
Гость
Цитата:
Дык... Через SE16. Не в отладке. До комита. Не уходя с текущего экрана (на котором записи были удалены).
Вообще - может, есть где полный список событий, по которым происходит автокоммит? Может быть, что-то с экранной логикой связано?


Очень может быть , в хелпе смотри по поводу событий и commit для них.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, дек 15 2004, 18:36 
Гость
Провел два теста с 1) Informix 2) Oracle и с простым отчтетом типа: модификация данных БД/бесконечный цикл (срубается через sm50).

В результате имеем:
1) незакоммиченные изменения видны для параллельных транзакций БД
2) незакоммиченные изменения НЕ видны для параллельных транзакций.

Вывод: надо поиграться с isolation level либо на уровне БД либо в настройках R/3 поискать ;-)

Все бывает.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 16 2004, 12:05 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1554
Откуда: Москва
ГЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ.
Заработало. Само.
Что изменилось - я не понял.
Но роллбэк теперь делает.

Я ХУДЕЮ С ЭТОЙ САПЫ.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 16 2004, 12:23 
Президент
Президент

Зарегистрирован:
Вт, авг 17 2004, 08:17
Сообщения: 3150
Откуда: В ВЕЧНОМ БАНЕ
111 написал(а):
ГЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ.
Заработало. Само.
Что изменилось - я не понял.
Но роллбэк теперь делает.

Я ХУДЕЮ С ЭТОЙ САПЫ.

Угу - знакомая песня. Типа, вдруг откуда ни возмись появился....


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 35 ]  На страницу 1, 2, 3  След.

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


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

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


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

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