Application Development 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: 

How to create Search Help for a field in Table control !!

Former Member
0 Kudos

Hello Friends,

I like to know - How to create Search Help for a field in Table control. Is it possible, if it is please share ur knowledge, I wud be happy if U provide some source code example for this.

Thanks,

Senthil

13 REPLIES 13

Former Member
0 Kudos

Hi,

Tow ways to do this. If you have already defined search help for that filed you can use attaching search help in the Screen attributes in SE51.

Second way is programitically you can do thos.

in the Flow logic call:

  • Value Request

PROCESS ON VALUE-REQUEST.

Field dt_members-PERNR :

MODULE DISPLAY_PERNR.


  REFRESH: dt_fields, dt_contents.


  dt_fields-tabname   = 'PA0001'.
  dt_fields-fieldname = 'PERNR'.
  dt_fields-selectflag = c_x.
  APPEND dt_fields.
  CLEAR dt_fields.

  dt_fields-tabname   = 'PA0001'.
  dt_fields-fieldname = 'ENAME'.
  APPEND dt_fields.
  CLEAR dt_fields.

  CLEAR dt_contents.

* Select from PA0001
  SELECT pernr
         ename
    INTO TABLE dt_contents
    FROM pa0001.
  IF sy-subrc = 0.
    SORT dt_contents BY pernr.

    DELETE ADJACENT DUPLICATES FROM dt_contents
      COMPARING pernr.

* Give F4 help
    CALL FUNCTION 'HELP_VALUES_GET_NO_DD_NAME'
         EXPORTING
              selectfield                  = 'PERNR'
              titel                        = 'Member PERNR'(028)
         IMPORTING
              ind                          = dg_ind
         TABLES
              fields                       = dt_fields
              full_table                   = dt_contents
         EXCEPTIONS
              full_table_empty             = 1
              no_tablestructure_given      = 2
              no_tablefields_in_dictionary = 3
              more_then_one_selectfield    = 4
              no_selectfield               = 5
              OTHERS                       = 6.

    IF sy-subrc EQ 0.
      READ TABLE dt_contents INDEX dg_ind transporting pernr.
      dt_members-pernr = dt_contents-pernr.
    ENDIF.
  ELSE.
   MESSAGE s999 WITH 'No Help Values Found for Primary Contact ID'(012).
  ENDIF.

Thanks&Regards,
Siri.

0 Kudos

Dear Ms. Srilatha,

This refers to your reply to the thread 'How to create Search Help for a field in Table control'. In your reply you have used two structures dt_fields, dt_contents. May I know the definition of these.

Regards,

Alok.

Former Member
0 Kudos

Hi,

I hope this code will help you....

This code should be done in PAI of your screen.

PROCESS ON VALUE-REQUEST.

FIELD it_1001-pernr MODULE freqtyp_data.

data: begin of it_1001 occurs 0,

pernr like zfdmr_records-pernr,

end of t_itab.

DATA: t_return like ddshretval occurs 0 with header line.

refresh it_1001.

clear t_return.

select pernr from zfdmr_records into table it_1001.

delete adjacent duplicates from it_1001.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • DDIC_STRUCTURE = ' '

RETFIELD = 'PERNR'

  • PVALKEY = ' '

DYNPPROG = sy-cprog

DYNPNR = sy-dynnr

DYNPROFIELD = 'ZFDMR_RECORDS-PERNR'

  • STEPL = 0

  • WINDOW_TITLE =

  • VALUE = ' '

VALUE_ORG = 'S'

MULTIPLE_CHOICE = ' '

DISPLAY = 'F'

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

TABLES

VALUE_TAB = it_1001

  • FIELD_TAB =

RETURN_TAB = t_return

  • DYNPFLD_MAPPING =

  • EXCEPTIONS

  • PARAMETER_ERROR = 1

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

READ TABLE t_return INDEX 1.

**********

p_s_pernr = t_return-fieldval.

here you need to assign the value where ever you want.

*************

Thnaks.

If this helps you award points and close the thread.

0 Kudos

Hi,

Why Don't you define a search help to your element data?

So you can use the field type this element in your table control.

Alexandre Nogueira.

Former Member
0 Kudos

hi,

if you displayed table control using structure then attach the search help in the structure to the corresponding field.

regards,

KBS REDDY

