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

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


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

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


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

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