You wrote
a user can use only for those plant FOR Sales Document Type "ZSCP" in which he has authorization for his userid
Can you reformulate this sentence (removing one "for" ?)
AUTHORITY-CHECK OBJECT 'Z_PLANT' ID 'ACTVT' FIELD '01' ID 'WERKS' FIELD '1026'. IF sy-subrc <> 0. MESSAGE 'YOU ARE NOT AUTHORIZED FOR VA01' TYPE 'E'. ENDIF.
I would have expected a code with test on when do the check then the check, and those with dynamic values from VBAK or internal table XVBAP.
Also I would have expected form USEREXIT_SAVE_DOCUMENT_PREPARE to be implemented and not USEREXIT_SAVE_DOCUMENT which does not allow for error message (too late)
Regards,
Raymond