Текущее время: Ср, июл 23 2025, 22:58

Часовой пояс: 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 часа


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

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


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

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