Текущее время: Вт, июл 29 2025, 15:50

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Как отследить "прыжки" программы?
СообщениеДобавлено: Ср, мар 10 2010, 18:31 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Пт, фев 09 2007, 12:41
Сообщения: 21
Откуда: Muenchen
Привет коллеги.
Попробую сформулировать проблему следующим образом.
Например есть программа Z1 которая при запуске протекает следущим образом:
- start-of-selection
- перепрыгивает в форму F1
- из F1 перепрыгивает в форму F2 в программе Z2
- из F2 перепрыгивает в функт. модуль FM1
- из FM1 перепрыгивает в функт. модуль FM2
- возвращается в FM1
- возвращается в F2
- возвращается в F1
- возвращается в евент start-of-selection программы Z1
- прыгает в функт. модуль FM3
- возвращается в Z1

Итак вопрос.
А есть стандартная САП трансаkция/программа, которая способна записать все эти "прыжки" и выдать их на экран? Просьба CALL в дебаггинге не предлагать :) - мне важно знать все ответвления программы, а не только актуальную.

Danke im voraus


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как отследить "прыжки" программы?
СообщениеДобавлено: Ср, мар 10 2010, 18:40 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
такого журнала afaik нет,
смотрите вызовы (callstack) и загруженные программы (loaded programs)
в режиме отладки, это не даст полной картины, но позволит увидеть
локальную иерархию вызовов в точке прерывания и какие программы вызывались


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как отследить "прыжки" программы?
СообщениеДобавлено: Ср, мар 10 2010, 18:54 
Модератор
Модератор

Зарегистрирован:
Пт, ноя 12 2004, 11:40
Сообщения: 542
Откуда: Москва
Пол: Мужской
а всякое такое типа FM SYSTEM_CALLSTACK?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как отследить "прыжки" программы?
СообщениеДобавлено: Ср, мар 10 2010, 19:36 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, окт 03 2008, 17:20
Сообщения: 162
trop написал(а):
такого журнала afaik нет
Неправда, есть! 8) SE30.
Создайте свой вариант запуска, и вызывайте что угодно. После выполнения - кнопка "Анализ". Далее в главном меню: Перейти к->Ранговый список->Стандарт (или просто F5). Становитесь курсором на самую верхнюю строку "Runtime analysis", и нажимаете иерархия вызовов (F2)... И будет Вам счастье.

_________________
В SAPе есть всё, просто вы чего-то не нашли.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как отследить "прыжки" программы?
СообщениеДобавлено: Чт, мар 11 2010, 09:01 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
SYS написал(а):
trop написал(а):
такого журнала afaik нет
Неправда, есть! 8) SE30.
Создайте свой вариант запуска, и вызывайте что угодно. После выполнения - кнопка "Анализ". Далее в главном меню: Перейти к->Ранговый список->Стандарт (или просто F5). Становитесь курсором на самую верхнюю строку "Runtime analysis", и нажимаете иерархия вызовов (F2)... И будет Вам счастье.

Прогнал программу, иерархия вызовов неактивна, что я не так мог сделать?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как отследить "прыжки" программы?
СообщениеДобавлено: Чт, мар 11 2010, 09:40 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
dankwart написал(а):
Привет коллеги.
Попробую сформулировать проблему следующим образом.
Например есть программа Z1 которая при запуске протекает следущим образом:
- start-of-selection
- перепрыгивает в форму F1
- из F1 перепрыгивает в форму F2 в программе Z2
- из F2 перепрыгивает в функт. модуль FM1
- из FM1 перепрыгивает в функт. модуль FM2
- возвращается в FM1
- возвращается в F2
- возвращается в F1
- возвращается в евент start-of-selection программы Z1
- прыгает в функт. модуль FM3
- возвращается в Z1

Итак вопрос.
А есть стандартная САП трансаkция/программа, которая способна записать все эти "прыжки" и выдать их на экран? Просьба CALL в дебаггинге не предлагать :) - мне важно знать все ответвления программы, а не только актуальную.

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

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как отследить "прыжки" программы?
СообщениеДобавлено: Чт, мар 11 2010, 10:25 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
dankwart написал(а):
мне важно знать все ответвления программы, а не только актуальную.

