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

Field exit and function DYNP_VALUES_READ

SimoneMilesi
Active Contributor
0 Likes
876

Hi gurus,

i'm implementing a field exit on fields STCD2 and STCGE for transaction XK02. (SAPMF02K - dynpro 120)

I've to do some checks using the country i found in dynpro 111 of SAPMF02K, and i added the call to function DYNP_VALUES_READ to read that field


DATA : va_land1 LIKE dynpfields-fieldvalue.
  DATA: dyname  LIKE  d020s-prog VALUE 'SAPMF02K',
        dynumb  LIKE  d020s-dnum VALUE 0111.
  REFRESH  dynpfields .
  CLEAR dynpfields.
  MOVE 'ADDR1_DATA-COUNTRY' TO dynpfields-fieldname.
  APPEND dynpfields.
  CALL FUNCTION 'DYNP_VALUES_READ'
     EXPORTING
          dyname                   = dyname
          dynumb                   = dynumb
          translate_to_upper       = 'X'
     TABLES
          dynpfields               = 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 = 0.
    READ TABLE dynpfields WITH KEY fieldname = 'ADDR1_DATA-COUNTRY'.
    MOVE dynpfields-fieldvalue TO va_land1.
  ENDIF.

I got sy-subrc = 3

i also tryed to use SAPLSZA1 - 301 (the subscreen of address information) but i got always an sy-subrc = 3

any hint?

5 REPLIES 5
Read only

former_member209703
Active Contributor
0 Likes
691

Have you checked using SY-CPROG or SY-REPID to see if it using another program name?

Read only

0 Likes
691

Yes

Read only

0 Likes
691

You can also try using field symbols if the FM not working for you. You can use

data:l_ADDR1_DATA type ADDR1_DATA.
ASSIGN ('(SAPMF02K)ADDR1_DATA') TO <fs>.
 IF sy-subrc EQ 0 AND <fs> IS ASSIGNED.
    l_ADDR1_DATA = <fs>.
ENDIF.

then in l_ADDR1_DATA-COUNTRY you will get the value.

Thanks,

Pawan

Read only

former_member201275
Active Contributor
Read only

Clemenss
Active Contributor
0 Likes
691

Hi Simone,

you may have overlooked that do not pass any values for dyname dynumb, complete like this:

DATA : va_land1 LIKE dynpfields-fieldvalue.
  DATA: dyname  LIKE  d020s-prog VALUE 'SAPMF02K',
        dynumb  LIKE  d020s-dnum VALUE 0111.
  REFRESH  dynpfields .
  CLEAR dynpfields.
  MOVE 'ADDR1_DATA-COUNTRY' TO dynpfields-fieldname.
  APPEND dynpfields.
  dyname = sy-repid. "!!
  dynumb = sy-dynnr."!!
  CALL FUNCTION 'DYNP_VALUES_READ'
     EXPORTING
          dyname                   = dyname
          dynumb                   = dynumb
          translate_to_upper       = 'X'
     TABLES
          dynpfields               = dynpfields

Regards

Clemens