If your program compiles, it does not mean that it's right.
Try transaction SLIN to check your code in depth.
It shows you:
-routines and variables that your program is not using
-references to currency or units of measure not considered- and much more!
You will get more than one surprise!