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

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


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

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


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

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