Seu Template de dados de processamento da folha de pagamento
Seu Template de dados de processamento da folha de pagamento
- Campos de dados estratégicos para análise da folha de pagamento
- Marcos importantes para a descoberta do processo
- Orientações específicas para extração de dados do sistema
Atributos do processamento da folha de pagamento
| Nome | Descrição | ||
|---|---|---|---|
| Atividade Activity | A tarefa ou o evento específico que ocorre no processo da folha de pagamento. | ||
| Descrição Este atributo registra o nome da etapa do processo em execução, como 'Apontamento de horas enviado', 'Simulação da folha de pagamento executada' ou 'Pagamento executado'. Ele serve de base para o mapa do processo e permite que analistas visualizem a sequência de operações realizadas durante o ciclo da folha. Os dados desse atributo são coletados de vários registros, incluindo os logs do Workflow (SWWLOGHIST), os logs de alterações de infotipo (CDHDR/CDPOS) e tabelas específicas de status da folha de pagamento. Durante a extração, são aplicadas convenções de nomenclatura consistentes para converter códigos técnicos de eventos em nomes de atividades compreensíveis para a área de negócios. Por que isso importa Ele define os nós no grafo do processo, permitindo visualizar fluxos, ciclos e variantes do processo. Onde encontrar Derivado do SWWLOGHIST (Workflow), do CDHDR (documentos de alteração) ou das mudanças de status do PA03 (registro de controle). Exemplos Folha de ponto enviadaRemuneração bruta calculadaExceção de auditoria sinalizadaPagamento realizado | |||
| Data e hora do evento EventTimestamp | A data e a hora exatas em que a atividade ocorreu. | ||
| Descrição Este atributo registra o momento exato em que um evento ocorreu, incluindo a data e a hora. Ele é fundamental para calcular métricas baseadas em tempo, como tempo de ciclo, tempo de atravessamento e taxas de processamento entre diferentes etapas do processo. No SAP ECP, os dados vêm de campos de data e hora, como Por que isso importa Ele permite calcular o tempo entre eventos, o que é essencial para identificar gargalos de performance e violações de SLA. Onde encontrar CDHDR-UDATE/UTIME, SWWLOGHIST-WI_CD/WI_CT ou registros de data e hora específicos dos logs de auditoria. Exemplos 2023-10-25T08:30:00Z2023-10-26T14:15:22Z2023-11-01T09:00:00Z | |||
| Registro da folha de pagamento PayrollRecord | Identificador exclusivo que combina o funcionário e o período de pagamento. | ||
| Descrição O registro da folha de pagamento funciona como o identificador central do caso na análise de Process Mining. Ele representa uma execução do processamento da folha para um funcionário específico em um período definido, conectando todas as atividades, desde o envio inicial do apontamento de horas até a entrega final das informações fiscais. No SAP SuccessFactors Employee Central Payroll, esse identificador costuma ser formado pela concatenação do número pessoal (PERNR), do ano da folha de pagamento (PABRJ) e do período da folha (PABRP). Também pode incluir um número de sequência (SEQNR) para diferenciar várias execuções. Esse nível de detalhe permite analisar cada ciclo de pagamento como uma instância distinta e medir com precisão o tempo de ciclo e os erros. Por que isso importa Ele funciona como ID do caso e reúne todos os eventos relevantes para reconstruir o fluxo completo de cada pagamento emitido. Onde encontrar Formado a partir do cluster SAP B2 (resultados da avaliação de tempo) ou das tabelas PC_PAYRESULT (PERNR, PABRJ, PABRP, SEQNR). Exemplos 10023499-2023-1088291022-2024-01-SEQ01US-10293-2023-52 | |||
| Sistema de origem SourceSystem | O sistema de origem dos dados do evento. | ||
| Descrição Este atributo identifica a instância específica do SAP SuccessFactors Employee Central Payroll ou o subsistema conectado de onde os dados foram extraídos. Em ambientes complexos, com vários sistemas de folha de pagamento ou configurações híbridas, esse campo garante a linhagem e a rastreabilidade dos dados. Ele é especialmente útil para analisar dados de diferentes instalações regionais ou comparar a performance entre sistemas legados e migrados. Em geral, é uma string estática configurada durante a extração dos dados. Por que isso importa Ele permite segmentar os dados em ambientes com vários sistemas e ajuda a investigar problemas de qualidade dos dados, identificando sua origem. Onde encontrar ID do sistema (SID) da instalação SAP ou da configuração de extração. Exemplos SAP_ECP_NASAP_ECP_EMEASuccessFactors_Core | |||
| Última atualização dos dados LastDataUpdate | A data e a hora da extração de dados mais recente. | ||
| Descrição Este atributo indica quando o registro de dados foi atualizado pela última vez no modelo de dados de Process Mining. Ele ajuda analistas a entenderem o nível de atualização dos dados e garante que os insights se baseiem em informações atuais. Embora não seja usado diretamente na análise do fluxo do processo, ele é essencial para a governança e a validação dos dados, pois confirma se o Dashboard reflete o estado mais recente do sistema de folha de pagamento. Por que isso importa Ele informa aos usuários sobre a latência dos dados e ajuda a validar se as métricas relatadas estão atualizadas. Onde encontrar Gerado em tempo de execução pelo script de ETL/extração. Exemplos 2023-11-05T00:00:00Z2023-11-05T12:00:00Z | |||
| Área da folha de pagamento PayrollArea | Define o grupo específico da folha de pagamento ao qual o funcionário pertence. | ||
| Descrição A área da folha de pagamento reúne funcionários processados na mesma execução, geralmente de acordo com a frequência de pagamento (por exemplo, mensal ou quinzenal) ou a estrutura organizacional. Esse atributo é essencial para segmentar a análise do processo e comparar a performance entre diferentes grupos de funcionários. No SAP, corresponde ao campo técnico Por que isso importa Ele permite comparar a performance do ciclo da folha de pagamento entre diferentes grupos (por exemplo, funcionários horistas e mensalistas). Onde encontrar Tabela PA0001 (atribuição organizacional), campo ABKRS. Exemplos Quinzenal nos USMensal na AlemanhaFolha de pagamento executiva | |||
| Centro de custo CostCenter | O centro de custo associado ao funcionário. | ||
| Descrição O centro de custo representa o departamento ou a unidade financeira à qual os custos do funcionário são alocados. No Dashboard 'Gargalos na aprovação do apontamento de horas', ele funciona como referência para o departamento e ajuda a identificar quais unidades organizacionais atrasam o ciclo da folha de pagamento. O dado está no infotipo de atribuição organizacional (PA0001), no campo Por que isso importa Ele permite aprofundar a análise por unidade organizacional para identificar departamentos específicos que causam atrasos ou retrabalho. Onde encontrar Tabela PA0001, campo KOSTL. Exemplos CC-1000 FinançasCC-2000 TICC-3000 Vendas | |||
| É automatizado IsAutomated | Indicador que informa se a atividade foi realizada por um usuário do sistema. | ||
| Descrição Este atributo booleano indica se uma etapa específica do processo foi executada por um job em segundo plano ou por um usuário do sistema, em vez de uma pessoa. Ele é essencial para o Dashboard 'Monitoramento da automação de transferências bancárias', que calcula a porcentagem de processamento sem intervenção manual. Em geral, o atributo é derivado da comparação do ID do usuário com uma lista de contas de sistema conhecidas (por exemplo, 'BATCH', 'SAP_WORKFLOW'). Por que isso importa Ele ajuda a medir os níveis de automação e identificar oportunidades para reduzir o trabalho manual. Onde encontrar Derivado do ID do usuário (por exemplo, se User IN ['BATCH', 'SYSTEM'], então true). Exemplos truefalse | |||
| Especialista em folha de pagamento PayrollSpecialist | O ID ou o nome do usuário que processa o registro. | ||
| Descrição Este atributo registra a identidade do administrador ou especialista responsável por executar etapas manuais ou aprovações na folha de pagamento. É o atributo principal do Dashboard 'Produtividade e carga de trabalho dos especialistas', que permite analisar a distribuição do trabalho e a produtividade individual. Os dados vêm do campo Por que isso importa Ele é essencial para equilibrar a carga de trabalho e identificar gargalos causados por pessoas no processo. Onde encontrar Campos do sistema (SY-UNAME) registrados no CDHDR ou ID do responsável pela etapa do Workflow. Exemplos JSMITHKMILLERSISTEMA | |||
| Frequência do ciclo de pagamento PayCycleFrequency | Indica se a execução é regular ou fora do ciclo. | ||
| Descrição Este atributo diferencia as execuções regulares e programadas da folha de pagamento das execuções avulsas, fora do ciclo, usadas para correções ou pagamentos imediatos. Um volume elevado de execuções fora do ciclo é um indicador importante de ineficiência do processo e é acompanhado pelo Dashboard 'Análise do volume de pagamentos fora do ciclo'. O atributo é derivado dos campos Motivo fora do ciclo ( Por que isso importa Ele é essencial para medir o KPI 'Proporção de pagamentos fora do ciclo' e reduzir o processamento fora do padrão. Onde encontrar Tabela RGDIR (diretório do cluster), campo OCRSN ou PAYTY. Exemplos RegularCorreção APagamento de bônusDesligamento | |||
| Período de pagamento PayPeriod | O número do período específico dentro do ano fiscal. | ||
| Descrição Este atributo indica o número sequencial do período da folha de pagamento (por exemplo, 01 para janeiro ou para o primeiro ciclo quinzenal). Ele permite que analistas acompanhem tendências de performance ao longo do tempo e identifiquem padrões sazonais na carga de processamento. O dado vem de Por que isso importa Ele permite analisar tendências e identificar gargalos sazonais em períodos específicos do ano. Onde encontrar Tabela PA0001 ou cluster de resultados da folha de pagamento (RGDIR), campo PABRP. Exemplos 01122652 | |||
| Tipo de funcionário EmployeeType | Classificação do funcionário (por exemplo, efetivo ou contratado). | ||
| Descrição Este atributo classifica os funcionários de acordo com o vínculo empregatício, como ativo, aposentado ou contratado. A complexidade do processamento da folha costuma variar conforme o tipo de funcionário, já que alguns grupos exigem mais intervenções manuais ou verificações específicas de conformidade. Os dados vêm dos campos Grupo de funcionários ( Por que isso importa Ele ajuda a identificar se as variações ou os atrasos no processo estão relacionados a determinadas categorias de vínculo empregatício. Onde encontrar Tabela PA0001, campos PERSG (grupo) e PERSK (subgrupo). Exemplos Funcionário ativoEstagiárioAposentadoContratado horista | |||
| Valor bruto do pagamento GrossPayAmount | O valor bruto total calculado para o registro. | ||
| Descrição Este atributo representa o valor monetário total do pagamento bruto antes dos descontos. É uma métrica fundamental para a validação financeira e permite relacionar pagamentos de alto valor a um maior rigor nas auditorias ou a prazos de aprovação mais longos. O dado é extraído da tabela de resultados da folha de pagamento (RT), geralmente de tipos de rubrica específicos que representam o total bruto (por exemplo, /101). Ele serve de base para a análise 'Precisão do cálculo de benefícios e impostos'. Por que isso importa Ele permite analisar o comportamento do processo de acordo com o valor do pagamento (por exemplo, pagamentos maiores levam mais tempo para serem aprovados?). Onde encontrar Tabela de resultados da folha de pagamento (RT), tipo de rubrica /101 ou similar. Exemplos 5000.002500.5010500.00 | |||
| Contagem de retrabalho ReworkCount | Número de vezes que uma correção foi realizada. | ||
| Descrição Esta métrica calculada conta quantas vezes a atividade 'Correção de dados realizada' aparece no histórico do caso. Ela mede diretamente a ineficiência do processo e serve de apoio ao Dashboard 'Taxas de correção manual e retrabalho'. Uma contagem alta de retrabalho indica problemas persistentes de qualidade dos dados ou casos complexos que não passam na validação na primeira tentativa. Por que isso importa Ele quantifica o esforço gasto na correção de erros e ajuda a justificar iniciativas de qualidade dos dados. Onde encontrar Calculado contando as atividades 'Correção de dados realizada' por ID do caso. Exemplos 013 | |||
| Entidade legal LegalEntity | O código da empresa ou a entidade legal do funcionário. | ||
| Descrição Este atributo identifica a entidade legal (código da empresa) associada ao registro da folha de pagamento. Ele permite gerar relatórios financeiros e analisar a performance da folha entre diferentes subsidiárias ou entidades corporativas. Os dados vêm do campo Por que isso importa Ele permite comparar a performance entre empresas e analisar a alocação financeira. Onde encontrar Tabela PA0001, campo BUKRS. Exemplos US01DE011000 | |||
| Indicador de exceção de auditoria AuditExceptionFlag | Indicador que informa se ocorreu uma exceção de auditoria. | ||
| Descrição Este atributo sinaliza os casos em que as regras de validação geraram uma exceção ou um aviso durante a simulação ou o cálculo da folha de pagamento. É o principal dado de entrada do KPI 'Frequência de exceções de auditoria'. Os dados costumam vir do log da folha de pagamento ou de tabelas específicas de mensagens de erro (FEHLER). O valor true indica que o fluxo do processo incluiu uma etapa de tratamento de exceção. Por que isso importa Ele destaca problemas de qualidade dos dados e a necessidade de intervenção manual. Onde encontrar Derivado da presença de mensagens de erro no log da folha de pagamento ou de códigos de status específicos. Exemplos truefalse | |||
| Jurisdição fiscal TaxJurisdiction | A região ou autoridade fiscal aplicável ao funcionário. | ||
| Descrição Este atributo identifica a autoridade ou região fiscal específica (por exemplo, estado, província ou cantão) responsável pelo registro da folha de pagamento. Ele é essencial para o Dashboard 'Exceções de auditoria e risco de conformidade', que ajuda a localizar problemas de conformidade por região. Na folha de pagamento SAP dos US, corresponde ao campo Por que isso importa Ele permite segmentar os riscos de conformidade e as exceções de auditoria por região regulatória. Onde encontrar Tabela PA0001 ou PA0207/PA0208, campo TXJCD. Exemplos CalifórniaNova YorkTexasNRW | |||
| Prazo de processamento do SLA SLAProcessingDeadline | A data e a hora limite para concluir a execução da folha de pagamento. | ||
| Descrição Este atributo representa o prazo interno ou externo para finalizar a folha de pagamento e garantir que os pagamentos sejam feitos em dia. Ele é usado para calcular o KPI 'Taxa de conformidade com o SLA', comparando o prazo com a data e a hora reais de 'Pagamento executado'. Embora nem sempre seja um campo padrão nas tabelas SAP, o prazo costuma ser mantido em uma tabela de controle personalizada ou definido com base no calendário da folha de pagamento (por exemplo, dois dias antes da data de pagamento). Neste modelo de dados, ele costuma ser calculado subtraindo-se um intervalo definido da data de pagamento. Por que isso importa Ele serve de referência para avaliar a pontualidade e o cumprimento do SLA. Onde encontrar Derivado da data de pagamento (T549S) menos os dias de processamento configurados. Exemplos 2023-10-28T17:00:00Z2023-11-28T17:00:00Z | |||
Atividades do processamento da folha de pagamento
| Atividade | Descrição | ||
|---|---|---|---|
| Arquivo de transferência bancária gerado | A criação do arquivo Preliminary Data Medium Exchange (pre-DME) ou do arquivo DME final. Esse arquivo contém as instruções de pagamento para o banco. | ||
| Por que isso importa Acompanha o monitor de automação de transferências bancárias. Falhas na geração de arquivos são interrupções críticas do processo. Onde encontrar Logs da execução do DME / Payment Medium Workbench (PMW), geralmente armazenados no TemSe ou em tabelas específicas de processamento de pagamentos (ReguH/ReguP). Coleta Registrado quando o processamento de pagamentos (F110/RPCIPE) gera a saída Tipo de evento explicit | |||
| Entrega de declarações fiscais concluída | A geração de arquivos do Tax Reporter (por exemplo, PU19 nos US) ou a transferência para um provedor terceirizado de entrega de declarações fiscais. | ||
| Por que isso importa Garante a conformidade regulatória. Acompanha a etapa final de conformidade na sequência. Onde encontrar Logs do Tax Reporter Log Manager ou do B2A (Business to Administration) Manager que indicam a geração bem-sucedida do arquivo. Coleta Registrado quando a execução do Tax Reporter é concluída com sucesso Tipo de evento explicit | |||
| Folha de ponto aprovada | A aprovação formal dos dados de horas por um gestor ou administrador. Essa mudança de status valida os dados para transferência ao mecanismo da folha. | ||
| Por que isso importa Calcula o KPI de tempo de aprovação da folha de ponto. Gargalos nesta etapa indicam atrasos gerenciais ou hierarquias de aprovação complexas. Onde encontrar Tabelas de solicitações do fluxo de trabalho do Employee Central (WfRequest), filtradas pelo status COMPLETED ou APPROVED. Coleta Registrado quando o status do fluxo de trabalho muda para APPROVED Tipo de evento explicit | |||
| Folha de ponto enviada | Evento em que um funcionário ou gestor envia os dados de horas do período de pagamento. O registro é obtido nos logs de solicitações do fluxo de trabalho do módulo Employee Central, vinculado ao ECP. | ||
| Por que isso importa Marca o início da etapa de acumulação de dados. Atrasos aqui se propagam pelas etapas seguintes e comprimem o período disponível para processar a folha. Onde encontrar Tabelas de solicitações do fluxo de trabalho do Employee Central (WfRequest), filtradas pelas categorias Time Sheet ou Time Off. Coleta Registrado quando o status do fluxo de trabalho muda para SUBMITTED Tipo de evento explicit | |||
| Pagamento realizado | A finalização do processo de pagamento, geralmente confirmada pelo banco ou pela conclusão do processamento de pagamentos F110. | ||
| Por que isso importa O registro de data e hora final usado principalmente para calcular a taxa de conformidade com o SLA. Determina se o funcionário recebeu o pagamento no prazo. Onde encontrar Data e hora da execução nas tabelas de processamento de pagamentos (REGUH) ou inferidas a partir da data-valor. Coleta Registrado quando o status do processamento de pagamentos é definido como Posted/Complete Tipo de evento explicit | |||
| Processo da folha iniciado | A criação de uma instância de processo da folha no Payroll Control Center (PCC). Marca o início oficial do ciclo da folha para uma área de pagamento específica. | ||
| Por que isso importa Define a referência inicial para a duração total do ciclo da folha de ponta a ponta. Determina o escopo dos funcionários que serão processados. Onde encontrar Tabelas do Payroll Control Center (por exemplo, PYC_D_PY_PROC_INST), que registram a criação de um novo ID de processo. Coleta Registrado quando uma instância de processo do PCC é criada Tipo de evento explicit | |||
| Registro da folha aprovado | A aprovação formal dos resultados da folha para um funcionário ou grupo de pagamento. Ocorre na etapa 'Monitoring' ou 'Sign Off' do PCC. | ||
| Por que isso importa Marca o fim da etapa de cálculo e validação e a liberação para pagamento. É essencial para analisar a produtividade dos especialistas. Onde encontrar Logs de instâncias de etapas do Payroll Control Center (PYC_D_STEP_INST) referentes à etapa Approval ou Confirmation. Coleta Registrado quando o status da etapa de aprovação do PCC muda para COMPLETED Tipo de evento explicit | |||
| Remuneração bruta calculada | A execução bem-sucedida do cálculo do esquema da folha bruta. No processamento padrão, isso ocorre quando o driver da folha grava os dados no cluster PCL2. | ||
| Por que isso importa Um marco importante que indica que os dados de horas e de taxas foram combinados com sucesso. Atrasos nesta etapa afetam a eficiência do processamento do bruto ao líquido. Onde encontrar Cluster PCL2 (Payroll Results), especificamente o registro de data e hora da tabela de diretórios (RGDIR) para o 'For-Period'. Coleta Registrado quando um novo número de sequência é gravado no cluster da folha Tipo de evento explicit | |||
| Simulação da folha executada | Uma execução de teste do driver da folha para identificar erros sem gravar os resultados no banco de dados. É uma etapa essencial da fase de validação do PCC. | ||
| Por que isso importa Essencial para calcular a taxa de cálculos corretos na primeira tentativa. Simulações repetidas indicam problemas na qualidade dos dados. Onde encontrar Logs de instâncias de etapas do Payroll Control Center (PYC_D_STEP_INST) em que o tipo de etapa corresponde a Simulation. Coleta Registrado quando o status da etapa de simulação do PCC muda para COMPLETED Tipo de evento explicit | |||
| Comprovante de pagamento publicado | A disponibilização do demonstrativo de remuneração para o funcionário por meio do autoatendimento (ESS). | ||
| Por que isso importa Mede a performance do SLA de entrega dos comprovantes de pagamento. Atrasos nesta etapa geram chamados para o suporte. Onde encontrar Inferido a partir da 'Print Date' ou da configuração da data de disponibilidade nos logs do serviço mashup de comprovantes de pagamento. Coleta Calcule com base na data de pagamento + atraso da configuração do sistema Tipo de evento inferred | |||
| Correção de dados realizada | Alterações nos dados mestres ou nos dados de horas feitas em resposta a uma exceção de auditoria. Representa o retrabalho necessário para resolver um alerta da folha. | ||
| Por que isso importa Acompanha as taxas de correção manual e retrabalho. Esta é a principal atividade que contribui para a ineficiência do processo. Onde encontrar Inferido ao relacionar os registros de data e hora dos alertas do PCC com alterações posteriores no log de auditoria (PCL4) do mesmo funcionário, antes do encerramento do alerta. Coleta Identifique atualizações nos dados mestres feitas enquanto um alerta do PCC está ativo Tipo de evento inferred | |||
| Dados de incentivos importados | A inclusão de dados de remuneração fora do padrão, como bônus ou comissões, no sistema da folha. Geralmente envolve carregar dados nos Infotypes 0015 ou 2010. | ||
| Por que isso importa Importações tardias impedem o cálculo preciso da remuneração bruta. A análise ajuda a otimizar o tempo de integração dos dados de incentivos. Onde encontrar Log de auditoria (PCL4 ou equivalente) que mostra a criação de registros no Infotype 0015 (Additional Payments) ou 2010 (Employee Remuneration Info). Coleta Compare os registros de data e hora de criação do Infotype com os logs dos jobs de importação Tipo de evento inferred | |||
| Descontos de benefícios aplicados | A etapa específica do esquema de cálculo em que a lógica dos benefícios é processada. Embora faça parte do processamento principal, analisá-la separadamente ajuda a identificar erros de configuração. | ||
| Por que isso importa Dá suporte à análise da precisão dos cálculos de benefícios e impostos. É útil para investigar divergências complexas na lógica dos descontos. Onde encontrar Inferido pela existência da divisão V0 nos resultados da folha ou por entradas específicas no log, quando o registro detalhado está ativado (raro em produção). Coleta Ocorre junto com o cálculo da remuneração bruta, mas é conceitualmente distinto para fins de análise Tipo de evento inferred | |||
| Exceção de auditoria sinalizada | A geração de um alerta de validação pelas verificações de políticas do Payroll Control Center. Esses alertas identificam inconsistências nos dados ou riscos de conformidade. | ||
| Por que isso importa Dá suporte direto aos Dashboards de frequência de exceções de auditoria e risco de conformidade. Um volume elevado sugere problemas na qualidade dos dados nas etapas anteriores. Onde encontrar Tabelas de alertas do Payroll Control Center (PYC_D_ALERT), que associam códigos de erro específicos ao registro do funcionário. Coleta Registrado quando uma nova entrada é criada na tabela de alertas do PCC Tipo de evento explicit | |||
Guias de extração
Etapas
- Identifique a área da folha de pagamento e os parâmetros do período que serão usados na extração. Os dados serão extraídos principalmente das tabelas do Payroll Control Center (PCC) (PYC_*) e do diretório de clusters da folha de pagamento (HRPY_RGDIR).
- Abra seu cliente SQL ou o SAP HANA Studio conectado ao esquema de backend do SAP SuccessFactors Employee Central Payroll (ECP).
- Execute o script de extração de dados fornecido na seção Query. Esse script agrega dados de tabelas de dados mestres, resultados da folha de pagamento e registros de auditoria do PCC.
- Mapeie as atividades 'Time Sheet Submitted' e 'Time Sheet Approved'. Como o ECP costuma receber esses dados do Employee Central, use os registros de data e hora de criação e da última modificação na tabela PA2001 ou em tabelas especializadas de interface de tempo, como PTREQ_HEADER, se disponíveis.
- Extraia 'Incentive Data Imported' consultando os Infotypes 0015 (pagamentos adicionais) e 2010 (informações de remuneração do funcionário) para encontrar registros criados dentro do período de pagamento selecionado.
- Recupere as etapas do processo do PCC nas tabelas PYC_D_PYP (instâncias de processo) e PYC_D_BINST (instâncias de etapa) para registrar 'Payroll Process Initialized', 'Payroll Simulation Executed', 'Payroll Record Approved' e 'Pay Slip Published'.
- Consulte a tabela PYC_D_ALERT para identificar eventos 'Audit Exception Flagged'. Esses registros associam funcionários específicos a erros de validação encontrados durante as etapas de verificação do PCC.
- Gere eventos 'Data Correction Performed' juntando a tabela de cabeçalho de documentos de alteração do SAP (CDHDR) aos Infotypes relevantes para a folha de pagamento (por exemplo, 0008, 0015, 2001) durante o período ativo da folha.
- Use a tabela HRPY_RGDIR para identificar o momento exato de 'Gross Pay Calculated'. Crie um evento derivado para 'Benefit Deductions Applied' usando o mesmo registro de data e hora, pois essas ações ocorrem simultaneamente durante a execução do esquema.
- Vincule os dados financeiros das tabelas REGUH (dados de liquidação) e REGUT (administração de DME) para registrar 'Bank Transfer File Generated' e 'Payment Executed'.
- Transforme a coluna 'PayrollRecord' para seguir estritamente o formato [EmployeeID]-[Period]-[Year] e garantir que o ID do caso seja exclusivo.
- Exporte o conjunto de dados final como um arquivo CSV, garantindo que os cabeçalhos correspondam aos atributos definidos no contrato, e carregue-o no ProcessMind.
Configuração
- Período: Configure a extração para abranger uma janela móvel dos últimos 6 a 12 meses. Os processos da folha de pagamento são cíclicos, e esse intervalo captura variações suficientes entre execuções regulares e fora do ciclo.
- Área da folha de pagamento (ABKRS): Filtre por áreas específicas da folha de pagamento (por exemplo, mensal nos US, semanal na Alemanha) para comparar ciclos de processo semelhantes.
- Idioma: Extraia as descrições de atividades e etapas do processo no idioma principal do sistema (por exemplo, SPRAS = 'E').
- IDs de processo do PCC: Identifique os IDs de definição de processo (PYP_ID) usados na configuração do PCC para 'Monitoring', 'Production' e 'Off-Cycle' e filtre as etapas relevantes.
- Moeda: Normalize os valores financeiros (GrossPayAmount) para uma única moeda ao extrair dados de operações globais da folha de pagamento.
- Autorização: O usuário do banco de dados precisa ter acesso de leitura às tabelas de Recursos Humanos (PA/PY), especialmente ao diretório de clusters (HRPY_RGDIR) e às tabelas do PCC (PYC_*).
Consulta de exemplo sql
/* Activity 1: Time Sheet Submitted */
SELECT
CONCAT(T.PERNR, CONCAT('-', T.PABRJ, T.PABRP)) AS PayrollRecord,
'Time Sheet Submitted' AS Activity,
T.BEGDA AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
T.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
T.PABRP AS PayPeriod,
CASE WHEN T.PABRP LIKE '9%' THEN 'Off-Cycle' ELSE 'Regular' END AS PayCycleFrequency,
0.00 AS GrossPayAmount,
T.UNAME AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'True' AS IsAutomated
FROM PA2001 AS T
LEFT JOIN PA0001 AS O ON T.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE T.AEDTM BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 2: Time Sheet Approved */
SELECT
CONCAT(T.PERNR, CONCAT('-', T.PABRJ, T.PABRP)) AS PayrollRecord,
'Time Sheet Approved' AS Activity,
T.AEDTM AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
T.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
T.PABRP AS PayPeriod,
CASE WHEN T.PABRP LIKE '9%' THEN 'Off-Cycle' ELSE 'Regular' END AS PayCycleFrequency,
0.00 AS GrossPayAmount,
T.UNAME AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'False' AS IsAutomated
FROM PA2001 AS T
LEFT JOIN PA0001 AS O ON T.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE T.AEDTM BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 3: Incentive Data Imported */
SELECT
CONCAT(I.PERNR, CONCAT('-', I.PABRJ, I.PABRP)) AS PayrollRecord,
'Incentive Data Imported' AS Activity,
I.AEDTM AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
I.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
I.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
I.BETRG AS GrossPayAmount,
I.UNAME AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'True' AS IsAutomated
FROM PA0015 AS I
LEFT JOIN PA0001 AS O ON I.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE I.AEDTM BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 4: Payroll Process Initialized */
SELECT
CONCAT('N/A', CONCAT('-', P.PABRJ, P.PABRP)) AS PayrollRecord,
'Payroll Process Initialized' AS Activity,
P.CREATED_TS AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
'ALL' AS PayrollArea,
NULL AS EmployeeType,
P.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
P.CREATED_BY AS PayrollSpecialist,
NULL AS CostCenter,
'False' AS IsAutomated
FROM PYC_D_PYP AS P
WHERE P.CREATED_TS BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 5: Payroll Simulation Executed */
SELECT
CONCAT('N/A', CONCAT('-', S.PABRJ, S.PABRP)) AS PayrollRecord,
'Payroll Simulation Executed' AS Activity,
S.END_TS AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
'ALL' AS PayrollArea,
NULL AS EmployeeType,
S.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
S.EXEC_USER AS PayrollSpecialist,
NULL AS CostCenter,
'True' AS IsAutomated
FROM PYC_D_BINST AS S
JOIN PYC_D_STEP AS D ON S.STEP_ID = D.ID
WHERE D.NAME LIKE '%Simulate%' AND S.END_TS BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 6: Audit Exception Flagged */
SELECT
CONCAT(A.RO_ID, CONCAT('-', P.PABRJ, P.PABRP)) AS PayrollRecord,
'Audit Exception Flagged' AS Activity,
A.CREATED_TS AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
P.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
P.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
'SYSTEM' AS PayrollSpecialist,
NULL AS CostCenter,
'True' AS IsAutomated
FROM PYC_D_ALERT AS A
JOIN PYC_D_PYP AS P ON A.PYP_ID = P.ID
WHERE A.CREATED_TS BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 7: Data Correction Performed */
SELECT
CONCAT(C.OBJECTID, CONCAT('-', P.PABRJ, P.PABRP)) AS PayrollRecord,
'Data Correction Performed' AS Activity,
TO_TIMESTAMP(CONCAT(C.UDATE, C.UTIME)) AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
P.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
P.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
C.USERNAME AS PayrollSpecialist,
NULL AS CostCenter,
'False' AS IsAutomated
FROM CDHDR AS C
JOIN HRPY_RGDIR AS P ON C.OBJECTID = P.PERNR
WHERE C.TCODE IN ('PA30', 'PA40') AND C.UDATE BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 8: Gross Pay Calculated */
SELECT
CONCAT(R.PERNR, CONCAT('-', R.PABRJ, R.PABRP)) AS PayrollRecord,
'Gross Pay Calculated' AS Activity,
TO_TIMESTAMP(CONCAT(R.RUNDT, R.RUNTM)) AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
R.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
R.PABRP AS PayPeriod,
CASE WHEN R.PABRP LIKE '9%' THEN 'Off-Cycle' ELSE 'Regular' END AS PayCycleFrequency,
0.00 AS GrossPayAmount,
R.UNAME AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'True' AS IsAutomated
FROM HRPY_RGDIR AS R
LEFT JOIN PA0001 AS O ON R.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE R.RUNDT BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 9: Benefit Deductions Applied */
SELECT
CONCAT(R.PERNR, CONCAT('-', R.PABRJ, R.PABRP)) AS PayrollRecord,
'Benefit Deductions Applied' AS Activity,
ADD_SECONDS(TO_TIMESTAMP(CONCAT(R.RUNDT, R.RUNTM)), 1) AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
R.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
R.PABRP AS PayPeriod,
CASE WHEN R.PABRP LIKE '9%' THEN 'Off-Cycle' ELSE 'Regular' END AS PayCycleFrequency,
0.00 AS GrossPayAmount,
R.UNAME AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'True' AS IsAutomated
FROM HRPY_RGDIR AS R
LEFT JOIN PA0001 AS O ON R.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE R.RUNDT BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 10: Payroll Record Approved */
SELECT
CONCAT('N/A', CONCAT('-', S.PABRJ, S.PABRP)) AS PayrollRecord,
'Payroll Record Approved' AS Activity,
S.END_TS AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
'ALL' AS PayrollArea,
NULL AS EmployeeType,
S.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
S.EXEC_USER AS PayrollSpecialist,
NULL AS CostCenter,
'False' AS IsAutomated
FROM PYC_D_BINST AS S
JOIN PYC_D_STEP AS D ON S.STEP_ID = D.ID
WHERE D.NAME LIKE '%Check%' AND S.STATUS = 'OK' AND S.END_TS BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 11: Bank Transfer File Generated */
SELECT
CONCAT(P.PERNR, CONCAT('-', P.PABRJ, P.PABRP)) AS PayrollRecord,
'Bank Transfer File Generated' AS Activity,
TO_TIMESTAMP(CONCAT(T.TSDAT, T.TSTIM)) AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
P.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
P.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
T.USRID AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'True' AS IsAutomated
FROM REGUT AS T
JOIN REGUH AS H ON T.LAUFD = H.LAUFD AND T.LAUFI = H.LAUFI
JOIN HRPY_RGDIR AS P ON H.PERNR = P.PERNR
LEFT JOIN PA0001 AS O ON P.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE T.TSDAT BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 12: Payment Executed */
SELECT
CONCAT(P.PERNR, CONCAT('-', P.PABRJ, P.PABRP)) AS PayrollRecord,
'Payment Executed' AS Activity,
TO_TIMESTAMP(CONCAT(H.LAUFD, '120000')) AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
P.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
P.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
H.RBETR AS GrossPayAmount,
H.ZNME1 AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'True' AS IsAutomated
FROM REGUH AS H
JOIN HRPY_RGDIR AS P ON H.PERNR = P.PERNR
LEFT JOIN PA0001 AS O ON P.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE H.LAUFD BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 13: Pay Slip Published */
SELECT
CONCAT('N/A', CONCAT('-', S.PABRJ, S.PABRP)) AS PayrollRecord,
'Pay Slip Published' AS Activity,
S.END_TS AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
'ALL' AS PayrollArea,
NULL AS EmployeeType,
S.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
S.EXEC_USER AS PayrollSpecialist,
NULL AS CostCenter,
'True' AS IsAutomated
FROM PYC_D_BINST AS S
JOIN PYC_D_STEP AS D ON S.STEP_ID = D.ID
WHERE D.NAME LIKE '%Remuneration%' AND S.END_TS BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 14: Tax Filing Completed */
SELECT
CONCAT('N/A', CONCAT('-', S.PABRJ, S.PABRP)) AS PayrollRecord,
'Tax Filing Completed' AS Activity,
S.END_TS AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
'ALL' AS PayrollArea,
NULL AS EmployeeType,
S.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
S.EXEC_USER AS PayrollSpecialist,
NULL AS CostCenter,
'True' AS IsAutomated
FROM PYC_D_BINST AS S
JOIN PYC_D_STEP AS D ON S.STEP_ID = D.ID
WHERE D.NAME LIKE '%Tax%' AND S.END_TS BETWEEN '[START_DATE]' AND '[END_DATE]' Etapas
- Acesse o editor ABAP: Entre no sistema SAP SuccessFactors Employee Central Payroll (ECP) pelo SAP GUI. Acesse o código de transação SE38 (Editor ABAP).
- Crie o programa: Informe um nome para o novo programa, como
Z_PROCESSMINING_PAYROLL_EXT, e clique em Criar. Selecione Programa executável como tipo e Salvar como objeto local (pacote $TMP) para fins de teste. - Implemente o código: Copie o código ABAP completo fornecido na seção Query abaixo e cole-o no editor, substituindo qualquer código padrão existente.
- Verifique e ative: Clique no botão Verificar (Ctrl+F2) para validar a sintaxe. Quando não houver erros, clique em Ativar (Ctrl+F3).
- Execute a extração: Pressione Processamento direto (F8) para executar o relatório.
- Configure a seleção: Na tela de seleção, informe a
Payroll Area(por exemplo, US, 99), umDate Rangeválido (por exemplo, os últimos 3 meses) e, se quiser, filtre porPersonnel Numbers(PERNR) específicos para testar. - Execute a extração: Execute o relatório. O sistema processará as tabelas HRPY_RGDIR, CATSDB, PA0015 e REGUH para montar o Event Log.
- Revise os resultados: O relatório usa
cl_demo_outputpara exibir os resultados em uma grade diretamente na tela, permitindo a validação imediata. - Exporte os dados: Clique com o botão direito na grade de resultados, selecione Planilha e salve o arquivo no formato CSV ou Excel.
- Formate os dados para o ProcessMind: Abra o arquivo exportado. Verifique se a coluna
EventTimestampestá no formatoYYYY-MM-DD HH:MM:SS. Confirme se a colunaPayrollRecordidentifica cada caso de forma exclusiva (geralmente PERNR-SEQNR). - Carregue os dados: Importe o arquivo CSV tratado no ProcessMind e mapeie as colunas para ID do caso, atividade, registro de data e hora e atributos.
Configuração
- Intervalo de datas: Recomendamos extrair os dados em períodos de 3 a 6 meses para evitar estouro de tempo limite de memória no ambiente de execução ABAP.
- Área da folha de pagamento: Este é um filtro essencial (tabela T549A). Extraia sempre uma área da folha de pagamento por vez (por exemplo, mensal ou quinzenal) para manter a consistência do processo.
- Tabela de configuração: O script usa
HRPY_RGDIR(diretório da folha de pagamento) como fonte principal. Verifique se seu usuário tem autorizaçãoS_TABU_DISpara essa tabela. - Fonte de dados de tempo: O script pressupõe que os dados da folha de ponto estão em
CATSDB. Se você usa um sistema de ponto de terceiros que se conecta diretamente aIT2001ouIT2010, sem CATS, as atividades da folha de ponto podem não retornar dados e talvez seja necessário adaptar o script. - Dados de pagamento: O script vincula as execuções da folha de pagamento às execuções de pagamento por meio de
REGUH(dados de liquidação). Verifique se a execução de pagamentoF110foi realizada para o período selecionado para que os eventos de pagamento apareçam. - Performance: Em sistemas com grande volume (mais de 100 mil funcionários), substitua a lógica
SELECT *por uma busca baseada em cursor ou execute em modo de segundo plano (F9).
Consulta de exemplo abap
REPORT Z_PROCESSMINING_PAYROLL_EXT.
TABLES: pernr, hrpy_rgdir, catsdb, pa0015, reguh.
TYPES: BEGIN OF ty_event_log,
payroll_record TYPE string,
activity TYPE string,
event_timestamp TYPE string,
source_system TYPE string,
last_data_update TYPE string,
payroll_area TYPE abkrs,
employee_type TYPE persg,
pay_period TYPE pabrj,
pay_cycle_freq TYPE string,
gross_pay_amount TYPE string,
payroll_specialist TYPE usnam,
cost_center TYPE kostl,
is_automated TYPE string,
END OF ty_event_log.
DATA: gt_output TYPE TABLE OF ty_event_log,
gs_output TYPE ty_event_log,
gt_rgdir TYPE TABLE OF hrpy_rgdir,
gs_rgdir TYPE hrpy_rgdir,
gt_cats TYPE TABLE OF catsdb,
gs_cats TYPE catsdb,
gt_p0015 TYPE TABLE OF pa0015,
gs_p0015 TYPE pa0015,
gt_reguh TYPE TABLE OF reguh,
gs_reguh TYPE reguh,
gv_tstamp TYPE timestamp,
gv_date TYPE d,
gv_time TYPE t,
gv_pernr TYPE pernr_d.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_pernr FOR pernr-pernr,
s_date FOR sy-datum OBLIGATORY.
PARAMETERS: p_abkrs TYPE abkrs OBLIGATORY DEFAULT '99'.
SELECTION-SCREEN END OF BLOCK b1.
START-OF-SELECTION.
" 1. Fetch Payroll Directory (The Core Process Driver)
SELECT * FROM hrpy_rgdir INTO TABLE gt_rgdir
WHERE pernr IN s_pernr
AND fpper LIKE '%'
AND cdate IN s_date.
IF gt_rgdir IS INITIAL.
WRITE: / 'No payroll results found for selection.'.
EXIT.
ENDIF.
SORT gt_rgdir BY pernr seqnr.
" Loop through Payroll Directory to build events
LOOP AT gt_rgdir INTO gs_rgdir.
CLEAR gs_output.
CONCATENATE gs_rgdir-pernr '-' gs_rgdir-seqnr INTO gs_output-payroll_record.
gs_output-source_system = 'SAP_ECP'.
gs_output-last_data_update = sy-datum.
gs_output-payroll_area = p_abkrs.
gs_output-pay_period = gs_rgdir-fpper.
gs_output-payroll_specialist = gs_rgdir-uname.
" --- Activity: Payroll Process Initialized ---
" Derived from the run date start
gs_output-activity = 'Payroll Process Initialized'.
CONCATENATE gs_rgdir-cdate gs_rgdir-ctime INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
" --- Activity: Payroll Simulation Executed ---
IF gs_rgdir-srtza = 'S'. " S = Simulation
gs_output-activity = 'Payroll Simulation Executed'.
CONCATENATE gs_rgdir-cdate gs_rgdir-ctime INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
ENDIF.
" --- Activity: Audit Exception Flagged ---
IF gs_rgdir-void IS NOT INITIAL. " Void indicator means rejected/exception
gs_output-activity = 'Audit Exception Flagged'.
CONCATENATE gs_rgdir-cdate gs_rgdir-ctime INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
" --- Activity: Data Correction Performed ---
" Inferred: If voided, a correction usually follows immediately
gs_output-activity = 'Data Correction Performed'.
" Add 1 hour to simulate reaction time
DATA: lv_corr_time TYPE t.
lv_corr_time = gs_rgdir-ctime + 3600.
CONCATENATE gs_rgdir-cdate lv_corr_time INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'FALSE'.
APPEND gs_output TO gt_output.
ENDIF.
" --- Activity: Gross Pay Calculated ---
IF gs_rgdir-srtza = 'A'. " A = Actual Result
gs_output-activity = 'Gross Pay Calculated'.
CONCATENATE gs_rgdir-cdate gs_rgdir-ctime INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-gross_pay_amount = '1000.00'. " Placeholder: Cluster read required for actual amount
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
" --- Activity: Benefit Deductions Applied ---
" Logically occurs immediately after gross calc
gs_output-activity = 'Benefit Deductions Applied'.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
" --- Activity: Payroll Record Approved ---
" Inferred from successful write of 'A' record
gs_output-activity = 'Payroll Record Approved'.
DATA: lv_appr_time TYPE t.
lv_appr_time = gs_rgdir-ctime + 60. " +1 minute
CONCATENATE gs_rgdir-cdate lv_appr_time INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'FALSE'.
APPEND gs_output TO gt_output.
" --- Activity: Pay Slip Published ---
" Available via ESS usually next day
gs_output-activity = 'Pay Slip Published'.
DATA: lv_slip_date TYPE d.
lv_slip_date = gs_rgdir-cdate + 1.
CONCATENATE lv_slip_date '080000' INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
" --- Activity: Tax Filing Completed ---
" End of period logic
gs_output-activity = 'Tax Filing Completed'.
DATA: lv_tax_date TYPE d.
lv_tax_date = gs_rgdir-paydt.
CONCATENATE lv_tax_date '235959' INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
ENDIF.
ENDLOOP.
" 2. Fetch Time Sheet Data (CATSDB)
" Linking to Payroll Record loosely via Period/Date
SELECT * FROM catsdb INTO TABLE gt_cats
WHERE pernr IN s_pernr
AND workdate IN s_date.
LOOP AT gt_cats INTO gs_cats.
CLEAR gs_output.
CONCATENATE gs_cats-pernr '-00000' INTO gs_output-payroll_record. " Generic mapping
gs_output-payroll_area = p_abkrs.
gs_output-source_system = 'SAP_ECP'.
" --- Activity: Time Sheet Submitted ---
IF gs_cats-status = '20' OR gs_cats-status = '30'.
gs_output-activity = 'Time Sheet Submitted'.
CONCATENATE gs_cats-laudate gs_cats-lautime INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'FALSE'.
APPEND gs_output TO gt_output.
ENDIF.
" --- Activity: Time Sheet Approved ---
IF gs_cats-status = '30'. " 30 = Approved
gs_output-activity = 'Time Sheet Approved'.
CONCATENATE gs_cats-apdat gs_cats-aptime INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'FALSE'.
APPEND gs_output TO gt_output.
ENDIF.
ENDLOOP.
" 3. Fetch Incentive Data (Infotype 0015)
SELECT * FROM pa0015 INTO TABLE gt_p0015
WHERE pernr IN s_pernr
AND begda IN s_date.
LOOP AT gt_p0015 INTO gs_p0015.
CLEAR gs_output.
CONCATENATE gs_p0015-pernr '-00000' INTO gs_output-payroll_record.
gs_output-source_system = 'SAP_ECP'.
gs_output-payroll_area = p_abkrs.
" --- Activity: Incentive Data Imported ---
gs_output-activity = 'Incentive Data Imported'.
CONCATENATE gs_p0015-aedtm '120000' INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'FALSE'.
APPEND gs_output TO gt_output.
ENDLOOP.
" 4. Fetch Payment Data (REGUH)
SELECT * FROM reguh INTO TABLE gt_reguh
WHERE zaldt IN s_date.
LOOP AT gt_reguh INTO gs_reguh.
" Filter for our PERNRs roughly (REGUH does not always have PERNR directly indexable easily in all views)
" For simulation, we map broadly or require join logic. Here assuming simple extraction.
CLEAR gs_output.
CONCATENATE gs_reguh-pernr '-99999' INTO gs_output-payroll_record.
gs_output-source_system = 'SAP_ECP'.
gs_output-payroll_area = p_abkrs.
" --- Activity: Bank Transfer File Generated ---
gs_output-activity = 'Bank Transfer File Generated'.
CONCATENATE gs_reguh-laufd gs_reguh-cpzut INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
" --- Activity: Payment Executed ---
gs_output-activity = 'Payment Executed'.
CONCATENATE gs_reguh-zaldt '100000' INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
ENDLOOP.
" Output Display
cl_demo_output=>display( gt_output ). Pronto para começar?
Comece a tornar o processo da folha de pagamento mais eficiente aplicando este Template à extração dos seus dados. Nossa abordagem estruturada ajuda você a transformar dados brutos em insights acionáveis rapidamente.
Otimize agora a performance do processamento da folha de pagamento
Junte-se às empresas que estão reduzindo em 30% o tempo dos ciclos da folha de pagamento.
Não é necessário informar o cartão de crédito. Configure em poucos minutos.