Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Internal table in OO

Former Member
0 Likes
695

I have a requirement to create and implement Badi.

The following is code:

method IF_EX_NOTIF_EVENT_SAVE~CHANGE_DATA_AT_SAVE.

DATA: l_progname TYPE sy-repid,

l_dynnum TYPE sy-dynnr.

types: BEGIN of itab.

INCLUDE dynpread.

types: END of itab.

data: dynpread_tab like table of itab.

l_progname = sy-repid.

l_dynnum = sy-dynnr.

CLEAR dynpread_tab.

REFRESH dynpread_tab.

dynpread_tab-fieldname = 'ZZACNUM'.

APPEND dynpread_tab.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

DYNAME = l_progname

DYNUMB = l_dynnum

  • TRANSLATE_TO_UPPER = ' '

  • REQUEST = ' '

  • PERFORM_CONVERSION_EXITS = ' '

  • PERFORM_INPUT_CONVERSION = ' '

  • DETERMINE_LOOP_INDEX = ' '

  • START_SEARCH_IN_CURRENT_SCREEN = ' '

  • START_SEARCH_IN_MAIN_SCREEN = ' '

  • START_SEARCH_IN_STACKED_SCREEN = ' '

  • START_SEARCH_ON_SCR_STACKPOS = ' '

  • SEARCH_OWN_SUBSCREENS_FIRST = ' '

  • SEARCHPATH_OF_SUBSCREEN_AREAS = ' '

TABLES

DYNPFIELDS = dynpread_tab

  • EXCEPTIONS

  • INVALID_ABAPWORKAREA = 1

  • INVALID_DYNPROFIELD = 2

  • INVALID_DYNPRONAME = 3

  • INVALID_DYNPRONUMMER = 4

  • INVALID_REQUEST = 5

  • NO_FIELDDESCRIPTION = 6

  • INVALID_PARAMETER = 7

  • UNDEFIND_ERROR = 8

  • DOUBLE_CONVERSION = 9

  • STEPL_NOT_FOUND = 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.

IF sy-subrc = 0.

LOOP AT dynpread_tab.

ENDLOOP.

ENDIF.

endmethod.

It is giving me error: INCLUDE report "DYNPREAD" not found.

Any idea?

Thanks in advance.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
666

Hi

U should remember the internal table is without header line:

DATA: l_progname TYPE sy-repid,
          l_dynnum TYPE sy-dynnr.

*types: BEGIN of itab.
*INCLUDE dynpread.
*types: END of itab.

*data: dynpread_tab like table of itab.
DATA: dynpread_tab TYPE TABLE OF DYNPREAD.
DATA: dynpread_wa TYPE DYNPREAD.

*dynpread_tab-fieldname = 'ZZACNUM'.
*APPEND dynpread_tab.

dynpread_wa-fieldname = 'ZZACNUM'.
APPEND dynpread_wa to dynpread_tab.

CALL FUNCTION 'DYNP_VALUES_READ'
..................................
IF SY-SUBRC = 0.
* LOOP AT dynpread_tab.
*ENDLOOP.
LOOP AT dynpread_tab into .
ENDLOOP.

I have a requirement to create and implement Badi.

The following is code:

method IF_EX_NOTIF_EVENT_SAVE~CHANGE_DATA_AT_SAVE.

DATA: l_progname TYPE sy-repid,

l_dynnum TYPE sy-dynnr.

types: BEGIN of itab.

INCLUDE dynpread.

types: END of itab.

data: dynpread_tab like table of itab.

l_progname = sy-repid.

l_dynnum = sy-dynnr.

CLEAR dynpread_tab.

REFRESH dynpread_tab.

dynpread_tab-fieldname = 'ZZACNUM'.

APPEND dynpread_tab.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

DYNAME = l_progname

DYNUMB = l_dynnum

  • TRANSLATE_TO_UPPER = ' '

  • REQUEST = ' '

  • PERFORM_CONVERSION_EXITS = ' '

  • PERFORM_INPUT_CONVERSION = ' '

  • DETERMINE_LOOP_INDEX = ' '

  • START_SEARCH_IN_CURRENT_SCREEN = ' '

  • START_SEARCH_IN_MAIN_SCREEN = ' '

  • START_SEARCH_IN_STACKED_SCREEN = ' '

  • START_SEARCH_ON_SCR_STACKPOS = ' '

  • SEARCH_OWN_SUBSCREENS_FIRST = ' '

  • SEARCHPATH_OF_SUBSCREEN_AREAS = ' '

TABLES

DYNPFIELDS = dynpread_tab

  • EXCEPTIONS

  • INVALID_ABAPWORKAREA = 1

  • INVALID_DYNPROFIELD = 2

  • INVALID_DYNPRONAME = 3

  • INVALID_DYNPRONUMMER = 4

  • INVALID_REQUEST = 5

  • NO_FIELDDESCRIPTION = 6

  • INVALID_PARAMETER = 7

  • UNDEFIND_ERROR = 8

  • DOUBLE_CONVERSION = 9

  • STEPL_NOT_FOUND = 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.

IF sy-subrc = 0.

LOOP AT dynpread_tab.

ENDLOOP.

ENDIF.

endmethod.

It is giving me error: INCLUDE report "DYNPREAD" not found.

Any idea?

Thanks in advance.

4 REPLIES 4
Read only

Former Member
0 Likes
666

Try

types: BEGIN of itab.

INCLUDE structure dynpread.

types: END of itab.

Regards,

Mohaiyuddin

Read only

Former Member
0 Likes
667

Hi

U should remember the internal table is without header line:

DATA: l_progname TYPE sy-repid,
          l_dynnum TYPE sy-dynnr.

*types: BEGIN of itab.
*INCLUDE dynpread.
*types: END of itab.

*data: dynpread_tab like table of itab.
DATA: dynpread_tab TYPE TABLE OF DYNPREAD.
DATA: dynpread_wa TYPE DYNPREAD.

*dynpread_tab-fieldname = 'ZZACNUM'.
*APPEND dynpread_tab.

dynpread_wa-fieldname = 'ZZACNUM'.
APPEND dynpread_wa to dynpread_tab.

CALL FUNCTION 'DYNP_VALUES_READ'
..................................
IF SY-SUBRC = 0.
* LOOP AT dynpread_tab.
*ENDLOOP.
LOOP AT dynpread_tab into .
ENDLOOP.

Read only

0 Likes
666

Hi Max,

Thanks for your help.

An internal table is created. Now I am facing another problem.

If I specify:

dynpread_wa-fieldname = 'ZZACNUM'.

(Which is custom field in my screen (tcode-iw52)

it gives me runtime error.

The error is " raise invalid_dynprofield "

Any idea where I am wrong?

Thanks

Read only

0 Likes
666

I resolved the problem.

Thanks for great help.