Ansicht
Dokumentation

OHAZA_SPBADI01 - BADI: Maintain Salary Packaging Subscreens

OHAZA_SPBADI01 - BADI: Maintain Salary Packaging Subscreens

General Data in Customer Master   CPI1466 during Backup  
This documentation is copyright by SAP AG.
SAP E-Book

Several parts of the Salary packaging screens are subscreens called by the main program. This includes the header information on both compare and modeling screen and the edit section on the modeling screen.

The Standard program SAPMP16B calls specific subscreens defined in SAPMP16B. With this BADI it is possible to call different subscreens in a separate program. There are two methods HEADER_SCREENS_GET and EDIT_SCREEN_GET.

method HEADER_SCREENS_GET

importing

,,,,employee_info type hrcm_empinfo

changing

,,,,header_program type sy-repid,,

,,,,model_header_program type sy-repid

,,,,model_header_screen type sy-dynnr

,,,,compare_header_screen type sy-dynnr

,,,,request_header_screen type sy-dynnr

The structure employee_info contains all information about the employee such personnel number, molga and other infotype 1 and 8 info. Depending thereon one can set an alternative program (header_program) with alternative screens for the compare and request screen or an alternative model screen in another program (model_header_program). This alternative programs and screens must exist.

method EDIT_SCREEN_GET

importing

,,component_info type spa_component_info

,,,,employee_info type hrcm_empinfo

changing

,,,,edit_program type sy-repid,,

,,,,add_editprogram type sy-repid

,,,,edit_screen type sy-dynnr

,,,,add_editscreen type sy-dynnr

,,,,add_edittitle type text60.

The standard program sets per salary component click specific screens to edit that component. It depends on the infotype of this component. In the method one can overwrite this assignment or assign a different screen for a new infotype. (e.g. new country infotype)

One can also create additional text on the add_edit_screen in a separate program add_editprogram. Structure spa_component_info contains all the customising attributes of a salary component.

The edit program and screen must be in a certain format.

It should have a top include with the following declarations:

tables: spack_screen.

data begin of common part hrspa.

data edit_component type spa_package_component.

data pay_frequ like t549r-zeinh.

data spa_emp_info like hrcm_empinfo.

data info_tab like spa_component_info occurs 1 with header line.

data changed_package_tab type spa_package_tab.

data disp_tab type spa_package_tab.

data pool_tab type spa_package_tab.

data end of common part hrspa.

The screen must have a structure as follows:

process before output.

module modify_screen.

module get_screen_fields.

process after input.

chain.

field edit_component-neamt. “all sub screen fields

field……

……….

module calc_component.

endchain.

chain.

field edit_component-neamt. “all subscreen fields

…….

module input_checks on chain-request.

endchain.

Includes for the pbo and pai modules

module modify_screen output.

perform modify_screen in program sapmp16b.

endmodule. " modify_screen OUTPUT

*convert the category string in the edit_component to the specific fields (if string is used)

module get_screen_fields output.

move edit_component-necat(x) to …………

move edit_component-necat+x(y) to ………………

……………………………

endmodule. " get_screen_fields OUTPUT

*reconvert fields to category string

module calc_component input.

edit_component-necat(x) = ………………….

edit_component-necat+x(y) = ………………….

………………..

perform calculate_component in program sapmp16b.

endmodule. " calc_component INPUT

module input_checks input.

perform input_checks in program SAPMP16B using edit_component

endmodule. " input_checks INPUT

The alternative edit screen could only have text. Any buttons on the edit screen should be assigned the same screen groups as on screen 2300 in program SAPMP16B. This ensures that these buttons are inactive in the approval step of the workflow.

if employee-info-molga = 16.

model_header_program = ALT_SAPMP16B.

model_header_screen = 2000.

endif.

Your alternative program ALT_SAPMP16B would display your text on screen 2000.

if component_info-infty = nnnn.

edit_screen = 2000.

,, alt_editprogram = ALT_SAPMP16B.

,, alt_editscrren = 2100.

endif.

To implement a BADI, choose transaction se19, choose a name and the definition HRSPA_SUBSCREENS. Goto interface and double click on the methods to include your coding. For this interface only one class can be active. Activate your implementation. If there is another active class (other implementation) deactivate it and activate your implementation.

See the BADI documentation in se19 under help application help for more info on BADIs.






rdisp/max_wprun_time - Maximum work process run time   Vendor Master (General Section)  
This documentation is copyright by SAP AG.

Length: 6468 Date: 20240523 Time: 171604     sap01-206 ( 79 ms )