You are on page 1of 8

*&---------------------------------------------------------------------* *& Report ZUT_PO_CREATE_EXCEL_SHEET *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT ZUT_PO_CREATE_EXCEL_SHEET.

type-pools : TRUXS. types : begin of ty_file, No(1), ccode type BAPIMEPOHEADER-COMP_CODE, doc_type type bapimepoheader-DOC_TYPE, vendor type bapimepoheader-VENDOR, porg type bapimepoheader-PURCH_ORG, purgroup type bapimepoheader-PUR_group, currency type bapimepoheader-CURRENCY, item type BAPIMEPOITEM-PO_ITEM, matnr type bapimepoitem-MATERIAL, plant type bapimepoitem-plant, quantity type bapimepoitem-QUANTITY, netprice type bapimepoitem-NET_PRICE, end of ty_file. data : it_file type standard table of ty_file, wa_file like line of it_file.

parameters p_file type IBIPPARMS-PATH. at selection-screen on value-request for p_file. perform browse_file.

start-of-selection. perform load_excel. perform create_po.

*&---------------------------------------------------------------------* *& Form browse_file *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM browse_file . CALL FUNCTION 'F4_FILENAME' * EXPORTING * PROGRAM_NAME = SYST-CPROG * DYNPRO_NUMBER = SYST-DYNNR * FIELD_NAME ='' IMPORTING FILE_NAME = p_file . ENDFORM. " browse_file *&---------------------------------------------------------------------* *& Form load_excel *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM load_excel . * DATA : IT_EXCEL TYPE STANDARD TABLE OF ALSMEX_TABLINE, * WA_EXCEL TYPE ALSMEX_TABLINE. *CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE' * EXPORTING * FILENAME = p_file * I_BEGIN_COL =1 * I_BEGIN_ROW =1 * I_END_COL = 12 * I_END_ROW = 1000 * TABLES * INTERN = IT_EXCEL * EXCEPTIONS * INCONSISTENT_PARAMETERS =1 * UPLOAD_OLE =2

* OTHERS =3 * . *IF SY-SUBRC <> 0. ** MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO ** WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. *ENDIF. *data : l_index type sy-index. *FIELD-SYMBOLS : <fs>. *LOOP AT IT_EXCEL INTO WA_EXCEL. * ** CASE WA_EXCEL-COL. ** WHEN '1'. ** WA_FILE-NO = WA_EXCEL-VALUE. ** WHEN '2'. ** WA_FILE-ccode = WA_EXCEL-VALUE. ** WHEN '3'. ** WA_FILE-doc_type = WA_EXCEL-VALUE. ** WHEN '4'. ** WA_FILE-vendor = WA_EXCEL-VALUE. ** WHEN '5'. ** WA_FILE-PORG = WA_EXCEL-VALUE. ** WHEN '6'. ** WA_FILE-purgroup = WA_EXCEL-VALUE. ** WHEN '7'. ** WA_FILE-CURRENCY = WA_EXCEL-VALUE. ** WHEN '8'. ** WA_FILE-ITEM = WA_EXCEL-VALUE. ** WHEN '9'. ** WA_FILE-MATNR = WA_EXCEL-VALUE. ** WHEN '10'. ** WA_FILE-PLANT = WA_EXCEL-VALUE. ** WHEN '11'. ** WA_FILE-QUANTITY = WA_EXCEL-VALUE. ** WHEN '12'. ** WA_FILE-NETPRICE = WA_EXCEL-VALUE. ** WHEN OTHERS. ** ENDCASE. * *MOVE WA_EXCEL-col TO l_index. * ASSIGN COMPONENT l_index OF STRUCTURE wa_file TO <fs>. * MOVE wa_excel-value TO <fs>. *

*AT END OF ROW. * APPEND WA_FILE TO IT_FILE. * CLEAR WA_FILE. *ENDAT. * ENDLOOP. data : lv_trux type TRUXS_T_TEXT_DATA. CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP' EXPORTING * I_FIELD_SEPERATOR = * I_LINE_HEADER = I_TAB_RAW_DATA = lv_trux I_FILENAME = p_file TABLES I_TAB_CONVERTED_DATA = it_file 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.

