‎2007 Jul 10 12:17 PM
Hi,
This is my program.
PARAMETERS:
P_NUM1 TYPE I,
P_NUM2 TYPE I,
P_OPER TYPE C.
DATA:
W_RESULT TYPE I.
CALL FUNCTION 'ZAC_CALCULATE'
EXPORTING
IM_NUM1 = P_NUM1
IM_NUM2 = P_NUM2
IM_OPER = P_OPER
IMPORTING
EX_RESULT =
EXCEPTIONS
INVALID_OPERATOR1 = 1
ZERO_DIVIDE1 = 2
OTHERS = 3
.
IF SY-SUBRC EQ 0.
WRITE:/ 'RESULT IS', W_RESULT.
IF SY-SUBRC EQ 1.
WRITE:/ 'INVALID OPERATION'.
IF SY-SUBRC EQ 1.
WRITE:/ 'CANNOT DIVIDE BY ZERO'.
ELSE.
WRITE:/ 'UNKNOWN EXCEPTION'.
ENDIF.
Iam getting the following error.
Incorrect nesting: Before the end of the program, the structure
introduced by "IF" must be concluded by "ENDIF" . . . . . .
‎2007 Jul 10 12:20 PM
USe this -
IF SY-SUBRC EQ 0.
WRITE:/ 'RESULT IS', W_RESULT.
IF SY-SUBRC EQ 1.
WRITE:/ 'INVALID OPERATION'.
<b><i>ELSEIF</i></b> SY-SUBRC EQ 1.
WRITE:/ 'CANNOT DIVIDE BY ZERO'.
ELSE.
WRITE:/ 'UNKNOWN EXCEPTION'.
ENDIF.
Regards,
Amit
Reward all helpful replies.
‎2007 Jul 10 12:20 PM
Hi,
THE STRUCTURE SHOULD FOLLOW THIS
IF <condition1>.
<statement block>
ELSEIF <condition2>
<statement block>.
ELSEIF <condition3>.
<statement block>
.....
ELSE.
<statement block>
ENDIF.
SO MAKE SOME CHANGES IN YOUR CODE
IF SY-SUBRC EQ 0.
WRITE:/ 'RESULT IS', W_RESULT.
ELSEIF SY-SUBRC EQ 1.
WRITE:/ 'INVALID OPERATION'.
ELSEIF SY-SUBRC EQ 1.
WRITE:/ 'CANNOT DIVIDE BY ZERO'.
ELSE.
WRITE:/ 'UNKNOWN EXCEPTION'.
ENDIF.
************PLEASE REWARD POINTS IF THE INFORMATION IS HELPFUL TO YOU************
‎2007 Jul 10 12:20 PM
USe this -
IF SY-SUBRC EQ 0.
WRITE:/ 'RESULT IS', W_RESULT.
IF SY-SUBRC EQ 1.
WRITE:/ 'INVALID OPERATION'.
<b><i>ELSEIF</i></b> SY-SUBRC EQ 1.
WRITE:/ 'CANNOT DIVIDE BY ZERO'.
ELSE.
WRITE:/ 'UNKNOWN EXCEPTION'.
ENDIF.
Regards,
Amit
Reward all helpful replies.
‎2007 Jul 10 12:20 PM
Hi,
PARAMETERS:
P_NUM1 TYPE I,
P_NUM2 TYPE I,
P_OPER TYPE C.
DATA:
W_RESULT TYPE I.
CALL FUNCTION 'ZAC_CALCULATE'
EXPORTING
IM_NUM1 = P_NUM1
IM_NUM2 = P_NUM2
IM_OPER = P_OPER
* IMPORTING
* EX_RESULT =
* EXCEPTIONS
* INVALID_OPERATOR1 = 1
* ZERO_DIVIDE1 = 2
* OTHERS = 3
.
IF SY-SUBRC EQ 0.
WRITE:/ 'RESULT IS', W_RESULT.
IF SY-SUBRC EQ 1.
WRITE:/ 'INVALID OPERATION'.
IF SY-SUBRC EQ 1.
WRITE:/ 'CANNOT DIVIDE BY ZERO'.
ELSE.
WRITE:/ 'UNKNOWN EXCEPTION'.
ENDIF.
ENDIF. " Add this
ENDIF. " Add thisRegards
Sudheer
‎2007 Jul 10 12:20 PM
Try This
Incorrect nesting
Posted: Jul 10, 2007 1:17 PM Reply E-mail this post
Hi,
This is my program.
PARAMETERS:
P_NUM1 TYPE I,
P_NUM2 TYPE I,
P_OPER TYPE C.
DATA:
W_RESULT TYPE I.
CALL FUNCTION 'ZAC_CALCULATE'
EXPORTING
IM_NUM1 = P_NUM1
IM_NUM2 = P_NUM2
IM_OPER = P_OPER
IMPORTING
EX_RESULT =
EXCEPTIONS
INVALID_OPERATOR1 = 1
ZERO_DIVIDE1 = 2
OTHERS = 3
.
IF SY-SUBRC EQ 0.
WRITE:/ 'RESULT IS', W_RESULT.
ElSEIF SY-SUBRC EQ 1.
WRITE:/ 'INVALID OPERATION'.
ELSEIF SY-SUBRC EQ 1.
WRITE:/ 'CANNOT DIVIDE BY ZERO'.
ELSE.
WRITE:/ 'UNKNOWN EXCEPTION'.
ENDIF.
‎2007 Jul 10 12:21 PM
Hi,
Try this,
IF SY-SUBRC EQ 0.
WRITE:/ 'RESULT IS', W_RESULT.
ELSEIF SY-SUBRC EQ 1.
WRITE:/ 'INVALID OPERATION'.
ELSEIF SY-SUBRC EQ 1.
WRITE:/ 'CANNOT DIVIDE BY ZERO'.
ELSE.
WRITE:/ 'UNKNOWN EXCEPTION'.
ENDIF.
Thanks,
Reward If Helpful.
‎2007 Jul 10 12:21 PM
Hi,
write like this:
IF SY-SUBRC EQ 0.
WRITE:/ 'RESULT IS', W_RESULT.
ELSEIF SY-SUBRC EQ 1.
WRITE:/ 'INVALID OPERATION'.
ELSEIF SY-SUBRC EQ *. <- here, appropriate sybrc check.
WRITE:/ 'CANNOT DIVIDE BY ZERO'.
ELSE.
WRITE:/ 'UNKNOWN EXCEPTION'.
ENDIF.
Regards,
Siddhesh Sanghvi.
‎2007 Jul 10 12:21 PM
hi ,
Write like this way.
PARAMETERS:
P_NUM1 TYPE I,
P_NUM2 TYPE I,
P_OPER TYPE C.
DATA:
W_RESULT TYPE I.
CALL FUNCTION 'ZAC_CALCULATE'
EXPORTING
IM_NUM1 = P_NUM1
IM_NUM2 = P_NUM2
IM_OPER = P_OPER
IMPORTING
EX_RESULT =
EXCEPTIONS
INVALID_OPERATOR1 = 1
ZERO_DIVIDE1 = 2
OTHERS = 3
.
IF SY-SUBRC EQ 0.
WRITE:/ 'RESULT IS', W_RESULT.
IF SY-SUBRC EQ 1.
WRITE:/ 'INVALID OPERATION'.
endif.
IF SY-SUBRC EQ 1.
WRITE:/ 'CANNOT DIVIDE BY ZERO'.
endif.
ELSE.
WRITE:/ 'UNKNOWN EXCEPTION'.
ENDIF.
thanks,
CS Reddy.
‎2007 Jul 10 12:21 PM
change to this
IF SY-SUBRC EQ 0.
WRITE:/ 'RESULT IS', W_RESULT.
elseIF SY-SUBRC EQ 1.
WRITE:/ 'INVALID OPERATION'.
elseIF SY-SUBRC EQ 2. " SY-SUBRC changed to 2
WRITE:/ 'CANNOT DIVIDE BY ZERO'.
ELSE.
WRITE:/ 'UNKNOWN EXCEPTION'.
ENDIF.