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: 

Hi

Former Member
0 Kudos

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".

1 ACCEPTED SOLUTION

0 Kudos

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

6 REPLIES 6

0 Kudos

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

Former Member
0 Kudos

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

former_member378318
Contributor
0 Kudos

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.

Former Member
0 Kudos

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

Vijay
Active Contributor
0 Kudos

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>

Former Member
0 Kudos

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.