2005 Mar 09 4:35 AM
why the below logic does not get executed.
//if val has value 0 then it says no records exists for the input items.
Data: VAL type I.
SELECT count(*) INTO VAL FROM SKB1
WHERE BUKRS = P_BUKRS1 //company code
AND SAKNR = P_RACCT. // GL account no
//want to check whether records exists for given input GL account no
and BUKRS(ie,ccode).
IF VAL EQ 0.
MESSAGE E003 with 'not exists'
ENDIF.
ambichan.
2005 Mar 09 7:05 AM
Hello Ambichan,
In case you are using a parameters for the G/L Account Number,
SELECT SINGLE * FROM SKB1
WHERE BUKRS = P_BUKRS
AND SAKNR = P_RACCT.
IF SY-SUBRC NE 0.
* ISSUE AN ERROR MESSAGE
ENDIF.
I have a hunch that in this case, the value of P_BUKRS AND/OR P_RACCT is
getting cleared. Please check that through debugging.
======================================================================
In case you are using a select-options for a G/L Accont Number,
SELECT SINGLE * FROM SKB1
WHERE BUKRS = P_BUKRS
AND SAKNR IN S_HKONT1.
IF SY-SUBRC NE 0.
* ISSUE AN ERROR MESSAGE
ENDIF.
Get back if you still have something to be understood.
Regards,
Anand Mandalika.
Hi,
Just executed your program and it seems to work fine. What exactly is the error that you find in your program?
Regards
2005 Mar 09 4:42 AM
Instead of
if val eq 0.
endif.try
if sy-subrc <> 0.
*** My message
endif.Regards,
Subramanian V.
2005 Mar 09 4:53 AM
Hi,
Just executed your program and it seems to work fine. What exactly is the error that you find in your program?
Regards
2005 Mar 09 5:07 AM
hey
i tried with sy-subrc also
it gives always value "4" even though input value matches table value or not matches.
even i tried sy-dbcnt.this value is always 0.
if i put in loop like this it works.
LOOP AT S_HKONT1.
SELECT * FROM SKB1 INTO CORRESPONDING FIELDS OF W_SKB1
WHERE SAKNR = S_HKONT1-LOW
AND BUKRS = P_BUKRS1.
ENDSELECT.
IF W_SKB1-SAKNR = ''.
MESSAGE: E999 WITH 'E-02: 'error'.
ENDIF.
ENDLOOP.
dont we have any other alternative way?
ambichan.
2005 Mar 09 6:40 AM
Hi,
I am not sure whether you are using proper approach or testing properly. Since all the approaches mentioned , except for your last code(which I haven't checked yet) , are working.
data: val type i.
select count(*) into val from z123 where matnr = '1234'.
if sy-subrc <> 0.
write 'zero values'.
else.
write 'values present'.
endif.If you need to check whether an entry is present or not, you should use '<b>select single </b>' and not count ().
Press F1 on Select and help given for Count(*) is good.
Regards,
Subramanian V.
2005 Mar 09 6:39 AM
ambi,
try checking if your P_BUKRS1 and P_RACCT is typed against SKB1-BUKRS and SKB1-SAKNR, as in:
parameters: p_bukrs1 like skb1-bukrs,
p_racct like skb1-saknr.you may be having a type mismatch for the comparison.
and it might be better for you to check for SY-SUBRC rather than counting the number of contents.
and if you don't need the count, a SELECT SINGLE ought to do fine.
ryan.
2005 Mar 09 7:05 AM
Hello Ambichan,
In case you are using a parameters for the G/L Account Number,
SELECT SINGLE * FROM SKB1
WHERE BUKRS = P_BUKRS
AND SAKNR = P_RACCT.
IF SY-SUBRC NE 0.
* ISSUE AN ERROR MESSAGE
ENDIF.
I have a hunch that in this case, the value of P_BUKRS AND/OR P_RACCT is
getting cleared. Please check that through debugging.
======================================================================
In case you are using a select-options for a G/L Accont Number,
SELECT SINGLE * FROM SKB1
WHERE BUKRS = P_BUKRS
AND SAKNR IN S_HKONT1.
IF SY-SUBRC NE 0.
* ISSUE AN ERROR MESSAGE
ENDIF.
Get back if you still have something to be understood.
Regards,
Anand Mandalika.
| User | Count |
|---|---|
| 6 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |