Application Development and Automation 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: 
Read only

Hi

Former Member
0 Likes
631

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
Read only

seshatalpasai_madala
Product and Topic Expert
Product and Topic Expert
0 Likes
594

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
Read only

seshatalpasai_madala
Product and Topic Expert
Product and Topic Expert
0 Likes
595

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

Read only

Former Member
0 Likes
594

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

Read only

former_member378318
Contributor
0 Likes
594

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.

Read only

Former Member
0 Likes
594

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

Read only

Vijay
Active Contributor
0 Likes
594

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>

Read only

Former Member
0 Likes
594

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.