07-30-2007 11:30 AM
Hi,
I am writing a aprogram in Module pool.
I am getting the following error.
TABLES:
KNA1. "WORK AREA
CASE SY-UCOMM.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'DISPLAY'.
IF KNA1-KUNNR IS NOT INITIAL.
SELECT SINGLE * FROM KNA1 WHERE KUNNR = KNA1-KUNNR.
IF SY-SUBRC NE 0.
MESSAGE E000(0) WITH 'ENTER CUSTOMER NUMBER'.
ELSE.
MESSAGE E000(0) WITH 'INPUT CUSTOMER NUMBER'.
ENDIF.
<b>WHEN 'INSERT'.</b>
INSERT KNA1.
IF SY-SUBRC NE 0.
MESSAGE E000(0) WITH 'RECORD ALREADY EXISTS'.
ELSE.
MESSAGE S000(0) WITH RECORD INSERTED.
ENDIF.
ENDCASE.
"WHEN" is allowed only after "CASE".
07-30-2007 11:34 AM
HI,
TABLES:
KNA1. "WORK AREA
CASE SY-UCOMM.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'DISPLAY'.
IF KNA1-KUNNR IS NOT INITIAL. "THIS IF IS NOT CLOSED
SELECT SINGLE * FROM KNA1 WHERE KUNNR = KNA1-KUNNR.
IF SY-SUBRC NE 0.
MESSAGE E000(0) WITH 'ENTER CUSTOMER NUMBER'.
ELSE.
MESSAGE E000(0) WITH 'INPUT CUSTOMER NUMBER'.
ENDIF.
ENDIF. "CLOSE THE IF USING ENDIF
WHEN 'INSERT'.
INSERT KNA1.
IF SY-SUBRC NE 0.
MESSAGE E000(0) WITH 'RECORD ALREADY EXISTS'.
ELSE.
MESSAGE S000(0) WITH RECORD INSERTED.
ENDIF.
ENDCASE.
Regards,
Sesh
07-30-2007 11:34 AM
HI,
TABLES:
KNA1. "WORK AREA
CASE SY-UCOMM.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'DISPLAY'.
IF KNA1-KUNNR IS NOT INITIAL. "THIS IF IS NOT CLOSED
SELECT SINGLE * FROM KNA1 WHERE KUNNR = KNA1-KUNNR.
IF SY-SUBRC NE 0.
MESSAGE E000(0) WITH 'ENTER CUSTOMER NUMBER'.
ELSE.
MESSAGE E000(0) WITH 'INPUT CUSTOMER NUMBER'.
ENDIF.
ENDIF. "CLOSE THE IF USING ENDIF
WHEN 'INSERT'.
INSERT KNA1.
IF SY-SUBRC NE 0.
MESSAGE E000(0) WITH 'RECORD ALREADY EXISTS'.
ELSE.
MESSAGE S000(0) WITH RECORD INSERTED.
ENDIF.
ENDCASE.
Regards,
Sesh
07-30-2007 11:34 AM
HI,
try this
TABLES:
KNA1. "WORK AREA
CASE SY-UCOMM.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'DISPLAY'.
IF KNA1-KUNNR IS NOT INITIAL.
SELECT SINGLE * FROM KNA1 WHERE KUNNR = KNA1-KUNNR.
IF SY-SUBRC NE 0.
MESSAGE E000(0) WITH 'ENTER CUSTOMER NUMBER'.
ELSE.
MESSAGE E000(0) WITH 'INPUT CUSTOMER NUMBER'.
ENDIF.
YOU have forgottento give this
ENDIF.
WHEN 'INSERT'.
INSERT KNA1.
IF SY-SUBRC NE 0.
MESSAGE E000(0) WITH 'RECORD ALREADY EXISTS'.
ELSE.
MESSAGE S000(0) WITH RECORD INSERTED.
ENDIF.
ENDCASE.
reward points if helpful
thanks & regards,
venkatesh
07-30-2007 11:34 AM
Try this:
REPORT ztestsdhillon3.
TABLES:
kna1. "WORK AREA
CASE sy-ucomm.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'DISPLAY'.
IF kna1-kunnr IS NOT INITIAL.
SELECT SINGLE * FROM kna1 WHERE kunnr = kna1-kunnr.
IF sy-subrc NE 0.
MESSAGE e000(0) WITH 'ENTER CUSTOMER NUMBER'.
ELSE.
MESSAGE e000(0) WITH 'INPUT CUSTOMER NUMBER'.
ENDIF.
ENDIF.
WHEN 'INSERT'.
INSERT kna1.
IF sy-subrc NE 0.
MESSAGE e000(0) WITH 'RECORD ALREADY EXISTS'.
ELSE.
MESSAGE s000(0) WITH 'record inserted'.
ENDIF.
ENDCASE.
07-30-2007 11:34 AM
Recode like this
TABLES:
kna1. "WORK AREA
CASE sy-ucomm.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'DISPLAY'.
IF kna1-kunnr NOT IS INITIAL.
SELECT SINGLE * FROM kna1 WHERE kunnr = kna1-kunnr.
IF sy-subrc NE 0.
MESSAGE e000(0) WITH 'ENTER CUSTOMER NUMBER'.
ELSE.
MESSAGE e000(0) WITH 'INPUT CUSTOMER NUMBER'.
ENDIF.
ENDIF.
WHEN 'INSERT'.
INSERT kna1.
IF sy-subrc NE 0.
MESSAGE e000(0) WITH 'RECORD ALREADY EXISTS'.
ELSE.
MESSAGE s000(0) WITH record inserted.
ENDIF.
ENDCASE.
endif was missing
07-30-2007 11:36 AM
hi rams
TABLES:
KNA1. "WORK AREA
CASE SY-UCOMM.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'DISPLAY'.
IF KNA1-KUNNR IS NOT INITIAL.
SELECT SINGLE * FROM KNA1 WHERE KUNNR = KNA1-KUNNR.
IF SY-SUBRC NE 0.
MESSAGE E000(0) WITH 'ENTER CUSTOMER NUMBER'.
ELSE.
MESSAGE E000(0) WITH 'INPUT CUSTOMER NUMBER'.
ENDIF.
<b>ENDIF.</b> "u forgot close the IF here
WHEN 'INSERT'.
INSERT KNA1.
IF SY-SUBRC NE 0.
MESSAGE E000(0) WITH 'RECORD ALREADY EXISTS'.
ELSE.
MESSAGE S000(0) WITH RECORD INSERTED.
ENDIF.
ENDCASE.
regards
vijay
<b>plz dont forget to reward points if helpful</b>
07-30-2007 11:38 AM
in User command event which u have in ur PAI write lthe code...
and one more thing is u didnt close the IF statement..
KNA1. "WORK AREA
CASE SY-UCOMM.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'DISPLAY'.
IF KNA1-KUNNR IS NOT INITIAL.
SELECT SINGLE * FROM KNA1 WHERE KUNNR = KNA1-KUNNR.
IF SY-SUBRC NE 0.
MESSAGE E000(0) WITH 'ENTER CUSTOMER NUMBER'.
ELSE.
MESSAGE E000(0) WITH 'INPUT CUSTOMER NUMBER'.
ENDIF.
<b>endif</b>
WHEN 'INSERT'.
INSERT KNA1.
IF SY-SUBRC NE 0.
MESSAGE E000(0) WITH 'RECORD ALREADY EXISTS'.
ELSE.
MESSAGE S000(0) WITH RECORD INSERTED.
ENDIF.
ENDCASE.