Текущее время: Вт, май 13 2025, 02:48

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Узнать номер строки
СообщениеДобавлено: Чт, сен 23 2004, 18:57 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Здрасьте всем. Давно здесь не бывал.
Вопрос конкретный и относящийся к конкретной задаче.

Существует ли какой-то способ узнать, какая строка исходного кода текущей программы выполняется в данный момент?

Поясню.
В программе требуется вставлять особые закладки (например, в виде макросов), которые обозначают какую-то критическую стадию выполнения программы и фиксируют... эээ... "прохождение" выполнения программы "через них". Но эта закладка должна где-то как-то обозначить свое местоположение. Очевидно, путем указания имени программы и номера строки, в котором она находится. Ручками указывать - выглядит нелепо. К тому же, исходный код иногда правится, и они будут "съезжать" с того места, на котором зафиксированы.

А еще лучше - есть системная функция SYSTEM_CALLSTACK. Она выдает стек вызовов. Но, например, один и тот же ФМ может вызываться в одном исходном коде несколько раз. Для того, чтобы определить, какой именно вызов произошел, надо, очевидно, зафиксировать номер строки, в которой произошел данный вызов.
А такой инфы данная функция, к сожалению, не дает :-( . Она выдает только последовательность. Может, есть какая-то более продвинутая функция, которая такую инфу выдает?

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 24 2004, 09:27 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
А события Workflow здесь не подойдут?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, сен 25 2004, 11:41 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
EGF написал(а):
А события Workflow здесь не подойдут?


Ээээ... вряд ли, но... это как? :shock:

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, сен 25 2004, 20:13 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Я не специалист по Workflow, но примерно это так.
В программе генерится событие с помощью ФМ. Это событие запускает некий заранее созданный поток операций, а в нём можно запрограммировать всё что угодно. Ну или почти всё.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 27 2004, 11:46 
Гость
EGF написал(а):
Я не специалист по Workflow, но примерно это так.
В программе генерится событие с помощью ФМ. Это событие запускает некий заранее созданный поток операций, а в нём можно запрограммировать всё что угодно. Ну или почти всё.


и?...
Мне надо не что угодно :-). Мне вполне конкретную вещь забацать нужно.
Что-то я не припомню, чтобы при реализации WorkFlow использовался какой-то особый АВАР :-). Видимо, я просто недостаточно ясно выразился.

Пишется заказной продукт. Его в дальнейшем придется суппортить.
Для того, чтобы облегчить жизнь суппорту, надо сделать такую приблуду, которая бы при возникновении каких-то ошибок при работе позволяла бы клиентам получить отчет, где была бы отражена последовательность вызовов (программ, подпрограмм, ФМ, экранов, и т.д.), с указанием координат, где эти вызовы произошли. Чтобы клиенты могли отправить этот отчет суппорту и суппорт мог бы разбирать ситуацию более предметно. Что-то вроде дампа, но несколько другого рода.

Впрочем, я вроде бы почти придумал уже (синтаксический анализ исходников с поиском в нем этих закладок). Хотя, надеюсь, что есть решение получше.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 27 2004, 11:48 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
EGF написал(а):
Я не специалист по Workflow, но примерно это так.
В программе генерится событие с помощью ФМ. Это событие запускает некий заранее созданный поток операций, а в нём можно запрограммировать всё что угодно. Ну или почти всё.


и?...
Мне надо не что угодно :-). Мне вполне конкретную вещь забацать нужно.
Что-то я не припомню, чтобы при реализации WorkFlow использовался какой-то особый АВАР :-). Видимо, я просто недостаточно ясно выразился.

Пишется заказной продукт. Его в дальнейшем придется суппортить.
Для того, чтобы облегчить жизнь суппорту, надо сделать такую приблуду, которая бы при возникновении каких-то ошибок при работе позволяла бы клиентам получить отчет, где была бы отражена последовательность вызовов (программ, подпрограмм, ФМ, экранов, и т.д.), с указанием координат, где эти вызовы произошли. Чтобы клиенты могли отправить этот отчет суппорту и суппорт мог бы разбирать ситуацию более предметно. Что-то вроде дампа, но несколько другого рода.

Впрочем, я вроде бы почти придумал уже (синтаксический анализ исходников с поиском в нем этих закладок). Хотя, надеюсь, что есть решение получше.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 27 2004, 12:10 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Может сделать проще, без всяких там самоанализов программы и прочегео искусственного интеллекта? В контрольных точках записывать состояние в лог (ФМ BAL_LOG*).
Ну и проверок аргументов/параметров с подробными сообщениями побольше.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 27 2004, 12:24 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
sy-uname написал(а):
Может сделать проще, без всяких там самоанализов программы и прочегео искусственного интеллекта? В контрольных точках записывать состояние в лог (ФМ BAL_LOG*).
Ну и проверок аргументов/параметров с подробными сообщениями побольше.


Дык, примерно так и будет. Только, в конечно, в лог не будет писаться все подряд. Будет фиксироваться прохождение каких-то этапов программы. Если все OK - хранить эту информацию долговременно нет необходимости (это ж сколько места займет! Если для каждого запуска хранить). Они понадобятся только в случае каких-то проблем.
Примерно это будет выглядеть следующим образом:
-----------------------------------
STAGE 'STAGE1' 'Прохождение критической точки 1' .

CALL FUNCTION ....
.....
STAGE 'SUBSTAGE1' "Прохождение критической точки 1.1"
CALL SCREEN '0100'.
.....
ENDSTAGE 'SUBSTAGE1' .

ENDSTAGE 'STAGE1'.
-----------------------------------
, где STAGE - это макрос, который и будет отмечать прохождение (с вызовом внутри него каких-то ФМ и т.п.). ENDSTAGE - соответственно, макрос, фиксирующий окончание прохождения критической стадии.

Но вот координаты этих точек... Их же много может быть. Всегда, конечно, можно сделать просто автоматический разбор исходников. Но, ИМХО, это не есть очень хорошо.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 27 2004, 18:05 
Гость
Можно попытаться взять идеи из ФМ AC_TRACE_CALLSTACK (взводит флаг трассировки), AC_CALL_METHOD (полезная работа+запись в стек), AC_FLUSH_CALL_INTERNAL( еще что-то+ вызов AC_WRITE_SNAP). Но только идеи :)


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 28 2004, 12:28 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Гость написал(а):
Можно попытаться взять идеи из ФМ AC_TRACE_CALLSTACK (взводит флаг трассировки), AC_CALL_METHOD (полезная работа+запись в стек), AC_FLUSH_CALL_INTERNAL( еще что-то+ вызов AC_WRITE_SNAP). Но только идеи :)


Спасибо, уже кое-что. Гляну.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


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

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


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

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


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

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