Former Member
0 Kudos

Hi,

Why would you really want to do things the hard way, when you can really do it easily. Attach a search help to the screen field attributes in the screen painter.

Rgds

0 Kudos

Hi Zapper,

I've already tried this. If you can recall I already wrote to you that when I attach the SH in the screenpainter it works only for one column, while my table control has 5 columns. It works only on the box no column, fetches the reqd boxno but doesn't pickup the respective values from rest of the columns.

Rgds.

0 Kudos

Check the sample code:

&----


*& Include ZSRO_MPRN_SEARCH *

&----


----


  • MODULE PSTLZ_F4 INPUT

----


*

----


MODULE pstlz_f4 INPUT.

  • reading post code

DATA: stepl TYPE systepl,

stepl_index TYPE systepl.

CLEAR: stepl, stepl_index.

CLEAR: lt_returntab,lt_dynpfields,i_mprn1.

REFRESH: lt_returntab,lt_dynpfields,i_mprn1.

lt_dynpfields-fieldname = 'I_MPRN-POST_CODE'.

lt_dynpfields-stepl = stepl.

APPEND lt_dynpfields. CLEAR lt_dynpfields.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

dyname = sy-repid

dynumb = sy-dynnr

translate_to_upper = c_x

determine_loop_index = c_x

TABLES

dynpfields = lt_dynpfields

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 EQ 0.

READ TABLE lt_dynpfields INDEX 1.

ENDIF.

ws_outcode = lt_dynpfields-fieldvalue.

stepl_index = lt_dynpfields-stepl.

REPLACE '*' WITH ' ' INTO lt_dynpfields-fieldvalue.

IF NOT lt_dynpfields-fieldvalue IS INITIAL.

MOVE lt_dynpfields-fieldvalue TO ws_outcode.

ws_len = STRLEN( lt_dynpfields-fieldvalue ).

IF ws_len GE 7.

ws_len = ws_len - 3.

  • ws_icode = ws_code+ws_len(3).

lt_dynpfields-fieldvalue = lt_dynpfields-fieldvalue+0(ws_len).

CONCATENATE lt_dynpfields-fieldvalue '%'

INTO ws_outcode.

CONDENSE lt_dynpfields-fieldvalue.

  • REPLACE ws_icode WITH ' ' INTO lt_dynpfields-fieldvalue.

ELSE.

CONCATENATE lt_dynpfields-fieldvalue+0(4) '%'

INTO ws_outcode.

ENDIF.

  • ws_ocode = ws_code+0(3).

ENDIF.

  • reading MPRN

CLEAR: lt_returntab,lt_dnpfields,i_mprn1.

REFRESH: lt_returntab,lt_dnpfields,i_mprn1.

lt_dnpfields-fieldname = 'I_MPRN-MPRN'.

lt_dnpfields-stepl = stepl_index.

APPEND lt_dnpfields. CLEAR lt_dnpfields.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

dyname = sy-repid

dynumb = sy-dynnr

translate_to_upper = 'X'

TABLES

dynpfields = lt_dnpfields

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 EQ 0.

READ TABLE lt_dnpfields INDEX 1.

ENDIF.

  • MPRN blank and Post code exist

IF lt_dnpfields-fieldvalue IS INITIAL.

IF NOT lt_dynpfields-fieldvalue IS INITIAL.

SELECT mprn ser_num sub_bud bud_name del_pt_alias

bud_num dep_street prin_street dbl_dep_street

dep_locty post_town county outcode incode

lg_site_ind file_date FROM zspa_mprn INTO

CORRESPONDING FIELDS OF TABLE i_mprn1

WHERE outcode LIKE ws_outcode.

ELSE.

  • MPRN blank and Post code blank

SELECT mprn ser_num sub_bud bud_name del_pt_alias

bud_num dep_street prin_street dbl_dep_street

dep_locty post_town county outcode incode

lg_site_ind file_date FROM zspa_mprn INTO

CORRESPONDING FIELDS OF TABLE i_mprn1.

ENDIF.

ELSE.

  • MPRN exist and Post code exist

IF NOT lt_dynpfields-fieldvalue IS INITIAL.

SELECT mprn ser_num sub_bud bud_name del_pt_alias

bud_num dep_street prin_street dbl_dep_street

dep_locty post_town county outcode incode

