11-19-2008 9:57 AM
Hi All,
I have a offset error as follows:
The offset declaration "52" exceeds the length of the character-type start (=15) of the structure. This is not allowed in Unicode programs.
The syntax in 4.6c system is: SHIFT int_usr02+52 LEFT BY 4 PLACES.
But in ECC am getting a syntax error as described above.
int_usr02 is defined as: data: int_usr02 LIKE usr02 OCCURS 0 WITH HEADER LINE.
And usr02 is transp.table.
Please guide me.
Your help will be much appreciated
Thanks in Advance,
Indu.
11-19-2008 12:55 PM
add the below code
FIELD-SYMBOLS : <FS_USR01>.
DATA : L_LEN TYPE I,
L_LIN TYPE I.
ASSIGN INT_USR02 TO <FS_USR01> CASTING TYPE C.
DESCRIBE FIELD <FS_USR01> LENGTH L_LIN IN CHARACTER MODE.
L_LEN = L_LIN - 52.
SHIFT <FS_USR01>+52(L_LEN) LEFT BY 4 PLACES.
11-19-2008 12:36 PM
Hi Indumati,
try this
it will definitely work
SHIFT int_usr02+52 LEFT BY 4 PLACES
sol:
SHIFT int_usr02-FieldName+52(specify length here) LEFT BY 4 PLACES
syntax:
SHIFT Field+offset(len) LEFT BY 4 PLACES
Regarda,
Chinna
11-19-2008 12:42 PM
Hello,
As said by you that USR02 is a Transparent table (I too know that ), you need to specify the field name while you are using the offset.
Hope it helps.
Thanks,
Jayant
11-19-2008 12:55 PM
add the below code
FIELD-SYMBOLS : <FS_USR01>.
DATA : L_LEN TYPE I,
L_LIN TYPE I.
ASSIGN INT_USR02 TO <FS_USR01> CASTING TYPE C.
DESCRIBE FIELD <FS_USR01> LENGTH L_LIN IN CHARACTER MODE.
L_LEN = L_LIN - 52.
SHIFT <FS_USR01>+52(L_LEN) LEFT BY 4 PLACES.
11-20-2008 3:52 AM
Hi Sreekanth,
Thanks a lot for the immediate and helpful answer.The code solved my problem.Thanks again.
Regards,
Indu