Большое всем спасибо за предложенные варианты!
Но мне пока оно все не по плечу, так что я пока руками все пронабираю ))
Я не знаю в тему ли, но я не понимаю, как мне загрузить таблицу с данными в BAPI?
По идее я должен считать Purchase Order (PO) из системы, но система временно в ремонте. Я заранее сохранил все данные в excel и теперь хочу подать все это на 'BAPI_PO_GETDETAIL'.
Какия я вижу варианты:
1. В дебаггере каждый раз вручную загружать данные из экселя в таблицу/структуру. Но это очень муторно и скучно.
2. Загрузить эксель через знакомые всем 'ALSM_EXCEL_TO_INTERNAL_TABLE' или 'TEXT_CONVERT_XLS_TO_SAP', но там он на выходе выдает мне свою структуру и снова проблема в том, что я не могу это подогнать под нужную мне BAPIEKPO. Плюс сюда же вылазит ошибка с просьбой указать актуальную дату (FK888). И это я пытаюсь подстроить через
Code:
wa_datatab-CHANGED_ON = sy-datum. " если это вообще правильное поле
append wa_datatab to it_datatab
- но все тщетно и получаю снова ту же ошибку.
Где не смотрю примеры - везде просто базовый вариант этиx fm и не понятно как это имплементировать в свой код.
Понимаю, что я далеко не первый с этими проблемами - отправьте, пожалуйста, по адресу где читать.
Полурабочий код для наглядности:
Code:
REPORT z_convert_excel_sap.
PARAMETERS: p_file TYPE rlgrap-filename.
PARAMETERS: p_head TYPE char01 DEFAULT 'X'.
DATA: it_datatab2 TYPE STANDARD TABLE OF bapiekpo,
wa_datatab2 TYPE bapiekpo.
DATA: it_raw TYPE truxs_t_text_data.
* At selection screen
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
START-OF-SELECTION.
" Convert Excel Data to SAP internal Table Data
" Datum!!
wa_datatab2-CHANGED_ON = sy-datum.
append wa_datatab2 to it_datatab2.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
* I_FIELD_SEPERATOR =
i_line_header = p_head
i_tab_raw_data = it_raw " WORK TABLE
i_filename = p_file
TABLES
i_tab_converted_data = it_datatab2[] "ACTUAL DATA
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
***********************************************************************
* END-OF-SELECTION.
END-OF-SELECTION.
" For sample, Excel Data transfered to internal table is displayed with write
LOOP AT it_datatab2 INTO wa_datatab2.
WRITE:/ wa_datatab2-po_number,
wa_datatab2-po_item,
wa_datatab2-material,
wa_datatab2-co_code,
wa_datatab2-plant,
wa_datatab2-store_loc,
wa_datatab2-net_price,
wa_datatab2-price_unit,
wa_datatab2-net_value,
wa_datatab2-tax_code,
wa_datatab2-funds_ctr.
ENDLOOP.