Skip to Content
0
Former Member
Feb 21, 2014 at 06:53 AM

how to select a basic data view of t-code 'mm43'in call transaction method

853 Views

my program is as follows:

but i am getting an error message that screen sequence could be selected......

TABLES :ekko, ekpo.

TYPE-POOLS: slis.

DATA :

BEGIN OF iekko OCCURS 0,

ebeln TYPE ekko-ebeln,

bukrs TYPE ekko-bukrs,

bstyp TYPE ekko-bstyp,

bsart TYPE ekko-bsart,

bsakz TYPE ekko-bsakz,

loekz TYPE ekko-loekz,

statu TYPE ekko-statu,

aedat TYPE ekko-aedat,

END OF iekko.

DATA :

BEGIN OF iekpo OCCURS 0,

ebeln TYPE ekpo-ebeln,

matnr TYPE ekpo-matnr,

ematn TYPE ekpo-ematn,

bukrs TYPE ekpo-bukrs,

werks TYPE ekpo-werks,

lgort TYPE ekpo-lgort,

bednr TYPE ekpo-bednr,

matkl TYPE ekpo-matkl,

END OF iekpo.

DATA : BEGIN OF final OCCURS 0,

ebeln LIKE ekko-ebeln,

bukrs LIKE ekko-bukrs,

bstyp LIKE ekko-bstyp,

bsart LIKE ekko-bsart,

bsakz LIKE ekko-bsakz,

loekz LIKE ekko-loekz,

statu LIKE ekko-statu,

matnr LIKE ekpo-matnr,

ematn LIKE ekpo-ematn,

werks LIKE ekpo-werks,

lgort LIKE ekpo-lgort,

bednr LIKE ekpo-bednr,

matkl LIKE ekpo-matkl,

END OF final.

DATA : i_repid TYPE sy-repid,

final_cat LIKE TABLE OF final,

wa_final TYPE final.

DATA : int_fcat TYPE slis_t_fieldcat_alv,

wa_layout TYPE slis_layout_alv,

v_ebeln TYPE ekko-ebeln,

v_matnr TYPE ekpo-matnr,

it_events TYPE slis_alv_event,

gt_events TYPE slis_t_event.

DATA: bdcdata TYPE TABLE OF bdcdata WITH HEADER LINE,

zdata TYPE TABLE OF bdcdata.

SELECT-OPTIONS : s_ebeln FOR ekko-ebeln,

s_bukrs FOR ekko-bukrs,

s_aedat FOR ekko-aedat,

s_bsart FOR ekko-bsart,

s_ebelp FOR ekpo-ebelp.

START-OF-SELECTION.

SELECT ebeln

bukrs

bstyp

bsart

bsakz

loekz

statu

FROM ekko

INTO CORRESPONDING FIELDS OF TABLE iekko

WHERE ebeln IN s_ebeln.

SELECT ebeln

matnr

ematn

bukrs

werks

lgort

bednr

matkl

FROM ekpo INTO TABLE iekpo

FOR ALL ENTRIES IN iekko WHERE ebeln EQ iekko-ebeln.

SORT iekpo BY ebeln.

LOOP AT iekko.

READ TABLE iekpo WITH KEY ebeln = iekko-ebeln BINARY SEARCH.

IF sy-subrc EQ 0.

MOVE : iekko-ebeln TO final-ebeln,

iekko-bukrs TO final-bukrs,

iekko-bstyp TO final-bstyp,

iekko-bsart TO final-bsart,

iekko-bsakz TO final-bsakz,

iekko-loekz TO final-loekz,

iekko-statu TO final-statu,

iekpo-matnr TO final-matnr,

iekpo-ematn TO final-ematn,

iekpo-werks TO final-werks,

iekpo-lgort TO final-lgort,

iekpo-bednr TO final-bednr,

iekpo-matkl TO final-matkl.

APPEND final.

CLEAR final.

CLEAR iekko.

CLEAR iekpo.

ENDIF.

ENDLOOP.

i_repid = sy-repid.

wa_layout-zebra = 'X'.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = i_repid

i_internal_tabname = 'FINAL'

i_inclname = i_repid

CHANGING

ct_fieldcat = int_fcat

EXCEPTIONS

inconsistent_interface = 1

program_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.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = i_repid

