12-21-2012 10:36 AM
hi Friends,
am getting the following dump error. kindly help in solving the error.
Runtime Errors COLLECT_OVERFLOW_TYPE_P
Exception CX_SY_ARITHMETIC_OVERFLOW
Date and Time 21.12.2012 14:21:47
Short text
An internal table field has been defined too small.
What happened?
Error in the ABAP Application Program
The current ABAP program "SAPLATP2" had to be terminated because it has
come across a statement that unfortunately cannot be executed.
Error analysis
An exception occurred that is explained in detail below.
The exception, which is assigned to class 'CX_SY_ARITHMETIC_OVERFLOW', was not
caught in
procedure "RESB_SKBED_BRBED_CHECK" "(FORM)", nor was it propagated by a RAISING
clause.
Since the caller of the procedure could not have anticipated that the
exception would occur, the current program is terminated.
The reason for the exception is:
The COLLECT statement stores totals in the internal table
"\FUNCTION-POOL=ATP2\FORM=RESB_READ\DATA=S_ATPMEX",
but the values are too large for the type P field intended to store
them.
The name of the field is "MNG01".
How to correct the error
You should define the field "MNG01" larger in program "SAPLATP2".
The maximum size allowed for fields of type P is 16 (31 digits).
A temporary solution could be to break the process down into smaller
processes so that fewer large sums occur.
If the error occurred in your own ABAP program or in an SAP
program you modified, try to remove the error.
If the error occures in a non-modified SAP program, you may be able to
find an interim solution in an SAP Note.
If you have access to SAP Notes, carry out a search with the following
keywords:
"COLLECT_OVERFLOW_TYPE_P" "CX_SY_ARITHMETIC_OVERFLOW"
"SAPLATP2" or "LATP2FR2"
"RESB_SKBED_BRBED_CHECK"
If you cannot solve the problem yourself and want to send an error
notification to SAP, include the following information:
1. The description of the current problem (short dump)
To save the description, choose "System->List->Save->Local File
(Unconverted)".
2. Corresponding system log
Display the system log by calling transaction SM21.
Restrict the time interval to 10 minutes before and five minutes
after the short dump. Then choose "System->List->Save->Local File
(Unconverted)".
3. If the problem occurs in a problem of your own or a modified SAP
program: The source code of the program
In the editor, choose "Utilities->More
Utilities->Upload/Download->Download".
4. Details about the conditions under which the error occurred or which
actions and input led to the error.
The exception must either be prevented, caught within proedure
"RESB_SKBED_BRBED_CHECK" "(FORM)", or its possible occurrence must be declared
in the
RAISING clause of the procedure.
To prevent the exception, note the following:
User and Transaction
Client.............. 800
User................ "MMLEVL8"
Language key........ "E"
Transaction......... "VL01N "
Transactions ID..... "A54B4BE2F810F10C8B58D8D385F61ACF"
Program............. "SAPLATP2"
Screen.............. "SAPMV50A 4001"
Screen line......... 39
Information on where terminated
Termination occurred in the ABAP program "SAPLATP2" - in
"RESB_SKBED_BRBED_CHECK".
The main program was "SAPMV50A ".
In the source code you have the termination point in line 83
of the (Include) program "LATP2FR2".
The termination is caused because exception "CX_SY_ARITHMETIC_OVERFLOW"
occurred in
procedure "RESB_SKBED_BRBED_CHECK" "(FORM)", but it was neither handled locally
nor declared
in the RAISING clause of its signature.
The procedure is in program "SAPLATP2 "; its source code begins in line
7 of the (Include program "LATP2FR2 ".
Source Code Extract
Line SourceCde
53 CLEAR: P_ATPMEX-KDPOS.
54 CLEAR: P_ATPMEX-PSPEL.
55 CLEAR: P_ATPMEX-KUNNR.
56 ENDCASE.
57 P_ATPMEX-SOBKZ = P_ATP_RESB-SOBKZ.
58 P_ATPMEX-LGORT = P_ATP_RESB-LGORT.
59 P_ATPMEX-CHARG = P_ATP_RESB-CHARG.
60 P_ATPMEX-DELKZ = P_ATP_RESB-BDART.
61 P_ATPMEX-ATPIF = SPACE.
62 P_ATPMEX-ATPIF+2(1) = P_ATP_RESB-DUMPS.
63
64 IF P_ATP_RESB-SHKZG = SHKZGS.
65 * dependent requirement is receipt
66 P_ATPMEX-SORT1 = S1RECEIPT.
67 P_ATPMEX-DAT00 = P_ATP_RESB-BDTER.
68 * p_atpmex-tag00 = "NOTE-X
69 P_ATPMEX-MNG01 = P_ATP_RESB-BDMNG - P_ATP_RESB-ENMNG.
70 P_ATPMEX-MNG02 = 0.
71 ELSE.
72 * dependent requirement is issue
73 P_ATPMEX-SORT1 = S1ISSUE.
74 P_ATPMEX-DAT00 = P_ATP_RESB-BDTER.
75 * p_atpmex-tag00 = "NOTE-X
76 P_ATPMEX-MNG01 = P_ATP_RESB-BDMNG - P_ATP_RESB-ENMNG.
77 IF P_ATPMEX-MNG01 < P_ATP_RESB-VMENG.
78 P_ATPMEX-MNG02 = P_ATPMEX-MNG01.
79 ELSE.
80 P_ATPMEX-MNG02 = P_ATP_RESB-VMENG.
81 ENDIF.
82 ENDIF.
>>>>> COLLECT P_ATPMEX.
84
85 ENDFORM. "RESB_SKBED_BRBED_CHECK
thanks
Sankaresh S
12-21-2012 11:06 AM
Please check this link "http://wiki.sdn.sap.com/wiki/display/ERPFI/COLLECT_OVERFLOW_TYPE_P+dump+in+transaction+KEDU"
Check below Field value may be exceed length .
MNG01 | MNG01 | QUAN | 13 | 3 | Quantity received or quantity required |
Regard's
Smruti
12-21-2012 11:07 AM
The name of the field is "MNG01".
How to correct the error
You should define the field "MNG01" larger in program "SAPLATP2".
The maximum size allowed for fields of type P is 16 (31 digits).
A temporary solution could be to break the process down into smaller
processes so that fewer large sums occur.
12-21-2012 11:37 AM
Hi
You need to catch the exception rather than searching for the cause. Cause is simple and explained clearly by SAP Dump. it says you have increased the number value such that variable cannot hold. For a packed value has a standard lenght of 8bytes but can be extended to another 8 bytes (1 to 16bytes in case of lenght where it can hold 14 decimal values can be permitted.)
So use the exception to catch the error. or split your data.
Oref should be of your exception class and LV_TEXT is of type string.
TRY.
CATCH CX_SY_ARITHMETIC_OVERFLOW INTO oref.
lv_text = oref->get_text( ).
ENDTRY.
Hope this helps.