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

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


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

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


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

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