Текущее время: Чт, июн 19 2025, 05:47

Часовой пояс: 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
Сообщения: 1556
Откуда: Москва
Всем привет.
Так-то я абапер, так что если что - не пинать.

Чтобы не вдаваться в описания самому, приведу отрывок из хелпа по оператору 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
Сообщения: 1556
Откуда: Москва
Vit написал:
В отладчике после каждого шага делается commit.



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

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


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

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


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

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


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

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

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


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

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
№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
Сообщения: 1556
Откуда: Москва
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
Сообщения: 1556
Откуда: Москва
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
Сообщения: 1556
Откуда: Москва
ГЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ.
Заработало. Само.
Что изменилось - я не понял.
Но роллбэк теперь делает.

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

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


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

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

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

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


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

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


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

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


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

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