Текущее время: Ср, май 14 2025, 22:07

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Доступ к локальным переменным вызывающей подпрограммы
СообщениеДобавлено: Пн, июл 04 2005, 10:21 
Гость
Есть возможность доступа к глобальным данным вызывающей программы через field-symbols:

data: str(30) type c vlue '(prog)var'.
field-symbols:
<fs> type any.
assign str to <fs>.

Может кто занет как доступиться к локальной переменной вызывающей подпрограммы или функции?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: Re: Доступ к локальным переменным вызывающей подпрограммы
СообщениеДобавлено: Пн, июл 04 2005, 10:38 
Директор
Директор

Зарегистрирован:
Чт, май 12 2005, 11:10
Сообщения: 1038
Пол: Мужской
$Andrew написал(а):
Есть возможность доступа к глобальным данным вызывающей программы через field-symbols:

data: str(30) type c vlue '(prog)var'.
field-symbols:
<fs> type any.
assign str to <fs>.

Может кто занет как доступиться к локальной переменной вызывающей подпрограммы или функции?


Для локальных не перверял - попробуй через такой ассигн:

DATA ti_ekko LIKE ekko.
field-symbols: <sh_ekko> type any.
assign ('(SAPLMEPO)ekko') to <sh_ekko>.

где SAPLMEPO это имя модуля, екко - имя переменной, значение которой хочешь достать.

может и прокатит.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июл 04 2005, 23:32 
Гость
Нет это не подходит


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: Сомнительно, что такое вообще возможно!
СообщениеДобавлено: Вт, июл 05 2005, 09:42 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Сомнительно, что такое вообще возможно! На то они и локальные переменные. Если ABAP нормальный язык (в чем я лично, как ослик Иа, сомневаюсь ;), то локальные переменные существуют только в момент работы подпрограммы.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сомнительно, что такое вообще возможно!
СообщениеДобавлено: Ср, июл 06 2005, 16:19 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пт, май 27 2005, 14:20
Сообщения: 310
Пол: Мужской
Parazit написал:
Сомнительно, что такое вообще возможно! На то они и локальные переменные. Если ABAP нормальный язык (в чем я лично, как ослик Иа, сомневаюсь ;), то локальные переменные существуют только в момент работы подпрограммы.

В сапе локальные переменные (точнее их значения) живут долго, даже слишком долго :lol:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 06 2005, 17:01 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 01 2004, 07:44
Сообщения: 174
Цитата:
DATA ti_ekko LIKE ekko.
field-symbols: <sh_ekko> type any.
assign ('(SAPLMEPO)ekko') to <sh_ekko>.


такой номер пройдет для локальных переменных, если вы обращаетесь к ним из программы, вызываемой в области их видимости (напр. в ФМ объявлены локальные переменные, вызывается другой ФМ, в котором вы можете получить на них ссылку). дело в другом, использование assign'ов не есть хороший тон в ABAP-программировании, тем более для изменения локальных переменных.
хотя конечно иногда бывают ситуации 8)
но все-таки лучше этим не увлекаться, могут быть проблемы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 07 2005, 07:59 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Между прочим, трюки через Assign можно делать не только для доступа к переменным вызвавшей программы, но и той, которую вызываешь.
У меня была ситуация, когда работа вызываемого ФМ зависила от значения глобальной переменной Функциональной Группы (ну вот САПа такое написала). Я сначала вызвал безобидный ФМ из этой группы для того, чтобы она (группа) загрузилась в память. А потом уже изменил значение переменной через Assign и запустил нужный ФМ.
Вот если бы еще группу уметь как то напрямую загружать, без вызова ненужного ФМ, просто его может и не оказаться.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сомнительно, что такое вообще возможно!
СообщениеДобавлено: Чт, июл 07 2005, 08:07 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
V® написал:
Parazit написал:
Сомнительно, что такое вообще возможно! На то они и локальные переменные. Если ABAP нормальный язык (в чем я лично, как ослик Иа, сомневаюсь ;), то локальные переменные существуют только в момент работы подпрограммы.

В сапе локальные переменные (точнее их значения) живут долго, даже слишком долго :lol:
И что, есть возможность доступа к ним? Если это так, то ослик Иа прав! ;)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 07 2005, 13:24 
Модератор
Модератор

Зарегистрирован:
Пт, ноя 12 2004, 11:40
Сообщения: 542
Откуда: Москва
Пол: Мужской
.........
Лучше подумайте над архитектурой приложения....


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 07 2005, 14:11 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 01 2004, 07:44
Сообщения: 174
Ich Will написал:
.........
Лучше подумайте над архитектурой приложения....


вот это правильно, а еще полезно подумать к чему это может привести, если активно пользоваться assign'ами в замещениях :D


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 07 2005, 16:10 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Цитата:
Лучше подумайте над архитектурой приложения....


Цитата:
вот это правильно, а еще полезно подумать к чему это может привести, если активно пользоваться assign'ами в замещениях


Абсолютно согласен с предыдущими ораторами! Ваши бы слова да САПу в уши! Разве кто-нибудь будет писать свои программы так, чтобы самому в них лазить через assign?! Все проблемы от кривой архитектуры, заложенной САПой, либо от ее же недоработок.
В замещениях я тоже не приветствую assign для изменения данных. Но, например, когда хочется узнать хотя бы режим запуска транзакции (просмотр/изменение), вай бы и нот? :) Кажись такое мне попадалось в USER-EXITах транзакции MIRO (MIR4, MIR7...).


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

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


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

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


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

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