Hi Pria,
First of all, do not worry. This is a easy fix.
Can you please let me know what is the purpose you want the code? It is quite not clear with this piece of code as in this code we are just increasing the sy-tabix by 1 if the condition meet and do not meet.
In your code, I can see that some statements are not required.
***lOOP.
IF <FS>-CALDAY > W_ZODPMSOB-CALDAY.
*** EXIT.
CLEAR: lv_tabix.
READ TABLE w_zodpmsob
WITH KEY ba_objnrt = <fs>-ba_objnrt
BINARY SEARCH.
lv_tabix = SY-TABIX + 1.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
ENDIF.
*** ENDLOOP.
I have added *** on the statements that are not required this applies for WHILE statement too. You ideally only need IF statement. But still it is not clear the purpose of your code. I do not see any modifications to the data etc.
Can you please paste your complete code of endroutine and tell the purpose of your code?
Regards
Amit