Текущее время: Чт, июл 31 2025, 18:08

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Как передать любую таблицу через MEMORY ID
СообщениеДобавлено: Вт, фев 15 2011, 16:33 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пт, окт 13 2006, 16:44
Сообщения: 55
Пол: Мужской
Необходимо в одном отчете передать в MEMORY ID, а в другом считать из MEMORY ID таблицу, тип которой определяется динамически.

в 4.6С работал такой код

REPORT ZEXPORT.
Code:
data: lt_ru_export        type table of zias_s_zruficubea_virt.
    free memory id 'ZIAS_DT'.
    assign lt_ru_export to <fs_virtual_records>.
    export <fs_virtual_records> to memory id 'ZIAS_DT'.

REPORT ZIMPORT.
Code:
  data:
        end of wa_sidata_extended
      , l_struct_name      type tabname
      , lt_fcat            type lvc_t_fcat
      , lt_virtual_records type ref to data
      , lt_record_variants like wa_sidata_extended
                           occurs 1
      , wa_sidata_extended_tmp like wa_sidata_extended
      .
  field-symbols: <fs_virtual_records> type table
               , <wa_virtual_records> type any
               , <field_s>            type any
               , <field_d>            type any
               , <wa_fcat>           type lvc_s_fcat
  .

    concatenate 'ZIAS_S_'
                l_ntabname
                '_VIRT'
           into l_struct_name.

    refresh lt_fcat.
    call function 'LVC_FIELDCATALOG_MERGE'
      exporting
        i_structure_name             = l_struct_name
      changing
        ct_fieldcat                  = lt_fcat
      exceptions
        inconsistent_interface       = 1
        program_error                = 2
        others                       = 3.

    call method cl_alv_table_create=>create_dynamic_table
      exporting
        it_fieldcatalog        = lt_fcat[]
      importing
        ep_table               = lt_virtual_records
      exceptions
        generate_subpool_dir_full = 1
        others                    = 2.
    assign lt_virtual_records->*
        to <fs_virtual_records>.

    import <fs_virtual_records> from memory
                                  id 'ZIAS_DT'.
    loop at <fs_virtual_records>
      assigning <wa_virtual_records>.

    endloop.

Имя структуры при импорте считаем известным, но может быть разным.

В ERP 6.0 падает в дамп при import <fs_virtual_records> from memory id 'ZIAS_DT'.
Цитата:
Динамическая ошибка CONNE_IMPORT_WRONG_STRUCTURE
...
When attempting to import data, the
structure of the complex object "<FS_VIRTUAL_RECORDS>" was not compatible with
the
target object. The error occurred with component no. 3.

Типы при этом одинаковые, перепроверял.

Посоветуйте, как реализовать такую задачку?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как передать любую таблицу через MEMORY ID  Тема решена
СообщениеДобавлено: Ср, фев 16 2011, 07:16 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Code:
field-symbols: <fs> type any.
data: lt_ru_export type table of ztesti.

free memory id 'ZZZ'.
append initial line to lt_ru_export.
assign lt_ru_export to <fs>.
export <fs> to memory id 'ZZZ'.

"<<<<<<<<<<<<<<<<<<<
data: ref type ref to data,
      tab_ref type ref to data.
data: ss(20) value 'ZTESTI'.

create data ref type (ss).

assign ref->* to <fs>.

create data tab_ref like table of <fs>.
assign tab_ref->* to <fs>.
import <fs> from memory id 'ZZZ'.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как передать любую таблицу через MEMORY ID
СообщениеДобавлено: Ср, фев 16 2011, 16:01 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пт, окт 13 2006, 16:44
Сообщения: 55
Пол: Мужской
Besa, спасибо, получилось.


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

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


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

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


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

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