During SAP HCM performance management implementation, one report is developed to prepare appraisal documents according to customer requirements with defaulted objectives and header data. Because SAP provided 3 standard options do not suit the customer requirement and client also ask for pre-populated objectives and header data.
Provided 3 standard programs, we get after running the PHAP_PREPARE are-
- Prepare Appraisal Docs with Wizard
- Prepare Appraisal Docs with Organizational Units
- Prepare Appraisal Docs with Restricted Templates (Appraiser, Appraisee)

Now, SAP has already provided the option to include customer program in this list. For that purpose BADI, HRHAP00_DOC_PREPARE (Appraisal Document - Prepare Appraisal Documents) can be used. And this BADI is filter-dependent.
3 interface methods are given in this BADI. And these are-
- REGISTRATION(Register Reporting Function)
This method determines the implementation for which the add-on application is valid, such as:
- Personnel appraisal only (such as preparation using organizational unit)
- Training appraisal only (for SAP Learning Solution only)
Also we can do filter dependent checking and register the function here.
- GET_INFORMATION(Get Information About Reporting Function)
This method determines the documentation object that contains information about the reporting function
- PERFORM_PREPARATION(Execute Reporting)
This method starts the function as soon as it has been selected by the user. The function could be a customer-specific report, function module, or a wizard.
SAP has already implemented, 3 implementations and these could be used as sample coding.

One custom appraisal preparation program YHR_APPRAISAL_PREP is developed and the selection screen is –

Now implementing BADI to integrate program YHR_APPRAISAL_PREP with PHAP_PREPARE.
- Create implementation from SE19 with implementation name YHRHAP0_DOC_PREPARE4 (Prepare Appraisal Docs : ABC Agro) and filter YPREPAR_4.



2. Now implement two methods with the following code.
Method REGISTRATION
method IF_EX_HRHAP00_DOC_PREPARE~REGISTRATION.
register = 'X'.
endmethod.
Method PERFORM_PREPARATION
method IF_EX_HRHAP00_DOC_PREPARE~PERFORM_PREPARATION.
SUBMIT YHR_APPRAISAL_PREP VIA SELECTION-SCREEN
AND RETURN .
endmethod.
Now activate all the methods and implementation.
3. Check from PHAP_PREPARE. Custom program is attached here.

Click on ‘Prepare Appraisal Docs : ABC Agro’, custom program will start.