Текущее время: Вс, июл 27 2025, 23:48

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Поймать исключение
СообщениеДобавлено: Пн, фев 23 2009, 16:19 
Начинающий
Начинающий

Зарегистрирован:
Пн, фев 23 2009, 15:54
Сообщения: 4
Пол: Мужской
Есть саповская FORM, которая вызывает FM:
Code:
  CALL FUNCTION 'ME_REL_SET'
       EXPORTING
            I_TITLE  = ' '
            I_DIALOG = ' '
            I_FRGRL  = FEKKO-FRGRL
            I_FRGCO  = XFRGCO
            I_FRGKZ  = FEKKO-FRGKE
            I_FRGGR  = FEKKO-FRGGR
            I_FRGST  = FEKKO-FRGSX
            I_FRGZU  = FEKKO-FRGZU
            I_FRGOT  = '2'
       IMPORTING
            E_FRGKZ  = FEKKO-FRGKE
            E_FRGZU  = FEKKO-FRGZU
            E_FRGRL  = FEKKO-FRGRL.
*    EXCEPTIONS
*         PREREQUISITE_FAIL      = 01
*         RELEASE_ALREADY_POSTED = 02
*         RESPONSIBILITY_FAIL    = 03.


Как можно сделать так, чтобы при вызове формы, если в FM возникает исключение, то его обработала моя программа, вызвавшая FORM. Т.е. не было показано ошибки функциональным модулем.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Поймать исключение
СообщениеДобавлено: Пн, фев 23 2009, 17:50 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 27 2007, 10:55
Сообщения: 197
Откуда: Україна
Пол: Мужской
Если FORM вызывающая FM - твоя, - анализируй EXCEPTIONS, т.е. смотри SY-SUBRC.

_________________
Приятно Вас видеть...


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

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
saynt написал:
Есть саповская FORM, которая вызывает FM

Если саповская, то скорее всего никак. Там надо код менять. На всякий случай - когда-то давным давно делала заметку для себя, может прояснит ситуацию:

Here the function containing MESSAGE ... RAISING ... statements receives an invalid input.

Option A. SY-SUBRC = 0, a message displayed by the function.

Code:
W_DATE = '20050199'.

CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
  EXPORTING
    date                            = W_DATE
* EXCEPTIONS
*   PLAUSIBILITY_CHECK_FAILED       = 1
*   OTHERS                          = 2
          .
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.


Option B. SY-SUBRC = <exception number>, no message displayed

Code:
W_DATE = '20050199'.

CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
  EXPORTING
    date                            = W_DATE
EXCEPTIONS
   PLAUSIBILITY_CHECK_FAILED       = 1
   OTHERS                          = 2
          .
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Поймать исключение
СообщениеДобавлено: Пн, фев 23 2009, 20:42 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
saynt написал:
Есть саповская FORM, которая вызывает FM:
Code:
  CALL FUNCTION 'ME_REL_SET'
       EXPORTING
            I_TITLE  = ' '
            I_DIALOG = ' '
            I_FRGRL  = FEKKO-FRGRL
            I_FRGCO  = XFRGCO
            I_FRGKZ  = FEKKO-FRGKE
            I_FRGGR  = FEKKO-FRGGR
            I_FRGST  = FEKKO-FRGSX
            I_FRGZU  = FEKKO-FRGZU
            I_FRGOT  = '2'
       IMPORTING
            E_FRGKZ  = FEKKO-FRGKE
            E_FRGZU  = FEKKO-FRGZU
            E_FRGRL  = FEKKO-FRGRL.
*    EXCEPTIONS
*         PREREQUISITE_FAIL      = 01
*         RELEASE_ALREADY_POSTED = 02
*         RESPONSIBILITY_FAIL    = 03.


Как можно сделать так, чтобы при вызове формы, если в FM возникает исключение, то его обработала моя программа, вызвавшая FORM. Т.е. не было показано ошибки функциональным модулем.

Поискать ноты или выставить сообщение в SAP с тем, чтобы была реализована обработка ошибок.
Других вариантов нет, так как
help(F1) написал(а):
If the caller of an exception raised by RAISE has not assigned a return value, the program terminates with a runtime error.

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Поймать исключение
СообщениеДобавлено: Вт, фев 24 2009, 10:32 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
sy-uname написал(а):
Поискать ноты или выставить сообщение в SAP с тем, чтобы была реализована обработка ошибок.

Нота 1039231 решает данную проблему.

_________________
С уважением,
Удав.


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

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


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

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


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

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