lg_site_ind file_date FROM zspa_mprn INTO

CORRESPONDING FIELDS OF TABLE i_mprn1

WHERE outcode LIKE ws_outcode AND

mprn EQ lt_dnpfields-fieldvalue.

ELSE.

  • MPRN exist and Post code blank

SELECT mprn ser_num sub_bud bud_name del_pt_alias

bud_num dep_street prin_street dbl_dep_street

dep_locty post_town county outcode incode

lg_site_ind file_date FROM zspa_mprn INTO

CORRESPONDING FIELDS OF TABLE i_mprn1

WHERE mprn EQ lt_dnpfields-fieldvalue.

ENDIF.

ENDIF.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'MPRN'

dynpprog = sy-repid

dynpnr = sy-dynnr

window_title = 'Select MPRN'

value_org = 'S'

TABLES

value_tab = i_mprn1 "lt_mprn

return_tab = lt_returntab

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc EQ 0.

READ TABLE lt_returntab INDEX 1.

READ TABLE i_mprn1 WITH KEY mprn = lt_returntab-fieldval.

IF sy-subrc EQ 0.

  • Updating post code

CONCATENATE i_mprn1-outcode i_mprn1-incode

INTO ws_postcode

SEPARATED BY space.

MOVE ws_postcode TO i_mprn-post_code.

CLEAR : i_dnpfld,

ws_dynpfld.

REFRESH : i_dnpfld.

ws_dyname = 'ZSRO_MASTER_DATA'.

ws_dynumb = '0301'.

ws_dynpfld-fieldname ='I_MPRN-POST_CODE'.

ws_dynpfld-fieldvalue = ws_postcode .

ws_dynpfld-stepl = stepl_index.

APPEND ws_dynpfld TO i_dnpfld.

CALL FUNCTION 'DYNP_VALUES_UPDATE'

EXPORTING

dyname = ws_dyname

dynumb = ws_dynumb

TABLES

dynpfields = i_dnpfld

EXCEPTIONS

invalid_abapworkarea = 1

invalid_dynprofield = 2

invalid_dynproname = 3

invalid_dynpronummer = 4

invalid_request = 5

no_fielddescription = 6

undefind_error = 7

OTHERS = 8.

IF sy-subrc <> 0.

ENDIF.

  • Updating MPRN

MOVE i_mprn1-mprn TO i_mprn-mprn.

CLEAR : i_dnpfld,

ws_dynpfld.

REFRESH : i_dnpfld.

ws_dyname = 'ZSRO_MASTER_DATA'.

ws_dynumb = '0301'.

ws_dynpfld-fieldname ='I_MPRN-MPRN'.

ws_dynpfld-fieldvalue = i_mprn1-mprn .

ws_dynpfld-stepl = stepl_index.

APPEND ws_dynpfld TO i_dnpfld.

CALL FUNCTION 'DYNP_VALUES_UPDATE'

EXPORTING

dyname = ws_dyname

dynumb = ws_dynumb

TABLES

dynpfields = i_dnpfld

EXCEPTIONS

invalid_abapworkarea = 1

invalid_dynprofield = 2

invalid_dynproname = 3

invalid_dynpronummer = 4

invalid_request = 5

no_fielddescription = 6

undefind_error = 7

OTHERS = 8.

IF sy-subrc <> 0.

ENDIF.

ENDIF.

ELSEIF sy-subrc EQ 2.

MESSAGE s005(zspa) WITH ws_postcode .

ENDIF.

ENDMODULE. "PSTLZ_F4 INPUT

----


  • MODULE MPRN_F4 INPUT

----


*

----


MODULE mprn_f4 INPUT.

  • reading post code

  • DATA: stepl TYPE systepl,

  • stepl_index TYPE systepl.

CLEAR: stepl, stepl_index.

CLEAR: lt_returntab,lt_dynpfields,i_mprn1.

REFRESH: lt_returntab,lt_dynpfields,i_mprn1.

lt_dynpfields-fieldname = 'I_MPRN-POST_CODE'.

lt_dynpfields-stepl = stepl.

APPEND lt_dynpfields. CLEAR lt_dynpfields.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

dyname = sy-repid

dynumb = sy-dynnr

translate_to_upper = c_x

determine_loop_index = c_x

TABLES

