SAPфорум.RU https://sapboard.ru/forum/ |
|
Комбинация Function Modules в одной Subroutine. Help. https://sapboard.ru/forum/viewtopic.php?f=13&t=96049 |
Страница 1 из 1 |
Автор: | Ubicco [ Вт, фев 13 2018, 11:20 ] |
Заголовок сообщения: | Комбинация Function Modules в одной Subroutine. Help. |
Здравствуйте, помогите пожалуйста решить проблему: есть table type на основе структуры, которая содержит все данные из главной таблицы+дескрипшн из текстовой таблицы + 1 поле из check таблицы + есть 3 функциональных модуля. FM1 возвращает internat table со всеми данными из главной таблицы. FM2 возвращает дескрипшн из текстовой таблицы по языку и id. FM3 возвращает поле check таблицы, которое соответствует полю главной таблицы. Необходимо создать Form которая используя эти 3 функциональных модуля вернет internal table, которая должна содержать данные основной таблицы+соответствующие дескрипшоны текстовой таблицы+ соответствующие поля check таблицы, без использования каких-либо допольнительных селектов. Может кто подсказать? |
Автор: | Kuranov.Dmitry [ Вт, фев 13 2018, 11:34 ] |
Заголовок сообщения: | Re: Комбинация Function Modules в одной Subroutine. Help. |
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. |
Автор: | Ubicco [ Вт, фев 13 2018, 12:18 ] |
Заголовок сообщения: | Re: Комбинация Function Modules в одной Subroutine. Help. |
Cпасибо, но у меня ошибка при APPEND "p_res is not an internal table" |
Автор: | Ubicco [ Вт, фев 13 2018, 12:21 ] |
Заголовок сообщения: | Re: Комбинация Function Modules в одной Subroutine. Help. |
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 . |
Автор: | Kuranov.Dmitry [ Вт, фев 13 2018, 12:26 ] |
Заголовок сообщения: | Re: Комбинация Function Modules в одной Subroutine. Help. |
Извиняюсь написал какую-то чушь. вот исправленная версия, таблицы поменял на 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. |
Автор: | Ubicco [ Вт, фев 13 2018, 12:35 ] |
Заголовок сообщения: | Re: Комбинация Function Modules в одной Subroutine. Help. |
При APPEND та же самая ошибка: not internal table. не понимаю почему... |
Автор: | Bimit [ Вт, фев 13 2018, 12:40 ] |
Заголовок сообщения: | Re: Комбинация Function Modules в одной Subroutine. Help. |
Как объявлена внутренняя таблица? |
Автор: | Ubicco [ Вт, фев 13 2018, 12:43 ] |
Заголовок сообщения: | Re: Комбинация Function Modules в одной Subroutine. Help. |
Code: DATA: lt_offices TYPE znes_t_office. znes_t_office - стандартный табличный тип на основе моей структуры. |
Автор: | Kuranov.Dmitry [ Вт, фев 13 2018, 12:48 ] |
Заголовок сообщения: | Re: Комбинация Function Modules в одной Subroutine. Help. |
Укажите тип параметру. Сап не знает что это таблица FORM select_data CHANGING p_lt_offices TYPE znes_t_office. |
Автор: | Ubicco [ Вт, фев 13 2018, 12:51 ] |
Заголовок сообщения: | Re: Комбинация Function Modules в одной Subroutine. Help. |
Спасибо большое, мне аж стыдно) |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |