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

f4 help

Former Member
0 Likes
1,445

Hi

when using F4IF_INT_TABLE_VALUE_REQUEST function module...i am not able to get values in f4 help.

my requirement is i wil give the table name in selection screen and there is a select-options in which i need to get the feilds of the table which i gave earlier.

for this i am using the below code.....

PARAMETERS : p_table TYPE tabname .

SELECT-OPTIONS s_field FOR v_field1.

INITIALIZATION.

CALL FUNCTION 'DDIF_FIELDINFO_GET'

EXPORTING

tabname = p_table

TABLES

dfies_tab = it_return.

LOOP AT it_return INTO wa_return.

wa_return1-fieldname = wa_return-fieldname.

APPEND wa_return1 TO it_return1.

  • WRITE:/ wa_return1-fieldname.

ENDLOOP.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'FIELDNAME'

DYNPPROG = sy-repid

DYNPNR = sy-dynnr

VALUE_ORG = 'S'

TABLES

value_tab = IT_RETURN1

EXCEPTIONS

PARAMETER_ERROR = 1 NO_VALUES_FOUND = 2.

i am geting the exception NO_VALUES_FOUND when i click on f4 help.

but there are values in it_return1(in debugging) before the function module is executed but after that there is no data in internal table.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,412

Hi,

Try with this code.

TABLES: dfies.

PARAMETERS : p_table TYPE tabname .

SELECT-OPTIONS s_field FOR dfies-fieldname.

DATA : it_return TYPE TABLE OF dfies.

DATA : wa_return TYPE dfies.

TYPES: BEGIN OF ty_data,

fieldname TYPE dfies-fieldname,

END OF ty_data.

DATA: wa_return1 TYPE ty_data,

it_return1 TYPE TABLE OF ty_data.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_field-low.

DATA : lt_tabfile TYPE filetable,

l_subrc TYPE sy-subrc,

lt_fields TYPE TABLE OF dynpread WITH HEADER LINE,

lv_value TYPE char30.

lt_fields-fieldname = 'P_TABLE'.

APPEND lt_fields.

CLEAR lt_fields.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

dyname = sy-cprog

dynumb = sy-dynnr

TABLES

dynpfields = lt_fields

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.

READ TABLE lt_fields WITH KEY fieldname = 'P_TABLE'.

MOVE lt_fields-fieldvalue TO lv_value.

CLEAR: wa_return1,

wa_return.

REFRESH: it_return,

it_return1.

CALL FUNCTION 'DDIF_FIELDINFO_GET'

EXPORTING

tabname = lv_value

TABLES

dfies_tab = it_return.

LOOP AT it_return INTO wa_return.

wa_return1-fieldname = wa_return-fieldname.

APPEND wa_return1 TO it_return1.

ENDLOOP.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'FIELDNAME'

dynpprog = sy-repid

dynpnr = sy-dynnr

dynprofield = 'S_field-LOW'

value_org = 'S'

TABLES

value_tab = it_return1

EXCEPTIONS

parameter_error = 1

no_values_found = 2.

Regards,

Suresh

12 REPLIES 12
Read only

Former Member
0 Likes
1,412

Hi,

Call the function module "F4IF_INT_TABLE_VALUE_REQUEST"

under the event

at selection-screen on value-request for p_table.

Thanks & Regards,

Navneeth K.

Read only

Former Member
0 Likes
1,412

hi,

try to remove quotes for retfield and check

Read only

Former Member
0 Likes
1,412

Hi,

Did you add the internal table in tEh F4 help.

DATA: I_RETURN TYPE DDHSRETVAL OCCURS 0 WITH HEADER LINE.

Add this parameter in your FM for F4.

RETURN_TAB = I_RETURN.

Thanks,

Chidanand

Read only

Former Member
0 Likes
1,412

Try giving the import parameter dynprofield for the FM F4IF_INT_TABLE_VALUE_REQUEST

~Berry

Read only

0 Likes
1,412

anil,

if i remove the quotes it is giving error.

Chidanand

i have given the return_tab stil it is giving same exception.

Berry,

i have given dynprofield but stil same exception.

Read only

former_member342104
Participant
0 Likes
1,412

Hi,

use this code

pass dynpro field.

PARAMETERS : PT_NAME TYPE CRMT_LOCNO.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR PT_NAME.

PERFORM PT_NAME.

FORM PT_NAME.

CLEAR : T_VTAB.

SELECT PLANT FROM ZTABLENAME INTO CORRESPONDING FIELDS OF TABLE T_VTAB.

SORT T_VTAB BY PLANT.

DELETE ADJACENT DUPLICATES FROM T_VTAB COMPARING PLANT.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

RETFIELD = 'PT_NAME'

DYNPPROG = SY-REPID

DYNPNR = SY-DYNNR

DYNPROFIELD = 'pt_name'

CALLBACK_PROGRAM = SY-REPID

VALUE_ORG = 'S'

TABLES

VALUE_TAB = T_VTAB

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.

ENDFORM.

Edited by: kk on Oct 31, 2008 11:05 AM

Read only

Former Member
0 Likes
1,412

Hi

Try this code for S_field-low .

PARAMETERS : p_table TYPE tabname .

SELECT-OPTIONS s_field FOR sy-datum.

DATA : it_return TYPE TABLE OF dfies.

DATA : wa_return TYPE dfies.

TYPES: BEGIN OF ty_data,

