Текущее время: Пн, июл 28 2025, 10:54

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


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

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


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

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