Текущее время: Пт, июл 25 2025, 05:39

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Обновление Z.. таблицы - как грамотнее?
СообщениеДобавлено: Чт, май 17 2007, 23:03 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Вроде простой вопрос, а конкретного ответа так нигде и не нашла. :? Как грамотно проводить обновления в своей (Z..) таблице? Есть примерно такой вариант:

Code:
CALL FUNCTION 'ENQUEUE ...'
IF sy-subrc <> 0.
* ругаемся
   EXIT.
ENDIF.

UPDATE Z...

IF sy-subrc = 0.
  COMMIT WORK.
ELSE.
  ROLLBACK WORK.
ENDIF.

CALL FUNCTION 'DEQUEUE ...'


Это верный подход или что-нибудь надо поменять? Может DEQUEUE положено перед COMMIT/ROLLBACK? Сомнения гложуть...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обновление Z.. таблицы - как грамотнее?
СообщениеДобавлено: Чт, май 17 2007, 23:30 
Специалист
Специалист

Зарегистрирован:
Пт, июл 22 2005, 08:56
Сообщения: 158
Jelena написала:
Вроде простой вопрос, а конкретного ответа так нигде и не нашла. :? Как грамотно проводить обновления в своей (Z..) таблице? Есть примерно такой вариант:

Code:
CALL FUNCTION 'ENQUEUE ...'
IF sy-subrc <> 0.
* ругаемся
   EXIT.
ENDIF.

UPDATE Z...

IF sy-subrc = 0.
  COMMIT WORK.
ELSE.
  ROLLBACK WORK.
ENDIF.

CALL FUNCTION 'DEQUEUE ...'


Это верный подход или что-нибудь надо поменять? Может DEQUEUE положено перед COMMIT/ROLLBACK? Сомнения гложуть...

Грамотнее всего через Функциональные модули обновлений (in update task)...
Можешь посмотреть в Кречмере по abap/4 - там где про LUW рассказывается

_________________
C SAP
Изображение


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 18 2007, 08:37 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
В BC414 такой пример:

Цитата:
*&-----------------------------------------------------------------*
*& Form SAVE
*&-----------------------------------------------------------------*
FORM save.
* lock dataset
PERFORM enq_scustom.
* get SCUSTOM-ID from number range object BC_SCUSTOM
PERFORM number_get_next USING scustom.
* save new customer
PERFORM save_scustom.
* unlock dataset
PERFORM deq_all.
ENDFORM. " SAVE


Позволю себе маленькое уточнение, достаточно ли анализа на
SY-SUBRC = 0, чтобы сделать COMMIT ?


Цитата:
When the command has been executed, the system field SY-DBCNT contains the number of updated lines.

The return code is set as follows:

SY-SUBRC = 0:
At least one line was updated,
SY-SUBRC = 4:
No line was updated because either no line could be selected or the change would have generated lines with primary keys that already existed.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, май 21 2007, 18:31 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
vga написал(а):
Позволю себе маленькое уточнение, достаточно ли анализа на
SY-SUBRC = 0, чтобы сделать COMMIT ?


В моем конкретном примере я подразумевала, что обновляется одна запись, но вопрос, конечно, интересный. Надо будет учесть на будущее. Спасибо!


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

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


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

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


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

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