Escolar Documentos
Profissional Documentos
Cultura Documentos
Pag 1 Programacao em Abap HR
Pag 1 Programacao em Abap HR
Pag 1 Programacao em Abap HR
PROGRAMAÇÃO
EM
ABAP HR
Pág. 2
SUMÁRIO
INTRODUÇÃO ......................................................................................................................................................... 3
INFOTIPOS............................................................................................................................................................... 4
MACROS ................................................................................................................................................................. 24
FUNÇÕES ............................................................................................................................................................... 28
CLUSTERS ............................................................................................................................................................. 31
ANOTAÇÕES: ........................................................................................................................................................ 53
Pág. 3
INTRODUÇÃO
Benefits
Enrollment
Recruitment Hiring
Training
H
O
T
E
L
Time Travel
statement
Employee Development
& Salary Administration Payroll Time Reporting
& Shift Planning
SAP AG 1999
Divisão do módulo de HR :
Estrutura Organizacional:
Objetos:
O O – Organizational Unit – Áreas de Negócio, Setores
C – Job - Cargos Genérico que descreve o Específico
T O S – Position – Cargo Específico
T – Task – Descrições das atividades dos cargos
A – Work Place – Identifica o local físico onde o trabalho acontece
C S T
K – Cost Center – Objeto de CO que pode ser relacionado com os objetos O ou S,
sempre em PD.
A P – Person – Funcionários da Empresa, são criados em PA.
US – User – Usuários do Sistema SAP R/3.
Pág. 4
INFOTIPOS
Definição: conjunto de informações logicamente agrupadas.
Delimitação de Datas: cada infotipo, usa uma data de início(BEGDA) e de término(ENDDA) para
identificar o período de validade.
Data Selection
Start End
Na verdade, um infotipo é definido como uma tabela que agrupa os dados de acordo com as suas
características. Por exemplo:
Estrutura de um infotipo:
Pág. 5
SAP AG 1999
A estrutura Pnnnn é utilizada como uma interface entre o programa e o banco de dados. Ela contém os
campos de dados da estrutura PSnnnn e os campos de dados que ocorrem em todo infotipo (PSHD1).
O campo MANDT não é obrigatório nesta estrutura.
Estrutura PSKEY: contém os campos chaves de mestre de pessoal ( PERNR, INFTY, SUBTY, ENDDA,
BEGDA)
Ligação Temporal(Time Constraint): como os infotipos são tabelas, a ligação temporal é a forma com a
qual indicamos que o infotipo pode ter registros iguais no mesmo intervalo de tempo. Os valores
possíves de ligação temporal são:
Pág. 6
Transação SE11
Crie a estrutura com o nome PS9nnn
Insira a descrição breve
Pág. 7
Transação SE11
Crie a estrutura com o nome P9nnn
Insira a descrição breve
Insira os seguintes includes:
.INCLUDE PSHDR
.INCLUDE PS9XXX
Verificar , Salvar e Ativar
Transação SE11
Crie a tabela com o nome PA9nnn ou PB9nnn
Insira a descrição breve
Em classe de entrega, informe "A", para a tabela ser utilizada como dados mestres
e para movimentação
Marcar com a "Atualização de tabela permitida"
Insira os seguintes campos na tabela:
MANDT MANDT
.INCLUDE PSHD1
.INCLUDE PS9XXX
Verificar , Salvar e Ativar
Transação SE11
Crie a estrutura com o nome Z9nnn (No Stardard estas estruturas são
encontradas normalmente com a letra "Q")
Insira a descrição breve
Insira o nome dos campos que se deseja concatenar na tela do infotipo. Serão
utilizados, obviamente os mesmos campos inseridos na estrutura PS9xxx
Insira o elemento de dados correspondente ao campo que se está inserindo,
utilizados na estrutura PS9xxx
Verificar , Salvar e Ativar
Transação PM01
Pág. 8
Transação SE51
Digite o programa MP9nnn00, onde 9nnn é o infotipo criado
Digite o nº da tela: 2000 para tela de entrada de dados, ou 3000 para lista de
dados
Salve a tela depois das alterações
Gerar novamente
Transação PA30
Colocar no campo <No. Pessoal> o número do empregado
Colocar o número do novo infotipo no campo <Infotipo>
Selecionar o botão Criar
A tela com os dados do novo infotipo será exibida para entrada dos dados
A transação PA20 é apenas de consulta
Crie na transação PE03 uma feature utilizada com a seguinte característica (cada subinfotipo tem um nó)
Na tabela T588M , crie uma entrada na tela 2000 do Module pool, para cada subinfotipo
Pág. 11
Aqui você pode habilitar e desabilitar campos que deverão ser exibidos em cada tela do subinfotipo
Ampliação de infotipo:
Transação PM01
Colocar o infotipo que será ampliado no campo < Nº infotipo>
Pág. 13
OBS: Tanto na criação como na ampliação de infotipo existirão uma request de workbench e uma de
customização.
3. Authorization check
SAP AG 1999
O banco de dados lógico permite uma avaliação conveniente e de alta performance das tabelas
transparentes.
Obtenção dos dados: os dados pessoais de cada funcionário são carregados na memória
principal e ficam a disposição para o processo.
Pré-seleção: através de uma tela de seleção , podemos selecionar funcionários de acordo
com um critério organizacional.
Verificação de Autorização: o sistema verifica se o usuário que está efetuando o
processamento possui autorização para os dados que devem ser lidos. Há uma
verificação de autorização pessoal e de dados. Primeiro o sistema verifica se o usuário
possui autorização para o empregado com base nos critérios de atribuição organizacional.
Em seguida, é verificado se o usuário está autorizado a processar os infotipos do relatório
especificado.
1. Data Retrieval
Pág. 15
Data Retrieval
INFOTYPES: 0001,
0002,
0007.
"Organizational Assignment"
"Personal Data"
"Planned Working Time"
GET PERNR.
Declaração de infotipo
O banco de dados normalmente não possui somente um registro para infotipo e número pessoal, mas
diversos registros com diferentes períodos de validade. Os infotipos são dependentes de tempo, uma
vez que os dados correspondentes se modificam ao longo do tempo. Por esse motivo, apenas uma
estrutura ou área de trabalho não seria suficiente para o fornecimento de dados de infotipo na memória
principal. Assim, a instrução INFOTYPES é utilizada para criar uma tabela interna para cada um dos
infotipos listados. A estrutura dessa tabela corresponde aquela do infotipo relevante.
Recuperação de dados
Através da instrução GET PERNR, são preenchidas as tabelas internas de infotipos, declaradas para
cada empregado na instrução INFOTYPES.
GET PERNR.
Os dados são recuperados no momento GET PERNR. A ação é executada para todos os números
pessoais selecionados com base nas entradas da tela de seleção. O momento deve ser visualizado
como um loop através dos números pessoais selecionados. A tabela interna de infotipos é preenchida
com todos os registros desde a data de seleção inferior (low) até a data superior (high).
Obs: PERNR é uma estrutura do Dicionário de Dados. Deve-se declarar essa estrutura através da
instrução TABLES.
Processing Master Data
Pág. 16
TABLES: PERNR.
INFOTYPES: 0001, "Actions
0002, "Personal Data
0006, "Addresses
....
GET PERNR.
PROVIDE * FROM P0002 BETWEEN PN-BEGDA AND PN-ENDDA.
WRITE...
ENDPROVIDE.
Um relatório HR que utiliza o banco de dados lógico PNP possui a seguinte estrutura básica:
REPORT ZHRRPxxx.
TABLES: PERNR.
INFOTYPES: 0001. “Atribuição Organizacional
GET PERNR.
PROVIDE * FROM P0001 BETWEEN PN/BEGDA AND PN/ENDDA.
SAP AG 1999
WRITE: / P0001-PERNR,
P0001-STELL,
P0001-BEGDA,
P0001-ENDDA.
ENDPROVIDE.
Esse relatório avalia os registros do infotipo Atribuição Organizacional no período de seleção de dados
especificado.
Após o momento GET PERNR, as tabelas internas dos infotipos estão carregadas com os registros e
prontas para processamento.
As tabelas internas são geralmente processadas linha a linha através da instrução LOOP. Essas
tabelas possuem conjuntos de funções que permitem um processamento especial.
Essas tabelas são definidas para intervalos de tempo específicos. Em HR, esses intervalos são de
tempos ou períodos de validade. O processamento dos registros de infotipo é dependente do período
de seleção de dados entrado na tela de seleção. Os dados de diversos infotipos podem ser
processados ao mesmo tempo e disponibilizados para um período de tempo parcial específico.
ENDPROVIDE.
A relação entre o infotipo e o período de seleção de dados da tela de seleção é estabelecida através
das variáveis PN/BEGDA e PN/ENDDA. Quando estas datas não são preenchidas na tela de seleção, o
BEGDA assume 01/01/1800 e o ENDDA assume 31/12/9999.
Formas de LOOP:
Loop Nesting
Pág. 18
GET PERNR.
PROVIDE * FROM P0002 BETWEEN PN-BEGDA
AND PN-ENDDA. Infotype
WRITE... loop
ENDPROVIDE.
or:
LOOP AT P0002 WHERE ENDDA GE PN-BEGDA
AND BEGDA LE PN-ENDDA. Infotype
Employee
WRITE... loop
loop
ENDLOOP.
END-OF-SELECTION.
Um Join processa registros de dois ou mais infotipos. Os dados desses infotipos são fornecidos para
um período parcial específico.
Por exemplo: É necessário um relatório informando qual era o cargo e o endereço de um funcionário em
um período de tempo.
Se os dados de endereço e cargo forem fornecidos para períodos parciais específicos, ocorrem os
seguintes casos:
Os períodos parciais dos infotipos do join são definidos nos campos BEGDA e ENDDA.
Os dados de cada infotipo do join devem estar disponíveis durante todo o período de validade do
infotipo. Os quadros temporais dos registros de infotipo não podem se sobrepor; dessa forma, o join não
pode conter infotipos com ligação temporal “três”.
Os quadros temporais dos registros se sobrepõem se um infotipo for lido sem quaisquer restrições de
subtipo. Por exemplo, o infotipo ENDEREÇOS (infotipo 0006), tem os subtipos residência permanente,
residência secundária e endereço residencial.
Às vezes, não há dados disponíveis para um determinado infotipo no período parcial selecionado.
Períodos de validade não podem se sobrepor, mas pode haver intervalos de tempo.
A variável Pnnnn_VALID reconhece se os dados estão disponíveis para o infotipo Pnnnn no período
parcial especificado. Nesse caso, a variável Pnnnn_VALID contém o valor ‘X”.
Esse exemplo de ocorrência de intervalo de tempo, pode existir entre os infotipos 0002 (Dados
Pessoais) e 0006 (Endereços).
REPORT ZHRRPxxx.
TABLES: PERNR.
INFOTYPES: 0002, 0006.
GET PERNR.
PROVIDE * FROM P0002
* FROM P0006 BETWEEN PN/BEGDA AND PN/ENDDA
WHERE P0006-SUBTY EQ ‘1’. “Residência permanente
IF P0006_VALID EQ ‘X’.
WRITE:/ PERNR-PERNR, P0002-NACHN, P0006-ORT01,
P0006-BEGDA, P0006-ENNDA.
ENDIF.
ENDPROVIDE.
Nesse caso é gerada uma lista apenas se estiverem disponíveis dados de endereço. O período em que
houver somente dados pessoais, é suprimido.
2. Screening
Como os critérios de seleção necessários dependem do relatório, o usuário deve definir a dimensão
da tela de seleção. Para isso é necessário atribuir o relatório a uma classe de relatório.
Com a atribuição de relatórios de base de dados lógico PNP a classes de relatório, pode-se modificar o
aspecto da tela de seleção. Desse modo é possível suprimir campos de entradas não necessários do
ponto de vista empresarial em alguns relatórios.
Pág. 21
No caso em que a tela de seleção standard SAP não satisfaça as necessidades, existe a possibilidade
de criar uma ou várias classes de relatórios próprias e assim estabelecer o aspecto de seleção para
essas classes.
Todos os relatórios standard HR já estão atribuídos às classes de relatórios SAP. A todos os relatórios
do cliente, que não esteja atribuída nenhuma classe de relatório, por default é atribuída a classe
‘00000000’ própria do cliente, caso ela exista; senão, é atribuída a classe de relatório standard SAP
‘ ‘.
SEPDAnnn
A classe de report é selecionada na tela de características do programa. Quando você coloca o banco
de dados lógico, ele disponibiliza um botão Classe de Report HR que uma vez selecionado, a tela
abaixo será exibida:
3. Authorization Check
Pág. 23
Authorization Check
Report
Personal data
Authorization check
-
+
SAP AG 1999
O módulo de HR faz uma distinção entre dois tipos de autorização, uma para pessoas e outra para
dados.
Quando não estiver utilizando o banco de dados lógico , utilizar o módulo de função:
HR_CHECK_AUTHORITY_INFTY.
EXERCÍCIO_B: Criar uma lista de funcionários , utilizando o banco de dados lógico PNP. Os seguintes
campos deverão ser exibidos:
EXERCÍCIO_C: Criar uma lista de candidatos , utilizando o banco de dados lógico PAP. Os seguintes
campos deverão ser exibidos:
MACROS
Assim como os subprogramas e os módulos de função, as macros podems ser usadas para modularizar
programas. Elas são muito utilizadas no módulo de HR.
Elas podem ser utilizadas em qualquer programa que utiliza banco de dados lógico. Em programas
que não utilizam o banco de dados lógico, o include que contém a macro desejada deve ser
mencionado. Por exemplo, para o banco de dados lógico PNP, o include que contém macros é o
DBPNPMAC.
As macros definidas na tabela TRMAC podem ser utilizadas por todos os relatórios.
Dependendo do relatório a ser impresso, geralmente não é necessário todos os registros de infotipos.
Nesse caso utilizamos algumas das instruções macros abaixo:
ou
Essas instruções disponibilizam o registro mais recente ou mais antigo no período de seleção de dados
PN/BEGDA a PN/ENDDA.
January December
Table
Pnnnn
GET PERNR.
RP_PROVIDE_FROM_LAST <Pnnnn> SPACE PN-BEGDA PN-ENDDA.
IF PNP-SW-FOUND = 1.
WRITE...
ENDIF.
SAP AG 1999
Lista de Macros: abaixo seguem algumas macros ligadas ao banco de dados lógico PNP, que estão na
tabela TRMAC. Algumas delas são utilizadas em eventos específicos.
Data definition
RP-LOWDATE-HIGHDATE ( define as constants – LOWDATE (18000101) e HIGHDATE(99991231)
para comparações)
Ex: RP-LOWDATE-HIGHDATE.
...
GET PERNR.
...
IF Pnnnn-ENDDA EQ HIGH-DATE.
Initialization
RP-SEL-EIN-AUS-INIT ( esta macro permite que somente os funcionários ativos sejam selecionados)
Pág. 27
Start-of-selection
RP-SET-NAME-FORMAT
RP-FETCH-ALTER-PERID
RP-SET-KEY-DATE
Top-of-page
RP-STICHTAG
RP-ZEITRAUM
1. Obtenção de dados:
RP-READ-INFOTYPE
RP-READ-T001P
RP-READ-T5D0P
RP-READ-PAYROLL-DIR
2. Processamento de dados:
RP-PROVIDE-FROM-FRST
RP-PROVIDE-FROM-LAST
3. Modificação de dados:
RP-UPDATE
Em casos excepcionais (Ex.: Infotipos próprios do cliente), pode ser necessário que sejam efetuados
relatórios utilitários para efetivar uma modificação direta nos dados pessoais nas tabelas da base de
dados.
Pág. 28
Exemplo:
GET PERNR.
PROVIDE * FROM TAB_OLD WHERE...
(Nesse ponto, efetua-se as modificações necessárias)
TAB_NEW[ ] = TAB_OLD[ ].
APPEND TAB_NEW. (Efetua a gravação na tabela alternativa)
ENDPROVIDE.
RP-UPDATE TAB_OLD TAB_NEW.
A atualização da base de dados se efetua com a macro RP-UPDATE, utilizando como parâmetros a
tabela interna TAB_OLD com os registros ainda não modificados e a tabela interna TAB_NEW com os
registros modificados.
Obs: As modificações de chaves da tabela, deletar ou inserir dados não são possíveis.
Não são efetuadas verificação de consistência dos dados modificados, por esse motivo é
recomendado que os dados sejam alterados através de um batch-input.
EXERCÍCIO_D: Criar uma lista de funcionários , utilizando o banco de dados lógico PNP. Os seguintes
campos deverão ser exibidos:
RP-PROVIDE-FROM-LAST e RP-READ-T001P
FUNÇÕES
Dentro do HR, você pode ler registros de um infotipo sem a utilização de banco de dados lógico. Para
isto, utlizamos a função HR_READ_INFOTYPE.
Reading Infotypes Without Logical DB (1)
Pág. 29
PAnnnn
INFOTYPES: <nnnn>.
...
CALL FUNCTION
'HR_READ_INFOTYPE'...
SAP AG 1999
INFOTYPES: 0002.
DATA: return LIKE SY-SUBRC.
IMPORTING
SUBRC = return
TABLES
INFTY_TAB = P0002
EXCEPTIONS
INFTY_NOT_FOUND = 1
OTHERS = 2.
SAP AG 1999
A função HR_READ_INFOTYPE tem como objetivo ler os registros de uma pessoa ( funcionário ou
candidato) de acordo com o critério de seleção. Os valores são retornados em tabelas internas
contendo a estrutura da tabela do infotipo.
A maioria das funções em HR tem as duas letras iniciais começadas por HR, RH ou RP. Para encontrá-
las utilizar a transação SE37.
Pág. 30
Exemplos de funções:
CLUSTERS
Database Tables in HR
Accounting results
PCL2 (Time, trip costs, payroll)
PCL4 Documents
SAP AG 1999
As tabelas PCLn são tipos de tabelas de importação e exportação de dados. Elas são definidas no
programa através do comando TABLES.
As tabelas da base de dados do tipo PCLn estão divididas em subáreas conhecidas como clusters de
dados.
O file PCL1 possui informações originadas no registro de tempos, por exemplo, folhas de salários por
rendimento ou textos de infotipo suplementares.
O file PCL2 possui informações derivados, como resultados do cálculo da folha de pagamento. Possui
também todos os esquemas de folha de pagamento gerados.
B1 DADOS TEMPORAIS
PC CALENDÁRIO PESSOAL
CD CLUSTER-DIRECTORY
PS ESQUEMA GERADO
TY DB Table
TEXTOS PARA OS INFOTIPOS DOS
Administration/ PCLnCANDIDATOS
PCLn
IMPORT TABLES: PCLn.
A1 A2
EXPORT
Os dados de diferentes áreas de aplicação HR são arquivados em cluster nos files PCLn.
Cada área de aplicação deve possuir um nome de cluster de dois caracteres . Também deve possuir
uma estrutura chave; 40 bytes do campo SRTFD estão disponíveis para essa estrutura.
Quando um registro é exportado para o file PCLn, a ID de cluster é gravada no campo RELID e o valor
chave no campo SRTFD.
RPCnxyz0 onde:
Pág. 34
RPC = fixo
n = 1,2,3 ou 4 (para PCL1, PCL2, PCL3 ou PCL4)
xx = ID do cluster
y = agrupamento de países ( tabela T500L)
A estrutura chave do cluster é armazenada em um field string xy-KEY onde o número pessoal é o
primeiro elemento.
CLUSTER CHAVE XY
RA RX-KEY
B1 B1-KEY
G3 G3-KEY
XA RX-KEY
A chave RX-KEY é usada para todos os clusters Rx e Xx. Em todos os outros casos, o nome da chave
xy corresponde à chave do cluster.
Pág. 35
FOLHA DE PAGAMENTO
PAnnnn
PAYROLL PCL2
DRIVER
HBRCALC0 - Brasil
PCL2 xy
xy
PAYROLL RESULTS
SAP AG1999
Rubricas são os valores que compõe o pagamento do funcionário. Como exemplo desconto de
INSS, bonificação, vale refeição, etc..
Algumas são valores fixos e outras são calculadas em tempo de execução do programa de cálculo da
folha de pagamentos.
Tabela de rubricas: T512W.
A forma como a folha de pagamento é processada varia de empresa para empresa. Algumas
possuem benefícios e descontos que outras não possuem, conforme o ramo de atuação, política interna
e uma série de outros fatores.
Dentre esses descontos e benefícios, alguns podem ser eliminados, outros são criados.
Imaginem se pensarmos a nível global.
Como tratar os fatores da legislação trabalhista que mudam com freqüência para cada país?
Para possibilitar a implementação dessa série de mudanças no modo como a folha é calculada, sem a
necessidade de alteração do programa standard, foi criado o Esquema de Cálculo de Pessoal.
Pág. 36
Nota É importante ressaltar que mesmo com a existência do esquema, não foi possível
manter uma única versão do programa da Folha de Pagamento para todos os países. Existe um
standard para específicos para alguns países ou grupo de países. O nome do standard utilizados pelo
Brasil é HBRCALC0.
O esquema nada mais é do que um conjunto de regras que informam ao programa de Cálculo
de Folha de Pagamento como o mesmo deve trabalhar para apurar o salário de um funcionário. O
esquema é definido como um conjunto de instruções. Composto de uma série de funções, algumas
destas funções executam processamentos diretos e outras processam regras. As regras são comandos
que possibilitam realizar cálculos, envolvento informações numéricas e também informações cadastrais
dos funcionários.
Para criação de uma nova função, utilizar o símbolo % como caracter inicial.
Colocando o nome da função na tela inicial da transação PE04, clicar no botão <Criar>. Em seguida, a
tela abaixo será exibida para definição das características da função. O consultor funcional é
responsável por esta definição.
Pág. 37
O código da nova função fica em um programa específico PCBURXX0, onde XX é variável. No caso do
Brasil, o include que contém as funções é o PCBURBR0. Este include exige chave de acesso na
primeira vez que é utilizado.
O nome do FORM consiste de fuxxxxx onde xxxxx é o nome da função criada na PE04.
*----------------------------------------------------------------------*
* Include ZPCBURZBR0 *
*----------------------------------------------------------------------*
*---------------------------------------------------------------------*
* Calculo da DMA - Diferença do mês anterior
*---------------------------------------------------------------------*
FORM fu%test.
DATA:
w_dtant LIKE p0008-begda,
w_2000 LIKE p0015-betrg.
CONSTANTS:
c_2000 LIKE p0015-lgart VALUE '2000'.
*--Leitura do infotipo
rp_read_infotype pernr-pernr 0008 p0008 '18000101' '99991231'.
w_2000 = p0008-bet01.
ELSE.
w_2000 = p0008-bet01 * p0008-divgv.
ENDIF.
ENDIF.
ENDLOOP.
it-lgart = c_2000.
it-betrg = w_2000.
APPEND it.
ENDFORM. "FU%TEST
Cuidado Como estes forms são utilizados pelo DRIVE da folha de pagamento algumas regras
devem ser seguidas:
Não utilizar o comando MESSAGE para emissão de mensagens. Ao invés disso é necessário a
chamada do FORM FILL_MSGTAB. Isso porque além da folha tratar vários funcionários de
uma vez, o que dificultaria a visualização das mensagens, ao chamar esse form indicando erro, o
processamento para o funcionário corrente é abortado e seu número é separado na árvore de log
como funcionários processados com erro. Todas as mensagens emitidas via FILL_MSGTAB são
exibidas na árvore de resultado do processamento.
Modelo de chamada do FORM:
"Insere a mensagem
CLEAR ERROR_PTEXT.
ERROR_PTEXT-TLEVEL = '1'.
ERROR_PTEXT-TINTENSIV1 = '0'.
ERROR_PTEXT-TLENGTH1 = STRLEN( $TEXT1 ).
ERROR_PTEXT-TEXT1 = $TEXT1.
IF NOT $TEXT2 IS INITIAL.
ERROR_PTEXT-TLENGTH2 = STRLEN( $TEXT2 ).
ERROR_PTEXT-TEXT2 = $TEXT2.
ERROR_PTEXT-TINTENSIV2 = '0'.
ENDIF.
IF NOT $TEXT3 IS INITIAL.
ERROR_PTEXT-TLENGTH3 = STRLEN( $TEXT3 ).
ERROR_PTEXT-TEXT3 = $TEXT3.
ERROR_PTEXT-TINTENSIV3 = '0'.
ENDIF.
IF NOT $TEXT4 IS INITIAL.
ERROR_PTEXT-TLENGTH4 = STRLEN( $TEXT4 ).
ERROR_PTEXT-TEXT4 = $TEXT4.
ERROR_PTEXT-TINTENSIV4 = '0'.
ENDIF.
APPEND ERROR_PTEXT.
PERFORM FILL_MSGTAB TABLES ERROR_PTEXT
PTEXT
USING SPACE "pernr dependent
PERNR-PERNR
APER_NUMB
P_MESS_POS
'E' "tipo da mensagem (E,I,S)
Pág. 39
'A'.
IF SW_PROT = PBR99_ON.
PERFORM LOG_GET_BACK_PTEXT(H37PLOG0) TABLES PTEXT.
PERFORM LOG_REFRESH_PTEXT(H37PLOG0).
ENDIF.
Para exibir no LOG de processamento da folha o conteúdo das tabelas RT, IT e OT é necessário
alimentar a tabela T52BW – INPUT E OUTPUT DE FUNÇÃO via transação SM30.
Exemplo
Exemplo de como carregar o cluster dos funcionários:
É necessário informar o Banco de Dados Lógico PNP nos atributos do programa.
REPORT ZEXEMPLO_CLUSTER.
* Declarações ----------------------------------------------------------
TABLES: PCL1, "Cluster 1 HR
PCL2, "Cluster 2 HR
ITCPP,
PERNR. "Funcionários
*- Includes ------------------------------------------------------------
INCLUDE PCTYPBR0.
INCLUDE PCCLSBR1. "HRMS BR cluster data
INCLUDE PCCLSBR0. "HRMS BR cluster reading
INCLUDE PCTYPBR0. "Type pools for declaring payroll data
INCLUDE PCXRXBR0. "Macros para recuperação do Cluster
DATA:
SUBRC LIKE SY-SUBRC,
FBEG LIKE SY-DATUM, "Início período
FEND LIKE SY-DATUM. "Fim período
*- Eventos -------------------------------------------------------------
START-OF-SELECTION.
"Move o 1o. dia e o último do mês informado no parâmetro para FBEG e
"FEND
CONCATENATE PANO PMES '01' INTO FBEG.
CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS'
EXPORTING
DAY_IN = FBEG
Pág. 40
IMPORTING
LAST_DAY_OF_MONTH = FEND.
END-OF-SELECTION.
ANEXO I – INFOTIPOS PA
CAMPO DESCRIÇÃO
PERNR No. Pessoal
MASSN Tipo de Medidas
MASSG Motivo da Medida
STAT1 Status específico do cliente
STAT2 Status ocupação
STAT3 Status pagamento especial
BUKRS Empresa
WERKS Área de Recursos Humanos
PERSG Grupo de empregados
PERSK Subgrupo de empregados
VDSK1 Chave de organização
Pág. 49
GSBER Divisão
BTRTL Subárea de Recursos Humanos
JUPER Pessoa Jurídica
ABKRS Área de processamento de Folha de Pagamento
ANSVH Vínculo empregatício
KOSTL Centro de custo
ORGEH Unidade Organizacional
PLANS Posição
STELL Função
MSTBR Área mestre
SACHA Encarregado folha de pagamento
SACHP Encarregado para dados mestre de pessoal
SACHZ Encarregado do registro de horas
SNAME Nome do empregado
ENAME Nome editado do empregado
OTYPE Categoria do Objeto
SBMOD Grupo de encarregados
KOKRS Área de contabilidade de custos
FISTL Centro Financeiro
GEBER Fundo
MASNG Medida, Motivo da medida
STATU Campo concatenado: status 1, 2 e 3
XBWBK Área RH, Subárea RH, Centro Custo
KOKTL Área Contabilidade de Custos, Centro Custo
XPGPK Grupo, Subgrupo empregados
SASBA Modif. Encarregado, encarregado folha pag.
SASBP Modif. Encarregado, encarregado pessoal
SASBZ Modif. Encarregado, encarregado tempos
DAYPS Data de início de período de seleção de pessoas
Estrutura APPLICANT
CAMPO DESCRIÇÃO
APLNO No. Pessoal
ENAME Nome editado do empregado
SNAME Nome do empregado
BUKRS Empresa
WERKS Área de Recursos Humanos
BTRTL Subárea de Recursos Humanos
PERSG Grupo de candidatos
PERSK Segmentação de candidatos
RESRF Responsável de pessoal pela candidatura
OFFID Anúncio da Vaga
SPAPL Grupo de candidatos espontâneos
APSTA Status global do candidato
STREA Motivo do status do candidato
MASSN Tipo de ação relativa a candidato
REFEM Código de Referência
RFPER Empregado de Referência
Pág. 50
*&---------------------------------------------------------------------*
*& Report ZHR_TREINA_B00
*& *
*&---------------------------------------------------------------------*
*& Criar uma lista de funcionários
*&
*&---------------------------------------------------------------------
REPORT ZHR_TREINA_B00.
* Tables
tables: PERNR.
* Infotypes
infotypes: 0002. "Registro mestre HR infotipo 0002 (Dados pessoais)
* Evento START-OF-SELECTION
START-OF-SELECTION.
ENDPROVIDE.
*&---------------------------------------------------------------------*
*& Report ZHR_TREINA_C00
*& *
*&---------------------------------------------------------------------*
*& Criar uma lista de candidatos
*&
*&---------------------------------------------------------------------
REPORT ZHR_TREINA_C00.
* Tables
Pág. 51
tables: APPLICANT.
* Infotypes
infotypes: 0002. "Registro mestre HR infotipo 0002 (Dados pessoais)
* Variáveis
data: vg_nome(40) type c.
* Evento START-OF-SELECTION
START-OF-SELECTION.
ENDPROVIDE.
*&---------------------------------------------------------------------*
*& Report ZHR_TREINA_D00
*& *
*&---------------------------------------------------------------------*
*& Determinar uma lista de funcionários com a sua Àrea de Recursos
*& Humanos mais recente
*&---------------------------------------------------------------------
REPORT ZHR_TREINA_D00.
* Tables
tables: PERNR, "Seleções standard para reporting de dados mestre HR
T001P."Áreas/subáreas HR
* Infotypes
infotypes: 0001. "Registro mestre HR: infotipo 0001 (atrib.org.)
* Evento START-OF-SELECTION
START-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Report ZHR_TREINA_E00
*& *
*&---------------------------------------------------------------------*
*& Exibir dados do funcionário sem utilização de Banco de Dados Lógico
*&---------------------------------------------------------------------
REPORT ZHR_TREINA_E00.
* Tables
TABLES: PA0001.
* Infotypes
infotypes: 0002.
* Tabelas Internas
data: begin of t_dados occurs 0,
pernr like p0002-pernr,
cname like p0002-cname,
gbdat like p0002-gbdat,
end of t_dados.
* Parâmetros de Seleção
select-options: s_pernr for pa0001-pernr no intervals.
* Evento START-OF-SELECTION
START-OF-SELECTION.
loop at s_pernr.
clear t_dados.
T_DADOS-PERNR = P0002-PERNR.
T_DADOS-CNAME = P0002-CNAME.
T_DADOS-GBDAT = P0002-GBDAT.
append t_dados.
endif.
endloop.
* Evento END-OF-SELECTION
END-OF-SELECTION.
ANOTAÇÕES: