<aside> 💡 Orientações baseadas no blog abaixo.

How to create a Payroll Function in SAP HR

</aside>


Na transação PE04, criar a função:

Untitled

Veja que o nome standard para o Form é “FU_FUPY”. Esse deverá ser o nome do FORM responsável por executar esta função de folha no include que criaremos.

Untitled

Cada parâmetro na lista de parâmetros pode ter entradas válidas, assim como um matchcode. Basta selecionar o parâmetro e clicar na lupa, a tela abaixo aparecerá com uma listagem vazia. Basta criar os valores que precisar e então será possível recuperá-los no Form.

Untitled

Ao salvar e ativar a função, uma nova linha será criada no include PCASFXX0, onde XX é o país selecionado na atribuição de países acima. No caso, somente Brasil foi marcado então somente o include PCASFBR0 foi modificado.

Untitled

O include principal deve ser incluído no include PCBURZBR0 para que o Form seja visível para a função de folha _FUPY. (Caso outros países fossem selecionados, outros includes teriam que ser alterados, seguindo a mesma regra de países mencionada anteriormente).

Untitled

Include ZHCMRP0031

Contém o Form principal a ser chamado pela função de folha de pagamento.

*---------------------------------------------------------------------*
*                         INTELLIGENZA                                *
*---------------------------------------------------------------------*
* Cliente....: SGISARAH                                               *
* Autor......: Alexandre Leite                                        *
* Data.......: 05/02/2022                                             *
* Descrição..: Include para Função de Folha de Pagamento _FUPY        *
* Projeto....: SGI-SARAH                                              *
*---------------------------------------------------------------------*
* Histórico das modificações                                          *
*---------------------------------------------------------------------*
* Autor......: Alexandre Leite                                        *
* Observações: Desenvolvimento inicial                                *
*---------------------------------------------------------------------*

* Manter lógicas de processamento específicas em includes separados,
* mantendo a organização dos códigos e processos.

* O nome do include não interferirá no funcionamento, contanto que o FORM dentro
* dele possua o nome correto. Form PROCESS_YYYY, onde YYYY é o parâmetro cadastrado na PE04.

* Sugestão para nome de include: ZHCMRP0031_XXXX onde XXXX é a descrição do processo.
* Inserir a instrução de include abaixo após criação.
include: zhcmrp0031_utilitarios,
         zhcmrp0031_provisao_valores.

form fu_fupy.

* Ao processar o parâmetro DECI, o form PROCESS_DECI do include correspondente será chamado
* e sua lógica específica será executada.

  data(lv_perform) = |PROCESS_{ as-parm1 }|.
  perform (lv_perform) in program (sy-cprog) if found.

endform.

Include ZHCMRP0031_UTILITARIOS

Criado com algumas funções genéricas para auxiliarem durante o desenvolvimento.

*---------------------------------------------------------------------*
*                         INTELLIGENZA                                *
*---------------------------------------------------------------------*
* Cliente....: SGISARAH                                               *
* Autor......: Alexandre Leite                                        *
* Data.......: 05/02/2022                                             *
* Descrição..: Forms utilitários para auxiliar no desenvolvimento das *
*              funções de folha de pagamento                          *
* Projeto....: SGI-SARAH                                              *
*---------------------------------------------------------------------*
* Histórico das modificações                                          *
*---------------------------------------------------------------------*
* Autor......: Alexandre Leite                                        *
* Observações: Desenvolvimento inicial                                *
*---------------------------------------------------------------------*

form log_append_error_message using iv_type iv_text1 iv_text2 iv_text3 iv_text4.

* Mensagem de erro
  if sw_prot eq abap_true.
    perform display_warning_error_log using '00' iv_type '398' iv_text1 iv_text2 iv_text3 iv_text4.
  endif.

endform.

form log_append_simple_message using iv_level iv_text iv_intensity iv_empty_lines.

* Legenda dos parâmetros:
*
* iv_level       = Nó.
* iv_text        = Texto a ser exibido, até 50 caracteres.
* iv_intensity   = Intensidade de exibição da linha no LOG, a linha fica destacada.
* iv_empty_lines = Pulo de linhas.

  check iv_text is not initial.

* Mensagem de log formatada
  if sw_prot eq abap_true.
    clear ptext_wa.
    ptext_wa-tlength1    = strlen( iv_text ).
    ptext_wa-text1       = iv_text.
    ptext_wa-tlevel      = iv_level.
    ptext_wa-tintensiv1  = iv_intensity.
    ptext_wa-empty_lines = iv_empty_lines.
    append ptext_wa to ptext.
  endif.

endform.

Include ZHCMRP0031_PROVISAO_VALORES

Responsável por tratar os parâmetros DECI e FERI, relacionados ao processo de Provisão de Valores.