Текущее время: Ср, сен 19 2018, 16:43

Часовой пояс: 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
Сообщения: 336
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
Сообщения: 336
Извиняюсь написал какую-то чушь. вот исправленная версия, таблицы поменял на 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
Сообщения: 336
Укажите тип параметру.
Сап не знает что это таблица

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 часа


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

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


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

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