i_callback_user_command = 'USER_COMMAND1 '

i_callback_top_of_page = 'TOP'

i_callback_html_end_of_list = 'END_OF_LIST_HTML'

is_layout = wa_layout

it_fieldcat = int_fcat

i_save = 'A'

i_screen_start_column = 1

i_screen_start_line = 2

i_screen_end_column = 1000

i_screen_end_line = 2000

TABLES

t_outtab = 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.

ENDIF.

*&---------------------------------------------------------------------*

*& Form end_of_list_html

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* -->END text

*----------------------------------------------------------------------*

FORM end_of_list_html USING end TYPE REF TO cl_dd_document.

CALL METHOD end->add_text

EXPORTING

text = ' B & Q ------>"THE KINGFISHER"'.

ENDFORM. "end_of_list_html

DATA : wa_listheader TYPE slis_t_listheader WITH HEADER LINE.

*&---------------------------------------------------------------------*

*& Form TOP-OF-PAGE

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

FORM top.

wa_listheader-typ = 'S'.

wa_listheader-key = 'DATE'.

wa_listheader-info = sy-datum.

WRITE sy-datum TO wa_listheader-info.

APPEND wa_listheader.

wa_listheader-typ = 'S'.

wa_listheader-key = 'TIME'.

wa_listheader-info = sy-uzeit.

WRITE sy-uzeit TO wa_listheader-info.

APPEND wa_listheader.

wa_listheader-typ = 'S'.

wa_listheader-key = 'CLIENT'.

wa_listheader-info = sy-mandt.

APPEND wa_listheader.

CLEAR wa_listheader.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = wa_listheader[]

i_logo = 'ENJOYSAP_LOGO'.

* i_end_of_list_grid = 'END'.

ENDFORM. "TOP-OF-PAGE

*&---------------------------------------------------------------------*

*& Form USER_COMMAND1

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* -->UCOMM text

* -->RS_SELFIELD_EKPO text

*----------------------------------------------------------------------*

FORM user_command1 USING ucomm TYPE sy-ucomm

CHANGING rs_selfield_ekpo TYPE slis_selfield.

CASE ucomm.

WHEN '&IC1'.

IF rs_selfield_ekpo-fieldname = 'EBELN'.

SET PARAMETER ID 'BES' FIELD v_ebeln.

CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.

ELSE.

MESSAGE 'invalid field' TYPE 'S'.

ENDIF.

ENDCASE.

CASE ucomm.

WHEN '&IC1'.

IF rs_selfield_ekpo-fieldname = 'MATNR'.

SET PARAMETER ID 'MAT' FIELD v_matnr.

CLEAR bdcdata.

PERFORM bdc_dynpro USING 'SAPLMGMW' '0100'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RMMW1-MATNR'.

PERFORM bdc_field USING 'RMMW1-MATNR'

v_matnr.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(01)'

'X'.

CALL FUNCTION 'MATERIAL_BTCI_SELECTION_NEW'

EXPORTING

material = v_matnr

selection = 'K'

tcode = 'MM43'

TABLES

btci_d0070 = zdata

EXCEPTIONS

material_not_found = 1

material_number_missing = 2

material_type_missing = 3

material_type_not_found = 4

no_active_dynpro_selected = 5

no_authority = 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.

APPEND LINES OF zdata TO bdcdata.

CLEAR v_matnr.

CALL TRANSACTION 'MM43' USING bdcdata MODE 'E'.

ENDIF.

ENDCASE.

ENDFORM. "user_command1

*&---------------------------------------------------------------------*

*& Form BDC_DYNPRO

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* -->PROGRAM text

* -->DYNPRO text

*----------------------------------------------------------------------*

FORM bdc_dynpro USING program dynpro.

CLEAR bdcdata.

bdcdata-program = program.

bdcdata-dynpro = dynpro.

bdcdata-dynbegin = 'X'.

APPEND bdcdata.

ENDFORM. "BDC_DYNPRO

*----------------------------------------------------------------------*

* Insert field *

*----------------------------------------------------------------------*

FORM bdc_field USING fnam fval.

CLEAR bdcdata.

bdcdata-fnam = fnam.

bdcdata-fval = fval.

APPEND bdcdata.

ENDFORM. "BDC_FIELD