Текущее время: Вс, сен 23 2018, 22:50

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Комбинация Function Modules в одной Subroutine. Help.
СообщениеДобавлено: Вт, фев 13 2018, 12:20 
Начинающий
Начинающий

Зарегистрирован:
Вт, фев 13 2018, 11:56
Сообщения: 9
Здравствуйте, помогите пожалуйста решить проблему: есть table type на основе структуры, которая содержит все данные из главной таблицы+дескрипшн из текстовой таблицы + 1 поле из check таблицы + есть 3 функциональных модуля. FM1 возвращает internat table со всеми данными из главной таблицы. FM2 возвращает дескрипшн из текстовой таблицы по языку и id. FM3 возвращает поле check таблицы, которое соответствует полю главной таблицы. Необходимо создать Form которая используя эти 3 функциональных модуля вернет internal table, которая должна содержать данные основной таблицы+соответствующие дескрипшоны текстовой таблицы+ соответствующие поля check таблицы, без использования каких-либо допольнительных селектов. Может кто подсказать?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Комбинация Function Modules в одной Subroutine. Help.
СообщениеДобавлено: Вт, фев 13 2018, 12:34 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 06 2017, 00:56
Сообщения: 337
Code:
TYPES: BEGIN OF t_return_data,
            main_part TYPE ZMAIN_TAB, " Данные из главной таблицы
            descr TYPE ZDESR_TAB," дескрипшены
            check_data TYPE ZCHECK_FIELD, " 1 поле из check таблицы.

TYPES: t_return_data_tab TYPE TABLE OF t_return_data.

FORM get_data  CHANGING p_res TYPE t_return_data_tab.

  DATA: lt_data TYPE TABLE ZMAIN_TAB.
  data: ls_data LIKE LINE OF lt_data.
  data: ls ret type t_return_data.

  CALL FUNCTION 'FM1'     
       TABLES
             lt_data.

  LOOP AT lt_data INTO ls_data.
      clear ls_ret.
      ls_ret-main_part = ls_data.
     CALL FUNCTION 'FM2'
         EXPORTING
               id = ls_data-id
               lang = sy-langu
        importing
            descr =  ls_ret-descr.
     CALL  FUNCTION 'FM3'
         EXPORTING
             id = ls_data-id
        IMPORTING
             chk_field = ls_ret-check_data.
      APPEND ls_data to p_res.
  endloop.
ENDFORM.



Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Комбинация Function Modules в одной Subroutine. Help.
СообщениеДобавлено: Вт, фев 13 2018, 13:18 
Начинающий
Начинающий

Зарегистрирован:
Вт, фев 13 2018, 11:56
Сообщения: 9
Cпасибо, но у меня ошибка при APPEND "p_res is not an internal table"


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Комбинация Function Modules в одной Subroutine. Help.
СообщениеДобавлено: Вт, фев 13 2018, 13:21 
Начинающий
Начинающий

Зарегистрирован:
Вт, фев 13 2018, 11:56
Сообщения: 9
Code:
REPORT znes_hw4.

DATA: lt_offices      TYPE znes_t_office.

PERFORM SELECT_DATA changing lt_offices.

FORM select_data  CHANGING p_lt_offices.

  DATA lt_offices1 TYPE znes_t_office.
  DATA ls_offices1 LIKE LINE OF lt_offices1.
  DATA ls_ret TYPE znes_s_office.

  CALL FUNCTION 'ZNES_FM1'
    IMPORTING
      et_offices = lt_offices1.

  LOOP AT lt_offices1 INTO ls_offices1.
    CLEAR ls_ret.
    ls_ret-office_id = ls_offices1-office_id.
    ls_ret-bsns_cntr_name = ls_offices1-bsns_cntr_name.
    ls_ret-bsns_cntr_class = ls_offices1-bsns_cntr_name.
    ls_ret-distnc_frm_cntr = ls_offices1-distnc_frm_cntr.
    ls_ret-uom = ls_offices1-uom.
    ls_ret-customer = ls_offices1-customer.
    CALL FUNCTION 'ZNES_FM2'
      EXPORTING
        iv_lang = 'E'
        iv_key  = ls_offices1-office_id
      IMPORTING
        ev_text = ls_ret-description.

    CALL FUNCTION 'ZNES_FM3'
      EXPORTING
        iv_id    = ls_offices1-customer
      IMPORTING
        ev_name1 = ls_ret-name1.
    Append ls_ret to p_lt_offices.

  ENDLOOP .


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Комбинация Function Modules в одной Subroutine. Help.
СообщениеДобавлено: Вт, фев 13 2018, 13:26 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 06 2017, 00:56
Сообщения: 337
Извиняюсь написал какую-то чушь. вот исправленная версия, таблицы поменял на p0001 p0002 p0003 чтоб скомпилировалось у меня:


Code:
TYPES: BEGIN OF t_return_data,
            main_part TYPE p0001, " Данные из главной таблицы
            descr TYPE p0002," дескрипшены
            check_data TYPE p0003, " 1 поле из check таблицы.
       END OF t_return_data.

TYPES: t_return_data_tab TYPE TABLE OF t_return_data.

FORM get_data  CHANGING p_res TYPE t_return_data_tab.

  DATA: lt_data TYPE TABLE of p0001.
  data: ls_data LIKE LINE OF lt_data.
  data: ls_ret type t_return_data.

  CALL FUNCTION 'FM1'
       TABLES
             t_data = lt_data.

  LOOP AT lt_data INTO ls_data.
      clear ls_ret.
      ls_ret-main_part = ls_data.
     CALL FUNCTION 'FM2'
         EXPORTING
               id = ls_data-pernr
               lang = sy-langu
        importing
            descr =  ls_ret-descr.
     CALL  FUNCTION 'FM3'
         EXPORTING
             id = ls_data-pernr
        IMPORTING
             chk_field = ls_ret-check_data.
      APPEND ls_ret to p_res.
  endloop.
ENDFORM.



Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Комбинация Function Modules в одной Subroutine. Help.
СообщениеДобавлено: Вт, фев 13 2018, 13:35 
Начинающий
Начинающий

Зарегистрирован:
Вт, фев 13 2018, 11:56
Сообщения: 9
При APPEND та же самая ошибка: not internal table. не понимаю почему...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Комбинация Function Modules в одной Subroutine. Help.
СообщениеДобавлено: Вт, фев 13 2018, 13:40 
Специалист
Специалист

Зарегистрирован:
Пн, июл 11 2011, 11:50
Сообщения: 193
Как объявлена внутренняя таблица?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Комбинация Function Modules в одной Subroutine. Help.
СообщениеДобавлено: Вт, фев 13 2018, 13:43 
Начинающий
Начинающий

Зарегистрирован:
Вт, фев 13 2018, 11:56
Сообщения: 9
Code:
DATA: lt_offices TYPE znes_t_office.


znes_t_office - стандартный табличный тип на основе моей структуры.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Комбинация Function Modules в одной Subroutine. Help.
СообщениеДобавлено: Вт, фев 13 2018, 13:48 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 06 2017, 00:56
Сообщения: 337
Укажите тип параметру.
Сап не знает что это таблица

FORM select_data CHANGING p_lt_offices TYPE znes_t_office.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Комбинация Function Modules в одной Subroutine. Help.
СообщениеДобавлено: Вт, фев 13 2018, 13:51 
Начинающий
Начинающий

Зарегистрирован:
Вт, фев 13 2018, 11:56
Сообщения: 9
Спасибо большое, мне аж стыдно)


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

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


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

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


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

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