Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
SAP Community Downtime Scheduled for This Weekend

DUMP error

Former Member
0 Kudos
629

Hi All,

I've a Z program which is giving short dump.

this program is being used from past 5 years. no errors upto now.

But now the program is givin short dump error.

Plz find the error analysis below.

-


Error analysis

-


An arithmetic operation in the current program "ZXXXXXX" attempts

to process a field of type P that contains an invalid

BCD format.

Possible reasons:

1. If the field is part of a field string and its current contents are

hex 20: the field string was deleted with MOVE SPACE ... instead of

CLEAR.

2. The VARYING parameter was incorrectly placed within a DO loop,

e.g. because the TIMES parameter was too large.

Similar for WHILE ... VARY.

3. A FIELD-SYMBOL was incorrectly assigned.

There is no such location in my Z program where the dump analysis says.

What could be the probable cause for the error.

Thank you.

Regards,

Chinna

Moderator message: please use more descriptive subject lines from now on.

Edited by: Thomas Zloch on Jun 8, 2010 12:50 PM

1 ACCEPTED SOLUTION

former_member401443
Participant
0 Kudos
209

Hi Chinna

This is basically due to the number format. Go to SU3 Go to defaults Tab and check Field * Decimal Notation*

In your program that packed number would have wrongly caught data logged in other format.

E.g: Suppose you are using 123,00.00 fromat and the program fetched 123.00,00 fromat then it would give a dump.

Solution is make the data that field consistent in one fromat.

Check this Table USR01 and its field DCPFM.

USR01 User master record (runtime data)

DCPFM Decimal notation

20 REPLIES 20

former_member401443
Participant
0 Kudos
210

Hi Chinna

This is basically due to the number format. Go to SU3 Go to defaults Tab and check Field * Decimal Notation*

In your program that packed number would have wrongly caught data logged in other format.

E.g: Suppose you are using 123,00.00 fromat and the program fetched 123.00,00 fromat then it would give a dump.

Solution is make the data that field consistent in one fromat.

Check this Table USR01 and its field DCPFM.

USR01 User master record (runtime data)

DCPFM Decimal notation

0 Kudos
209

Hi Mukesh,

thank you for your help full answer.

you said the problem is with some decimal notation.

but I am not the one who execute the program in PRODUCTION.

any one can execute the program and any time.

How can this be solved then.

Regards,

Chinna

0 Kudos
209

Hi Mukesh,

I guess your right.

How to change the field DCPFM in USR01 table.

Regards,

Chinna

Edited by: Chinna guntur on Jun 10, 2010 6:19 PM

0 Kudos
209

Hi Mukesh,

I changed the filed using SU01.

But it is of no use.

the program is still giving DUMP.

I've tested with different user names also.but no use.

if i test the program in QUALITY & DEVELOPMENT systems it is ok. but PRODUCTION only it is giving DUMP.

i am giving the the example code where it showing is error ARROW.

LOOP AT ITAB1.

..............

...............

LOOP AT ITAB2.

...................

...................

-


> X = X + Y.

ENDLOOP.

ENDLOOP.

Regards,

Chinna

0 Kudos
209

What is the title of the short dump? Does it happen right away or after some time of processing?

How is Y filled? X = X + Y might well lead to a field overflow in systems with growing data (like production).

If not too long, show the entire code snippet inside the loops (using tags please).

Thomas

0 Kudos
209

Hi Thomas,

title of the short Dump is "Packed field contains incorrect BCD format".

here i am giving the exact code for you.

003060 SORT INT1 BY 1-SUBS 1-DK 1-CUST 1-SUPP.

003070 DEBTOT = 0.

003080 ASSTOT = 0.

003090 GLTOT = 0.

003100 TOTTOT = 0.

003110 " grandtot = 0.

003120 LOOP AT INT1.

003130 SELECT SINGLE * FROM KNA1

003140 WHERE KUNNR = INT1-1-CUST.

003150 WRITE: / INT1-1-SUPP, ' ', INT1-1-CUST, ' ', INT1-1-SUBS,

003160 KNA1-NAME1(25),

003170 INT1-1-NETAR, INT1-1-NETAP.

003180 LOOP AT INT2.

003190 IF INT1-1-CUST = INT2-2-CUST AND INT1-1-SUPP = INT2-2-SUPP.

003200 WRITE: /116 INT2-2-GLACC.

003210 WRITE: 123 INT2-2-NETGL.

003220 GLTOT = GLTOT + INT2-2-NETGL.

-


> DKGLTOT = DKGLTOT + INT2-2-NETGL.

003240 ENDIF.

003250 ENDLOOP.

003260 WRITE: 149 INT1-1-TOTBAL.

003270 DEBTOT = DEBTOT + INT1-1-NETAP.

003280 ASSTOT = ASSTOT + INT1-1-NETAR.

003290 TOTTOT = TOTTOT + INT1-1-TOTBAL.

003300 DKDEBTOT = DKDEBTOT + INT1-1-NETAP.

003310 DKASSTOT = DKASSTOT + INT1-1-NETAR.

003320 DKTOTTOT = DKTOTTOT + INT1-1-TOTBAL.

003330 ENDLOOP.

And this code is being working fine from past 9 years.

this is the first time it is giving DUMP.

Regards,

Chinna.

0 Kudos
209

Hi

Problem is in the value of Y.

Check the value of Y.

To test it... Place a debugger at this statement. When you are at that statement change the value of Y to 0.

Then test it.. If it runs fine then we can change the format of the Y or assign Y to some temporary variable and process it.

0 Kudos
209

