Текущее время: Вс, июн 22 2025, 19:52

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Определить на что ссылается ссылка: wa или it?
СообщениеДобавлено: Пт, апр 03 2015, 11:58 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 21 2006, 16:38
Сообщения: 304
Есть у меня ссылка
Code:
l_outtab type ref to data

Это может быть ссылка на рабочую область(wa) или таблицу(it). Можно ли как-то определить, на что именно это ссылка?
В часнтости в программе у меня делается так
Цитата:
FIELD_SYMBOLS <it_Table> TYPE STANDARD TABLE.
ASSIGN l_outtab->* TO <it_Table>.
CREATE DATA ref_WA like line of <it_Table>.
но если ссылка на рабочую область, то получаю дамп. Может можно дамп перехватить или какой спец-метод вызвать?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определить на что ссылается ссылка: wa или it?
СообщениеДобавлено: Пт, апр 03 2015, 12:20 
Специалист
Специалист

Зарегистрирован:
Ср, дек 22 2010, 19:49
Сообщения: 114
Валерка написал(а):
Это может быть ссылка на рабочую область(wa) или таблицу(it). Можно ли как-то определить, на что именно это ссылка?

Если версия позволяет, то используйте, класс CL_ABAP_TYPEDESCR

_________________
Человек готов работать 24 часа в сутки, лишь бы ничего не делать.


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

Зарегистрирован:
Чт, дек 21 2006, 16:38
Сообщения: 304
Если data = ссылка на таблицу, то этот метод вызывает дамп. При этом этот метод для вызова для ссылки на wa отрабатывает.
Code:
      l_line ?= cl_abap_typedescr=>DESCRIBE_BY_DATA_REF(
         P_DATA_REF = data
      ).


Собственно мне как раз и нужно понять, на что ссылка, чтобы вызвать метод из cl_abap_typedescr


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определить на что ссылается ссылка: wa или it?  Тема решена
СообщениеДобавлено: Пт, апр 03 2015, 14:33 
Специалист
Специалист

Зарегистрирован:
Ср, дек 22 2010, 19:49
Сообщения: 114
У меня возвращает T - таблица
Code:
data: dref type ref to data.
data: lo_typ_descr type ref to cl_abap_typedescr.
*  field-symbols: <table> type standard table.

create data dref type standard table of ('MARA') with default key.
*  assign dref->* to <table>.
*  select * from ('MARA') up to 5 rows into table <table>.
lo_typ_descr ?= cl_abap_typedescr=>describe_by_data_ref( dref ).
write: lo_typ_descr->kind.

_________________
Человек готов работать 24 часа в сутки, лишь бы ничего не делать.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определить на что ссылается ссылка: wa или it?
СообщениеДобавлено: Пт, апр 03 2015, 15:27 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Code:
DATA: <fs> TYPE any.
ASSIGN dref->* TO <fs>.
DESCRIBE FIELD <fs> TYPE lv_type.
CASE lv_type.
  WHEN 'h'. "Internal table
     ...
  WHEN 'u'. "Structure
    ...
ENDCASE.

_________________
С уважением,
Удав.


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

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


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

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


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

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