‎2007 Mar 23 7:02 AM
IF S_CHKSL = 'X'.
SELECT * FROM MARD WHERE MATNR EQ INTAB-MATNR
AND LGORT IN S_LGORT.
IF S_UR = 'X' OR S_ALLST = 'X'.
WA_PLNT_UR_MAIN = WA_PLNT_UR_MAIN + MARD-LABST.
WA_PLNT_UR = WA_PLNT_UR + MARD-LABST.
ENDIF.
IF S_QI = 'X' OR S_ALLST = 'X'.
WA_PLNT_QI_MAIN = WA_PLNT_QI_MAIN + MARD-INSME.
WA_PLNT_QI = WA_PLNT_QI + MARD-INSME.
ENDIF.
IF S_BLK = 'X' OR S_ALLST = 'X'.
WA_PLNT_BLK_MAIN = WA_PLNT_BLK_MAIN + MARD-SPEME.
WA_PLNT_BLK = WA_PLNT_BLK + MARD-SPEME.
ENDIF.
WA_STOCK_MAIN = WA_PLNT_UR_MAIN + WA_PLNT_QI_MAIN.
WA_STOCK = WA_PLNT_UR + WA_PLNT_QI.
ENDSELECT.
ENDIF.
Dear all,why is above coding works..but below coding doesnt works? the above coding before endselect,it will check the if statement underneath.but for belove coding,after select,,it straight jump to end select..any idea? thanks
IF S_TEM = 'X'.
SELECT * FROM MARD WHERE MATNR EQ INTAB-MATNR
AND LGORT IN TEM AND NOT LGORT IN TEMPD
AND NOT LGORT IN TEMCS AND NOT LGORT IN LVT
AND NOT LGORT IN LCS AND NOT LGORT IN LPD
AND NOT LGORT IN VJB AND NOT LGORT IN VCS
AND NOT LGORT IN VPD.
IF S_UR = 'X' OR S_ALLST = 'X'.
WA_PLNT_UR_MAIN = WA_PLNT_UR_MAIN + MARD-LABST.
WA_PLNT_UR = WA_PLNT_UR + MARD-LABST.
ENDIF.
IF S_QI = 'X' OR S_ALLST = 'X'.
WA_PLNT_QI_MAIN = WA_PLNT_QI_MAIN + MARD-INSME.
WA_PLNT_QI = WA_PLNT_QI + MARD-INSME.
ENDIF.
IF S_BLK = 'X' OR S_ALLST = 'X'.
WA_PLNT_BLK_MAIN = WA_PLNT_BLK_MAIN + MARD-SPEME.
WA_PLNT_BLK = WA_PLNT_BLK + MARD-SPEME.
ENDIF.
WA_STOCK_MAIN = WA_PLNT_UR_MAIN + WA_PLNT_QI_MAIN.
WA_STOCK = WA_PLNT_UR + WA_PLNT_QI.
ENDSELECT.
ENDIF.
‎2007 Mar 23 7:05 AM
Hi,
It is jumping straight to ENDSELECT from SELECT as no data is found. Check the value of SY-SUBRC. It wont be equal to zero which means the written select statement could not fetch any record matching with the specified condition.
Regards,
Himanshu
‎2007 Mar 23 7:09 AM
i try to put
if sy-subrc = 0 after the select statement,it seems the cursor wont jump and execute this statement of line also.it straight away jump to endselect.
‎2007 Mar 23 8:54 AM
You cannot put a sy-subrc check inside the select-endselect loop, for the control won't go inside if the where condition fails.
Regards,
Ravi
‎2007 Mar 23 8:51 AM
IF S_TEM = 'X'.
SELECT * FROM MARD WHERE MATNR EQ INTAB-MATNR
AND LGORT IN TEM AND NOT LGORT IN TEMPD
AND NOT LGORT IN TEMCS AND NOT LGORT IN LVT
AND NOT LGORT IN LCS AND NOT LGORT IN LPD
AND NOT LGORT IN VJB AND NOT LGORT IN VCS
AND NOT LGORT IN VPD.
IF S_UR = 'X' OR S_ALLST = 'X'.
WA_PLNT_UR_MAIN = WA_PLNT_UR_MAIN + MARD-LABST.
WA_PLNT_UR = WA_PLNT_UR + MARD-LABST.
ENDIF.
IF S_QI = 'X' OR S_ALLST = 'X'.
WA_PLNT_QI_MAIN = WA_PLNT_QI_MAIN + MARD-INSME.
WA_PLNT_QI = WA_PLNT_QI + MARD-INSME.
ENDIF.
IF S_BLK = 'X' OR S_ALLST = 'X'.
WA_PLNT_BLK_MAIN = WA_PLNT_BLK_MAIN + MARD-SPEME.
WA_PLNT_BLK = WA_PLNT_BLK + MARD-SPEME.
ENDIF.
WA_STOCK_MAIN = WA_PLNT_UR_MAIN + WA_PLNT_QI_MAIN.
WA_STOCK = WA_PLNT_UR + WA_PLNT_QI.
ENDSELECT.
ENDIF.
here as per your here condition the data is not fetching so it is not at all going to select endselect loop . just check in your where condition..
regards
shiba dutta
‎2007 Mar 23 8:57 AM
U have kept more conditions in the second select statement, so might be data is not matching for that criteria.
this must be the reason for ur issue.
Regards,
Sujatha.