ENDFORM. " load_excel *&---------------------------------------------------------------------* *& Form create_po *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM create_po . data : po_head type BAPIMEPOHEADER, po_headx type BAPIMEPOHEADERX, it_return type standard table of BAPIRET2, wa_return type BAPIRET2, it_poitem type standard table of BAPIMEPOITEM, wa_poitem type BAPIMEPOITEM, it_poitemx type standard table of BAPIMEPOITEMX,

wa_poitemx type BAPIMEPOITEMX. data : po_num type BAPIMEPOHEADER-PO_NUMBER. loop at it_file into wa_file.

po_head-COMP_CODE = wa_file-ccode. po_head-DOC_TYPE = wa_file-doc_type. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING INPUT = wa_file-vendor IMPORTING OUTPUT = wa_file-vendor . po_head-VENDOR = wa_file-vendor. po_head-PURCH_ORG = wa_file-porg. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING INPUT = wa_file-purgroup IMPORTING OUTPUT = wa_file-purgroup. po_head-PUR_GROUP = wa_file-purgroup. po_head-CURRENCY = wa_file-currency.

po_headx-COMP_CODE = 'X'. po_headx-DOC_TYPE = 'X'. po_headx-VENDOR = 'X'. po_headx-PURCH_ORG = 'X'. po_headx-PUR_GROUP = 'X'. po_headx-CURRENCY = 'X'.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING INPUT = wa_file-item IMPORTING

OUTPUT .

= wa_file-item

wa_poitem-PO_ITEM = wa_file-item. wa_poitem-MATERIAL = wa_file-matnr. wa_poitem-PLANT = wa_file-plant. wa_poitem-QUANTITY = wa_file-quantity. wa_poitem-net_price = wa_file-netprice. append wa_poitem to it_poitem. clear wa_poitem.

wa_poitemx-PO_ITEM = wa_file-item. wa_poitemx-PO_ITEMX = 'X'. wa_poitemx-MATERIAL = 'X'. wa_poitemx-PLANT = 'X'. wa_poitemx-QUANTITY = 'X'. wa_poitemx-net_price = 'X'. append wa_poitemx to it_poitemx. clear wa_poitemx.

at end of no. CALL FUNCTION 'BAPI_PO_CREATE1' EXPORTING POHEADER = po_head POHEADERX = po_headx * POADDRVENDOR = * TESTRUN = * MEMORY_UNCOMPLETE = * MEMORY_COMPLETE = * POEXPIMPHEADER = * POEXPIMPHEADERX = * VERSIONS = * NO_MESSAGING = * NO_MESSAGE_REQ = * NO_AUTHORITY = * NO_PRICE_FROM_PO = IMPORTING EXPPURCHASEORDER = po_num

* EXPHEADER = * EXPPOEXPIMPHEADER = TABLES RETURN = it_return POITEM = it_poitem POITEMX = it_poitemx * POADDRDELIVERY = * POSCHEDULE = * POSCHEDULEX = * POACCOUNT = * POACCOUNTPROFITSEGMENT = * POACCOUNTX = * POCONDHEADER = * POCONDHEADERX = * POCOND = * POCONDX = * POLIMITS = * POCONTRACTLIMITS = * POSERVICES = * POSRVACCESSVALUES = * POSERVICESTEXT = * EXTENSIONIN = * EXTENSIONOUT = * POEXPIMPITEM = * POEXPIMPITEMX = * POTEXTHEADER = * POTEXTITEM = * ALLVERSIONS = * POPARTNER = * POCOMPONENTS = * POCOMPONENTSX = * POSHIPPING = * POSHIPPINGX = * POSHIPPINGEXP = . read table it_return into wa_return with key type = 'E'. IF sy-subrc ne 0. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING WAIT = 'X' * IMPORTING * RETURN =

. write : / po_num. clear po_num. ENDIF. endat.

endloop. ENDFORM.

" create_po

You might also like