Case Studies Programs
Case Studies Programs
REPORT y_irp_gopi NO STANDARD PAGE HEADING MESSAGE-ID z04test LINE-SIZE 150 LINE-COUNT 58(3). TYPES : BEGIN OF ty_ekko, ebeln TYPE ekko-ebeln, bukrs TYPE ekko-bukrs, lifnr TYPE ekko-lifnr, bedat TYPE ekko-bedat, bsart TYPE ekko-bsart, END OF ty_ekko. TYPES : BEGIN OF ty_ekpo, ebeln TYPE ekpo-ebeln, ebelp TYPE ekpo-ebelp, elikz TYPE ekpo-elikz, effwr TYPE ekpo-effwr, END OF ty_ekpo. DATA : v_ebeln TYPE ekko-ebeln, v_bukrs TYPE t001-bukrs, v_tot TYPE ekpo-effwr, it_ekko TYPE STANDARD TABLE OF ty_ekko, it_ekpo TYPE STANDARD TABLE OF ty_ekpo, wa_ekko TYPE ty_ekko, wa_ekpo TYPE ty_ekpo. *_____________________________________________________________________________________ _________________________________ *<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> SELECTION SCREENS DECLARATION <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<> SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001. SELECT-OPTIONS : s_ebeln FOR v_ebeln. PARAMETERS : p_bukrs TYPE ekko-bukrs. SELECTION-SCREEN END OF BLOCK b1. PARAMETERS : p_show AS CHECKBOX.
FROM ekko INTO v_ebeln WHERE ebeln IN s_ebeln. IF sy-subrc <> 0. MESSAGE e030. ENDIF. SELECT SINGLE bukrs FROM t001 INTO v_bukrs WHERE bukrs = p_bukrs. IF sy-subrc <> 0. MESSAGE e031. ENDIF.
*_____________________________________________________________________________________ _________________________________ *<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> START-OFSELECTION DECLARATION <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<> SELECT ebeln bukrs lifnr bedat bsart FROM ekko INTO TABLE it_ekko WHERE ebeln IN s_ebeln AND bukrs = p_bukrs. IF NOT it_ekko IS INITIAL. SELECT ebeln ebelp elikz effwr FROM ekpo INTO TABLE it_ekpo FOR ALL ENTRIES IN it_ekko WHERE ebeln = it_ekko-ebeln. ENDIF.
ULINE. SKIP 2. PERFORM purc_doc_item. ELSE. PERFORM purc_doc_header. ENDIF. *_____________________________________________________________________________________ _________________________________ *<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> END OF SELECTION DECLARATION <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<> END-OF-SELECTION.
*&---------------------------------------------------------------------* *& Form purc_doc_header *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM purc_doc_header. WRITE : /1 'Purc.Doc.No.', 30 'Company Code', 60 'Vendor Acc No', 90 'Purc.Doc.Date', 120 'purc.Doc.Type'. SKIP. LOOP AT it_ekko INTO wa_ekko. WRITE : /1 wa_ekko-ebeln , 30 wa_ekko-bukrs , 60 wa_ekko-lifnr, 90 wa_ekko-bedat , 120 wa_ekko-bsart. ENDLOOP. ENDFORM. "purc_doc_header
*&---------------------------------------------------------------------* *& Form purc_doc_item *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM purc_doc_item. WRITE : /1 'Purc.Doc.No.', 30 'item no.of Purc.Doc.', 60 'Delv.Completed Indicator', 90 'effective Value of Item'. SKIP.
LOOP AT it_ekpo INTO wa_ekpo. WRITE : /1 wa_ekpo-ebeln, 30 wa_ekpo-ebelp, 60 wa_ekpo-elikz, 90 wa_ekpo-effwr. HIDE wa_ekpo-ebeln. ENDLOOP. CLEAR wa_ekpo-ebeln. ENDFORM. "purc_doc_item
AT USER-COMMAND. IF sy-ucomm = 'TOTAL'. CLEAR v_tot. LOOP AT it_ekpo INTO wa_ekpo WHERE ebeln = wa_ekpo-ebeln. v_tot = v_tot + wa_ekpo-effwr. ENDLOOP. WINDOW STARTING AT 10 4 ENDING AT 77 18. SET PF-STATUS 'CLOSE'. WRITE : / v_tot. ENDIF. IF sy-ucomm = 'CLOSE'. sy-lsind = 0. ENDIF.
gsber TYPE anlz-gsber, END OF ty_final. DATA : it_final TYPE STANDARD TABLE OF ty_final, wa_final TYPE ty_final, it_bdc TYPE STANDARD TABLE OF bdcdata, wa_bdc TYPE bdcdata. CALL FUNCTION 'GUI_UPLOAD' EXPORTING filename = 'C:\BDC3.TXT' * filetype = 'ASC' has_field_separator = 'X' * HEADER_LENGTH =0 * READ_BY_LINE = 'X' * DAT_MODE ='' * CODEPAGE ='' * IGNORE_CERR = ABAP_TRUE * REPLACEMENT = '#' * CHECK_BOM ='' * VIRUS_SCAN_PROFILE = * NO_AUTH_CHECK ='' * IMPORTING * FILELENGTH = * HEADER = TABLES data_tab = it_final EXCEPTIONS file_open_error =1 file_read_error =2 no_batch =3 gui_refuse_filetransfer =4 invalid_type =5 no_authority =6 unknown_error =7 bad_data_format =8 header_not_allowed =9 separator_not_allowed = 10 header_too_long = 11 unknown_dp_error = 12 access_denied = 13 dp_out_of_memory = 14 disk_full = 15 dp_timeout = 16 OTHERS = 17 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. LOOP AT it_final INTO wa_final. PERFORM bdc_fill. ENDLOOP.
CALL FUNCTION 'BDC_OPEN_GROUP' EXPORTING client = sy-mandt * DEST = FILLER8 group = 'CASE3' * HOLDDATE = FILLER8 KEEP = 'X' user = sy-uname * RECORD = FILLER1 * PROG = SY-CPROG * DCPFM = '%' * DATFM = '%' * IMPORTING * QID = EXCEPTIONS client_invalid =1 destination_invalid =2 group_invalid =3 group_is_locked =4 holddate_invalid =5 internal_error =6 queue_error =7 running =8 system_lock_error =9 user_invalid = 10 OTHERS = 11 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. CALL FUNCTION 'BDC_INSERT' EXPORTING tcode = 'AS01' * POST_LOCAL = NOVBLOCAL * PRINTING = NOPRINT * SIMUBATCH ='' * CTUPARAMS ='' TABLES dynprotab = it_bdc EXCEPTIONS internal_error =1 not_open =2 queue_error =3 tcode_invalid =4 printing_invalid =5 posting_invalid =6 OTHERS =7 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF.
CALL FUNCTION 'BDC_CLOSE_GROUP' EXCEPTIONS not_open = 1 queue_error = 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. *&---------------------------------------------------------------------* *& Form bdc_fill *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM bdc_fill. wa_bdc-program = 'SAPLAIST'. wa_bdc-dynpro = '0105'. wa_bdc-dynbegin = 'X'. APPEND wa_bdc TO it_bdc. CLEAR wa_bdc. wa_bdc-fnam = 'ANLA-ANLKL'. wa_bdc-fval = wa_final-anlkl. APPEND wa_bdc TO it_bdc. CLEAR wa_bdc. wa_bdc-fnam = 'anla-BUKRS'. wa_bdc-fval = wa_final-bukrs. APPEND wa_bdc TO it_bdc. CLEAR wa_bdc. wa_bdc-fnam = 'ANLA-NASSETS'. wa_bdc-fval = wa_final-NASSETS. APPEND wa_bdc TO it_bdc. CLEAR wa_bdc. wa_bdc-fnam = 'BDC_OKCODE'. wa_bdc-fval = '\00'. APPEND wa_bdc TO it_bdc. CLEAR wa_bdc. wa_bdc-program = 'SAPLAIST'. wa_bdc-dynpro = '1140'. wa_bdc-dynbegin = 'X'. APPEND wa_bdc TO it_bdc. CLEAR wa_bdc. wa_bdc-fnam = 'ANLA-TXT50'. wa_bdc-fval = wa_final-txt50. APPEND wa_bdc TO it_bdc. CLEAR wa_bdc.
wa_bdc-fnam = 'ANLA-MEINS'. wa_bdc-fval = wa_final-meins. APPEND wa_bdc TO it_bdc. CLEAR wa_bdc. wa_bdc-fnam = 'BDC_OKCODE'. wa_bdc-fval = 'UPDA'. APPEND wa_bdc TO it_bdc. CLEAR wa_bdc.
wa_bdc-program = 'SAPLAIST'. wa_bdc-dynpro = '1145'. wa_bdc-dynbegin = 'X'. APPEND wa_bdc TO it_bdc. CLEAR wa_bdc. wa_bdc-fnam = 'ANLZ-GSBER'. wa_bdc-fval = wa_final-gsber. APPEND wa_bdc TO it_bdc. CLEAR wa_bdc. wa_bdc-fnam = 'BDC_OKCODE'. wa_bdc-fval = 'UPDA'. APPEND wa_bdc TO it_bdc. CLEAR wa_bdc. ENDFORM. "bdc_fill
PBO MODULES:
MODULE status_9001 OUTPUT. CLEAR wa_kna1. ENDMODULE. " STATUS_9001 OUTPUT
MODULE status_9002 OUTPUT. SET PF-STATUS 'PREV'. READ TABLE it_kna1 INTO wa_kna1 INDEX sy-tabix. kna1-kunnr = wa_kna1-kunnr. kna1-name1 = wa_kna1-name1. kna1-stras = wa_kna1-stras. kna1-ort01 = wa_kna1-ort01. total = sy-dbcnt. current = sy-tabix. CONCATENATE current 'of' total INTO pageno. ENDMODULE. " STATUS_9002 OUTPUT
PAI MODULES:
MODULE user_command_9001 INPUT. sy-tabix = 1. IF NOT kna1-kunnr IS INITIAL. SELECT kunnr name1 stras ort01 FROM kna1 INTO TABLE it_kna1 WHERE kunnr = kna1-kunnr. ENDIF. IF kna1-kunnr IS INITIAL. SELECT kunnr name1 stras ort01 FROM kna1 INTO TABLE it_kna1. ENDIF.
ENDMODULE.
MODULE user_command_9002 INPUT. okcode = sy-ucomm. CASE okcode. WHEN 'BACK'. LEAVE TO SCREEN 9001. WHEN 'CANCEL'. LEAVE PROGRAM. WHEN 'EXIT'. LEAVE PROGRAM. ENDCASE. IF sy-ucomm = 'PREV'. sy-tabix = sy-tabix - 1. IF sy-tabix = 0. MESSAGE e010. ENDIF. ENDIF. IF sy-ucomm = 'NEXT'. sy-tabix = sy-tabix + 1. IF sy-tabix = sy-dbcnt. MESSAGE e011. ENDIF. ENDIF. ENDMODULE. " USER_COMMAND_9002 INPUT
10
posnr TYPE posnr_va, matnr TYPE matnr, arktx TYPE arktx, ntgew TYPE ntgew_ap, netpr TYPE netpr, END OF ty_final. DATA: it_vbak TYPE STANDARD TABLE OF ty_vbak, wa_vbak TYPE ty_vbak, it_final TYPE STANDARD TABLE OF ty_final, wa_final TYPE ty_final, it_vbap TYPE STANDARD TABLE OF ty_vbap, wa_vbap TYPE ty_vbap, v_vbeln TYPE vbak-vbeln. SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001. PARAMETERS: p_vbeln LIKE v_vbeln OBLIGATORY. SELECTION-SCREEN END OF BLOCK b1. AT SELECTION-SCREEN ON p_vbeln. SELECT vbeln UP TO 1 ROWS FROM vbak INTO TABLE it_vbak WHERE vbeln = p_vbeln. IF sy-subrc <> 0. MESSAGE e001. ENDIF. START-OF-SELECTION. SELECT vbeln erdat FROM vbak INTO TABLE it_vbak WHERE vbeln = p_vbeln. IF sy-subrc <> 0. MESSAGE e002. ENDIF. SELECT vbeln posnr matnr arktx ntgew netpr FROM vbap INTO TABLE it_vbap FOR ALL ENTRIES IN it_vbak WHERE vbeln = it_vbak-vbeln. IF sy-subrc <> 0. MESSAGE e003. ENDIF. LOOP AT it_vbap INTO wa_vbap. wa_final-posnr = wa_vbap-posnr. wa_final-matnr = wa_vbap-matnr. wa_final-arktx = wa_vbap-arktx. wa_final-ntgew = wa_vbap-ntgew. wa_final-netpr = wa_vbap-netpr. READ TABLE it_vbak INTO wa_vbak WITH KEY vbeln = p_vbeln BINARY SEARCH. IF sy-subrc = 0. MOVE: wa_vbak-vbeln TO wa_final-vbeln, wa_vbak-erdat TO wa_final-erdat.
11
CALL FUNCTION 'OPEN_FORM' EXPORTING * APPLICATION = 'TX' * ARCHIVE_INDEX = * ARCHIVE_PARAMS = * DEVICE = 'PRINTER' * DIALOG = 'X' form = 'Y_LAYOUT_GOPI' * LANGUAGE = SY-LANGU * OPTIONS = * MAIL_SENDER = * MAIL_RECIPIENT = * MAIL_APPL_OBJECT = * RAW_DATA_INTERFACE = '*' * SPONUMIV = * IMPORTING * LANGUAGE = * NEW_ARCHIVE_PARAMS = * RESULT = EXCEPTIONS canceled =1 device =2 form =3 OPTIONS =4 unclosed =5 mail_options =6 archive_error =7 invalid_fax_number =8 more_params_needed_in_batch =9 spool_error = 10 codepage = 11 OTHERS = 12 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. LOOP AT it_final INTO wa_final. CALL FUNCTION 'WRITE_FORM' EXPORTING element = 'TEXT_ELE' * FUNCTION = 'SET' * TYPE = 'BODY' window = 'MAIN'
12
* IMPORTING * PENDING_LINES = EXCEPTIONS element =1 function =2 type =3 unopened =4 unstarted =5 window =6 bad_pageformat_for_print =7 spool_error =8 codepage =9 OTHERS = 10 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. CALL FUNCTION 'WRITE_FORM' EXPORTING ELEMENT ='' FUNCTION = 'SET' TYPE = 'BODY' window = 'W1' IMPORTING PENDING_LINES = EXCEPTIONS element =1 function =2 type =3 unopened =4 unstarted =5 window =6 bad_pageformat_for_print =7 spool_error =8 codepage =9 OTHERS = 10 . IF sy-subrc <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. CALL FUNCTION 'WRITE_FORM' EXPORTING ELEMENT ='' FUNCTION = 'SET' TYPE = 'BODY' window = 'W2' IMPORTING PENDING_LINES = EXCEPTIONS
* * * * *
* *
* * * * *
13
element =1 function =2 type =3 unopened =4 unstarted =5 window =6 bad_pageformat_for_print =7 spool_error =8 codepage =9 OTHERS = 10 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. CALL FUNCTION 'WRITE_FORM' EXPORTING ELEMENT ='' FUNCTION = 'SET' TYPE = 'BODY' window = 'W3' IMPORTING PENDING_LINES = EXCEPTIONS element =1 function =2 type =3 unopened =4 unstarted =5 window =6 bad_pageformat_for_print =7 spool_error =8 codepage =9 OTHERS = 10 . IF sy-subrc <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. CALL FUNCTION 'WRITE_FORM' EXPORTING ELEMENT ='' FUNCTION = 'SET' TYPE = 'BODY' window = 'W4' IMPORTING PENDING_LINES = EXCEPTIONS element =1 function =2 type =3 unopened =4 unstarted =5
* * * * *
* *
* * * * *
14
window =6 bad_pageformat_for_print =7 spool_error =8 codepage =9 OTHERS = 10 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. CALL FUNCTION 'WRITE_FORM' EXPORTING ELEMENT ='' FUNCTION = 'SET' TYPE = 'BODY' window = 'W5' IMPORTING PENDING_LINES = EXCEPTIONS element =1 function =2 type =3 unopened =4 unstarted =5 window =6 bad_pageformat_for_print =7 spool_error =8 codepage =9 OTHERS = 10 . IF sy-subrc <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. ENDLOOP. * * * * * CALL FUNCTION 'CLOSE_FORM' IMPORTING RESULT = RDI_RESULT = TABLES OTFDATA = EXCEPTIONS unopened =1 bad_pageformat_for_print =2 send_error =3 spool_error =4 codepage =5 OTHERS =6 . IF sy-subrc <> 0.
* * * * *
* *
15
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF.
16
SELECT-OPTIONS: s_matnr FOR v_matnr. PARAMETER: p_werks TYPE werks_d OBLIGATORY. SELECTION-SCREEN END OF BLOCK b1. INITIALIZATION. p_werks ='0001'. PERFORM gopi_alv. AT SELECTION-SCREEN ON p_werks. SELECT werks UP TO 1 ROWS FROM t001w INTO v_werks WHERE werks = p_werks. IF sy-subrc <> 0. MESSAGE e001. ENDIF. ENDSELECT. START-OF-SELECTION. SELECT matnr ersda ntgew meins FROM mara INTO TABLE it_mara WHERE matnr IN s_matnr. SELECT matnr werks ekgrp FROM marc INTO TABLE it_marc FOR ALL ENTRIES IN it_mara WHERE matnr = it_mara-matnr AND werks = p_werks. END-OF-SELECTION. LOOP AT it_mara INTO wa_mara. wa_final-matnr = wa_mara-matnr. wa_final-ersda = wa_mara-ersda. wa_final-ntgew = wa_mara-ntgew. wa_final-meins = wa_mara-meins. READ TABLE it_marc INTO wa_marc WITH KEY matnr = wa_mara-matnr. wa_final-werks = wa_marc-werks. wa_final-ekgrp = wa_marc-ekgrp. APPEND wa_final TO it_final.
17
ENDLOOP. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING * I_INTERFACE_CHECK ='' * I_BYPASSING_BUFFER ='' * I_BUFFER_ACTIVE ='' i_callback_program = sy-repid * I_CALLBACK_PF_STATUS_SET ='' * I_CALLBACK_USER_COMMAND ='' I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE' * i_callback_html_top_of_page = '' * I_CALLBACK_HTML_END_OF_LIST ='' * I_STRUCTURE_NAME = * I_BACKGROUND_ID ='' * I_GRID_TITLE = * I_GRID_SETTINGS = * IS_LAYOUT = it_fieldcat = it_fieldcat * IT_EXCLUDING = * IT_SPECIAL_GROUPS = * IT_SORT = * IT_FILTER = * IS_SEL_HIDE = * I_DEFAULT = 'X' * I_SAVE ='' * IS_VARIANT = * IT_EVENTS = * IT_EVENT_EXIT = * IS_PRINT = * IS_REPREP_ID = * I_SCREEN_START_COLUMN =0 * I_SCREEN_START_LINE =0 * I_SCREEN_END_COLUMN =0 * I_SCREEN_END_LINE =0 * I_HTML_HEIGHT_TOP =0 * I_HTML_HEIGHT_END =0 * IT_ALV_GRAPHICS = * IT_HYPERLINK = * IT_ADD_FIELDCAT = * IT_EXCEPT_QINFO = * IR_SALV_FULLSCREEN_ADAPTER = * IMPORTING * E_EXIT_CAUSED_BY_CALLER = * ES_EXIT_CAUSED_BY_USER = TABLES t_outtab = it_final EXCEPTIONS program_error =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.
18
ENDIF. *&---------------------------------------------------------------------* *& Form GOPI_ALV *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM gopi_alv. wa_fieldcat-fieldname = 'MATNR'. wa_fieldcat-ref_fieldname = 'MATNR'. wa_fieldcat-ref_tabname = 'MARA'. APPEND wa_fieldcat TO it_fieldcat. CLEAR wa_fieldcat. wa_fieldcat-fieldname = 'ERSDA'. wa_fieldcat-ref_fieldname = 'ERSDA'. wa_fieldcat-ref_tabname = 'MARA'. APPEND wa_fieldcat TO it_fieldcat. CLEAR wa_fieldcat. wa_fieldcat-fieldname = 'WERKS'. wa_fieldcat-ref_fieldname = 'WERKS'. wa_fieldcat-ref_tabname = 'MARC'. APPEND wa_fieldcat TO it_fieldcat. CLEAR wa_fieldcat. wa_fieldcat-fieldname = 'EKGRP'. wa_fieldcat-ref_fieldname = 'EKGRP'. wa_fieldcat-ref_tabname = 'MARC'. APPEND wa_fieldcat TO it_fieldcat. CLEAR wa_fieldcat. wa_fieldcat-fieldname = 'NTGEW'. wa_fieldcat-ref_fieldname = 'NTGEW'. wa_fieldcat-ref_tabname = 'MARA'. APPEND wa_fieldcat TO it_fieldcat. CLEAR wa_fieldcat. wa_fieldcat-fieldname = 'MEINS'. wa_fieldcat-ref_fieldname = 'MEINS'. wa_fieldcat-ref_tabname = 'MARA'. APPEND wa_fieldcat TO it_fieldcat. CLEAR wa_fieldcat. ENDFORM. "gopi_alv
*&---------------------------------------------------------------------*
19
*& Form TOP-OF-PAGE *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM top-of-page. CLEAR wa_header. wa_header-typ = 'A'. CONCATENATE 'EXECUTION DATE :' sy-datum INTO wa_header-info. APPEND wa_header TO it_header. CLEAR wa_header. wa_header-typ = 'A'. CONCATENATE 'EXECUTION TIME:' sy-uzeit INTO wa_header-info. APPEND wa_header TO it_header. CLEAR wa_header. CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING it_list_commentary = it_header * I_LOGO = 'ENJOYSAP_LOGO' * I_END_OF_LIST_GRID = * I_ALV_FORM = . ENDFORM. "top-of-page
20
it_bdc TYPE STANDARD TABLE OF bdcdata, wa_bdc TYPE bdcdata. CALL FUNCTION 'GUI_UPLOAD' EXPORTING filename = 'C:\BDC.TXT' * FILETYPE = 'ASC' has_field_separator = 'X' * HEADER_LENGTH =0 * READ_BY_LINE = 'X' * DAT_MODE ='' * CODEPAGE ='' * IGNORE_CERR = ABAP_TRUE * REPLACEMENT = '#' * CHECK_BOM ='' * VIRUS_SCAN_PROFILE = * NO_AUTH_CHECK ='' * IMPORTING * FILELENGTH = * HEADER = TABLES data_tab = it_final EXCEPTIONS file_open_error =1 file_read_error =2 no_batch =3 gui_refuse_filetransfer =4 invalid_type =5 no_authority =6 unknown_error =7 bad_data_format =8 header_not_allowed =9 separator_not_allowed = 10 header_too_long = 11 unknown_dp_error = 12 access_denied = 13 dp_out_of_memory = 14 disk_full = 15 dp_timeout = 16 OTHERS = 17 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. LOOP AT it_final INTO wa_final. PERFORM bdc_fill. ENDLOOP. CALL FUNCTION 'BDC_OPEN_GROUP' EXPORTING client = sy-mandt * DEST = FILLER8
21
group = 'CASE7' * HOLDDATE = FILLER8 keep = 'X' user = sy-uname * RECORD = FILLER1 * PROG = SY-CPROG * DCPFM = '%' * DATFM = '%' * IMPORTING * QID = EXCEPTIONS client_invalid =1 destination_invalid =2 group_invalid =3 group_is_locked =4 holddate_invalid =5 internal_error =6 queue_error =7 running =8 system_lock_error =9 user_invalid = 10 OTHERS = 11 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. CALL FUNCTION 'BDC_INSERT' EXPORTING tcode = 'KS01' * POST_LOCAL = NOVBLOCAL * PRINTING = NOPRINT * SIMUBATCH ='' * CTUPARAMS ='' TABLES dynprotab = it_bdc EXCEPTIONS internal_error =1 not_open =2 queue_error =3 tcode_invalid =4 printing_invalid =5 posting_invalid =6 OTHERS =7 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. CALL FUNCTION 'BDC_CLOSE_GROUP' EXCEPTIONS
22
not_open = 1 queue_error = 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.
*&---------------------------------------------------------------------* *& Form bdc_fill *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM bdc_fill. WA_BDC-PROGRAM = 'SAPLKMA1'. WA_BDC-DYNPRO = '0200'. WA_BDC-DYNBEGIN = 'X'. APPEND WA_BDC TO IT_BDC. CLEAR WA_BDC. WA_BDC-FNAM = 'CSKSZ-KOKRS'. WA_BDC-FVAL = WA_FINAL-KOKRS. APPEND WA_BDC TO IT_BDC. CLEAR WA_BDC. WA_BDC-FNAM = 'CSKSZ-KOSTL'. WA_BDC-FVAL = WA_FINAL-KOSTL. APPEND WA_BDC TO IT_BDC. CLEAR WA_BDC. WA_BDC-FNAM = 'CSKSZ-DATAB_ANFO'. WA_BDC-FVAL = SY-DATUM. APPEND WA_BDC TO IT_BDC. CLEAR WA_BDC. WA_BDC-FNAM = 'CSKSZ-DATBI_ANFO'. WA_BDC-FVAL = '99991231'. APPEND WA_BDC TO IT_BDC. CLEAR WA_BDC. WA_BDC-FNAM = 'BDC_OKCODE'. WA_BDC-FVAL = '\00'. APPEND WA_BDC TO IT_BDC. CLEAR WA_BDC.
WA_BDC-PROGRAM = 'SAPLKMA1'.
23
WA_BDC-DYNPRO = '0299'. WA_BDC-DYNBEGIN = 'X'. APPEND WA_BDC TO IT_BDC. CLEAR WA_BDC. WA_BDC-FNAM = 'CSKSZ-KTEXT'. WA_BDC-FVAL = WA_FINAL-KTEXT. APPEND WA_BDC TO IT_BDC. CLEAR WA_BDC. WA_BDC-FNAM = 'CSKSZ-VERAK'. WA_BDC-FVAL = WA_FINAL-VERAK. APPEND WA_BDC TO IT_BDC. CLEAR WA_BDC. WA_BDC-FNAM = 'CSKSZ-KOSAR'. WA_BDC-FVAL = WA_FINAL-KOSAR. APPEND WA_BDC TO IT_BDC. CLEAR WA_BDC. WA_BDC-FNAM = 'CSKSZ-KHINR'. WA_BDC-FVAL = WA_FINAL-KHINR. APPEND WA_BDC TO IT_BDC. CLEAR WA_BDC. WA_BDC-FNAM = 'CSKSZ-GSBER'. WA_BDC-FVAL = WA_FINAL-GSBER. APPEND WA_BDC TO IT_BDC. CLEAR WA_BDC. WA_BDC-FNAM = 'CSKSZ-WAERS'. WA_BDC-FVAL = WA_FINAL-WAERS. APPEND WA_BDC TO IT_BDC. CLEAR WA_BDC. WA_BDC-FNAM = 'CSKSZ-PRCTR'. WA_BDC-FVAL = WA_FINAL-PRCTR. APPEND WA_BDC TO IT_BDC. CLEAR WA_BDC. WA_BDC-FNAM = 'BDC_OKCODE'. WA_BDC-FVAL = '=KZEI'. APPEND WA_BDC TO IT_BDC. CLEAR WA_BDC.
WA_BDC-PROGRAM = 'SAPLKMA1'. WA_BDC-DYNPRO = '0299'. WA_BDC-DYNBEGIN = 'X'. APPEND WA_BDC TO IT_BDC. CLEAR WA_BDC.
24
WA_BDC-FNAM = 'BDC_OKCODE'. WA_BDC-FVAL = '=BU'. APPEND WA_BDC TO IT_BDC. CLEAR WA_BDC. WA_BDC-FNAM = 'CSKSZ-MGEFL'. WA_BDC-FVAL = WA_FINAL-MGEFL. APPEND WA_BDC TO IT_BDC. CLEAR WA_BDC. ENDFORM. "bdc_fill
25
WRITE: 'ERROR'. ENDIF. ENDSELECT. START-OF-SELECTION. SELECT vbeln vkorg vtweg spart FROM vbak INTO TABLE it_vbak WHERE vbeln IN s_vbeln. SELECT vbeln posnr matnr netwr waerk FROM vbap INTO TABLE it_vbap FOR ALL ENTRIES IN it_vbak WHERE vbeln = it_vbak-vbeln. LOOP AT it_vbak INTO wa_vbak. wa_final-vbeln = wa_vbak-vbeln. wa_final-vkorg = wa_vbak-vkorg. wa_final-vtweg = wa_vbak-vtweg. wa_final-spart = wa_vbak-spart. READ TABLE it_vbap INTO wa_vbap WITH KEY vbeln = wa_vbak-vbeln. wa_final-posnr = wa_vbap-posnr. wa_final-matnr = wa_vbap-matnr. wa_final-netwr = wa_vbap-netwr. wa_final-waerk = wa_vbap-waerk. APPEND wa_final TO it_final. ENDLOOP. END-OF-SELECTION. CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = 'y_layout_gopi2' * VARIANT ='' * DIRECT_CALL ='' IMPORTING fm_name = f_name EXCEPTIONS no_form =1 no_function_module =2 OTHERS =3 .
26
IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. CALL FUNCTION '/1BCDWB/SF00000523' EXPORTING * ARCHIVE_INDEX = * ARCHIVE_INDEX_TAB = * ARCHIVE_PARAMETERS = * CONTROL_PARAMETERS = * MAIL_APPL_OBJ = * MAIL_RECIPIENT = * MAIL_SENDER = * OUTPUT_OPTIONS = * USER_SETTINGS = 'X' s_vbeln = wa_vbak-vbeln p_vtweg = p_vtweg * IMPORTING * DOCUMENT_OUTPUT_INFO = * JOB_OUTPUT_INFO = * JOB_OUTPUT_OPTIONS = TABLES it_final = it_final EXCEPTIONS formatting_error =1 internal_error =2 send_error =3 user_canceled =4 OTHERS =5 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF.
27