<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:

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.

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.

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.

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).

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.
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.
Responsável por tratar os parâmetros DECI e FERI, relacionados ao processo de Provisão de Valores.