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

Fetching value from input field without giving enter

Former Member
0 Likes
1,588

Hi Experts,

Scenario: I have two input fields A and B (Module Pool program).

Based on the value of input field B that I have selected by using F4  or writing, I have to fetch the value of input field A.

Requirement: Under the POV when I am feching the value of input field B after selecting it, I have found no value but when i am giving enter after selecting or writing the value, I am getting the value.

My requirement is to fetch the value when I am writing or selecting the value by using F4 without giving the enter.

Hi Experts,

Scenario: I have two input fields A and B (Module Pool program).

Based on the value of input field B that I have selected by using F4  or writing, I have to fetch the value of input field A.

Requirement: Under the POV when I am feching the value of input field B after selecting it, I have found no value but when i am giving enter after selecting or writing the value, I am getting the value.

My requirement is to fetch the value when I am writing or selecting the value by using F4 without giving the enter.

5 REPLIES 5
Read only

kesavadas_thekkillath
Active Contributor
0 Likes
1,252

Use DYNP_VALUES_UPDATE in the event and update field A.  Search for more details.

Un-marking as question due to basic nature.

Read only

0 Likes
1,252

Thanks Kesavadas

Read only

Former Member
0 Likes
1,252

Hello Suman,

Use FM DYNP_VALUES_READ to read values from selection screen.

For ex :

refresh s_kunnr.
CLEAR: lw_dyfields.
lw_dyfields-fieldname =
'S_KUNNR-LOW'.
APPEND lw_dyfields TO lt_dyfields.

CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-repid
dynumb = sy-dynnr
translate_to_upper = c_x
TABLES

dynpfields = lt_dyfields.

You will get field value in table lt_dyfields.

Regards,

Deepti

Read only

0 Likes
1,252

Thanks Deepti

Read only

gouravkumar64
Active Contributor
0 Likes
1,252

Hi,

Almost same scenario I have,in one EHS DEVELOPEMENT.

but not in Module pool.

u can try like

1)within one perform(subroutine)

DATA: BEGIN OF it_person_id OCCURS 0,
               person_id TYPE t7ehs00_mappernr-person_id,
END OF it_person_id.

   DATA : wa_person_id LIKE LINE OF it_person_id.

   SELECT DISTINCT person_id FROM t7ehs00_mappernr
     INTO CORRESPONDING FIELDS OF TABLE it_person_id.

   CLEAR it_person_id .

   SORT it_person_id BY person_id.

   CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
     EXPORTING
       retfield        = 'P_ID'
       dynpprog        = sy-cprog
       dynpnr          = sy-dynnr
       dynprofield     = 'P_ID'
       value_org       = 'S'
       display         = 'F'
     TABLES
       value_tab       = it_person_id
*     FIELD_TAB       =
       return_tab      = it_return1
*     DYNPFLD_MAPPING =
     EXCEPTIONS
       parameter_error = 1
       no_values_found = 2
       OTHERS          = 3.
   IF sy-subrc <> 0.
* Implement suitable error handling here
   ENDIF.
   p_id = it_return1-fieldval.

2)after that,

based on previous value i used ONE fm

CALL FUNCTION 'DYNP_VALUES_READ' for that

my code was

DATA : BEGIN OF it_srv_number OCCURS 0,
                srv_number TYPE t7ehs00_service-srv_number,
   END OF it_srv_number.

   DATA: it_srv_number1 LIKE TABLE OF it_srv_number.

   DATA: BEGIN OF it_intpernr OCCURS 0,
                 intpernr TYPE t7ehs00_mappernr-intpernr,
                 person_id TYPE t7ehs00_mappernr-person_id,
   END OF it_intpernr.

   DATA : wa_intpernr LIKE LINE OF it_intpernr.
   DATA : lv_fieldvalue TYPE dynfieldvalue,
         lwa_dynpread TYPE dynpread,
         lt_dynpread TYPE TABLE OF dynpread.

   lwa_dynpread-fieldname = 'FORMO'.

   APPEND lwa_dynpread TO lt_dynpread.

   lwa_dynpread-fieldname = 'VISION'.
   APPEND lwa_dynpread TO lt_dynpread.

   lwa_dynpread-fieldname = 'STOOL'.
   APPEND lwa_dynpread TO lt_dynpread.

   lwa_dynpread-fieldname = 'P_ID'.
   APPEND lwa_dynpread TO lt_dynpread.

   CALL FUNCTION 'DYNP_VALUES_READ'
     EXPORTING
       dyname               = sy-repid
       dynumb               = sy-dynnr
     TABLES
       dynpfields           = lt_dynpread
     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 IS INITIAL.
     CLEAR : lwa_dynpread.
     READ TABLE lt_dynpread INTO lwa_dynpread WITH KEY fieldname = 'P_ID'.
     p_id = lwa_dynpread-fieldvalue.

     READ TABLE lt_dynpread INTO lwa_dynpread WITH KEY fieldname = 'FORMO'.
     formo = lwa_dynpread-fieldvalue.
     IF formo NE 'X'.
       READ TABLE lt_dynpread INTO lwa_dynpread WITH KEY fieldname = 'VISION'.
       vision = lwa_dynpread-fieldvalue.
       IF vision NE 'X'.
         READ TABLE lt_dynpread INTO lwa_dynpread WITH KEY fieldname = 'STOOL'.
         stool = lwa_dynpread-fieldvalue.
       ENDIF.
     ENDIF.
   ENDIF.



   CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
     EXPORTING
       input  = p_id
     IMPORTING
       output = p_id.
   IF formo = 'X'.

     SELECT srv_number FROM t7ehs00_srv_prot
          INTO TABLE it_srv_number1
             WHERE pnumber = 'IME'
               OR  pnumber = 'PM1'
               OR  pnumber = 'PM2'
               or  pnumber = 'PM3'.
   ELSEIF vision = 'X'.
     SELECT srv_number FROM t7ehs00_srv_prot
      INTO TABLE it_srv_number1
         WHERE pnumber = 'VT'.
   ELSEIF stool = 'X'.
     SELECT srv_number FROM t7ehs00_srv_prot
        INTO TABLE it_srv_number1
           WHERE pnumber = 'ST'.
   ENDIF.

   SELECT SINGLE intpernr person_id FROM t7ehs00_mappernr
     INTO  wa_intpernr
     WHERE person_id = p_id.
  if it_srv_number1[] is not INITIAL.
   SELECT DISTINCT srv_number FROM t7ehs00_service
     INTO  TABLE it_srv_number
     for all ENTRIES IN it_srv_number1
     WHERE srv_number = it_srv_number1-srv_number
     and pernr = wa_intpernr-intpernr.
  endif.
   CLEAR it_srv_number .

   SORT it_srv_number BY srv_number.

   CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
     EXPORTING
       retfield        = 'P_NUMBER'
       dynpprog        = sy-cprog
       dynpnr          = sy-dynnr
       dynprofield     = 'P_NUMBER'
       value_org       = 'S'
       display         = 'F'
     TABLES
       value_tab       = it_srv_number
**   FIELD_TAB              =
       return_tab      = it_return2
**   DYNPFLD_MAPPING        =
     EXCEPTIONS
       parameter_error = 1
       no_values_found = 2
       OTHERS          = 3.
   IF sy-subrc <> 0.
* Implement suitable error handling here
   ENDIF.

Hope it helpful for You.

Thanks

Gourav.