Professional Documents
Culture Documents
txt
INITIALIZATION.
txt_b = 'Excel Data Source Ranges'.
txt03 = 'Start column'.
txt04 = 'End column'.
txt05 = 'Start Row'.
txt06 = 'End Row'.
FREE filetab.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = 'Choose File'
default_extension = '*.*'
default_filename = 'c:\*.xls'
CHANGING
file_table = filetab
rc = rc
EXCEPTIONS
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
OTHERS = 4.
IF sy-subrc = 0.
READ TABLE filetab INTO p_file INDEX 1.
ENDIF.
ENDFORM. " browse_file
START-OF-SELECTION.
PERFORM f_get_data_excel.
CASE 'X'.
WHEN rb_sto.
IF gt_data[] IS NOT INITIAL.
PERFORM f_call_bapi.
ENDIF.
WHEN rb_srv.
IF gt_data_srv[] IS NOT INITIAL.
PERFORM f_call_bapi_srv.
ENDIF.
WHEN rb_stk.
https://www.dropbox.com/s/0ikqnaeoc69u74q/ZMMR34.txt?dl=0 5/25
10/5/2018 ZMMR34.txt
IF gt_data_stock[] IS NOT INITIAL.
PERFORM f_call_bapi_stock.
ENDIF.
ENDCASE.
END-OF-SELECTION.
PERFORM f_write_report.
FORM f_get_data_excel .
CASE 'X'.
WHEN rb_sto.
PERFORM fm_po_sto_excel USING ld_col01
ld_col02
ld_row01
ld_row02.
WHEN rb_srv.
PERFORM fm_po_serv_excel USING ld_col01
ld_col02
ld_row01
ld_row02.
WHEN rb_stk.
PERFORM fm_po_stock_excel USING ld_col01
ld_col02
ld_row01
ld_row02.
ENDCASE.
DEFINE assign_value.
&1 = &2.
&3 = 'X'.
END-OF-DEFINITION.
ENDFORM.
FORM f_call_bapi.
SORT gt_header.
LOOP AT gt_header.
CLEAR: wa_poheader, wa_poheaderx, lv_exppurchaseorder.
CLEAR i_extensionin.
ls_bapi_te_mepoheader-traty = gt_header-moda.
ls_bapi_te_mepoheader-borrow = gt_header-borrow.
PERFORM transfer_to_extensionin USING ls_bapi_te_mepoheader CHANGING i_extensionin.
i_extensionin-structure = 'ZBAPI_TE_MEPOHEADER'.
APPEND i_extensionin.
CLEAR i_extensionin.
ls_bapi_te_mepoheaderx-traty = 'X'.
ls_bapi_te_mepoheaderx-borrow = 'X'.
PERFORM transfer_to_extensionin USING ls_bapi_te_mepoheaderx CHANGING i_extensionin.
i_extensionin-structure = 'BAPI_TE_MEPOHEADERX'.
APPEND i_extensionin.
https://www.dropbox.com/s/0ikqnaeoc69u74q/ZMMR34.txt?dl=0 7/25
10/5/2018 ZMMR34.txt
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
EXPORTING
input = gt_item-meins
IMPORTING
output = gt_item-meins
EXCEPTIONS
unit_not_found = 1
OTHERS = 2.
IF gt_item-desc NE space.
assign_value: i_poitems-short_text gt_item-desc
i_poitemsx-short_text.
ENDIF.
IF gt_item-itmcat IS INITIAL.
assign_value i_poitems-item_cat '0' i_poitemsx-item_cat.
ELSE.
assign_value i_poitems-item_cat gt_item-itmcat i_poitemsx-item_cat.
ENDIF.
APPEND: i_poitems, i_poitemsx.
CLEAR lv_coitm.
IF gt_header-borrow = ''.
LOOP AT gt_kschl WHERE ref = gt_header-ref
AND doctyp = gt_header-doctyp
AND bukrs = gt_header-bukrs
AND porg = gt_header-porg
AND pgrp = gt_header-pgrp
AND splant = gt_header-splant
AND docdate = gt_header-docdate
AND ref = gt_header-ref
AND moda = gt_header-moda
AND po_itm = gt_item-po_itm.
i_pocondx-itm_number = gt_item-po_itm .
i_pocondx-itm_numberx = 'X' .
i_pocond-vendor_no = gt_kschl-lifnr.
i_pocond-change_id = 'I'.
CONDENSE i_pocond-vendor_no.
i_pocondx-vendor_no = 'X'.
i_pocondx-change_id = 'X'.
APPEND : i_pocond, i_pocondx.
ENDLOOP.
ENDIF.
ENDLOOP.
IF lv_exppurchaseorder EQ ''.
READ TABLE i_return WITH KEY type = 'E'.
IF sy-subrc EQ 0.
LOOP AT i_return WHERE type = 'E'.
MOVE-CORRESPONDING gt_header TO gt_result_sto.
CONCATENATE i_return-type i_return-message INTO gt_result_sto-messg SEPARATED BY space.
COLLECT gt_result_sto.
ENDLOOP.
ELSE.
MOVE-CORRESPONDING gt_header TO gt_result_sto.
gt_result_sto-messg = 'Error Not Found'.
COLLECT gt_result_sto.
ENDIF.
ELSE.
MOVE-CORRESPONDING gt_header TO gt_result_sto.
gt_result_sto-ebeln = lv_exppurchaseorder.
gt_result_sto-messg = 'Create PO Success'.
COLLECT gt_result_sto.
ENDIF.
IF cb_test EQ ''.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ENDIF.
ENDLOOP.
ENDFORM.
https://www.dropbox.com/s/0ikqnaeoc69u74q/ZMMR34.txt?dl=0 9/25
10/5/2018 ZMMR34.txt
FORM transfer_to_extensionin
USING
is_bapi_extensionin TYPE any
CHANGING
cs_bapiparex TYPE bapiparex.
DATA l_distance_characters TYPE i.
FIELD-SYMBOLS <any> TYPE any.
CASE 'X'.
WHEN rb_srv.
LOOP AT gt_header_srv.
FORMAT COLOR COL_HEADING.
WRITE : /,
AT 1(30) gt_header_srv-ref ,
AT 32(5) gt_header_srv-docdate ,
AT 39(5) gt_header_srv-bukrs ,
AT 47(5) gt_header_srv-doctyp ,
AT 54(5) gt_header_srv-porg ,
AT 61(5) gt_header_srv-pgrp ,
AT 68(5) gt_header_srv-vendor .
NEW-LINE.
ADD 1 TO lv_no.
WRITE : /,
AT 1(5) lv_no,
AT 7(12) gt_result_srv-ebeln,
AT 22(100) gt_result_srv-messg.
https://www.dropbox.com/s/0ikqnaeoc69u74q/ZMMR34.txt?dl=0 10/25
10/5/2018 ZMMR34.txt
ENDLOOP.
WRITE : /, sy-uline.
ENDLOOP.
WHEN rb_sto.
LOOP AT gt_header.
FORMAT COLOR COL_HEADING.
WRITE : /,
AT 1(30) gt_header-ref ,
AT 32(5) gt_header-docdate ,
AT 39(5) gt_header-bukrs ,
AT 47(5) gt_header-doctyp ,
AT 54(5) gt_header-porg ,
AT 61(5) gt_header-pgrp ,
AT 68(5) gt_header-splant ,
AT 75(5) gt_header-moda.
NEW-LINE.
ADD 1 TO lv_no.
WRITE : /,
AT 1(5) lv_no,
AT 7(12) gt_result_sto-ebeln,
AT 22(100) gt_result_sto-messg.
ENDLOOP.
WRITE : /, sy-uline.
ENDLOOP.
WHEN rb_stk.
LOOP AT gt_header_stock.
FORMAT COLOR COL_HEADING.
WRITE : /,
AT 1(30) gt_header_stock-ref ,
AT 32(5) gt_header_stock-docdate ,
AT 39(5) gt_header_stock-bukrs ,
AT 47(5) gt_header_stock-doctyp ,
AT 54(5) gt_header_stock-porg ,
AT 61(5) gt_header_stock-pgrp ,
AT 68(5) gt_header_stock-plant ,
AT 75(5) gt_header_stock-lifnr.
NEW-LINE.
ADD 1 TO lv_no.
WRITE : /,
AT 1(5) lv_no,
AT 7(12) gt_result_stock-ebeln,
AT 22(100) gt_result_stock-messg.
ENDLOOP.
WRITE : /, sy-uline.
ENDLOOP.
ENDCASE.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FM_PO_STO_EXCEL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM fm_po_sto_excel USING ld_col01
ld_col02
ld_row01
ld_row02.
PERFORM f_gui_message USING 'Open Excel Files and Call Object ...'.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = p_file
i_begin_col = ld_col01
i_begin_row = ld_row01
i_end_col = ld_col02
i_end_row = ld_row02
TABLES
intern = t_excel
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
IF sy-subrc <> 0.
ELSE.
PERFORM f_gui_message USING 'Finish Reading Excel Data ...'.
ENDIF.
LOOP AT t_excel.
CASE t_excel-col.
WHEN '0001'.
MOVE t_excel-value TO gt_data-ref.
WHEN '0002'.
MOVE t_excel-value TO gt_data-docdate.
WHEN '0003'.
MOVE t_excel-value TO gt_data-bukrs.
WHEN '0004'.
MOVE t_excel-value TO gt_data-splant.
WHEN '0005'.
MOVE t_excel-value TO gt_data-moda.
WHEN '0006'.
MOVE t_excel-value TO gt_data-po_itm.
WHEN '0007'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = t_excel-value
https://www.dropbox.com/s/0ikqnaeoc69u74q/ZMMR34.txt?dl=0 12/25
10/5/2018 ZMMR34.txt
IMPORTING
output = gt_data-matnr.
WHEN '0008'.
MOVE t_excel-value TO gt_data-qty.
WHEN '0009'.
MOVE t_excel-value TO gt_data-meins.
WHEN '0010'.
MOVE t_excel-value TO gt_data-deldate.
WHEN '0011'.
MOVE t_excel-value TO gt_data-plant.
WHEN '0012'.
MOVE t_excel-value TO gt_data-sloc.
WHEN '0013'.
MOVE t_excel-value TO gt_data-shippoint.
WHEN '0014'.
MOVE t_excel-value TO gt_data-curr.
WHEN '0015'.
MOVE t_excel-value TO gt_data-condtype.
WHEN '0016'.
MOVE t_excel-value TO gt_data-price.
WHEN '0017'.
MOVE t_excel-value TO gt_data-lifnr.
WHEN '0018'.
MOVE t_excel-value TO gt_data-borrow.
ENDCASE.
AT END OF row.
APPEND gt_data.
CLEAR gt_data.
ENDAT.
ENDLOOP.
LOOP AT gt_data.
CASE gt_data-bukrs.
WHEN 'B000'.
gt_data-doctyp = 'ZBUL'.
gt_data-porg = 'B000'.
gt_data-pgrp = 'B70'.
WHEN 'C000'.
gt_data-doctyp = 'ZCUL'.
gt_data-porg = 'C000'.
gt_data-pgrp = 'C70'.
WHEN 'D000'.
gt_data-doctyp = 'ZDUL'.
gt_data-porg = 'D000'.
gt_data-pgrp = 'D70'.
WHEN 'E000'.
gt_data-doctyp = 'ZEUL'.
gt_data-porg = 'E000'.
gt_data-pgrp = 'E70'.
WHEN 'F000'.
gt_data-doctyp = 'ZFUL'.
gt_data-porg = 'F000'.
gt_data-pgrp = 'F70'.
ENDCASE.
MODIFY gt_data TRANSPORTING doctyp porg pgrp.
ENDLOOP.
LOOP AT gt_data.
MOVE-CORRESPONDING gt_data TO gt_header.
APPEND gt_header.
ENDLOOP.
SORT gt_header BY ref docdate bukrs doctyp porg pgrp splant moda curr borrow.
DELETE ADJACENT DUPLICATES FROM gt_header.
https://www.dropbox.com/s/0ikqnaeoc69u74q/ZMMR34.txt?dl=0 13/25
10/5/2018 ZMMR34.txt
REFRESH gt_item.
LOOP AT gt_header.
CLEAR lv_itm.
LOOP AT gt_data WHERE ref = gt_header-ref
AND doctyp = gt_header-doctyp
AND bukrs = gt_header-bukrs
AND porg = gt_header-porg
AND pgrp = gt_header-pgrp
AND splant = gt_header-splant
AND docdate = gt_header-docdate
AND ref = gt_header-ref
AND moda = gt_header-moda.
gt_item-itmcat = 'U'.
APPEND gt_item.
ENDLOOP.
ENDLOOP.
REFRESH gt_kschl.
LOOP AT gt_header.
LOOP AT gt_data WHERE ref = gt_header-ref
AND doctyp = gt_header-doctyp
AND bukrs = gt_header-bukrs
AND porg = gt_header-porg
AND pgrp = gt_header-pgrp
AND splant = gt_header-splant
AND docdate = gt_header-docdate
AND ref = gt_header-ref
AND moda = gt_header-moda.
CLEAR gt_kschl.
MOVE-CORRESPONDING gt_data TO gt_kschl.
APPEND gt_kschl.
ENDLOOP.
ENDLOOP.
ENDFORM.
PERFORM f_gui_message USING 'Open Excel Files and Call Object ...'.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = p_file
i_begin_col = ld_col01
i_begin_row = ld_row01
i_end_col = ld_col02
i_end_row = ld_row02
TABLES
intern = t_excel
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
https://www.dropbox.com/s/0ikqnaeoc69u74q/ZMMR34.txt?dl=0 14/25
10/5/2018 ZMMR34.txt
OTHERS = 3.
IF sy-subrc <> 0.
ELSE.
PERFORM f_gui_message USING 'Finish Reading Excel Data ...'.
ENDIF.
AT END OF row.
APPEND gt_data_srv.
CLEAR gt_data_srv.
ENDAT.
ENDLOOP.
LOOP AT gt_data_srv.
MOVE-CORRESPONDING gt_data_srv TO gt_header_srv.
https://www.dropbox.com/s/0ikqnaeoc69u74q/ZMMR34.txt?dl=0 15/25
10/5/2018 ZMMR34.txt
APPEND gt_header_srv.
ENDLOOP.
REFRESH gt_item_srv.
LOOP AT gt_header_srv.
CLEAR lv_itm.
LOOP AT gt_data_srv WHERE ref = gt_header_srv-ref
AND doctyp = gt_header_srv-doctyp
AND bukrs = gt_header_srv-bukrs
AND porg = gt_header_srv-porg
AND pgrp = gt_header_srv-pgrp
AND docdate = gt_header_srv-docdate
AND ref = gt_header_srv-ref
AND vendor = gt_header_srv-vendor.
CLEAR gt_item_srv.
MOVE-CORRESPONDING gt_data_srv TO gt_item_srv.
APPEND gt_item_srv.
ENDLOOP.
ENDLOOP.
REFRESH gt_item_srv_det.
LOOP AT gt_header_srv.
LOOP AT gt_data_srv WHERE ref = gt_header_srv-ref
AND doctyp = gt_header_srv-doctyp
AND bukrs = gt_header_srv-bukrs
AND porg = gt_header_srv-porg
AND pgrp = gt_header_srv-pgrp
AND docdate = gt_header_srv-docdate
AND ref = gt_header_srv-ref
AND vendor = gt_header_srv-vendor.
CLEAR gt_item_srv_det..
MOVE-CORRESPONDING gt_data_srv TO gt_item_srv_det.
APPEND gt_item_srv_det.
ENDLOOP.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form F_CALL_BAPI_SRV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_call_bapi_srv .
REFRESH : gt_result_srv.
SORT gt_header_srv.
LOOP AT gt_header_srv.
CLEAR: wa_poheader, wa_poheaderx, lv_exppurchaseorder, lv_pckg_no, lv_subpckg_no, lv_serno_acc, lv_serno,
lv_serial, lv_extrow,
lv_line_no.
i_poitems-po_item = gt_item_srv-po_itm.
i_poitemsx-po_item = gt_item_srv-po_itm.
i_poitems-trackingno = gt_item_srv-ref.
https://www.dropbox.com/s/0ikqnaeoc69u74q/ZMMR34.txt?dl=0 17/25
10/5/2018 ZMMR34.txt
i_poitemsx-trackingno = 'X'.
i_poitemsx-po_itemx = 'X'.
ADD 1 TO lv_pckg_no.
IF gt_item_srv-descit NE space.
assign_value: i_poitems-short_text gt_item_srv-descit
i_poitemsx-short_text.
ENDIF.
IF gt_item_srv-itmcat IS INITIAL.
assign_value i_poitems-item_cat '0' i_poitemsx-item_cat.
ELSE.
lv_epstp = gt_item_srv-itmcat.
"_Services Header
ADD 1 TO lv_line_no.
ADD 2 TO lv_subpckg_no.
i_service-pckg_no = lv_pckg_no.
i_service-line_no = lv_line_no.
i_service-subpckg_no = lv_subpckg_no.
i_service-outl_ind = 'X'.
APPEND i_service.
lv_pckg_no = lv_subpckg_no.
CLEAR :lv_extrow.
LOOP AT gt_item_srv_det WHERE ref = gt_header_srv-ref
AND doctyp = gt_header_srv-doctyp
AND bukrs = gt_header_srv-bukrs
AND porg = gt_header_srv-porg
AND pgrp = gt_header_srv-pgrp
AND docdate = gt_header_srv-docdate
AND ref = gt_header_srv-ref
AND vendor = gt_header_srv-vendor
AND po_itm = gt_item_srv-po_itm.
ADD 1 TO lv_line_no.
ADD 10 TO lv_extrow.
ADD 1 TO lv_serial.
i_service-line_no = lv_line_no.
i_service-ext_line = lv_extrow.
i_service-pckg_no = lv_subpckg_no.
i_service-quantity = gt_item_srv_det-qtysrv.
i_service-short_text = gt_item_srv_det-descsrv.
i_service-base_uom = gt_item_srv_det-meinsrv.
i_service-gr_price = gt_item_srv_det-price / 100.
i_service-matl_group = gt_item_srv-matkl.
i_service-price_unit = 1.
i_service-tax_code = gt_item_srv_det-tax.
APPEND i_service.
"_Service Values.
i_service_value-pckg_no = lv_subpckg_no.
i_service_value-line_no = lv_line_no.
i_service_value-serno_line = '01'.
i_service_value-serial_no = lv_serial.
APPEND i_service_value.
"_Account.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = gt_item_srv_det-glakun
IMPORTING
output = gt_item_srv_det-glakun.
https://www.dropbox.com/s/0ikqnaeoc69u74q/ZMMR34.txt?dl=0 19/25
10/5/2018 ZMMR34.txt
i_poaccountx-po_item = gt_item_srv-po_itm.
i_poaccountx-serial_no = lv_serial.
i_poaccount-co_area = 'PIHC'.
i_poaccountx-co_area = 'X'.
ENDLOOP.
ENDLOOP.
break aby_abap1.
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
poheader = wa_poheader
poheaderx = wa_poheaderx
testrun = cb_test
no_price_from_po = 'X'
IMPORTING
exppurchaseorder = lv_exppurchaseorder
TABLES
return = i_return
poitem = i_poitems
poitemx = i_poitemsx
poschedule = i_poschedule
poschedulex = i_poschedulex
poservices = i_service
posrvaccessvalues = i_service_value
poaccount = i_poaccount
poaccountx = i_poaccountx.
IF lv_exppurchaseorder EQ ''.
READ TABLE i_return WITH KEY type = 'E'.
IF sy-subrc EQ 0.
LOOP AT i_return WHERE type = 'E'.
MOVE-CORRESPONDING gt_header_srv TO gt_result_srv.
CONCATENATE i_return-type i_return-message INTO gt_result_srv-messg SEPARATED BY space.
COLLECT gt_result_srv.
ENDLOOP.
ELSE.
MOVE-CORRESPONDING gt_header_srv TO gt_result_srv.
gt_result_srv-messg = 'Error Not Found'.
COLLECT gt_result_srv.
ENDIF.
ELSE.
MOVE-CORRESPONDING gt_header_srv TO gt_result_srv.
gt_result_srv-ebeln = lv_exppurchaseorder.
gt_result_srv-messg = 'Create PO Success'.
COLLECT gt_result_srv.
ENDIF.
IF cb_test EQ ''.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ENDIF.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
https://www.dropbox.com/s/0ikqnaeoc69u74q/ZMMR34.txt?dl=0 20/25
10/5/2018 ZMMR34.txt
*& Form FM_PO_STOCK_EXCEL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_LD_COL01 text
* -->P_LD_COL02 text
* -->P_LD_ROW01 text
* -->P_LD_ROW02 text
*----------------------------------------------------------------------*
FORM fm_po_stock_excel USING ld_col01
ld_col02
ld_row01
ld_row02.
PERFORM f_gui_message USING 'Open Excel Files and Call Object ...'.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = p_file
i_begin_col = ld_col01
i_begin_row = ld_row01
i_end_col = ld_col02
i_end_row = ld_row02
TABLES
intern = t_excel
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
IF sy-subrc <> 0.
ELSE.
PERFORM f_gui_message USING 'Finish Reading Excel Data ...'.
ENDIF.
LOOP AT t_excel.
CASE t_excel-col.
WHEN '0001'.
MOVE t_excel-value TO gt_data_stock-ref.
WHEN '0002'.
MOVE t_excel-value TO gt_data_stock-docdate.
WHEN '0003'.
MOVE t_excel-value TO gt_data_stock-doctyp.
WHEN '0004'.
MOVE t_excel-value TO gt_data_stock-lifnr.
WHEN '0005'.
MOVE t_excel-value TO gt_data_stock-porg.
WHEN '0006'.
MOVE t_excel-value TO gt_data_stock-pgrp.
WHEN '0007'.
MOVE t_excel-value TO gt_data_stock-bukrs.
WHEN '0008'.
MOVE t_excel-value TO gt_data_stock-curr.
WHEN '0009'.
MOVE t_excel-value TO gt_data_stock-po_itm.
WHEN '0010'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = t_excel-value
IMPORTING
output = gt_data_stock-matnr.
WHEN '0011'.
MOVE t_excel-value TO gt_data_stock-plant.
WHEN '0012'.
MOVE t_excel-value TO gt_data_stock-qty.
WHEN '0013'.
MOVE t_excel-value TO gt_data_stock-meins.
WHEN '0014'.
MOVE t_excel-value TO gt_data_stock-price.
WHEN '0015'.
https://www.dropbox.com/s/0ikqnaeoc69u74q/ZMMR34.txt?dl=0 21/25
10/5/2018 ZMMR34.txt
MOVE t_excel-value TO gt_data_stock-deldate.
WHEN '0016'.
MOVE t_excel-value TO gt_data_stock-bwtar.
WHEN '0017'.
MOVE t_excel-value TO gt_data_stock-tax.
ENDCASE.
AT END OF row.
APPEND gt_data_stock.
CLEAR gt_data_stock.
ENDAT.
ENDLOOP.
LOOP AT gt_data_stock.
MOVE-CORRESPONDING gt_data_stock TO gt_header_stock.
APPEND gt_header_stock.
ENDLOOP.
SORT gt_header_stock BY ref docdate bukrs doctyp lifnr porg pgrp plant curr.
DELETE ADJACENT DUPLICATES FROM gt_header_stock.
REFRESH gt_item_stock.
LOOP AT gt_header_stock.
CLEAR lv_itm.
LOOP AT gt_data_stock WHERE ref = gt_header_stock-ref
AND docdate = gt_header_stock-docdate
AND bukrs = gt_header_stock-bukrs
AND doctyp = gt_header_stock-doctyp
AND lifnr = gt_header_stock-lifnr
AND porg = gt_header_stock-porg
AND plant = gt_header_stock-plant
AND pgrp = gt_header_stock-pgrp.
APPEND gt_item_stock.
ENDLOOP.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form F_CALL_BAPI_STOCK
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_call_bapi_stock .
SORT gt_header_stock.
LOOP AT gt_header_stock.
IF gt_item_stock-desc NE space.
assign_value: i_poitems-short_text gt_item_stock-desc
i_poitemsx-short_text.
ENDIF.
ENDLOOP.
break aby_abap1.
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
poheader = wa_poheader
poheaderx = wa_poheaderx
testrun = cb_test
no_price_from_po = 'X'
IMPORTING
exppurchaseorder = lv_exppurchaseorder
TABLES
return = i_return
poitem = i_poitems
poitemx = i_poitemsx
https://www.dropbox.com/s/0ikqnaeoc69u74q/ZMMR34.txt?dl=0 24/25
10/5/2018 ZMMR34.txt
poschedule = i_poschedule
poschedulex = i_poschedulex.
IF lv_exppurchaseorder EQ ''.
READ TABLE i_return WITH KEY type = 'E'.
IF sy-subrc EQ 0.
LOOP AT i_return WHERE type = 'E'.
MOVE-CORRESPONDING gt_header_stock TO gt_result_stock.
CONCATENATE i_return-type i_return-message INTO gt_result_stock-messg SEPARATED BY space.
COLLECT gt_result_stock.
ENDLOOP.
ELSE.
MOVE-CORRESPONDING gt_header_stock TO gt_result_stock.
gt_result_stock-messg = 'Error Not Found'.
COLLECT gt_result_stock.
ENDIF.
ELSE.
MOVE-CORRESPONDING gt_header_stock TO gt_result_stock.
gt_result_stock-ebeln = lv_exppurchaseorder.
gt_result_stock-messg = 'Create PO Success'.
COLLECT gt_result_stock.
ENDIF.
IF cb_test EQ ''.
ENDIF.
ENDLOOP.
ENDFORM.
https://www.dropbox.com/s/0ikqnaeoc69u74q/ZMMR34.txt?dl=0 25/25