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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: assign на локальную переменную
СообщениеДобавлено: Ср, мар 10 2010, 17:25 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Привет. Чую что из ситуации не выкрутиться, но на всякий случай спрошу...
Можно ли в FORM2 получить доступ к переменной X?
Code:
FORM1.
  DATA X.
  PERFORM FORM2.
ENDFORM.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: assign на локальную переменную
СообщениеДобавлено: Ср, мар 10 2010, 17:43 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, май 14 2007, 13:05
Сообщения: 561
Откуда: Москва
Data declarations in procedures create local data types and objects that are only visible within that procedure.
Поможет только явная передача данных.

_________________
Sapere aude!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: assign на локальную переменную
СообщениеДобавлено: Ср, мар 10 2010, 17:53 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
В качестве продолжения истории....
как большинство относится к нотам, которые по сути являются модификациями??

Просто в моем случае SAP говорит что да, это косяк (данные не передаются), но если вы хотите его исправить, то берите ключ на модификацию, и делайте как описано ниже :mrgreen:

Где логика и нафига нужны такие ноты?...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: assign на локальную переменную
СообщениеДобавлено: Ср, мар 10 2010, 18:00 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
troy написал(а):
В качестве продолжения истории....
как большинство относится к нотам, которые по сути являются модификациями??

Нормально. Не вижу в этом особой проблемы. Особенно если потом при следующем патче сбросить всё на оригинал.

Цитата:
Просто в моем случае SAP говорит что да, это косяк (данные не передаются), но если вы хотите его исправить, то берите ключ на модификацию, и делайте как описано ниже :mrgreen:

Где логика и нафига нужны такие ноты?...
Вопрос, насколько я понимаю, риторический и не требует ответа.

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


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

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
sy-uname написал(а):
Нормально. Не вижу в этом особой проблемы. Особенно если потом при следующем патче сбросить всё на оригинал.

Т.е. при каждом патче сбрасывать и накатывать по новой? :?
Потому что исправлять "по-нормальному" они не собираются.
Отсюда и вопрос, собссна. Вроде и не нота, и не совсем модификация, а так - не пойми что....


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: assign на локальную переменную
СообщениеДобавлено: Ср, мар 10 2010, 20:30 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
А почему нельзя вынести переменную в какую-нибудь глобальную область или, как уже советовали, передавать явно? :? На мой взгляд логика тут как раз вполне нормальная. Для SAP по крайней мере. :)

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: assign на локальную переменную
СообщениеДобавлено: Ср, мар 10 2010, 20:58 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Jelena написала:
А почему нельзя вынести переменную в какую-нибудь глобальную область или, как уже советовали, передавать явно? :? На мой взгляд логика тут как раз вполне нормальная. Для SAP по крайней мере

Ага, а вот у SAP по этому поводу другое мнение :lol:
Речь о стандартной саповской программе. Точнее юзер экзите, в который не передаются входные данные (да и правда, зачем в экзите что-то менять). Если быть конкретным - нота 149138.... я с неё плакалъ (с)
Так вот согласно этой ноты действительно нужно добавить USING параметры, но делается это вручную через модификацию стандартной проги (т.е. при каждом накатывании патчей нужно будет проверять).

З.Ы. сегодня в который уже раз (по другому вопросу) убедился в некомпетентности саповской тех.поддержки - придется ломать-исправлять саповские косяки... Да что ж мне так не везет-то? :evil:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: assign на локальную переменную
СообщениеДобавлено: Чт, мар 11 2010, 13:20 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Вт, июн 09 2009, 15:25
Сообщения: 24
Откуда: Москва
Пол: Мужской
Если у вас новая система SAP ERP 6.0 и версия ядра 7 и выше можно воспользоваться технологией расширений ENHANCEMENT FRAMEWORK (курс BC417). Для данного случая подойдут имплицитные точки расширения.
По моему мнению с использованием такой технологии расширений со стандартом можно сделать всё... ну или почти всё.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: assign на локальную переменную
СообщениеДобавлено: Чт, мар 11 2010, 14:11 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
abrukhov написал:
По моему мнению с использованием такой технологии расширений со стандартом можно сделать всё... ну или почти всё.

тут как раз последний случай :D
А вообще к технике расширений я отношусь прохладно, именно потому что "со стандартом можно сделать всё" ...и концов не сыщешь


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: assign на локальную переменную
СообщениеДобавлено: Чт, мар 11 2010, 14:23 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Вт, июн 09 2009, 15:25
Сообщения: 24
Откуда: Москва
Пол: Мужской
troy написал(а):
abrukhov написал:
По моему мнению с использованием такой технологии расширений со стандартом можно сделать всё... ну или почти всё.

тут как раз последний случай :D
А вообще к технике расширений я отношусь прохладно, именно потому что "со стандартом можно сделать всё" ...и концов не сыщешь


Здесь не "последний случай".
Например:
Code:
...
ENHANCEMENT 1 ZENHANC.
DATA: Y. " Глобальная переменная
ENDENHANCEMENT.
...
FORM1.
ENHANCEMENT 1 ZENHANC.
  DATA X.
  Y = X.
  PERFORM FORM2.
  EXIT.
ENDENHANCEMENT.
  DATA X.
  PERFORM FORM2.
ENDFORM.


Можно придумать ещё варианты.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: assign на локальную переменную
СообщениеДобавлено: Чт, мар 11 2010, 14:44 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
abrukhov написал:
Здесь не "последний случай".
Например:
Code:
...
ENHANCEMENT 1 ZENHANC.
DATA: Y. " Глобальная переменная
ENDENHANCEMENT.
...
FORM1.
ENHANCEMENT 1 ZENHANC.
  DATA X.
  Y = X.
  PERFORM FORM2.
  EXIT.
ENDENHANCEMENT.
  DATA X.
  PERFORM FORM2.
ENDFORM.


Можно придумать ещё варианты.

Что , проблем с двойной декларацией X разве не будет?
В остальном хороший пример того, что что то в принципе сделать можно, но лучше так не делать. Вариант с модификацией получается более надёжный, понятный и предсказуемый.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: assign на локальную переменную
СообщениеДобавлено: Чт, мар 11 2010, 16:45 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Вт, июн 09 2009, 15:25
Сообщения: 24
Откуда: Москва
Пол: Мужской
sy-uname написал(а):
Что , проблем с двойной декларацией X разве не будет?

Будет. По логике примера мы заменяем стандартную логику на свою, старую игнорим. Переменные можно назвать по другому.
sy-uname написал(а):
В остальном хороший пример того, что что то в принципе сделать можно, но лучше так не делать. Вариант с модификацией получается более надёжный, понятный и предсказуемый.

Я бы тоже сделал как рекомендует нота. Но уж если она не нравиться, можно сделать и по своему.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: assign на локальную переменную
СообщениеДобавлено: Пт, мар 12 2010, 20:47 
Ассистент
Ассистент

Зарегистрирован:
Чт, мар 11 2010, 18:35
Сообщения: 33
А приассигнить внутри Perform нельзя разве эту переменную?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: assign на локальную переменную
СообщениеДобавлено: Пт, мар 12 2010, 21:44 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Helper написал(а):
А приассигнить внутри Perform нельзя разве эту переменную?

Какую "эту"? Внутри какого "Perform"-а?

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: assign на локальную переменную
СообщениеДобавлено: Пн, мар 15 2010, 08:50 
Ассистент
Ассистент

Зарегистрирован:
Вс, май 17 2009, 15:12
Сообщения: 29
Code:
assign ('(программа)переменная') to <lv>.
if sy-subrc is initial.
...
endif.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2  След.

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


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

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


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

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