In FI-SL, program terminations occur if you use more than 53 periods (for example by using daily ledgers with 365 or 366 periods).
1) In Releases 2.x and 3.x:
ABAP/4 runtime error TSV_TNEW_ENTRY_TOO_LARGE
2) In releases prior to 4.70:
ABAP/4 runtime error GEN_TOO_MANY_DATA (allocation)
ABAP/4 runtime error GEN_LINE_BUFFER_OVERFLOW (rollup)
TSV_TNEW_ENTRY_TOO_LARGE
GEN_TOO_MANY_DATA
GEN_LINE_BUFFER_OVERFLOW
1) In Releases 2.x und 3.x:
The error can only occur in the planning, allocation and rollup application areas.
The reason for the ABAP/4 runtime error is the size of internal table GLU2; the ABAP Basis imposes a limitation of 8K. Normally if, for example, you use a monthly ledger (including four special periods), this is not a problem; around 765 bytes are required in GLU2 for 5 dimensions: 5 dimensions * 17 periods * 9 bytes. 366 periods require 3294 bytes for each dimension (= 366 * 9 bytes).
In addition, there is the problem that the GLU2 structure with 366 periods contains too many fields for each field group (TSL, HSL, KSL, MSL and ASL), which will also lead to a runtime error.
2) In Release 4.x:
The error can only occur in the allocation and rollup application areas.
The reason for the runtime error is that program ALxxxxxx (allocation) generates data statements that become too large, or the generated program RGLXxxxx (rollup) becomes too large.
1) In Release 2.x and 3.x:
At the moment, the problem can be solved if, when generating the GLU2 structure using the RGICGLU2 program, you leave out the field group additional quantity (ASL). This has the disadvantage that the additional quantity can no longer be processed when working with the above mentioned functions. Since the additional quantity is used relatively rarely, this is not all that significant.
---------------------
- 1. Make the following corrections:
Program RGICGLU2, approximately line 970:
FORM FILL_FIELDGROUPS.
FIELDGROUPS-FG = 'TSL'.
APPEND FIELDGROUPS.
FIELDGROUPS-FG = 'HSL'.
APPEND FIELDGROUPS.
FIELDGROUPS-FG = 'KSL'.
APPEND FIELDGROUPS.
FIELDGROUPS-FG = 'MSL'.
APPEND FIELDGROUPS.
* FIELDGROUPS-FG = 'ASL'. <-- (*)
* APPEND FIELDGROUPS. <-- (*)
ENDFORM.
-------------------------
- 2. If you want to use the assessment or distribution, you must modify the following programs.
Program RGALLOC0, approximately line 4760:
IF T800A-ATQNT = 'X'.
LOOP AT VALUE_L WHERE TABLE = I_TABLE-NAME
AND FIELD = 'ASL01'.
EXIT.
ENDLOOP.
STRING = 'CALC_OFF2 = CALC_OFF1 * x. '.
REPLACE 'x' WITH VALUE_L-LENGTH INTO STRING.
PERFORM APPEND-C USING 0 STRING 0 0.
STRING = 'CALC_PER2 = CALC_PER1 * x. '.
REPLACE 'x' WITH L_GLU2-ASL INTO STRING.
PERFORM APPEND-C USING 0 STRING 0 0.
STRING = 'ASSIGN x '.
REPLACE 'x' WITH I_TABLE-NAME INTO STRING.
REPLACE ' ' WITH
'-ASLVT+CALC_OFF2(x) TO
INTO STRING.
REPLACE 'x' WITH VALUE_L-LENGTH INTO STRING.
PERFORM APPEND-C USING 0 STRING 0 0.
* STRING = 'ASSIGN GLU2-ASL000+CALC_PER2(x) TO
* REPLACE 'x' WITH L_GLU2-ASL INTO STRING. <-- (*)
* PERFORM APPEND-C USING 0 STRING 0 0. <-- (*)
* PERFORM APPEND-C USING 0 'ADD
ENDIF.
Program RGALLOC1, approximately line 3480:
PERFORM APPEND-C USING:
0 'FORM BOOK_GLU2. ' 0 2,
0 ' ' 0 0,
0 'DATA: PERCL LIKE PERIOD, ' 0 0,
0 ' PERIO LIKE PERIOD, ' 0 0,
0 ' I LIKE SY-TABIX, ' 0 0,
0 ' TSL LIKE GLU2-TSL001, ' 0 0,
0 ' HSL LIKE GLU2-HSL001, ' 0 0,
0 ' KSL LIKE GLU2-KSL001, ' 0 0,
0 ' MSL LIKE GLU2-MSL001, ' 0 0,
0 ' ASL LIKE GLU2-MSL001, ' 0 0, <---
0 ' OFSET(2) TYPE P. ' 0 0,
0 'FIELD-SYMBOLS:
approximately line 4300:
PERFORM APPEND-C USING:
0 'DO PERIO_TO TIMES ' 0 2,
0 'VARYING TSL FROM GLU2-TSL001 NEXT GLU2-TSL002 ' 0 0,
0 'VARYING HSL FROM GLU2-HSL001 NEXT GLU2-HSL002 ' 0 0,
0 'VARYING KSL FROM GLU2-KSL001 NEXT GLU2-KSL002 ' 0 0,
0 'VARYING MSL FROM GLU2-MSL001 NEXT GLU2-MSL002.' 0 0, <-(.)
* 0 'VARYING ASL FROM GLU2-ASL001 NEXT GLU2-ASL002.' 0 0, <-(*)
0 ' ' 0 0,
0 'ADD 1 TO PERIO. ' 0 0,
0 'IF PERIO >= PERIO_FROM. ' 0 2,
0 'ADD 1 TO I. ' 0 0,
Caution:
You should not allocate or distribute more than 20-30 periods at one time when using allocations, because this may also cause a runtime
error.
-------------------------
- 3. You can edit 366 periods in planning only if NO MORE than two field groups (for example, transaction currency and local currency) are used.
For this reason, check your planning parameters and your currency settings for the ledger that is to be planned.
If you must plan with more than two field groups, you have the following possibilities:
- a) Planning a ledger with two field groups
Plan an additional ledger with two other field groups. Combine the two ledgers in a third ledger using a rollup.
- b) Instead of using a rollup, you can create parallel reports for both ledgers in the Report Writer
-------------------------
- 4. When using rollups, you must make sure that the sender and the receiver ledgers do not store any additional quantities. Furthermore, you can simultaneously roll a maximum of around 100 periods.
----------------------
IMPORTANT NOTE:
To activate all of the program changes in FI-SL, you must start the following programs:
- 5. RGICGLU2 (with 366 periods)
- 6. RGBCFL00 with all parameters
You should not do so in a productive system.
2) In Release 4.x
Start the rollup or the allocation for a maximum of 70 periods in one run.
If you want to assess, distribute or summarize a whole year's data, you must start the relevant allocation or rollup several times in succession for different period intervals.
No comments:
Post a Comment