What does it do? A variant of the external subroutine call> that is not allowed in classes. The statement PERFORM> calls the statically specified subroutine subr> of a statically specified program prog>.
The existence of the specified program and subroutine is not checked by the syntax check. Only the extended program check> reports a nonexistent program or subroutine as an error by default. If the addition IF FOUND> is specified, the extended program check does not perform a check either.
If the specified subroutine or program does not exist at runtime, a catchable exception of the class CX_SY_DYN_CALL_ILLEGAL_FORM> or CX_SY_PROGRAM_NOT_FOUND> is raised by default. If the addition IF FOUND> is specified, the statement PERFORM> is skipped.
Latest notes:
In this variant, the program name prog> is specified directly in parentheses. Since parentheses in operand positions indicate a dynamic specification in all other cases, this form of the name is obsolete. The specification with the addition IN PROGRAM> > should be used instead.
External calls of subroutines are obsolete anyway. Instead of subroutines, methods and function modules can be used as explicit functional interfaces of a program.
Furthermore, external calls of subroutines are critical, since it cannot usually be statically determined to which program groups> the compilation unit is assigned. ABAP_HINT_END