Cause: Loops with “VARY” or “VARYING” can cause problems in Unicode environ-ment because, on the one hand, you cannot be sure that you are accessing memory con-tents with the correct type and on the other hand, memory could be inadvertently over-written.
DO … VARYING f FROM f1 NEXT f2 [RANGE f3].
WHILE … VARY f FROM f1 NEXT f2 [RANGE f3].
With these statements, the fields f, f1 and f2 must be type-compatible with one another.
To avoid overwriting memory contents, a RANGE for valid accesses is implicitly or ex-plicitly implemented for these statements.
Solution:
If the RANGE f3 addition is specified, a syntax or runtime error is triggered, should f1 or f2 not be included in f3. For f3, only structures and elementary fields of the types C, N, or X are permitted.
If the RANGE addition is not specified, it is implicitly defined with FROM f1 NEXT f2 as follows:
• If the syntax check recognizes that both f1 and f2 are components of the same structure, the valid RANGE area is defined from the smallest structure containing f1 and f2.
• There is a syntax error if the syntax check recognizes that f1 and f2 are not part of the same structure.
• A valid range must be defined explicitly using RANGE if the syntax check does no recognize that f1 and f2are not together.
If a deep structure is defined as a RANGE addition, the system checks for every loop pass that there are no field references, object references, tables, or strings within the ac-cessed range.
Example:
* DO 10 TIMES VARYING B FROM A+9(1) NEXT A+8(1).
DO 10 TIMES VARYING B FROM A+9(1) NEXT A+8(1) RANGE A+0(1).
Alternative method :
PARAMETERS: P$_TXT01 LIKE SOLISTI1-LINE MODIF ID GRI, "objtxt.
P$_TXT02 LIKE SOLISTI1-LINE MODIF ID GRI.
DATA: W$_TXT00 LIKE SOLISTI1-LINE. "replaces parameter
* DO 3 TIMES VARYING W$_TXT00 FROM P$_TXT01 NEXT P$_TXT02.
** Begin of Changes - 46C To ECC6 - IN9AGARWAL
DATA: BEGIN OF WA_SOLISTI1,
P$_TXT03 TYPE SOLISTI1-LINE,
P$_TXT04 TYPE SOLISTI1-LINE,
END OF WA_SOLISTI1.
WA_SOLISTI1-P$_TXT03 = P$_TXT01.
WA_SOLISTI1-P$_TXT04 = P$_TXT02.
DO 3 TIMES VARYING W$_TXT00 FROM WA_SOLISTI1-P$_TXT03 NEXT WA_SOLISTI1-P$_TXT04 range WA_SOLISTI1.
ABAP,ABAP report,Interactive Report,ALV grid,ALV list,IDOC,User Exit,RFC,Smartform,sapscript,ABAP Performance,Remote Function Module( RFC ),Function Module,Modularization techniques,ABAP tools,ALV report Generator,ABAP Interview Questions,BDC,BAPI,ALE,BADI, EDI,InternalTable,DataStructure,LSMW,Domain,DataElement,Basis and Administration ,ABAP HR development,ABAP Debugger,BW,ExceptionHandling,Download FI, CO, MM, PP, SD, PM, PS, QM, SM, HR, BW, APO,ABAP Tutorial
Friday, April 30, 2010
Error: Could not specify the access range automatically. This means that you need a RANGE addition.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment