Ansicht
Dokumentation

PAY_PT_SGL11 - BAdI: Unique Report - Attachment D

PAY_PT_SGL11 - BAdI: Unique Report - Attachment D

Addresses (Business Address Services)   ABAP Short Reference  
This documentation is copyright by SAP AG.
SAP E-Book

This Business Add-In (BAdI) is used in component Payroll - Portugal(PY-PT). This BAdI allows customizations in Attachment D of the program Unique Report (RPCUNRP0). The fill in of this BAdI is mandatory for the delivery of information on service activities of safety and health at work to the government.

The fields Average number of workers and Total number of working hours are filled in by the standard system. However, you can use this BAdI to change the filling in of these fields.

The BAdI is composed by the following methods:

  • Fills in data for attachment D of the Unique Report (GET_DATA_ANEXO_SST): this method adds or changes additional data to the Unique Report. This method is called at the end of the END-OF-SELECTION processing block of the program.
  • Fills in data by employee for attachment D of the UR (Azores) (GET_DATA_ANEXO_SST_EE_AZ): this method reads data by establishment and employee and allows you to change them. The method is called in the GET PERNR processing block of the program and covers only workers from Azores.
  • Fills in data for attachment D of the UR (Azores) (GET_DATA_ANEXO_SST_AZ): this method adds or changes additional data to the Unique Report. This method is called at the end of the END-OF-SELECTION processing block of the program and it covers only workers from Azores.

To obtain more information on standard settings (filters, individual or multiple use), see the tab Enhancement point elements defs. in the BAdI Builder (transaction SE18).

For more information on the BAdI implementation as part of the enhancement concept, see SAP Library for NetWeaver platform in SAP Help Portal in http://help.sap.com/nw_platform. Select a release and then select Application Help. In the SAP Library, select SAP NetWeaver Library: Function-Oriented View -> Application Server -> Application Server ABAP -> Application Development on AS ABAP -> ABAP Customer Development -> Enhancement Framework.

  • Implementation example of method GET_DATA_ANEXO_SST_EE_AZ:
METHOD cl_hr_pt_unique_rp_sst~get_data_anexo_sst_ee_az.
  DATA lt_ee_estabs TYPE pptt_unique_rp_ee_estabs_az.
  DATA ls_ee_estabs TYPE ppts_unique_rp_ee_estabs_az.
************************************************************
  DATA ls_n_medio_trab TYPE ppts_unique_rp_sst_av_ee_az.
  ls_n_medio_trab-vinc_trab_fora_tmp-nmen = '3'.
  ls_n_medio_trab-vinc_trab_fora_tmp-nwomen = '4'.
  ls_n_medio_trab-vinc_trab_fora_ocas-nmen = '5'.
  ls_n_medio_trab-vinc_trab_fora_ocas-nwomen = '6'.
  ls_n_medio_trab-vinc_trab_fora_outros-nmen = '7'.
  ls_n_medio_trab-vinc_trab_fora_outros-nwomen = '8'.
  ls_n_medio_trab-outros_ced-nmen = '9'.
  ls_n_medio_trab-outros_ced-nwomen = '10'.
  ls_n_medio_trab-outros_ind-nmen = '11'.
  ls_n_medio_trab-outros_ind-nwomen = '12'.
  ls_n_medio_trab-outros_ocas-nmen = '13'.
  ls_n_medio_trab-outros_ocas-nwomen = '14'.
************************************************************
  DATA ls_nat_mod TYPE ppts_unique_rp_sst_nat_mod_az.
  ls_nat_mod-organi_serv_seg = '1'.
  ls_nat_mod-organi_serv_saude = '1'.
  ls_nat_mod-n_trab_afect = '2'.
  ls_nat_mod-org_no_estab = 'C'.
  ls_nat_mod-organi_dom_seg = '1'.
  ls_nat_mod-organi_dom_saude = '2'.
  ls_nat_mod-compl = '1'.
************************************************************
  DATA ls_pes_serv TYPE ppts_unique_rp_sst_pes_ser_az.
  DATA lt_medicos TYPE pptt_unique_rp_sst_medicos_az.
  DATA ls_medicos TYPE ppts_unique_rp_sst_medicos_az.
  DATA lt_tec_shts TYPE pptt_unique_rp_sst_tec_shts.
  DATA ls_tec_shts TYPE ppts_unique_rp_sst_tec_shts.
  DATA lt_servicos_seg TYPE pptt_unique_rp_sst_ser_seg_az.
  DATA ls_servicos_seg TYPE ppts_unique_rp_sst_ser_seg_az.
  DATA lt_servicos_sau TYPE pptt_unique_rp_sst_ser_sau_az.
  DATA ls_servicos_sau TYPE ppts_unique_rp_sst_ser_sau_az.
  ls_pes_serv-n_medicos = '1'.
  ls_pes_serv-n_enfer = '2'.
  ls_pes_serv-n_tec_sup_sht = '3'.
  ls_pes_serv-n_tec_sht = '4'.
  ls_pes_serv-outro_pess = '5'.
  ls_medicos-nome = 'Physician name'.
  ls_medicos-n_cedula = '12345'.
  ls_medicos-n_horas_mes = '20'.
  ls_medicos-n_minutos_mes = '30'.
  APPEND ls_medicos TO lt_medicos.
  ls_medicos-n_cedula = '12346'.
  APPEND ls_medicos TO lt_medicos.
  ls_pes_serv-medicos = lt_medicos.
  ls_tec_shts-nome = 'Technical name'.
  ls_tec_shts-cap = '4321'.
  APPEND ls_tec_shts TO lt_tec_shts.
  ls_tec_shts-cap = '4322'.
  APPEND ls_tec_shts TO lt_tec_shts.
  ls_pes_serv-tec_shts = lt_tec_shts.
  ls_pes_serv-nif_segu = '123456789'.
  ls_pes_serv-nome_segu = 'safety'.
  ls_pes_serv-nif_saude = '123456789'.
  ls_pes_serv-nome_saude = 'health'.
  ls_pes_serv-nome_empregador = 'employer'.
  ls_pes_serv-n_autorizacao = ''. "0123456789
  ls_pes_serv-nome_trab_desig = 'worker name'.
  ls_pes_serv-n_aut_trab_desig = ''. "123
  ls_pes_serv-nome_repr = 'repres.name'.
  ls_servicos_seg-nif = '123456789'.
  ls_servicos_seg-denominacao = 'denomination'.
  ls_servicos_seg-tipo = '1'.
  APPEND ls_servicos_seg TO lt_servicos_seg.
  ls_pes_serv-servicos_seg = lt_servicos_seg.
  ls_servicos_sau-nif = '123456789'.
  ls_servicos_sau-denominacao = 'denomination'.
  ls_servicos_sau-tipo = '2'.
  APPEND ls_servicos_sau TO lt_servicos_sau.
  ls_pes_serv-servicos_sau = lt_servicos_sau.
************************************************************
  DATA ls_servicos_sst TYPE ppts_unique_rp_act_ser_sst_az.
  ls_servicos_sst-org_prog_prev = '0'.
  ls_servicos_sst-org_prom_saude = '0'.
  ls_servicos_sst-org_vigil_saude = '0'.
  ls_servicos_sst-org_audit = '0'.
  ls_servicos_sst-org_insp = '0'.
************************************************************
  DATA ls_acoes_inf TYPE ppts_unique_rp_ac_inf_sst_az.
  DATA ls_acoes_con TYPE ppts_unique_rp_ac_con_sst_az.
  DATA ls_acoes_for TYPE ppts_unique_rp_ac_form_sst_az.
  ls_acoes_inf-SITUACAO = '01'.
  ls_acoes_inf-N_ACCOES = '1'.
  ls_acoes_inf-N_DESTINAT = '1'.
  APPEND ls_acoes_inf TO ls_servicos_sst-accoes_inf.
  ls_acoes_inf-SITUACAO = '02'.
  APPEND ls_acoes_inf TO ls_servicos_sst-accoes_inf.
  APPEND ls_acoes_con TO ls_servicos_sst-accoes_con.
  APPEND ls_acoes_for TO ls_servicos_sst-accoes_for.