Hi Mukesh,

here both X & Y values are with same data type of 15 characters with 2 decimal points.

Regards,

Chinna...

0 Kudos
209

Hi

I guess you are retrieving values from a database table, the problem might be because of the values inside the table, this can happen, so check the value of the particular entry where you are getting dump and see. if possible provide the values of DKGLTOT and INT2-2-NETGL.

Thanks and Regards

Chaitanya.A

0 Kudos
209

Hi Chaitanya,

Here I am giving the exact code.

Plz check once.

Data:

GLTOT LIKE GLT0-HSLVT,

TOTTOT LIKE GLT0-HSLVT,

DKDEBTOT LIKE KNC1-UMSAV,

DKGLTOT LIKE GLT0-HSLVT,

DKTOTTOT LIKE GLT0-HSLVT,

DKASSTOT LIKE GLT0-HSLVT.

DATA: BEGIN OF INT1 OCCURS 0,

1-CLIENT LIKE T001-MANDT,

1-CCODE LIKE T001-BUKRS,

1-SUBS LIKE KNA1-KONZS,

1-DK(1) TYPE C,

1-CUST LIKE KNA1-KUNNR,

1-SUPP LIKE LFA1-LIFNR,

1-ADJAP LIKE SKA1-SAKNR,

1-ADJAR LIKE SKA1-SAKNR,

1-NETASS LIKE SKA1-SAKNR,

1-NETDEB LIKE SKA1-SAKNR,

1-NETAP LIKE LFC1-UMSAV,

1-NETAR LIKE KNC1-UMSAV,

1-NETGL LIKE GLT0-HSLVT,

1-TOTBAL LIKE GLT0-HSLVT,

END OF INT1.

DATA: BEGIN OF INT2 OCCURS 0,

2-CLIENT LIKE T001-MANDT,

2-CCODE LIKE T001-BUKRS,

2-GLACC LIKE SKA1-SAKNR,

2-ADJGL LIKE SKA1-SAKNR,

2-CUST LIKE KNA1-KUNNR,

2-SUPP LIKE LFA1-LIFNR,

2-NETGL LIKE GLT0-HSLVT,

END OF INT2.

START-OF-SELECTION.

IF B-CHECK <> ''.

PERFORM MASTERDATA-CHECK.

EXIT.

ENDIF.

LOOP AT INT1.

SELECT SINGLE * FROM KNA1

WHERE KUNNR = INT1-1-CUST.

WRITE: / INT1-1-SUPP, ' ', INT1-1-CUST, ' ', INT1-1-SUBS,

KNA1-NAME1(25),

INT1-1-NETAR, INT1-1-NETAP.

LOOP AT INT2.

IF INT1-1-CUST = INT2-2-CUST AND INT1-1-SUPP = INT2-2-SUPP.

WRITE: /116 INT2-2-GLACC.

WRITE: 123 INT2-2-NETGL.

GLTOT = GLTOT + INT2-2-NETGL.

DKGLTOT = DKGLTOT + INT2-2-NETGL. <<----


"DUMP PLACE"

ENDIF.

ENDLOOP.

WRITE: 149 INT1-1-TOTBAL.

DEBTOT = DEBTOT + INT1-1-NETAP.

ASSTOT = ASSTOT + INT1-1-NETAR.

TOTTOT = TOTTOT + INT1-1-TOTBAL.

DKDEBTOT = DKDEBTOT + INT1-1-NETAP.

DKASSTOT = DKASSTOT + INT1-1-NETAR.

DKTOTTOT = DKTOTTOT + INT1-1-TOTBAL.

ENDLOOP.

FORM MASTERDATA-CHECK.

SELECT * FROM ZFBGD1.

DELETE ZFBGD1.

ENDSELECT.

COMMIT WORK.

ENDFORM.

If i am putting a break point at LOOP AT INT1 statement, and if i execute the program, the program is not taking me to the DEBUGGER and the place where i kept break point. the debugger is not even opened.

its directly giving DUMP.

please help me..

Regards,

Chinna..

Edited by: Chinna guntur on Jun 17, 2010 2:18 PM

0 Kudos
209

Hi All,

Can enyone has any solution for this??

Regards,

Chinna

0 Kudos
209

>

> Can enyone has any solution for this??

Probably not. You haven't shown how int2 is populated.

Please see [Asking Good Questions in the Forums to get Good Answers|/people/rob.burbank/blog/2010/05/12/asking-good-questions-in-the-forums-to-get-good-answers] before posting again.

Rob

Former Member
0 Kudos
209

Hi Chinna,

Is the dump occuring in the same system as previously using, is this been upgraded .

Thanks

Vinod

Former Member
0 Kudos
209

I hardly guess you upgraded from a non unicode system to a unicode system, am i right?

0 Kudos
209

We've not upgraded the system. we are still using 4.6C only....

Former Member
0 Kudos
209

Chinna,

as this is the z report, you can debug one time complenetly till u get dump, in second attempt u will get to know the cause.

--

Reddy

Former Member
0 Kudos
209

Didn't the dump printout point to the line where the problem occurred? SAP doesn't make these errors up randomly, the problem exists!

0 Kudos
209

Hi The Dump is showing a place BUT there is no such statements like DO

Former Member
0 Kudos
209

right at the time when you see the DUMP(after running the code)... click on debugger. it will take you to the debugger and stuck at the line where it has terminated. and see the exacrt values in X and Y

Former Member
0 Kudos
209

Problem got solved based based on the inputs from mahesh. and i've awarded points too.

thank you all for support.

Regards,

Chinna guntur