dynpfields = lt_dynpfields

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 EQ 0.

READ TABLE lt_dynpfields INDEX 1.

ENDIF.

ws_outcode = lt_dynpfields-fieldvalue.

stepl_index = lt_dynpfields-stepl.

REPLACE '*' WITH ' ' INTO lt_dynpfields-fieldvalue.

IF NOT lt_dynpfields-fieldvalue IS INITIAL.

MOVE lt_dynpfields-fieldvalue TO ws_outcode.

ws_len = STRLEN( lt_dynpfields-fieldvalue ).

IF ws_len GE 7.

ws_len = ws_len - 3.

  • ws_icode = ws_code+ws_len(3).

lt_dynpfields-fieldvalue = lt_dynpfields-fieldvalue+0(ws_len).

CONCATENATE lt_dynpfields-fieldvalue '%'

INTO ws_outcode.

CONDENSE lt_dynpfields-fieldvalue.

  • REPLACE ws_icode WITH ' ' INTO lt_dynpfields-fieldvalue.

ELSE.

CONCATENATE lt_dynpfields-fieldvalue+0(4) '%'

INTO ws_outcode.

ENDIF.

  • ws_ocode = ws_code+0(3).

ENDIF.

  • reading MPRN

CLEAR: lt_returntab,lt_dnpfields,i_mprn1.

REFRESH: lt_returntab,lt_dnpfields,i_mprn1.

lt_dnpfields-fieldname = 'I_MPRN-MPRN'.

lt_dnpfields-stepl = stepl_index.

APPEND lt_dnpfields. CLEAR lt_dnpfields.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

dyname = sy-repid

dynumb = sy-dynnr

translate_to_upper = 'X'

TABLES

dynpfields = lt_dnpfields

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 EQ 0.

READ TABLE lt_dnpfields INDEX 1.

ENDIF.

  • MPRN blank and Post code exist

IF lt_dnpfields-fieldvalue IS INITIAL.

IF NOT lt_dynpfields-fieldvalue IS INITIAL.

SELECT mprn ser_num sub_bud bud_name del_pt_alias

bud_num dep_street prin_street dbl_dep_street

dep_locty post_town county outcode incode

lg_site_ind file_date FROM zspa_mprn INTO

CORRESPONDING FIELDS OF TABLE i_mprn1

WHERE outcode LIKE ws_outcode.

ELSE.

  • MPRN blank and Post code blank

SELECT mprn ser_num sub_bud bud_name del_pt_alias

bud_num dep_street prin_street dbl_dep_street

dep_locty post_town county outcode incode

lg_site_ind file_date FROM zspa_mprn INTO

CORRESPONDING FIELDS OF TABLE i_mprn1.

ENDIF.

ELSE.

  • MPRN exist and Post code exist

IF NOT lt_dynpfields-fieldvalue IS INITIAL.

SELECT mprn ser_num sub_bud bud_name del_pt_alias

bud_num dep_street prin_street dbl_dep_street

dep_locty post_town county outcode incode

lg_site_ind file_date FROM zspa_mprn INTO

CORRESPONDING FIELDS OF TABLE i_mprn1

WHERE outcode LIKE ws_outcode AND

mprn EQ lt_dnpfields-fieldvalue.

ELSE.

  • MPRN exist and Post code blank

SELECT mprn ser_num sub_bud bud_name del_pt_alias

bud_num dep_street prin_street dbl_dep_street

dep_locty post_town county outcode incode

lg_site_ind file_date FROM zspa_mprn INTO

CORRESPONDING FIELDS OF TABLE i_mprn1

WHERE mprn EQ lt_dnpfields-fieldvalue.

ENDIF.

ENDIF.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'MPRN'

dynpprog = sy-repid

dynpnr = sy-dynnr

window_title = 'Select MPRN'

value_org = 'S'

TABLES

value_tab = i_mprn1 "lt_mprn

return_tab = lt_returntab

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc EQ 0.

READ TABLE lt_returntab INDEX 1.

READ TABLE i_mprn1 WITH KEY mprn = lt_returntab-fieldval.

IF sy-subrc EQ 0.

  • Updating MPRN

MOVE i_mprn1-mprn TO i_mprn-mprn.

CLEAR : i_dnpfld,

ws_dynpfld.

REFRESH : i_dnpfld.

