‎2011 Aug 03 9:40 AM
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?
‎2011 Aug 03 10:03 AM
Have you checked using SY-CPROG or SY-REPID to see if it using another program name?
‎2011 Aug 03 10:38 AM
‎2011 Aug 03 11:57 AM
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
‎2011 Aug 03 10:10 AM
‎2011 Aug 03 12:34 PM
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 = dynpfieldsRegards
Clemens