fieldname TYPE dfies-fieldname,

END OF ty_data.

DATA: wa_return1 TYPE ty_data,

it_return1 TYPE TABLE OF ty_data.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_field-low.

CALL FUNCTION 'DDIF_FIELDINFO_GET'

EXPORTING

tabname = p_table

TABLES

dfies_tab = it_return.

LOOP AT it_return INTO wa_return.

wa_return1-fieldname = wa_return-fieldname.

APPEND wa_return1 TO it_return1.

WRITE:/ wa_return1-fieldname.

ENDLOOP.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'FIELDNAME'

dynpprog = sy-repid

dynpnr = sy-dynnr

dynprofield = 'S_field-LOW'

value_org = 'S'

TABLES

value_tab = it_return1

EXCEPTIONS

parameter_error = 1

no_values_found = 2.

Regards,

Suresh.

Read only

0 Likes
1,412

Hi suresh,

it is giving dump if we call the FM 'DDIF_FIELDINFO_GET' after at selection screen on value request event.

Read only

0 Likes
1,412

give ...valuetab = it_return

and check..

Read only

0 Likes
1,412

Hi,

You can also try this way....


suppose 's' is the selection options where you want the f4 to get the fields of the table you entered in 's1'.

AT SELECTION-SCREEN ON  VALUE-REQUEST FOR s-low. 
  PERFORM getvalue_comp.

in this perform do like this.....


  DATA it_dynfield TYPE STANDARD TABLE OF dynpread WITH HEADER LINE.
  DATA : s_comp1 LIKE zhist_card_t-area1.  (''s_comp1 like the field where you enter the table name)

  CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
      dyname               = sy-repid
      dynumb               = sy-dynnr
      request              = 'A'
      translate_to_upper   = 'X'
    TABLES
      dynpfields           = it_dynfield
    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.
  READ TABLE it_dynfield WITH KEY fieldname = 'S_EQUIP-LOW'.
"s_equip-low is the field name in selection screen for the field where you enter table name....
  s_comp1 = it_dynfield-fieldvalue. " the the table name you entered...



  REFRESH it_comp[].
  IF it_comp[] IS INITIAL.
  <fill this table with the values of the table field name>
  ENDIF.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
*   DDIC_STRUCTURE         = ' '
      retfield               = 'S1'
*   PVALKEY                = ' '
     dynpprog               = sy-repid
     dynpnr                 = sy-dynnr
     dynprofield            = 'S-LOW'
     stepl                  = 0
*   WINDOW_TITLE           =
*   VALUE                  = ' '
   value_org              = 'S'
*   MULTIPLE_CHOICE        = ' '
*   DISPLAY                = ' '
*   CALLBACK_PROGRAM       = ' '
*   CALLBACK_FORM          = ' '
*   MARK_TAB               =
* IMPORTING
*   USER_RESET             =
    TABLES
      value_tab              = it_comp
*   FIELD_TAB              =
*   RETURN_TAB             =
*   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.


" similarly do for AT SELECTION-SCREEN ON  VALUE-REQUEST FOR s-high.

Hope this will solve your problem....

Regards

Debarshi

Read only

Former Member
0 Likes
1,412

Hi Jyoshna,

Try Like this

Using at selection-screen on value-request for FIELDNAME.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'FIELDNAME'

DYNPPROG = sy-repid

DYNPNR = sy-dynnr

DYNPROFIELD = 'FILEDNAME'

VALUE_ORG = 'S'

tables

value_tab = IT_RETURN1

  • RETURN_TAB* 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.

Regards

ranga

Read only

Former Member
0 Likes
1,413

Hi,

Try with this code.

TABLES: dfies.

PARAMETERS : p_table TYPE tabname .

SELECT-OPTIONS s_field FOR dfies-fieldname.

DATA : it_return TYPE TABLE OF dfies.

DATA : wa_return TYPE dfies.

TYPES: BEGIN OF ty_data,

fieldname TYPE dfies-fieldname,

END OF ty_data.

DATA: wa_return1 TYPE ty_data,

it_return1 TYPE TABLE OF ty_data.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_field-low.

DATA : lt_tabfile TYPE filetable,

l_subrc TYPE sy-subrc,

lt_fields TYPE TABLE OF dynpread WITH HEADER LINE,

lv_value TYPE char30.

lt_fields-fieldname = 'P_TABLE'.

APPEND lt_fields.

CLEAR lt_fields.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

dyname = sy-cprog

dynumb = sy-dynnr

TABLES

dynpfields = lt_fields

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.

READ TABLE lt_fields WITH KEY fieldname = 'P_TABLE'.

MOVE lt_fields-fieldvalue TO lv_value.

CLEAR: wa_return1,

wa_return.

REFRESH: it_return,

it_return1.

CALL FUNCTION 'DDIF_FIELDINFO_GET'

EXPORTING

tabname = lv_value

TABLES

dfies_tab = it_return.

LOOP AT it_return INTO wa_return.

wa_return1-fieldname = wa_return-fieldname.

APPEND wa_return1 TO it_return1.

ENDLOOP.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'FIELDNAME'

dynpprog = sy-repid

dynpnr = sy-dynnr

dynprofield = 'S_field-LOW'

value_org = 'S'

TABLES

value_tab = it_return1

EXCEPTIONS

parameter_error = 1

no_values_found = 2.

Regards,

Suresh