Текущее время: Вт, июн 24 2025, 14:50

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


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

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


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

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