************************************************************
  DATA ls_riscos TYPE ppts_unique_rp_sst_riscos_az.
  DATA ls_riscos_qui TYPE ppts_unique_rp_sst_risc_qui_az.
  APPEND ls_riscos TO ls_servicos_sst-riscos_fisic.
  APPEND ls_riscos TO ls_servicos_sst-riscos_bio.
  APPEND ls_riscos TO ls_servicos_sst-riscos_mus.
  APPEND ls_riscos TO ls_servicos_sst-riscos_psi.
  APPEND ls_riscos TO ls_servicos_sst-riscos_sst.
  APPEND ls_riscos_qui TO ls_servicos_sst-riscos_quim.
************************************************************
  DATA ls_exames TYPE ppts_unique_rp_sst_ex_compl_az.
  APPEND ls_exames TO ls_servicos_sst-exames_compl.
************************************************************
  DATA acoes_imun TYPE ppts_unique_rp_sst_ac_imun_az.
  DATA acoes_prom TYPE ppts_unique_rp_sst_ac_prom_az.
  APPEND acoes_imun TO ls_servicos_sst-accoes_imun.
  APPEND acoes_prom TO ls_servicos_sst-accoes_prom.
  ls_ee_estabs-servicos_sst = ls_servicos_sst.
************************************************************
  DATA ls_n_aciden_ocorr TYPE ppts_unique_rp_sst_aci_trab_az.
  ls_n_aciden_ocorr-n_aciden_ocorr-inf_1dia-nmen = '0'.
  ls_n_aciden_ocorr-n_aciden_ocorr-inf_1dia-nwomen = '0'.
  ls_n_aciden_ocorr-n_aciden_ocorr-DE_1A3-NMEN = '0'.
  ls_n_aciden_ocorr-n_aciden_ocorr-DE_1A3-nwomen = '0'.
  ls_n_aciden_ocorr-n_aciden_ocorr-DE_4A30-NMEN = '0'.
  ls_n_aciden_ocorr-n_aciden_ocorr-DE_4A30-nwomen = '0'.
  ls_n_aciden_ocorr-n_aciden_ocorr-SUP_30-NMEN = '0'.
  ls_n_aciden_ocorr-n_aciden_ocorr-SUP_30-nwomen = '0'.
  ls_n_aciden_ocorr-n_aciden_ocorr-MORTAL-NMEN = '0'.
  ls_n_aciden_ocorr-n_aciden_ocorr-MORTAL-nwomen = '0'.
  ls_n_aciden_ocorr-n_aciden_perdi-de_1a3-nmen = '0'.
  ls_n_aciden_ocorr-n_aciden_perdi-de_1a3-nwomen = '0'.
  ls_n_aciden_ocorr-n_aciden_perdi-de_4a30-nmen = '0'.
  ls_n_aciden_ocorr-n_aciden_perdi-de_4a30-nwomen = '0'.
  ls_n_aciden_ocorr-n_aciden_perdi-sup_30-nmen = '0'.
  ls_n_aciden_ocorr-n_aciden_perdi-sup_30-nwomen = '0'.
  ls_n_aciden_ocorr-n_aciden_perdi_ant-de_1a3-nmen = '0'.
  ls_n_aciden_ocorr-n_aciden_perdi_ant-de_1a3-nwomen = '0'.
  ls_n_aciden_ocorr-n_aciden_perdi_ant-de_4a30-nmen = '0'.
  ls_n_aciden_ocorr-n_aciden_perdi_ant-de_4a30-nwomen = '0'.
  ls_n_aciden_ocorr-n_aciden_perdi_ant-sup_30-nmen = '0'.
  ls_n_aciden_ocorr-n_aciden_perdi_ant-sup_30-nwomen = '0'.
  ls_ee_estabs-n_aciden_ocorr = ls_n_aciden_ocorr.
