Skip to Content
avatar image
Former Member

COLLECT_OVERFLOW_TYPE_P & CX_SY_ARITHMETIC_OVERFLOW

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

Add comment
10|10000 characters needed characters exceeded

  • Follow
  • Get RSS Feed

3 Answers

  • avatar image
    Former Member
    Dec 21, 2012 at 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 .

    MNG01MNG01QUAN133Quantity received or quantity required

    Regard's

    Smruti

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Dec 21, 2012 at 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.

    Add comment
    10|10000 characters needed characters exceeded

  • Dec 21, 2012 at 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.

    Add comment
    10|10000 characters needed characters exceeded