Текущее время: Вс, июл 20 2025, 21:15

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Move-corresponding для динамических структур в версии 4.6.
СообщениеДобавлено: Ср, апр 07 2010, 10:17 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Собственно, такой вот код работает в версии 7.00, но ругается на синтаксис в 4.6, дескать "<F1>" is not a structure or internal table with header line."
Code:
REPORT  ZPROBA7.

Tables:
  BSIS,
  BKPF.

Field-symbols:
  <f1>,
  <f2>.

Select single *
  from BSIS.

Assign ('BSIS') to <f1>.
Assign ('BKPF') to <f2>.

Move-corresponding: <f1> to <f2>.

Write: / BKPF-BUKRS, BKPF-GJAHR, BKPF-BELNR.


Вместо таблиц BKPF и BSIS могут быть любые структуры словаря определяемые динамически.
Понятно, что методом "г@вн@к@да" это можно обойти, но хотелось бы что то менее болезненное, ибо это выполняется очень часто для большого объема данных. Может есть более красивое решение?!

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Move-corresponding для динамических структур в версии 4.6.
СообщениеДобавлено: Ср, апр 07 2010, 11:20 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Ср, июн 13 2007, 16:36
Сообщения: 585
Откуда: Belarus
Пол: Мужской
В 4.6 канает вот так:
Code:
REPORT  ZPROBA7.

Tables:
  BSIS,
  BKPF.
data: wa_bsis like bsis,
      wa_bkpf like bkpf.
Field-symbols:
  <f1> structure BSIS default wa_bsis,
  <f2> structure BKPF default wa_bkpf.

Select single *
  from BSIS.

Assign ('BSIS') to <f1>.
Assign ('BKPF') to <f2>.

Move-corresponding: <f1> to <f2>.

Write: / BKPF-BUKRS, BKPF-GJAHR, BKPF-BELNR.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Move-corresponding для динамических структур в версии 4.6.
СообщениеДобавлено: Ср, апр 07 2010, 16:15 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Ошибки синтаксиса нет, оно и понятно - описан тип <f1> и <f2>, причем статически. Моя же задача - динамические типы.
Соотвественно такой код работает неправильно, т.к. <f1> принимает структуру BSIS, содержимое полей кривое и move-corresponding уже не имеет смысла.
Code:
REPORT  ZPROBA7.

Tables:
  BSIS,
  BKPF,
  BSEG.
data: wa_bsis like bsis,
      wa_bkpf like bkpf.
Field-symbols:
  <f1> structure BSIS default wa_bsis,
  <f2> structure BKPF default wa_bkpf.

Select single *
  from BSEG
  where BUKRS <> space.

Assign ('BSEG') to <f1>.
Assign ('BKPF') to <f2>.

Move-corresponding: <f1> to <f2>.

Write: / BKPF-BUKRS, BKPF-GJAHR, BKPF-BELNR.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Move-corresponding для динамических структур в версии 4.6.
СообщениеДобавлено: Ср, апр 07 2010, 17:29 
Ассистент
Ассистент

Зарегистрирован:
Чт, мар 11 2010, 18:35
Сообщения: 33
Динамически Move-corresponding: <f1> to <f2> сделать не очень сложно.
Лупим по каталогу полей и потом assign component .
Приассигниваем этот же компонент другой work area и присваиваем.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Move-corresponding для динамических структур в версии 4.6.
СообщениеДобавлено: Ср, апр 07 2010, 17:58 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Helper написал(а):
Динамически Move-corresponding: <f1> to <f2> сделать не очень сложно.
Лупим по каталогу полей и потом assign component .
Приассигниваем этот же компонент другой work area и присваиваем.

Про это я и писал:
Цитата:
Понятно, что методом "г@вн@к@да" это можно обойти, но хотелось бы что то менее болезненное, ибо это выполняется очень часто для большого объема данных.

Я вообще то понимаю, что наверняка так и придется поступить. Эту тему открыл скорей, чтобы сделать контрольный выстрел в голову. :)

В сущности проблема заключается в том, чтобы сказать АБАПу что то типа:
Code:
Field-symbols:
  <f1> type any structure.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Move-corresponding для динамических структур в версии 4.6.
СообщениеДобавлено: Ср, апр 07 2010, 18:40 
Ассистент
Ассистент

Зарегистрирован:
Чт, мар 11 2010, 18:35
Сообщения: 33
В сущности проблема заключается в том, чтобы сказать АБАПу что то типа:
Code:
Field-symbols:
  <f1> type any structure.
[/quote]

http://help.sap.com/saphelp_NW04/helpda ... ameset.htm

Цитата:
The STRUCTURE is obsolete; you should no longer use it. Field symbols defined using the STRUCTURE addition are a mixture of typed field symbols and a utility for casting to either local or ABAP Dictionary data types. If you want to define the type of a field symbol, include the TYPE addition in a FIELD-SYMBOLS statement. If you want to use casting, include the CASTING addition in an ASSIGN statement.


Последний раз редактировалось Helper Чт, апр 08 2010, 09:23, всего редактировалось 2 раз(а).

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Move-corresponding для динамических структур в версии 4.6.
СообщениеДобавлено: Чт, апр 08 2010, 07:43 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Ср, июн 13 2007, 16:36
Сообщения: 585
Откуда: Belarus
Пол: Мужской
В 4.6 придётся, видимо, только методом "г@вн@к@да" (с)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Move-corresponding для динамических структур в версии 4.6.
СообщениеДобавлено: Чт, апр 08 2010, 09:29 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
В 4.7 уже прокатывает.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Move-corresponding для динамических структур в версии 4.6.
СообщениеДобавлено: Чт, апр 08 2010, 10:16 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Удав написал(а):
В 4.7 уже прокатывает.

Ба-а-али-и-ин! Из-за такой разницы просто лень г-код писать! Однако совместимости своей проги тоже хочется... :)

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Move-corresponding для динамических структур в версии 4.6.
СообщениеДобавлено: Чт, апр 08 2010, 10:52 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
SAP пишет:
Цитата:
Before Release 6.10, specified field symbols or formal parameters had to be structured and typed for struc1 and struc2. Since Release 6.10 untyped field symbols, field symbols with the generic type ANY, or formal parameters can be used for struc1 and struc2. These must be structures when the statement is executed, otherwise an untreatable exception is triggered.

Note
If structures are specified for struc1 and struc2, the name is compared once when the program is generated by the ABAP Compiler. If untyped field symbols or formal parameters are used, the names must be compared each time the statement is executed.


Между динамикой и статикой разница очевидна, казалось бы и рыпаться не стоило, ибо то, что генерится на уровне компиляции по определению не обязано работать в динамике (я про внутреннее устройство move-corresponding). Просто я уже сталкивался с ситуацией, когда на уровне проверки синтаксиса ругань, а на уровне runtime всё работает (вывод типа STRING через OLE). Поэтому лелеял слабую надежду, что и здесь можно как то хитро обмануть. Ну, "не шмогла" так "не шмогла". Тему оставляю открытой для будущих гениальных потомков! :)

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Move-corresponding для динамических структур в версии 4.6.
СообщениеДобавлено: Чт, апр 08 2010, 11:24 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Жаль потомков, которые будут сидеть на 4.6 :lol:

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


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

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


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

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


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

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