Текущее время: Ср, июл 23 2025, 23:01

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Доступ из локального класса к данным глобального класса?
СообщениеДобавлено: Ср, апр 22 2015, 23:21 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
А что, если в глобальном классе описан вспомогательный локальный класс, то глобальные атрибуты не доступны локальному?

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Доступ из локального класса к данным глобального класса?
СообщениеДобавлено: Чт, апр 23 2015, 04:42 
Специалист
Специалист

Зарегистрирован:
Вт, июн 10 2014, 09:41
Сообщения: 180
Да, недоступны. Но можно сделать такую штуку и будут доступны:
http://sapboard.ru/forum/viewtopic.php?f=13&t=87197&start=0
Чтобы добавить локального друга к глобальном классу нужно в SE24 в меню "Перейти к"->"Локальные определения/реализации"->"Релевантные для классов лок. определения" написать такой код:
CLASS lcl_test DEFINITION DEFERRED.
CLASS zcl_global DEFINITION LOCAL FRIENDS lcl_test.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Доступ из локального класса к данным глобального класса?
СообщениеДобавлено: Чт, апр 23 2015, 06:09 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
UKY написал(а):
Да, недоступны. Но можно сделать такую штуку и будут доступны:
http://sapboard.ru/forum/viewtopic.php?f=13&t=87197&start=0
Чтобы добавить локального друга к глобальном классу нужно в SE24 в меню "Перейти к"->"Локальные определения/реализации"->"Релевантные для классов лок. определения" написать такой код:
CLASS lcl_test DEFINITION DEFERRED.
CLASS zcl_global DEFINITION LOCAL FRIENDS lcl_test.

В том то и дело, что я уже пробовал так - не помогает. Может еще секрет какой? У меня версия SAP_ABAP 7.01.

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Доступ из локального класса к данным глобального класса?
СообщениеДобавлено: Пт, апр 24 2015, 04:27 
Специалист
Специалист

Зарегистрирован:
Вт, июн 10 2014, 09:41
Сообщения: 180
Странно.
Сейчас посмотрел - я делал такой финт для тестовых классов.
Попробуйте перенести определение класса в "Перейти к"->"Локальные определения/реализации"->"Локальные тестовые классы". Так заработает?
А может и правда версия абапа маловата...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Доступ из локального класса к данным глобального класса?
СообщениеДобавлено: Пт, апр 24 2015, 10:04 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
а как атрибут определён?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Доступ из локального класса к данным глобального класса?
СообщениеДобавлено: Пт, апр 24 2015, 13:03 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Кажется понял.
Атрибуты и методы глобального класса не лежат в глобальной области данных по отношению к локальным классам. Т.е. для доступа к ним из локального класса нужно использовать внешнее имя класса для статичных атрибутов (ZCL_GLOB_TEST=>G_PRIVATE) либо через указатель инстанции (lo_GLOB_TEST->G_PRIVATE).
А хотелось как-то напрямую: l_BlaBla = G_PRIVATE. :)

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Доступ из локального класса к данным глобального класса?
СообщениеДобавлено: Пт, апр 24 2015, 17:07 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, фев 15 2011, 15:02
Сообщения: 122
Мне кажется, что если бы работало это было бы даже странно. Это же по сути противоречит принципам ООП. :shock:

_________________
Поздравляю тебя, Шарик, ты - балбес!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Доступ из локального класса к данным глобального класса?
СообщениеДобавлено: Пт, апр 24 2015, 19:32 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
8051core написал(а):
Мне кажется, что если бы работало это было бы даже странно. Это же по сути противоречит принципам ООП. :shock:

Скорей SAP-овским принципам, в силу их ограниченности. В частности из-за невозможности описания вложенных подпрограмм, в т.ч. и классов видимо. Например, в Pascale такая штука возможна. Ну и к тому же пути SAP-а неисповедимы, вдруг фича какая?! :)
Прояснение наступило, когда я при помощи команды show_clif в тр. SE24 посмотрел весь исходный код с включенными локальными классами. По сути глобальный и локальные классы равнозначны, просто один из них "избранный". :)

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Доступ из локального класса к данным глобального класса?
СообщениеДобавлено: Сб, апр 25 2015, 11:43 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, фев 15 2011, 15:02
Сообщения: 122
Parazit написал:
8051core написал(а):
Мне кажется, что если бы работало это было бы даже странно. Это же по сути противоречит принципам ООП. :shock:

Скорей SAP-овским принципам, в силу их ограниченности. В частности из-за невозможности описания вложенных подпрограмм, в т.ч. и классов видимо. Например, в Pascale такая штука возможна. Ну и к тому же пути SAP-а неисповедимы, вдруг фича какая?! :)
Прояснение наступило, когда я при помощи команды show_clif в тр. SE24 посмотрел весь исходный код с включенными локальными классами. По сути глобальный и локальные классы равнозначны, просто один из них "избранный". :)

Действительно, немного погорячился с высказыванием. Тут и правда ограничения SAP :rtfm:, другие языки подобные фишки позволяют делать.

_________________
Поздравляю тебя, Шарик, ты - балбес!


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

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


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

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


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

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