Текущее время: Пн, июл 28 2025, 20:33

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Не получается использовать MOVE-CORRESPONDING
СообщениеДобавлено: Чт, июн 20 2013, 12:23 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, май 14 2013, 10:12
Сообщения: 50
Доброй охоты, абаперы

подскажите пожалуйста, что я делаю не так


Code:
DATA arrData LIKE bsik OCCURS 0 WITH HEADER LINE.
DATA gt_outtab TYPE STANDART TABLE OF zdoubt_debt_otch WITH HEADER LINE.

*тут заполняется данными таблица arrData

MOVE-CORRESPONDING arrData TO gt_outtab.



При выполнении данные в gt_outtab не переносятся.
Что я делаю не так?
Как мне сначала проверить таблицу arrData на наличие данных, что она не пустая?
А как мне добавить данные к gt_outtab?

_________________
А ведь все так хорошо начиналось...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Не получается использовать MOVE-CORRESPONDING
СообщениеДобавлено: Чт, июн 20 2013, 12:36 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, янв 27 2010, 19:05
Сообщения: 118
Добрый день!
А пробовали Is Initial для проверки наличия данных. А для вставки данных в таблицу после move-corresponding Append?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не получается использовать MOVE-CORRESPONDING
СообщениеДобавлено: Чт, июн 20 2013, 12:41 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 22 2009, 12:41
Сообщения: 473
К сожалению, MOVE-CORRESPONDING не работает со внутренними таблицами, только со структурами.
Поэтому разумнее написать обычный цикл в переносом данных построчно. Кстати header line и occurs на новых систем deprecated.

Или если есть желание можно воспользоватся методом move_corresponding_table класса cl_reca_data_services, хотя на мой взгляд руками лучше.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не получается использовать MOVE-CORRESPONDING
СообщениеДобавлено: Чт, июн 20 2013, 12:56 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, май 14 2013, 10:12
Сообщения: 50
weise написал(а):
К сожалению, MOVE-CORRESPONDING не работает со внутренними таблицами, только со структурами.
Поэтому разумнее написать обычный цикл в переносом данных построчно. Кстати header line и occurs на новых систем deprecated.

Или если есть желание можно воспользоватся методом move_corresponding_table класса cl_reca_data_services, хотя на мой взгляд руками лучше.


Прошу, прощения, я только начинаю кодить на ABAP, не могли бы вы привести пример кода?

_________________
А ведь все так хорошо начиналось...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Не получается использовать MOVE-CORRESPONDING
СообщениеДобавлено: Чт, июн 20 2013, 13:14 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Сб, июн 23 2007, 14:56
Сообщения: 203
nickstarnew написал(а):
Прошу, прощения, я только начинаю кодить на ABAP, не могли бы вы привести пример кода?

Code:
TYPES:
  BEGIN OF ty_one,
      a TYPE char2,
      b TYPE char2,
      C TYPE char2,
  END OF ty_one,

  BEGIN OF ty_two,
      b TYPE char2,
      C TYPE char2,
  END OF ty_two.

DATA:
  lt_tab1    TYPE STANDARD TABLE OF ty_one,
  lt_tab2    TYPE STANDARD TABLE OF ty_two.

FIELD-SYMBOLS: <fs_struct> TYPE ty_one,
               <fs_struct1> TYPE ty_two.

  APPEND INITIAL LINE TO lt_tab1 ASSIGNING <fs_struct>.
  <fs_struct>-a = 'a1'.
  <fs_struct>-b = 'b1'.
  <fs_struct>-C = 'c1'.
  APPEND INITIAL LINE TO lt_tab1 ASSIGNING <fs_struct>.
  <fs_struct>-a = 'a2'.
  <fs_struct>-b = 'b2'.
  <fs_struct>-C = 'c2'.

  APPEND INITIAL LINE TO lt_tab2 ASSIGNING <fs_struct1>.
  <fs_struct1>-b = 'z1'.
  <fs_struct1>-C = 'z2'.

  " MOVE-CORRESPONGING для внутренних таблиц не работает,
  " простая альтернатива:
  cl_reca_data_services=>move_corresponding_table(
    EXPORTING
      IT_SRC  = lt_tab1
    CHANGING
      CT_TRG  = lt_tab2 ).
- See more at: http://abap-blog.ru/2012/02/#sthash.XU8hzdX0.dpuf


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не получается использовать MOVE-CORRESPONDING
СообщениеДобавлено: Чт, июн 20 2013, 13:28 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 22 2009, 12:41
Сообщения: 473
nickstarnew написал(а):
Прошу, прощения, я только начинаю кодить на ABAP, не могли бы вы привести пример кода?
Code:
data:
  gs_bsik              type bsik,
  gt_bsik              like table of gs_bsik,
  gs_zdoubt_debt_otch  type zdoubt_debt_otch,
  gt_zdoubt_debt_otch  like table of zdoubt_debt_otch.
 
field-symbols:
  <gs_bsik>            like gs_bsik.
   
"Тут заполняется данными таблица gt_bsik
...
 
clear: gs_zdoubt_debt_otch, gt_zdoubt_debt_otch.
loop at gt_bsik assigning <gs_bsik>.
  move-corresponding <gs_bsik> to gs_zdoubt_debt_otch.
  append gs_zdoubt_debt_otch to gt_zdoubt_debt_otch.
endloop.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не получается использовать MOVE-CORRESPONDING
СообщениеДобавлено: Чт, июн 20 2013, 13:40 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, май 14 2013, 10:12
Сообщения: 50
Всем спасибо!
Все заработало!

_________________
А ведь все так хорошо начиналось...


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

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


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

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


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

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