100% found this document useful (1 vote)
100 views27 pages

Case Studies Programs

This document contains code snippets from multiple SAP case studies involving ABAP programming. The case studies demonstrate interactive reports, BDC programs, online programming, and SAP script. Key elements include: 1) An interactive report case study that selects purchase order data and displays headers and items, allowing the user to view totals. 2) A BDC program case study that uploads data from a text file and uses BDC functionality to process transactions via batch input sessions. 3) An online programming case study that displays customer master data from a selection screen and allows the user to navigate records. 4) An SAP script case study that selects sales order data from various tables and appears to consolidate it for

Uploaded by

Ranjith Narayan
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
100 views27 pages

Case Studies Programs

This document contains code snippets from multiple SAP case studies involving ABAP programming. The case studies demonstrate interactive reports, BDC programs, online programming, and SAP script. Key elements include: 1) An interactive report case study that selects purchase order data and displays headers and items, allowing the user to view totals. 2) A BDC program case study that uploads data from a text file and uses BDC functionality to process transactions via batch input sessions. 3) An online programming case study that displays customer master data from a selection screen and allows the user to navigate records. 4) An SAP script case study that selects sales order data from various tables and appears to consolidate it for

Uploaded by

Ranjith Narayan
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 27

Case Study 2: Interactive Report

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.

*_____________________________________________________________________________________ _________________________________ *<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> AT SELECTION-SCREEN DECLARATION <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<> SELECT SINGLE ebeln

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.

IF p_show = 'X'. SET PF-STATUS 'TOTAL'. PERFORM purc_doc_header. SKIP.

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.

Case Study 3: BDC Program


REPORT ybdcproggopi. TYPES : BEGIN OF ty_final, anlkl TYPE anla-anlkl, bukrs TYPE anla-bukrs, nassets TYPE ra02s-nassets, txt50 TYPE anla-txt50, meins TYPE anla-meins,

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

Case Study 4/8 : Online Programming


TOP INCLUDE:
TABLES : kna1. TYPES : BEGIN OF ty_kna1, kunnr TYPE kunnr , name1 TYPE name1, stras TYPE stras, ort01 TYPE ort01, END OF ty_kna1. DATA : it_kna1 TYPE STANDARD TABLE OF ty_kna1, wa_kna1 TYPE ty_kna1, okcode TYPE sy-ucomm, current TYPE char10, total TYPE char10, pageno TYPE char40. PROGRAM sapmzgopi message-id z04mess.

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.

" USER_COMMAND_9001 INPUT

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

CASE STUDY 4: SAP SCRIPT


REPORT y_ctrl_gopi NO STANDARD PAGE HEADING MESSAGE-ID z04test. TYPES: BEGIN OF ty_vbak, vbeln TYPE vbeln_va, erdat TYPE erdat, END OF ty_vbak. TYPES: BEGIN OF ty_vbap, vbeln TYPE vbeln_va, posnr TYPE posnr_va, matnr TYPE matnr, arktx TYPE arktx, ntgew TYPE ntgew_ap, netpr TYPE netpr, END OF ty_vbap. TYPES: BEGIN OF ty_final, vbeln TYPE vbeln_va, erdat TYPE erdat,

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

ENDIF. APPEND wa_final TO it_final. CLEAR wa_final. ENDLOOP.

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.

CASE STUDY 6: ALV PROGRAM


REPORT YMMREPORTGOPIA NO STANDARD PAGE HEADING MESSAGE-ID z04mess LINE-SIZE 150 LINE-COUNT 58(3). TYPES: BEGIN OF ty_mara, matnr TYPE matnr, ersda TYPE ersda, ntgew TYPE ntgew, meins TYPE meins, END OF ty_mara. TYPES: BEGIN OF ty_marc, matnr TYPE matnr, werks TYPE werks_d, ekgrp TYPE ekgrp, END OF ty_marc. TYPES: BEGIN OF ty_final, matnr TYPE matnr, ersda TYPE ersda, werks TYPE werks_d, ekgrp TYPE ekgrp, ntgew TYPE ntgew, meins TYPE meins, END OF ty_final. TYPE-POOLS : slis. DATA: it_mara TYPE STANDARD TABLE OF ty_mara, wa_mara TYPE ty_mara, it_marc TYPE STANDARD TABLE OF ty_marc, wa_marc TYPE ty_marc, it_final TYPE STANDARD TABLE OF ty_final, wa_final TYPE ty_final, v_matnr TYPE mara-matnr, v_werks TYPE werks_d, it_fieldcat TYPE slis_t_fieldcat_alv, wa_fieldcat TYPE slis_fieldcat_alv, it_header TYPE slis_t_listheader, wa_header TYPE slis_listheader. SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

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

CASE STUDY 7: BDC PROGRAM


REPORT ycreate_cctrgopi NO STANDARD PAGE HEADING MESSAGE-ID z04mess LINE-SIZE 150 LINE-COUNT 50(3). TYPES: BEGIN OF ty_final, kokrs TYPE csksz-kokrs, kostl TYPE csksz-kostl, ktext TYPE csksz-ktext, verak TYPE csksz-verak, kosar TYPE csksz-kosar, khinr TYPE csksz-khinr, gsber TYPE csksz-gsber, waers TYPE csksz-waers, prctr TYPE csksz-prctr, mgefl TYPE csksz-mgefl, END OF ty_final. DATA: it_final TYPE STANDARD TABLE OF ty_final, wa_final TYPE ty_final,

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

CASE STUDY 9: SMARTFORM


REPORT y_ctrl_gopi2. TYPES: BEGIN OF ty_vbak, vbeln TYPE vbeln_va, vkorg TYPE vkorg, vtweg TYPE vtweg, spart TYPE spart, END OF ty_vbak. TYPES: BEGIN OF ty_vbap, vbeln TYPE vbeln_va, posnr TYPE posnr_va, matnr TYPE matnr, netwr TYPE netwr_ap, waerk TYPE waers, END OF ty_vbap. DATA: it_vbak TYPE STANDARD TABLE OF ty_vbak, wa_vbak TYPE ty_vbak, it_vbap TYPE STANDARD TABLE OF ty_vbap, wa_vbap TYPE ty_vbap, it_final TYPE y04smartfinal1, wa_final TYPE y04smartfinal, v_waerk TYPE waerk, v_vbeln TYPE vbak-vbeln. DATA : f_name TYPE rs38l_fnam. f_name = '/1BCDWB/SF00000523'. SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001. SELECT-OPTIONS: s_vbeln FOR v_vbeln. PARAMETERS: p_vtweg TYPE vbak-vtweg. SELECTION-SCREEN END OF BLOCK b1. AT SELECTION-SCREEN ON s_vbeln. SELECT vbeln UP TO 1 ROWS FROM vbuk INTO v_vbeln WHERE vbeln IN s_vbeln. IF sy-subrc <> 0.

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

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy