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

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


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

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


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

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