ws_dyname = 'ZSRO_MASTER_DATA'.

ws_dynumb = '0301'.

ws_dynpfld-fieldname ='I_MPRN-MPRN'.

ws_dynpfld-fieldvalue = i_mprn1-mprn .

ws_dynpfld-stepl = stepl_index.

APPEND ws_dynpfld TO i_dnpfld.

**code changed by laxman 10.08.2005

  • ws_dynpfld-stepl = mprn-current_line.

**code changed by laxman 10.08.2005

CALL FUNCTION 'DYNP_VALUES_UPDATE'

EXPORTING

dyname = ws_dyname

dynumb = ws_dynumb

TABLES

dynpfields = i_dnpfld

EXCEPTIONS

invalid_abapworkarea = 1

invalid_dynprofield = 2

invalid_dynproname = 3

invalid_dynpronummer = 4

invalid_request = 5

no_fielddescription = 6

undefind_error = 7

OTHERS = 8.

IF sy-subrc <> 0.

ENDIF.

  • Updating post code

CONCATENATE i_mprn1-outcode i_mprn1-incode

INTO ws_postcode

SEPARATED BY space.

MOVE ws_postcode TO i_mprn-post_code.

CLEAR : i_dnpfld,

ws_dynpfld.

REFRESH : i_dnpfld.

ws_dyname = 'ZSRO_MASTER_DATA'.

ws_dynumb = '0301'.

ws_dynpfld-fieldname ='I_MPRN-POST_CODE'.

ws_dynpfld-fieldvalue = ws_postcode .

ws_dynpfld-stepl = stepl_index.

APPEND ws_dynpfld TO i_dnpfld.

**code changed by laxman 10.08.2005

  • break gblap0.

  • ws_dynpfld-stepl = mprn-current_line.

  • LOOP AT i_mprn.

  • MOVE i_mprn1-mprn TO i_mprn-mprn.

  • MOVE ws_postcode TO i_mprn-post_code.

  • MODIFY i_mprn INDEX

  • mprn-current_line." transporting MPRN POST_CODE.

  • ENDLOOP.

**code changed by laxman 10.08.2005

CALL FUNCTION 'DYNP_VALUES_UPDATE'

EXPORTING

dyname = ws_dyname

dynumb = ws_dynumb

TABLES

dynpfields = i_dnpfld

EXCEPTIONS

invalid_abapworkarea = 1

invalid_dynprofield = 2

invalid_dynproname = 3

invalid_dynpronummer = 4

invalid_request = 5

no_fielddescription = 6

undefind_error = 7

OTHERS = 8.

IF sy-subrc <> 0.

ENDIF.

ENDIF.

ELSEIF sy-subrc EQ 2.

MESSAGE s006(zspa) WITH i_mprn1-mprn .

ENDIF.

ENDMODULE. "MPRN_F4 INPUT

----


  • MODULE GNTC_F4 INPUT

----


*

----


MODULE gntc_f4 INPUT.

DATA: BEGIN OF lt_gntc OCCURS 0,

gntc LIKE iflot-zzgntc,

END OF lt_gntc.

CLEAR: lt_returntab, lt_gntc.

REFRESH: lt_returntab, lt_gntc.

lt_gntc-gntc = 'DM'.

APPEND lt_gntc. CLEAR lt_gntc.

lt_gntc-gntc = 'NDM'.

APPEND lt_gntc. CLEAR lt_gntc.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'ZZGNTC'

dynpprog = sy-repid

dynpnr = sy-dynnr

window_title = 'Select Gas Nomination Type Code'

value_org = 'S'

TABLES

value_tab = lt_gntc

return_tab = lt_returntab

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc EQ 0.

READ TABLE lt_returntab INDEX 1.

i_mprn-dm_ndm = lt_returntab-fieldval.

ENDIF.

ENDMODULE. "GNTC_F4 INPUT

&----


*& Module mprn1_f4 INPUT

&----


  • text

----


MODULE mprn1_f4 INPUT.

DATA: lt_f4 TYPE ddshretval OCCURS 0 WITH HEADER LINE,

lt_returntab1 LIKE ddshretval OCCURS 0 WITH HEADER LINE,

lt_dynpfields1 LIKE dynpread OCCURS 0 WITH HEADER LINE,

