Apologies if my question was not very clear, Let me rephrase..
I have a custom elementary search help ZPRPS, Selection method is on table PRPS with dialog type as "dialog with value restriction".
This search help has parameters from PRPS table, couple of Custom fields(not in PRPS) + standard fields (Ex: GJAHR)
This custom search help is appended to search help PRPM and gets triggered in CAT2 transaction(If you press F4 on field "receiver WBS element" ).
There is a search help exit/FM assigned to it. Search help exit FM has following tables
1.SHLP_TAB( type SHLP_DESCT).
2. RECORD_TAB(type SEAHLPRES)
When control comes into the exit it has SHLP_TAB table populated from program SAPLSDSD, one of the table inside SHLP_TAB is FIELDDESCR which has field offset. For parameter GJAHR the offset is coming as 1844, now in the exit below code is dumping.
MOVE lt_pspnr-usr02 TO record_tab-string+lv_dfies-offset(lv_dfies-leng).
values are as follows:
lt_pspnr-usr02 = "2012"
lv_dfies-offset = "001844"
lv_dfies-leng = "000004".
but record_tab-string field has maximum length as 1000 so it dumps as code is trying to move value 2012 at offset 1844(4) and hence the dump.
I have debugged the whole code in program SAPLSDSD but the values in SHLP_TAB-FIELD_DESCR are imported from shared memory(include LSDSDF16, line 283) and i am not able to figure out where it is calculated and export is done to shared memory.
This is not happening in old system(Value of offset + length is less than 1000 for field GJAHR), issue is only in Upgraded system.
let me know if any other information is required.
Ajay