************************************************************
  DATA ls_doencas TYPE ppts_unique_rp_sst_doencas_az.
  APPEND ls_doencas TO ls_ee_estabs-n_aciden_ocorr-doenc_partic.
  APPEND ls_doencas TO ls_ee_estabs-n_aciden_ocorr-doenc_conf.
************************************************************
*...
************************************************************
  ls_ee_estabs-estab_id = '54321'.
  ls_ee_estabs-n_medio_trab = ls_n_medio_trab.
  ls_ee_estabs-nat_mod = ls_nat_mod.
  ls_ee_estabs-pes_serv = ls_pes_serv.
  APPEND ls_ee_estabs TO lt_ee_estabs.
  cs_sst-ee_estabs = lt_ee_estabs.
ENDMETHOD.
  • Implementation example of method GET_DATA_ANEXO_SST_AZ:
METHOD CL_HR_PT_UNIQUE_RP_SST~GET_DATA_ANEXO_SST_AZ.
  DATA lt_ee_estabs TYPE pptt_unique_rp_ee_estabs_az.
  DATA ls_ee_estabs TYPE ppts_unique_rp_ee_estabs_az.
************************************************************
  DATA ls_n_medio_trab TYPE ppts_unique_rp_sst_av_ee_az.
  ls_n_medio_trab-vinc_trab-nmen = '10'.
  ls_n_medio_trab-vinc_trab-nwomen = '20'.
  ls_n_medio_trab-vinc_trab_fora_tmp-nmen = '3'.
  ls_n_medio_trab-vinc_trab_fora_tmp-nwomen = '4'.
  ls_n_medio_trab-vinc_trab_fora_ocas-nmen = '5'.
  ls_n_medio_trab-vinc_trab_fora_ocas-nwomen = '6'.
  ls_n_medio_trab-vinc_trab_fora_outros-nmen = '7'.
  ls_n_medio_trab-vinc_trab_fora_outros-nwomen = '8'.
  ls_n_medio_trab-outros_ced-nmen = '9'.
  ls_n_medio_trab-outros_ced-nwomen = '10'.
  ls_n_medio_trab-outros_ind-nmen = '11'.
  ls_n_medio_trab-outros_ind-nwomen = '12'.
  ls_n_medio_trab-outros_ocas-nmen = '13'.
  ls_n_medio_trab-outros_ocas-nwomen = '14'.
  ls_n_medio_trab-total = '100'.
************************************************************
  DATA ls_nat_mod TYPE ppts_unique_rp_sst_nat_mod_az.
  ls_nat_mod-organi_serv_seg = '1'.
  ls_nat_mod-organi_serv_saude = '1'.
  ls_nat_mod-n_trab_afect = '2'.
  ls_nat_mod-org_no_estab = 'C'.
  ls_nat_mod-organi_dom_seg = '1'.
  ls_nat_mod-organi_dom_saude = '2'.
  ls_nat_mod-compl = '1'.
************************************************************
*...
************************************************************
  ls_ee_estabs-estab_id = '12345'.
  ls_ee_estabs-n_medio_trab = ls_n_medio_trab.
  ls_ee_estabs-nat_mod = ls_nat_mod.
  APPEND ls_ee_estabs TO lt_ee_estabs.
  cs_sst-ee_estabs = lt_ee_estabs.
ENDMETHOD.





CL_GUI_FRONTEND_SERVICES - Frontend Services   PERFORM Short Reference  
This documentation is copyright by SAP AG.

Length: 30534 Date: 20240523 Time: 192028     sap01-206 ( 159 ms )