lt_dnpfields1 LIKE dynpread OCCURS 0 WITH HEADER LINE.

DATA: stepl1 TYPE systepl,

stepl_index1 TYPE systepl.

DATA : i_dnpfld1 LIKE dynpread OCCURS 0 WITH HEADER LINE,

ws_dyname1 LIKE d020s-prog,

ws_dynumb1 LIKE d020s-dnum,

ws_dynpfld1 LIKE dynpread.

CLEAR: i_dnpfld1, ws_dyname1, ws_dynumb1, ws_dynpfld1,

lt_f4, lt_returntab1,lt_dynpfields1, lt_f4,

stepl1, stepl_index1.

REFRESH: i_dnpfld1, lt_returntab1,lt_dynpfields1, lt_f4.

To Determine Steploop Index

lt_dynpfields1-fieldname = 'I_MPRN-POST_CODE'.

lt_dynpfields1-stepl = stepl1.

APPEND lt_dynpfields1. CLEAR lt_dynpfields1.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

dyname = sy-repid

dynumb = sy-dynnr

translate_to_upper = 'X'

determine_loop_index = 'X'

TABLES

dynpfields = lt_dynpfields1

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 EQ 0.

READ TABLE lt_dynpfields1 INDEX 1.

ENDIF.

stepl_index1 = lt_dynpfields1-stepl.

CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'

EXPORTING

tabname = 'IFLOT'

fieldname = 'I_MPRN-MPRN'

searchhelp = 'ZS_MPRN_PC'

dynpprog = sy-repid

dynpnr = sy-dynnr

TABLES

return_tab = lt_f4

EXCEPTIONS

field_not_found = 1

no_help_for_field = 2

inconsistent_help = 3

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

Update tablecontrol

READ TABLE lt_f4 WITH KEY fieldname = 'MPRN'.

IF sy-subrc = 0.

MOVE lt_f4-fieldval TO i_mprn-mprn.

ws_dyname1 = 'ZSRO_MASTER_DATA'.

ws_dynumb1 = '0301'.

ws_dynpfld1-fieldname ='I_MPRN-MPRN'.

ws_dynpfld1-fieldvalue = i_mprn-mprn.

ws_dynpfld1-stepl = stepl_index1.

APPEND ws_dynpfld1 TO i_dnpfld1.

CALL FUNCTION 'DYNP_VALUES_UPDATE'

EXPORTING

dyname = ws_dyname1

dynumb = ws_dynumb1

TABLES

dynpfields = i_dnpfld1

EXCEPTIONS

invalid_abapworkarea = 1

invalid_dynprofield = 2

invalid_dynproname = 3

invalid_dynpronummer = 4

invalid_request = 5

no_fielddescription = 6

undefind_error = 7

OTHERS = 8.

IF sy-subrc <> 0.

ENDIF.

ENDIF.

CLEAR : i_dnpfld1, ws_dynpfld1.

REFRESH: i_dnpfld1.

READ TABLE lt_f4 WITH KEY fieldname = 'ZZPSTLZ'.

IF sy-subrc = 0.

MOVE lt_f4-fieldval TO i_mprn-post_code.

ws_dyname1 = 'ZSRO_MASTER_DATA'.

ws_dynumb1 = '0301'.

ws_dynpfld1-fieldname ='I_MPRN-POST_CODE'.

ws_dynpfld1-fieldvalue = i_mprn-post_code.

ws_dynpfld1-stepl = stepl_index1.

APPEND ws_dynpfld1 TO i_dnpfld1.

CALL FUNCTION 'DYNP_VALUES_UPDATE'

EXPORTING

dyname = ws_dyname1

dynumb = ws_dynumb1

TABLES

dynpfields = i_dnpfld1

EXCEPTIONS

invalid_abapworkarea = 1

invalid_dynprofield = 2

invalid_dynproname = 3

invalid_dynpronummer = 4

invalid_request = 5

no_fielddescription = 6

undefind_error = 7

OTHERS = 8.

IF sy-subrc <> 0.

ENDIF.

ENDIF.

ENDMODULE. " mprn1_f4 INPUT

&----


*& Module pstlz1_f4 INPUT

&----


  • text

----


MODULE pstlz1_f4 INPUT.

CLEAR: i_dnpfld1, ws_dyname1, ws_dynumb1, ws_dynpfld1,

