Both the events AT SELECTION-SCREEN and AT USER-COMMAND are processed after user input. Then what is the difference between these and when we should use what?
At selection screen is used to validate the fields in a selection screen...and at user command  is used to modify the screen in a selection screen and in genarating secondary lists.. 
OR
AT SELECTION-SCREEN  is used where you have a seperate selection screen using select-options or parameters where as AT USER-COMMAND is used where no selection screen  exists....at.user-command  is mainly used while setting pf-status which means creating our own menu with function codes etc...
