‎2009 Feb 12 8:42 AM
Hi All,
We have a development, in which there is a provision to show the Change History. For that purpose we are calling the function module PLANNED_CHANGES_READ_POSITIONS. But when a field for exchange rate is changed this function module gives a short dump. Please advise.
Dump screen details.
Runtime Errors BCD_FIELD_OVERFLOW
Except. CX_SY_CONVERSION_OVERFLOW
Date and Time 12.02.2009 12:49:04
-
-
-
-
Short text |
A calculation field is defined too small. |
-
-
-
-
What happened? |
Error in the ABAP Application Program |
The current ABAP program "SAPLSCD3" 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_CONVERSION_OVERFLOW', was not |
caught in |
procedure "EDIT_CDPOS" "(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: |
A value generated during processing is too large for the |
field "<L_P>" of the program "SAPLSCD3". |
-
-
-
-
Missing RAISING Clause in Interface |
Program SAPLSCD3 |
Include LSCD2F01 |
Row 497 |
Module type (FORM) |
Module Name EDIT_CDPOS |
-
-
-
-
Trigger Location of Exception |
Program SAPLSCD3 |
Include LSCD2F01 |
Row 572 |
Module type (FORM) |
Module Name EDIT_CDPOS |
-
-
-
-
Source Code Extract |
-
-
Line | SourceCde |
-
-
542 |
|
543 | EXIT. |
544 | WHEN 'P'. |
545 |
|
546 | IF NOT gv_is_unicode IS INITIAL. |
547 |
|
548 | REPLACE ALL OCCURRENCES OF '.' IN <f> WITH space. |
549 | REPLACE ALL OCCURRENCES OF ',' IN <f> WITH space. |
550 |
|
551 | CONDENSE <f> NO-GAPS. |
552 | ENDIF. |
553 |
|
554 |
|
555 | CATCH SYSTEM-EXCEPTIONS convt_no_number = 2 |
556 | OTHERS = 4. |
557 | pp16 = <f>. |
558 | ENDCATCH. |
559 | IF sy-subrc <> 0. |
560 |
|
561 | CLEAR pp16. |
562 | ENDIF. |
563 | IF <f_tabinfo>-datatype = 'CURR'. |
564 | WRITE pp16 TO value_out(<f_tabinfo>-outputlen) |
565 | CURRENCY value_cuky. |
566 | ELSEIF <f_tabinfo>-convexit NE space. |
567 | CREATE DATA l_ref1 |
568 | TYPE p |
569 | LENGTH <f_tabinfo>-intlen |
570 | DECIMALS <f_tabinfo>-decimals. |
571 | ASSIGN l_ref1->* TO <l_p>. |
>>>>> | <l_p> = pp16. |
573 | conv-ex = <f_tabinfo>-convexit. |
574 | WRITE <l_p> TO value_out USING EDIT MASK conv. |
575 | ELSEIF <f_tabinfo>-decimals > 0. |
576 | h_rechnen = 10 ** <f_tabinfo>-decimals. |
577 | h_rechnen16 = pp16. |
578 | pp16 = ABS( pp16 ) DIV h_rechnen. "Hirche |
579 | WRITE pp16 TO value_out(32) |
580 | DECIMALS <f_tabinfo>-decimals. |
581 | IF value_out CS dec_sep. |
582 | h_rechnen1 = ABS( h_rechnen16 ) MOD h_rechnen."Hirche |
583 | h_zwischen = h_rechnen1. |
584 | h_rechnen1 = 30 - <f_tabinfo>-decimals - 1. |
585 | ASSIGN h_zwischen+h_rechnen1(<f_tabinfo>-decimals) |
586 | TO <h>. |
587 | h_rechnen1 = sy-fdpos + 1. |
588 | TRANSLATE <h> USING ' 0'. |
589 | WRITE <h> TO value_out+h_rechnen1(<f_tabinfo>-decimals). |
590 | ENDIF. |
591 | IF <f_tabinfo>-outputlen < 32. |
-
-
‎2009 Feb 12 9:07 AM
Hi,
This is because you may be trying to calculate soemthing and put in one field,
but the output which comes is higher size than wht you defined.
so incraese the size ogf that calculated output filed.
Regards
Rajendra
‎2009 Feb 12 9:17 AM
Sounds to me like something for OSS, maybe a relevant note available.
How did you change the exchange rate? Via custom development as well or via a standard SAP transaction? In case of custom development you might want to check if this is allowed / went OK (not giving any error). In case of standard transaction, meaning the change worked, then OSS is definitely the first place to look for a note.
‎2009 Feb 12 9:26 AM
Hi Sreehari,
While calling the function module, have you handled the exceptions,
Handle them then your program will not give dump.
Hope it helps
Regrds
Mansi