lt_f4, lt_returntab1,lt_dynpfields1, lt_f4,

stepl1, stepl_index1.

REFRESH: i_dnpfld1, lt_returntab1,lt_dynpfields1, lt_f4.

To Determine Steploop Index

lt_dynpfields1-fieldname = 'I_MPRN-MPRN'.

lt_dynpfields1-stepl = stepl1.

APPEND lt_dynpfields1. CLEAR lt_dynpfields1.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

dyname = sy-repid

dynumb = sy-dynnr

translate_to_upper = 'X'

determine_loop_index = 'X'

TABLES

dynpfields = lt_dynpfields1

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 EQ 0.

READ TABLE lt_dynpfields1 INDEX 1.

ENDIF.

stepl_index1 = lt_dynpfields1-stepl.

CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'

EXPORTING

tabname = 'IFLOT'

fieldname = 'I_MPRN-POST_CODE'

searchhelp = 'ZS_MPRN_PC'

dynpprog = sy-repid

dynpnr = sy-dynnr

TABLES

return_tab = lt_f4

EXCEPTIONS

field_not_found = 1

no_help_for_field = 2

inconsistent_help = 3

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

Update tablecontrol

READ TABLE lt_f4 WITH KEY fieldname = 'ZZPSTLZ'.

IF sy-subrc = 0.

MOVE lt_f4-fieldval TO i_mprn-post_code.

ws_dyname1 = 'ZSRO_MASTER_DATA'.

ws_dynumb1 = '0301'.

ws_dynpfld1-fieldname ='I_MPRN-POST_CODE'.

ws_dynpfld1-fieldvalue = i_mprn-post_code.

ws_dynpfld1-stepl = stepl_index1.

APPEND ws_dynpfld1 TO i_dnpfld1.

CALL FUNCTION 'DYNP_VALUES_UPDATE'

EXPORTING

dyname = ws_dyname1

dynumb = ws_dynumb1

TABLES

dynpfields = i_dnpfld1

EXCEPTIONS

invalid_abapworkarea = 1

invalid_dynprofield = 2

invalid_dynproname = 3

invalid_dynpronummer = 4

invalid_request = 5

no_fielddescription = 6

undefind_error = 7

OTHERS = 8.

IF sy-subrc <> 0.

ENDIF.

ENDIF.

CLEAR : i_dnpfld1, ws_dynpfld1.

REFRESH: i_dnpfld1.

READ TABLE lt_f4 WITH KEY fieldname = 'MPRN'.

IF sy-subrc = 0.

MOVE lt_f4-fieldval TO i_mprn-mprn.

ws_dyname1 = 'ZSRO_MASTER_DATA'.

ws_dynumb1 = '0301'.

ws_dynpfld1-fieldname ='I_MPRN-MPRN'.

ws_dynpfld1-fieldvalue = i_mprn-mprn.

ws_dynpfld1-stepl = stepl_index1.

APPEND ws_dynpfld1 TO i_dnpfld1.

CALL FUNCTION 'DYNP_VALUES_UPDATE'

EXPORTING

dyname = ws_dyname1

dynumb = ws_dynumb1

TABLES

dynpfields = i_dnpfld1

EXCEPTIONS

invalid_abapworkarea = 1

invalid_dynprofield = 2

invalid_dynproname = 3

invalid_dynpronummer = 4

invalid_request = 5

no_fielddescription = 6

undefind_error = 7

OTHERS = 8.

IF sy-subrc <> 0.

ENDIF.

ENDIF.

ENDMODULE. " pstlz1_f4 INPUT

Regards,

Prakash.

0 Kudos

Dear Zapper,

I have sent a ppt at you gmail address, please have a look.

Regards,

Alok.

0 Kudos

Dear Ramu,

Can you please provide me the definition of the structure lt_dynpfields used in the program. I'll require it for the sample execution of your program.

Thanks & Regards,

Alok.

0 Kudos

Hello,

chk this FM,

F4IF_FIELD_VALUE_REQUEST

Regards,

Shehryar

0 Kudos

Hi Alok,

Check the struture details.

DATA: lt_dynpfields_country LIKE dynpread OCCURS 0 WITH HEADER LINE,

Regards,

Prakash.

Former Member
0 Kudos

.