Нереально. При статическом анализе кода неизвестны значения переменных в операторах условия (IF, CASE, ... ).

_________________
С уважением, VGA
Мой блог


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как отследить "прыжки" программы?
СообщениеДобавлено: Чт, мар 11 2010, 10:42 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, окт 03 2008, 17:20
Сообщения: 162
Besa написал:
...Прогнал программу, иерархия вызовов неактивна, что я не так мог сделать?

Давайте начнем с варианта измерения.
а). На закладке "Операторы" оставим галочки только в группе "Единицы модуляризации" (Методы, События,...)
б). На закладке "Продолж-сть +Вид" Агрегацию поставить в "Нет"
в). Сохранить и выйти

Запустить транзакцию/программу/ФМ.
А далее как уже было описано.

_________________
В SAPе есть всё, просто вы чего-то не нашли.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как отследить "прыжки" программы?
СообщениеДобавлено: Чт, мар 11 2010, 11:40 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
SYS написал(а):
Besa написал:
...Прогнал программу, иерархия вызовов неактивна, что я не так мог сделать?

Давайте начнем с варианта измерения.
а). На закладке "Операторы" оставим галочки только в группе "Единицы модуляризации" (Методы, События,...)
б). На закладке "Продолж-сть +Вид" Агрегацию поставить в "Нет"
в). Сохранить и выйти

Запустить транзакцию/программу/ФМ.
А далее как уже было описано.

Я не знал про такие хитрости в se30, редко пользовался наверно :) НО, опять же, анализ показывает только ту ветку, по которой программа прошлась. Запустил простой пример. d = 'X'.
Code:
REPORT  ztesti3.
PARAMETER d(1).

WRITE '='.

IF d = 'X'.
  PERFORM d.
ELSE.
  PERFORM e.
ENDIF.

*&---------------------------------------------------------------------*
*&      Form  d
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM d.
  WRITE 'd'.
ENDFORM.                    "d
*&---------------------------------------------------------------------*
*&      Form  e
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM e.
  WRITE 'e'.
ENDFORM.                    "e


se30 показывает

Code:
Runtime analysis
Submit Report ZTESTI3
  Program ZTESTI3
   Call Func. CONVERSION_EXIT_ISOLA_OUTPUT
   Perform not found BEFORE_EVENT
   Perform D
   Event SYSTEM-EXIT
  Program ZTESTI3
   Call Func. CONVERSION_EXIT_ISOLA_OUTPUT


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как отследить "прыжки" программы?
СообщениеДобавлено: Чт, мар 11 2010, 12:17 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, окт 03 2008, 17:20
Сообщения: 162
Besa написал:
НО, опять же, анализ показывает только ту ветку, по которой программа прошлась.
Конечно. А Вы чего ожидали, что будут всевозможные разветвления логики выполнения? :) Вот это уже точно невозможно.

_________________
В SAPе есть всё, просто вы чего-то не нашли.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как отследить "прыжки" программы?
СообщениеДобавлено: Чт, мар 11 2010, 12:43 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
SYS написал(а):
Besa написал:
НО, опять же, анализ показывает только ту ветку, по которой программа прошлась.
Конечно. А Вы чего ожидали, что будут всевозможные разветвления логики выполнения? :) Вот это уже точно невозможно.

Так я тоже этого и придерживаюсь :) Из ваших постов в этой теме, я подумал что Вы утверждаете обратное.
Получается Ваш совет это альтернатива ФМ-а SYSTEM_CALLSTACK и того что посоветовал trop. Теперь все понятно. :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как отследить "прыжки" программы?
СообщениеДобавлено: Чт, мар 11 2010, 12:50 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, окт 03 2008, 17:20
Сообщения: 162
Besa написал:
SYSTEM_CALLSTACK
Это в текущий момент времени. А в SE30 показывается вся история вызовов. Собственного чего и хотел автор темы.
Добавлено. Хотя кто его знает, что он хотел...

_________________
В SAPе есть всё, просто вы чего-то не нашли.


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

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


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

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


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

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