Текущее время: Пт, май 16 2025, 02:40

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Обработка ошибок в ABAP
СообщениеДобавлено: Пт, ноя 25 2005, 10:32 
Гость
Добрый день, уважаемые коллеги!

Подскажите пожалуйста, как правильно обработать следующую ситуацию:

В программе вызываю стандартный САП функциональный модуль.
Обрабатываю все возвращаемые эксепшены (всего 1).
Проблема в том, что в процессе работы этого функционального модуля возникают дополнительные ошибки, прерывающие выполнение программы, ошибки выводятся на экран в виде красных сообщений.

Кусок кода следующий:

CALL FUNCTION 'SD_DELIVERY_UPDATE_PACKING'
EXPORTING
DELIVERY = I_VBELN
COMMIT = 'X'
TABLES
VERKO_TAB = L_VERKO_TAB
VERPO_TAB = L_VERPO_TAB
PROT = L_PROT
EXCEPTIONS
UPDATE_NOT_POSSIBLE = 1
OTHERS = 99.

IF SY-SUBRC NE 0.
RETURN-MESSAGE = 'Ошибка'.
exit.
endif.

Подскажите пожалуйста, как максимально перехватывать ошибки-сообщения? Возможно есть какой-то способ обработки исключительных ситуаций?

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


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 25 2005, 10:41 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июн 22 2005, 09:51
Сообщения: 208
Пол: Мужской
Цитата:
To call a function module, use the CALL FUNCTION statement:

CALL FUNCTION <module>
[EXPORTING f1 = a 1.... f n = a n]
[IMPORTING f1 = a 1.... f n = a n]
[CHANGING f1 = a 1.... f n = a n]
[TABLES f1 = a 1.... f n = a n]
[EXCEPTIONS e1 = r 1.... e n = r n [ERROR_MESSAGE = r E]
[OTHERS = ro]].
...
If you specify of ERROR_MESSAGE in the exception list you can influence the message handling of function modules. Normally, you should only call messages in function modules using the MESSAGE ... RAISING statement. With ERROR_MESSAGE you can force the system to treat messages that are called without the RAISING option in a function module as follows:

    Messages of classes S, I, and W are ignored (but written to the log in a background job).
    Messages of classes E and A stop the function module as if the exception ERROR_MESSAGE had occurred (SY-SUBRC is set to <r E >).


Может это должно спасти? :roll:

_________________
С уважением, В.Ш.
4.6C


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:   Тема решена
СообщениеДобавлено: Пт, ноя 25 2005, 12:35 
Гость
а какой код ошибки?


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 25 2005, 14:19 
Гость
вот такая строчка генерит исключение в ФМ:
MESSAGE E511 WITH V51V4-POSNR.

как ее обработать в выше вызывающей программе, чтобы прерывание программы не происходило?


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 25 2005, 14:22 
Гость
вот такая строчка генерит исключение в ФМ:
MESSAGE E511 WITH V51V4-POSNR.

как ее обработать в выше вызывающей программе, чтобы прерывание программы не происходило?


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 25 2005, 14:29 
Гость
Все понял....
Большое Вам спасибо!

Виктор(Минск) написал:
Цитата:
To call a function module, use the CALL FUNCTION statement:

CALL FUNCTION <module>
[EXPORTING f1 = a 1.... f n = a n]
[IMPORTING f1 = a 1.... f n = a n]
[CHANGING f1 = a 1.... f n = a n]
[TABLES f1 = a 1.... f n = a n]
[EXCEPTIONS e1 = r 1.... e n = r n [ERROR_MESSAGE = r E]
[OTHERS = ro]].
...
If you specify of ERROR_MESSAGE in the exception list you can influence the message handling of function modules. Normally, you should only call messages in function modules using the MESSAGE ... RAISING statement. With ERROR_MESSAGE you can force the system to treat messages that are called without the RAISING option in a function module as follows:

    Messages of classes S, I, and W are ignored (but written to the log in a background job).
    Messages of classes E and A stop the function module as if the exception ERROR_MESSAGE had occurred (SY-SUBRC is set to <r E >).


Может это должно спасти? :roll:


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

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


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

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


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

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