In a unicode system... while using the describe field
length statement... for what data types we'll use the addition in character
mode and for what data types we use the addition in byte mode...
Determining the Length and Distance
You may no longer use the DESCRIBE DISTANCE statement
to define the lengths and distances of fields. It must be replaced with
one of the new statements DESCRIBE DISTANCE ... IN BYTE MODE or DESCRIBE
DISTANCE ... IN CHARACTER MODE.
The DESCRIBE FIELD ... LENGTH statement is also obsolete
and must be replaced with one of the new statements DESCRIBE FIELD ...
LENGTH ... IN BYTE MODE or DESCRIBE FIELD ... LENGTH ... IN CHARACTER MODE.
Until now, the DESCRIBE FIELD ... TYPE field statement
returned type C for flat structures. In a UP, type u is now returned for
flat structures. This can be queried in the ABAP source code.
There are no changes for the DESCRIBE FIELD ... TYPE
... COMPONENTS ... statement under US. Similarly, the DESCRIBE ... OUTPUT
LENGTH ... statement still returns the output length in characters.
My doubt is for a character type field (i.e. for c,n,d,t
or character type structures) if am writing the addition character mode
or byte mode its not throwing any error, but for type i, f,x,p or xstring
if I give character mode its throwing an error and if I give byte mode
its not throwing an error.
Type i is expected for ilen.
The variant with the addition IN BYTE MODE determines
the length of the data object dobj in bytes. The variant with the addition
IN CHARACTER MODE determines the length of the data object dobj in characters.
When using IN CHARACTER MODE, the data type of dobj must
be flat and character-type. You can only specify IN BYTE MODE for deep
data types and in this case, the length of the reference (8 bytes) is determined.
In non-Unicode programs and in releases prior to 6.10,
LENGTH can be used without the addition MODE. In this case, the addition
IN BYTE MODE is used implicitly
This covers the all the possiblities of Describe stmt.
Also Use, try this Method:
REPORT Z_TEST_FIELD_SYMBOLS1.
TABLES MARA.
class CL_ABAP_CONTAINER_UTILITIES definition load.
DATA: I_MARA LIKE MARA OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF I_TEST OCCURS 0,
LINE(8000) TYPE C,
END OF I_TEST.
DATA: BEGIN OF I_TEST1 OCCURS 0,
LINE(1500) TYPE C,
END OF I_TEST1.
FIELD-SYMBOLS: <FS> TYPE ANY.
FIELD-SYMBOLS: <FS2> TYPE ANY.
FIELD-SYMBOLS: <FS1> TYPE ANY.
SELECT * UP TO 2 ROWS
FROM MARA
INTO MARA.
call method CL_ABAP_CONTAINER_UTILITIES=>FILL_CONTAINER_C
exporting IM_VALUE = mara
importing EX_CONTAINER = i_test-line
exceptions ILLEGAL_PARAMETER_TYPE = 1
others = 2.
APPEND I_TEST.
ENDSELECT.
LOOP AT I_TEST.
WRITE:/ I_TEST.
ENDLOOP.
LOOP AT I_TEST.
call method cl_abap_container_utilities=>read_container_c
exporting IM_CONTAINER = i_test-line
importing EX_VALUE = mara
exceptions ILLEGAL_PARAMETER_TYPE = 1
others = 2.
write:/ mara-matnr, mara-mtart.
clear mara.
ENDLOOP.
ABAP Tips by :
Satish Chowdary, Nageswar
Fast Links:
Get help for your ABAP problems
Do you have
a ABAP Question?
SAP Books
SAP Certification,
Functional, Basis Administration and ABAP Programming Reference Books
ABAP Tips
ABAP Forum for Discussion
and Samples Program Codes for Abapers
Best regards,
SAP Basis, ABAP Programming and Other IMG Stuff
http://www.erpgreat.com
All the site contents are Copyright © www.erpgreat.com
and the content authors. All rights reserved.
All product names are trademarks of their respective
companies. The site www.erpgreat.com is in no way affiliated with
SAP AG.
Every effort is made to ensure the content integrity.
Information used on this site is at your own risk.
The content on this site may not be reproduced
or redistributed without the express written permission of
www.erpgreat.com or the content authors.
|