Seu Template de dados de registro a relatório, fechamento de período e reconciliação
Seu Template de dados de registro a relatório, fechamento de período e reconciliação
- Atributos recomendados para coleta
- Principais atividades a acompanhar
- Orientações para extração
Atributos de registro a relatório, fechamento de período e reconciliação
| Nome | Descrição | ||
|---|---|---|---|
| Período financeiro FinancialPeriod | Identificador exclusivo do ciclo de relatórios financeiros, geralmente composto pelo exercício fiscal e pelo período de lançamentos. | ||
| Descrição O período financeiro é o principal identificador do caso. Ele agrupa todas as atividades relacionadas ao fechamento e à conciliação de contas de um ciclo de relatórios específico, como '2023-12' para dezembro de 2023. Assim, é possível analisar todo o processo de fechamento do período, do início ao fim, para cada período. Na análise, esse identificador permite acompanhar o tempo de ciclo de ponta a ponta de cada fechamento, comparar a performance entre períodos e identificar tendências ou anomalias. Ao definir cada período financeiro como um caso exclusivo, você pode visualizar e medir a eficiência, os gargalos e as variações do processo de fechamento ao longo do tempo. Por que isso importa É o identificador essencial do caso que estrutura a análise e permite comparar, entre períodos, o tempo de ciclo do fechamento, as cargas de trabalho e a conformidade do processo. Onde encontrar Este atributo costuma ser derivado da concatenação do exercício fiscal (GJAHR) e do período de lançamentos (MONAT) nos cabeçalhos dos documentos financeiros, por exemplo, na tabela BKPF. Exemplos 2023-122024-032023-T4 | |||
| Atividade ActivityName | Nome do evento de negócio ou da tarefa específica realizada durante o processo de fechamento do período. | ||
| Descrição Este atributo registra as etapas distintas do ciclo de registro a relatório, como 'Lançamento de ajuste contábil realizado' ou 'Demonstrações financeiras geradas'. Ele é a base do mapa do processo e mostra a sequência de eventos que compõem o fechamento do período. Analisar as atividades é fundamental para Process Mining. Isso ajuda a visualizar o fluxo do processo, identificar a sequência de tarefas, descobrir variações e medir a frequência e a duração de cada etapa. Essa análise é essencial para localizar gargalos, caminhos fora do padrão e oportunidades de padronização ou automação. Por que isso importa Este atributo é obrigatório para criar o mapa do processo e visualizar e analisar a sequência de tarefas do fechamento do período. Onde encontrar Derivado de uma combinação de códigos de transação SAP (TCODE), tipos de documento (BLART) ou execuções de programas específicos (por exemplo, FAGL_FCV para avaliação de moeda estrangeira). Exemplos Lançamento de ajuste contábil realizadoConciliação de contas iniciadaPeríodo de lançamentos fechado | |||
| Data e hora do evento EventTime | Data e hora que indicam quando uma atividade ou evento ocorreu. | ||
| Descrição A data e hora do evento fornecem a data e o horário exatos de cada atividade do processo e servem de base cronológica para a análise. Geralmente, são compostas pela data e hora de criação do documento. Essas informações são essenciais para ordenar os eventos corretamente e reconstruir o fluxo do processo. Elas são usadas para calcular todas as métricas baseadas em duração, incluindo tempos de ciclo entre atividades, tempos de espera e a duração total do fechamento do período. Analisar as datas e horas ajuda a identificar atrasos e entender como o trabalho se distribui ao longo do tempo. Por que isso importa Como atributo obrigatório, fornece a ordem cronológica dos eventos, necessária para calcular tempos de ciclo e identificar gargalos no processo. Onde encontrar Normalmente, os dados vêm da data de entrada do documento (CPUDT) e da hora de entrada (CPUTM) na tabela BKPF dos documentos financeiros. Exemplos 2023-12-28T14:30:15Z2024-01-02T09:05:00Z2024-01-05T17:21:45Z | |||
| Sistema de origem SourceSystem | Identificador do sistema de origem de onde os dados foram extraídos. | ||
| Descrição Este atributo especifica a origem dos dados do evento, como o nome ou ID de uma instância específica do SAP ECC. Em organizações com vários ERPs ou sistemas financeiros, este campo é essencial para distinguir dados de diferentes fontes. Mesmo em ambientes com um único sistema, ele é um metadado importante para governança de dados, auditoria e solução de problemas. Ele confirma a procedência dos dados, essencial para gerar confiança na análise e garantir a rastreabilidade dos dados. Por que isso importa Fornece informações essenciais sobre a linhagem dos dados, confirma sua origem para fins de governança e é fundamental para distinguir processos em ambientes com vários sistemas. Onde encontrar Normalmente, é um valor estático adicionado durante a extração dos dados para identificar o cliente e o ID do sistema SAP específicos (por exemplo, a partir da tabela T000). Exemplos ECC_PROD_100SAP_E74_200ECC_FINANCE | |||
| Última atualização dos dados LastDataUpdate | Data e hora da última atualização ou extração dos dados do sistema de origem. | ||
| Descrição Este atributo indica o nível de atualização dos dados analisados. Ele mostra a data e a hora da última execução do pipeline de dados, dando contexto sobre a atualidade dos insights do processo. Em Dashboards, especialmente nos que acompanham o progresso em tempo real, essas informações são essenciais para que você saiba se está consultando dados atualizados ou de um dia anterior. Elas ajudam a alinhar as expectativas e são importantes para interpretar a análise corretamente. Por que isso importa Informa se os dados estão atualizados, o que é essencial para garantir que as análises e os Dashboards sejam oportunos e relevantes. Onde encontrar Esta data e hora são geradas e adicionadas pela ferramenta de extração de dados ou ETL ao fim de cada carregamento de dados. Exemplos 2024-05-21T04:00:00Z2024-05-20T04:00:00Z2024-05-19T04:00:00Z | |||
| Código da empresa BUKRS | Unidade organizacional que representa uma entidade legal para a qual são geradas demonstrações financeiras. | ||
| Descrição O código da empresa é uma unidade organizacional fundamental no SAP Financials. Ele representa uma empresa independente, com seu próprio conjunto de livros contábeis balanceados. Todas as transações financeiras são lançadas no nível do código da empresa. Em Process Mining, filtrar pelo código da empresa é essencial para comparar o processo de fechamento do período entre diferentes entidades legais de uma corporação. Isso permite identificar as melhores práticas nas entidades com melhor performance e localizar aquelas que enfrentam atrasos, muitos ajustes ou desvios do processo. É uma dimensão importante para segmentar a análise. Por que isso importa Permite comparar a performance e a conformidade do fechamento do período entre diferentes entidades legais, algo essencial para a análise financeira do grupo. Onde encontrar Este campo está disponível em quase todas as tabelas de documentos financeiros do SAP, principalmente BKPF (cabeçalho) e BSEG (item de linha). Exemplos 10002000US01DE01 | |||
| Conta do razão geral HKONT | Número da conta do razão geral na qual um item de linha é lançado. | ||
| Descrição A conta do razão geral é um elemento central dos dados mestres financeiros que classifica as transações. Cada lançamento financeiro é atribuído a uma ou mais contas do razão geral. No fechamento do período, analisar as atividades por conta do razão geral é essencial para os Dashboards de gargalos na conciliação de contas e de análise de volume de lançamentos de ajuste. Isso ajuda a identificar quais contas são mais difíceis de conciliar, quais exigem mais ajustes e onde o risco de distorção relevante pode ser maior. Com esse foco, as equipes podem priorizar as contas problemáticas. Por que isso importa Permite analisar conciliações e lançamentos de ajuste de forma direcionada, ajudando a identificar contas problemáticas que causam atrasos ou exigem correções frequentes. Onde encontrar Disponível na tabela de itens de linha de documentos financeiros, BSEG (HKONT). Exemplos 113100400500750000 | |||
| Número do documento BELNR | Identificador exclusivo de um documento contábil dentro de um exercício fiscal e de um código de empresa. | ||
| Descrição O número do documento contábil é a chave primária dos lançamentos financeiros no SAP. Cada lançamento contábil, fatura ou documento de pagamento recebe um número exclusivo. Embora não seja normalmente usado em análises de processo de alto nível, o número do documento é essencial para aprofundar a análise. Em um Dashboard de Process Mining, os analistas podem usá-lo para acessar diretamente a transação específica no SAP e investigar anomalias em detalhes, como um lançamento de ajuste de valor elevado ou um item de conciliação atrasado. Assim, o insight fica diretamente vinculado à transação de origem. Por que isso importa Fornece um link direto para a transação de origem no SAP, permitindo aprofundar a análise a partir da visão do processo até lançamentos contábeis específicos. Onde encontrar Localizado na tabela BKPF (BELNR), como chave primária. Exemplos 100000456719000001233000008901 | |||
| Tipo de documento BLART | Código que classifica diferentes tipos de documentos contábeis. | ||
| Descrição No SAP, o tipo de documento diferencia várias transações de negócio, como faturas de fornecedores (KR), pagamentos de clientes (DZ) e lançamentos no razão geral (SA). Ele também controla propriedades como o intervalo de numeração dos documentos. Na análise do fechamento do período, o tipo de documento é um filtro útil. Ele pode ser usado para isolar atividades específicas, como competências, provisões ou estornos. Isso ajuda a analisar o volume e o impacto financeiro de diferentes transações relacionadas ao fechamento e a definir atividades específicas no modelo de processo. Por que isso importa Ajuda a classificar e filtrar transações, permitindo isolar e analisar atividades específicas, como competências, estornos ou lançamentos intercompany. Onde encontrar Localizado na tabela de cabeçalho de documentos, BKPF (BLART). Exemplos SAABKR | |||
| Tipo de lançamento contábil JournalEntryType | Classificação dos lançamentos contábeis, como 'Padrão', 'Ajuste', 'Competência' ou 'Estorno'. | ||
| Descrição Este é um atributo derivado que categoriza documentos financeiros de acordo com sua finalidade de negócio no processo de fechamento. Em geral, é determinado por uma combinação do tipo de documento (BLART), do motivo do estorno (STGRD) ou das contas específicas do razão geral utilizadas. Esta classificação é fundamental para o Dashboard de análise de volume de lançamentos de ajuste e os KPIs relacionados. Ao identificar explicitamente os lançamentos de ajuste ou competência, os analistas podem medir seu volume e valor, acompanhar tendências ao longo do tempo e investigar as causas raiz de sua necessidade. Isso ajuda a diferenciar lançamentos operacionais de rotina dos ajustes de fim de período. Por que isso importa Categoriza os lançamentos para uma análise direcionada e permite acompanhar e medir tipos importantes, como ajustes e competências, que são indicadores da saúde do processo. Onde encontrar Este é um campo derivado. A lógica precisa ser definida com base nas regras de negócio, geralmente usando campos como o tipo de documento (BLART) da tabela BKPF. Exemplos AjusteCompetênciaEstornoPadrão | |||
| Usuário responsável USNAM | ID do usuário SAP que criou ou executou a transação. | ||
| Descrição Este campo registra o usuário que lançou um documento, executou um relatório ou rodou um programa relacionado ao fechamento. Ele identifica a pessoa responsável por determinada atividade. Analisar os dados por usuário é essencial para entender a distribuição da carga de trabalho, identificar necessidades de treinamento e investigar desvios do processo. Dashboards que mostram as atividades por usuário podem destacar integrantes da equipe sobrecarregados ou pessoas que talvez estejam seguindo procedimentos fora do padrão. Isso também ajuda na gestão de performance e na alocação de recursos da equipe financeira. Por que isso importa Permite analisar a distribuição da carga de trabalho e a performance da equipe, além de identificar desvios do processo associados a pessoas específicas. Onde encontrar Disponível na tabela BKPF (USNAM) para a criação de documentos. Em jobs em lote, pode ser encontrado em TBTCO (SDLUNAME). Exemplos JSMITHRDOEFIN_ADMIN | |||
| Valor na moeda local DMBTR | Valor financeiro de um item de linha de uma transação, expresso na moeda local do código da empresa. | ||
| Descrição Este atributo representa o valor monetário associado a um lançamento financeiro. É a principal medida quantitativa do impacto de uma transação no razão geral. Analisar o valor é essencial para priorizar problemas e entender os riscos financeiros. Por exemplo, o Dashboard de análise de volume de lançamentos de ajuste fica muito mais útil quando permite diferenciar um grande volume de ajustes de baixo valor de poucos ajustes de alto valor. Isso ajuda a direcionar a atenção para transações com impacto financeiro relevante. Por que isso importa Quantifica o impacto financeiro das transações e permite analisá-las com base na materialidade, por exemplo, identificando lançamentos de ajuste de alto valor. Onde encontrar Disponível na tabela de itens de linha de documentos, BSEG (DMBTR). Exemplos 1500.75-25000.00123456.00 | |||
| Data prevista de conclusão TargetCompletionDate | Prazo planejado para uma atividade ou para o fechamento de todo o período. | ||
| Descrição A data prevista de conclusão representa o cronograma usado para medir o processo de fechamento do período. É o prazo para concluir marcos específicos ou o fechamento final. Esse atributo é essencial para análises de performance ou conformidade. Ele é usado para calcular o KPI de taxa de fechamento do período no prazo e alimentar o Dashboard de conformidade do fechamento e tarefas em atraso. Ao comparar o horário real do evento com a data prevista, o sistema identifica tarefas dentro do prazo, atrasadas ou em risco de atraso, permitindo gerenciar o processo de fechamento de forma proativa. Por que isso importa Permite monitorar a conformidade e a performance, oferecendo uma referência para medir se as atividades de fechamento são concluídas no prazo e apoiar os KPIs de entregas pontuais. Onde encontrar Normalmente, esses dados mestres são mantidos em um calendário separado, em uma ferramenta de cockpit de fechamento (como o SAP Financial Closing cockpit) ou em uma planilha. Eles não fazem parte dos dados transacionais. Exemplos 2023-12-29T23:59:59Z2024-01-03T17:00:00Z2024-01-02T12:00:00Z | |||
| Departamento Department | Departamento funcional ou centro de custo responsável pela atividade ou transação. | ||
| Descrição Este atributo identifica o departamento da empresa, como 'Finanças', 'Vendas' ou 'Logística', associado a uma transação. Muitas vezes, é derivado dos dados mestres do centro de custo vinculado a um lançamento ou dos dados mestres do usuário. Analisar os dados por departamento dá suporte ao Dashboard de distribuição da carga de trabalho da equipe de fechamento. Isso ajuda a entender como diferentes áreas de negócio contribuem para a carga de trabalho de fim de período, especialmente ao iniciar transações que podem exigir ajustes ou conciliações posteriormente. Também pode revelar áreas fora da equipe financeira central que afetam o processo de fechamento. Por que isso importa Ajuda a analisar a carga de trabalho e a adesão ao processo em diferentes áreas de negócio, mostrando como cada departamento afeta a eficiência do fechamento financeiro. Onde encontrar Muitas vezes, é derivado do centro de custo (KOSTL) na tabela BSEG ou dos dados mestres de RH do usuário responsável. Talvez seja necessário combinar várias tabelas. Exemplos Finanças corporativasContas a pagarFP&A | |||
| É automatizada IsAutomated | Indicador que informa se uma atividade foi realizada por uma pessoa ou por um sistema automatizado. | ||
| Descrição Esse atributo booleano diferencia tarefas manuais das executadas automaticamente pelo sistema, como um job em lote agendado para avaliação de moeda estrangeira ou um bot que lança partidas recorrentes. Isso costuma ser determinado pela análise do nome de usuário associado à transação (por exemplo, 'BATCHUSER'). Entender o nível de automação é fundamental para identificar oportunidades de ganho de eficiência. A análise desse atributo ajuda a visualizar quais partes do processo são manuais e podem ser automatizadas. Também permite avaliar com precisão a carga de trabalho das pessoas, excluindo as atividades geradas pelo sistema. Por que isso importa Diferencia as atividades manuais das executadas pelo sistema, o que é essencial para identificar oportunidades de automação e medir com precisão a carga de trabalho manual. Onde encontrar Esse atributo é derivado. A lógica costuma se basear no nome de usuário (USNAM): uma lista de IDs conhecidos de usuários de sistema ou de processamento em lote indica uma tarefa automatizada. Exemplos truefalse | |||
| É retrabalho IsRework | Indicador calculado que identifica atividades de retrabalho, como um estorno ou uma reconciliação rejeitada. | ||
| Descrição Esse atributo booleano sinaliza eventos ou sequências de eventos que indicam ciclos ineficientes ou correções no processo. Por exemplo, a atividade 'Reconciliação revisada', seguida de outro 'Lançamento de ajuste contábil' na mesma conta, pode ser identificada como retrabalho. Esse atributo é essencial para quantificar o desperdício no processo e dá suporte ao Dashboard de ocorrências de retrabalho em reconciliações e ao KPI de taxa de retrabalho em reconciliações. Ao isolar o retrabalho, as equipes podem investigar as causas raiz, medir o impacto no tempo de ciclo e acompanhar a eficácia das iniciativas de melhoria voltadas a acertar na primeira vez. Por que isso importa Quantifica a ineficiência do processo ao sinalizar atividades de correção ou repetição, ajudando a medir e reduzir o esforço desperdiçado. Onde encontrar Esse atributo é calculado. A lógica é definida na ferramenta de Process Mining com base em sequências específicas de atividades (por exemplo, ciclos) ou atributos (por exemplo, ReversalReason não é nulo). Exemplos truefalse | |||
| Está atrasada IsOverdue | Indicador calculado que informa se uma atividade foi concluída depois da data prevista. | ||
| Descrição Esse atributo booleano compara o horário real de conclusão de uma atividade (EventTime) com o prazo planejado (TargetCompletionDate). Se o horário do evento for posterior à data prevista, o indicador será definido como verdadeiro. Esse atributo dá suporte direto ao Dashboard de conformidade do fechamento e tarefas em atraso e ao KPI de taxa de fechamento do período no prazo. Ele sinaliza com clareza e rapidez desvios do cronograma, permitindo que gestores identifiquem tarefas atrasadas, entendam o impacto no prazo geral e cobrem das equipes o cumprimento dos prazos. Por que isso importa Indica claramente o descumprimento do cronograma, permitindo identificar rapidamente tarefas atrasadas e medir a performance dentro do prazo. Onde encontrar Esse atributo é calculado na ferramenta de Process Mining, comparando EventTime com TargetCompletionDate. Exemplos truefalse | |||
| Exercício fiscal GJAHR | Exercício fiscal em que a transação foi lançada. | ||
| Descrição O exercício fiscal é um elemento fundamental para organizar os dados financeiros. Ele é um componente importante do ID do caso do período financeiro e fornece contexto essencial para todas as transações. Embora muitas vezes faça parte do ID do caso, manter o exercício fiscal como atributo separado é útil para analisar tendências de longo prazo. Isso permite comparar, ano a ano, os tempos de ciclo de fechamento, o volume de ajustes e outros KPIs, ajudando a identificar melhorias ou quedas de performance ao longo dos anos. Por que isso importa Fornece contexto temporal essencial e permite comparar a performance do processo de fechamento entre exercícios fiscais. Onde encontrar Disponível na tabela de cabeçalho de documentos BKPF (GJAHR). Exemplos 202320242022 | |||
| Motivo do estorno ReversalReason | Código que indica o motivo do estorno de um documento financeiro. | ||
| Descrição Quando um documento é estornado no SAP, é possível atribuir um código de motivo para explicar o estorno, por exemplo, 'Estorno no período atual' ou 'Lançamento incorreto'. Este atributo fornece contexto importante sobre a ocorrência de retrabalho. Analisar os motivos dos estornos ajuda a identificar padrões de erro, como dados inseridos incorretamente ou datas erradas. Esse insight pode orientar medidas preventivas, melhorias no treinamento ou controles mais eficazes no sistema para reduzir erros e estornos subsequentes, tornando o fechamento mais eficiente. Por que isso importa Fornece insights diretos sobre as causas raiz de erros e retrabalho, ajudando a identificar oportunidades de melhoria do processo e prevenção de erros. Onde encontrar Localizado na tabela de cabeçalho de documentos, BKPF (STGRD). Exemplos 010205 | |||
| Parceiro comercial VBUND | Identificador da empresa do grupo afiliada envolvida em uma transação intercompany. | ||
| Descrição O ID do parceiro comercial identifica o outro código de empresa que participa de uma transação intercompany. Esse dado é essencial para conciliar contas entre entidades legais relacionadas. Este atributo dá suporte direto ao Dashboard de fluxo de conciliação intercompany e ao KPI de tempo de ciclo da conciliação intercompany. Ao filtrar transações com um parceiro comercial, a análise pode se concentrar na eficiência e na pontualidade do processo de conciliação intercompany, que costuma ser um dos principais desafios durante o fechamento do período. Por que isso importa Identifica especificamente as transações intercompany e permite analisar de forma direcionada o processo de conciliação, muitas vezes complexo e demorado. Onde encontrar Encontrado na tabela de itens de linha de documentos, BSEG (VBUND). Exemplos 1000US013000 | |||
| Status da conciliação ReconciliationStatus | Status atual da conciliação de uma conta, como 'Aberta', 'Em revisão' ou 'Aprovada'. | ||
| Descrição Este atributo acompanha o status da conciliação de uma conta ao longo do fluxo de trabalho. Ele indica se a conciliação foi iniciada, enviada para revisão, aprovada ou rejeitada. Este é um atributo importante para monitorar o andamento das atividades de conciliação em tempo real. Ele ajuda a identificar quais conciliações estão paradas e há quanto tempo, dando suporte a KPIs como o tempo de ciclo da conciliação de contas. Também oferece visibilidade do processo de aprovação e é essencial para Dashboards que acompanham gargalos na conciliação e a carga de trabalho da equipe. Por que isso importa Oferece visibilidade do fluxo de trabalho de conciliação, permitindo acompanhar o andamento, identificar gargalos e medir os tempos de revisão e aprovação. Onde encontrar Essas informações costumam ficar em uma ferramenta de reconciliação separada (por exemplo, SAP Account Substantiation and Automation, da BlackLine) ou em um campo de status personalizado. Em geral, elas não estão em um campo padrão das tabelas BKPF/BSEG. Exemplos Não iniciadoEm andamentoAprovadoRejeitado | |||
Atividades de registro a relatório, fechamento de período e reconciliação
| Atividade | Descrição | ||
|---|---|---|---|
| Conciliação de contas iniciada | Representa o início do processo de conciliação de um conjunto de contas do razão geral para o período. No SAP ECC padrão, não é um evento independente e costuma ser inferido a partir de atividades relacionadas, como a primeira execução de um relatório importante. | ||
| Por que isso importa Esta atividade estabelece um marco importante para medir a duração de toda a etapa de conciliação. Saber quando a conciliação começa é essencial para o KPI de tempo de ciclo da conciliação de contas. Onde encontrar Este evento não é registrado explicitamente. Ele precisa ser inferido de outras fontes de dados, como o log de auditoria do sistema (transação STAD), que registra a primeira execução de um relatório de exibição de saldos, como FAGLB03 ou FS10N. Coleta Infira o início a partir da primeira execução de transações de relatório relevantes (por exemplo, FAGLB03) nos logs do sistema. Tipo de evento inferred | |||
| Demonstrações financeiras geradas | Isso representa o momento em que são geradas as demonstrações financeiras oficiais, como a demonstração de resultados e o balanço patrimonial. Normalmente, esta atividade é capturada pelo acompanhamento da execução de um programa de relatório específico. | ||
| Por que isso importa Este é um marco importante: indica o fim do processamento dos dados e o início da etapa final de revisão e aprovação. O tempo entre este evento e a aprovação é um KPI importante. Onde encontrar Inferido a partir dos logs de auditoria do sistema, como STAD, que registram a execução do programa de geração das demonstrações financeiras, geralmente pela transação F.01. Coleta Nos logs do sistema (STAD), que registram a execução da transação F.01 para gerar demonstrações financeiras. Tipo de evento inferred | |||
| Execução da avaliação de moeda estrangeira | Isso representa a execução de um programa que reavalia itens em aberto e saldos registrados em moedas estrangeiras, usando as taxas de câmbio do fim do período. Normalmente, o programa é executado como um job em lote durante as etapas de fechamento do período. | ||
| Por que isso importa Esta é uma etapa crítica para garantir a precisão dos relatórios financeiros em organizações multinacionais. Analisar o momento e a duração da execução ajuda a identificar oportunidades de automação e otimização da performance. Onde encontrar Capturado nos logs de execução do programa de avaliação de moeda estrangeira, como FAGL_FCV ou F.05. Os detalhes dos jobs em lote em tabelas como TBTCO e TBTCP fornecem as datas e horas de execução. Coleta Nos logs de jobs em lote (tabela TBTCO) do programa FAGL_FC_VALUATION ou SAPF100. Tipo de evento explicit | |||
| Lançamento de ajuste contábil realizado | Um lançamento de ajuste contábil é feito para corrigir os saldos das contas depois que o processamento inicial das transações do período é concluído. No SAP, esse evento é registrado como um documento financeiro padrão. | ||
| Por que isso importa Esta informação é essencial para a análise de volume de lançamentos de ajuste. Um volume elevado de ajustes pode indicar problemas de precisão em etapas anteriores do processo e é um foco importante para iniciativas de melhoria. Onde encontrar Encontrado nas tabelas BKPF e BSEG. Esses lançamentos costumam ser identificados por um tipo de documento específico (BKPF-BLART), reservado para ajustes, ou por serem feitos em períodos especiais de fechamento, como os períodos 13 a 16. Coleta Filtre a tabela BKPF por documentos lançados em períodos especiais ou com tipos de documento de ajuste. Tipo de evento explicit | |||
| Período aberto para lançamentos | Isso marca o início oficial de um período financeiro e permite que as transações sejam lançadas no razão geral. Trata-se de uma alteração explícita de configuração, realizada por um usuário autorizado para abrir um período específico para lançamentos em um ou mais códigos de empresa. | ||
| Por que isso importa Esta atividade marca o evento de início definitivo do caso do processo de fechamento do período. Analisar o tempo a partir desse ponto ajuda a entender todo o ciclo de vida do período financeiro. Onde encontrar As alterações nos períodos de lançamento feitas pela transação OB52 são registradas. É possível extraí-las analisando os documentos de alteração da tabela de configuração T001B, geralmente nas tabelas CDHDR e CDPOS. Coleta Extração dos documentos de alteração (CDHDR/CDPOS) da tabela T001B. Tipo de evento explicit | |||
| Período de lançamentos fechado | Representa o fechamento formal de um período de lançamentos, impedindo novos lançamentos contábeis operacionais. Isso preserva a integridade dos dados financeiros do período fechado e é uma alteração explícita de configuração. | ||
| Por que isso importa Este é o evento final definitivo do processo de fechamento do período. Ele é essencial para calcular com precisão o tempo total de ciclo do fechamento do período e medir o desempenho dentro do prazo. Onde encontrar O fechamento de períodos pela transação OB52 é registrado. Essas alterações podem ser encontradas analisando os documentos de alteração (tabelas CDHDR e CDPOS) da tabela de configuração T001B. Coleta Extração dos documentos de alteração (CDHDR/CDPOS) da tabela T001B. Tipo de evento explicit | |||
| Conciliação revisada | Indica que a conciliação de uma conta específica ou de um grupo de contas foi revisada e confirmada. No SAP ECC padrão, este evento não é registrado explicitamente e costuma ser gerenciado por controles offline ou soluções personalizadas. | ||
| Por que isso importa Acompanhar o momento das revisões é importante para entender os gargalos nas etapas de controle e supervisão do processo de fechamento. Isso pode revelar atrasos causados pela disponibilidade da gestão ou por retrabalho. Onde encontrar Estas informações não estão disponíveis nas tabelas padrão do ECC. Para obtê-las, é necessária uma solução personalizada, como um campo de status em uma tabela Z personalizada, um fluxo de trabalho simples ou a integração com uma ferramenta especializada de conciliação de terceiros. Coleta Capture a alteração de status em um fluxo de trabalho personalizado ou em uma tabela Z, se houver essa implementação. Tipo de evento inferred | |||
| Documento intercompany compensado | Esta atividade marca a compensação de um item em aberto entre dois códigos de empresa diferentes, indicando que uma transação intercompany foi liquidada ou conciliada. No SAP, isso é registrado como um lançamento financeiro explícito, geralmente um documento de compensação. | ||
| Por que isso importa A demora na compensação de itens intercompany é um gargalo comum no processo de fechamento. Acompanhar esta atividade é essencial para medir e melhorar o tempo de ciclo da conciliação intercompany. Onde encontrar Identificado em documentos financeiros nas tabelas BKPF e BSEG. Um documento de compensação vincula e encerra itens em aberto, e a data de compensação (BSEG-AUGDT) é usada como data e hora do evento. As transações intercompany são identificadas pelos campos de parceiro comercial. Coleta Identifique documentos de compensação nas tabelas BKPF/BSEG que envolvam itens com parceiros comerciais. Tipo de evento explicit | |||
| Execução da compensação GR/IR | Execução do programa automatizado de compensação da conta de recebimento de mercadorias/recebimento de faturas. O programa associa os recebimentos de mercadorias às respectivas faturas e compensa os itens entre si. | ||
| Por que isso importa A conta GR/IR é uma fonte frequente de problemas de conciliação. Monitorar esta atividade ajuda a confirmar se a etapa automatizada está funcionando corretamente e a quantificar as exceções que exigem acompanhamento manual. Onde encontrar A execução é registrada nos logs de jobs em lote (transação SM37). O programa geralmente é o SAPF124, executado pela transação F.13. As tabelas de logs de jobs, como TBTCO, fornecem as datas e horas necessárias. Coleta Nos logs de jobs em lote (tabela TBTCO) do programa de compensação SAPF124. Tipo de evento explicit | |||
| Lançamento de estorno realizado | Esta atividade registra o lançamento de um documento que estorna um lançamento contábil anterior, muitas vezes para corrigir um erro. O SAP cria um vínculo explícito entre o documento de estorno e o documento original. | ||
| Por que isso importa Um número elevado de estornos pode indicar problemas na precisão dos dados inseridos ou nos controles do processo. Acompanhar esses eventos ajuda a medir a taxa de acerto na primeira tentativa e a identificar pontos que precisam de melhorias. Onde encontrar Os documentos de estorno são encontrados na tabela BKPF. Muitas vezes, são criados pela transação FB08 e contêm uma referência ao número do documento estornado no campo BKPF-STBLG. Coleta Identifique documentos com o campo BKPF-STBLG preenchido ou criados por transações de estorno. Tipo de evento explicit | |||
| Provisão ou competência lançada | Isso representa o registro de um lançamento contábil de competência, diferimento ou provisão, normalmente feito no fim do período. Esse não é um tipo de evento específico no SAP, mas pode ser inferido pela identificação de lançamentos contábeis com características determinadas. | ||
| Por que isso importa Isolar esses lançamentos ajuda a analisar o subprocesso de gestão de estimativas. Um volume elevado ou ajustes frequentes em competências podem indicar oportunidades de melhoria no processo. Onde encontrar Inferido a partir das tabelas de documentos financeiros BKPF e BSEG. Os lançamentos podem ser identificados por um tipo de documento específico (BKPF-BLART), uma conta do razão geral exclusiva (BSEG-HKONT) ou palavras-chave no texto do cabeçalho (BKPF-BKTXT). Coleta Filtre as tabelas BKPF/BSEG por tipo de documento, contas específicas do razão geral ou campos de texto. Tipo de evento inferred | |||
| Relatório de balancete gerado | Marca a execução de um relatório para gerar o balancete. Esta é uma etapa importante para confirmar que o total de débitos é igual ao total de créditos antes da elaboração das demonstrações financeiras oficiais. | ||
| Por que isso importa Este é um ponto de controle de qualidade crítico antes da elaboração dos relatórios finais. A execução repetida do relatório pode indicar que problemas nos dados estão sendo identificados e corrigidos, o que pode causar atrasos. Onde encontrar Inferido a partir dos logs de auditoria do sistema, como os da transação STAD, que podem registrar a execução de transações de relatório do balancete, como S_ALR_87012277 ou F.01. Coleta Nos logs do sistema (STAD), que registram a execução de códigos de transação de relatórios. Tipo de evento inferred | |||
Guias de extração
Etapas
- Acesse a ferramenta SAP Query: Entre no seu sistema SAP ECC. Acesse o código de transação
SQVI(QuickViewer). 2. Crie uma nova consulta: Informe um nome para a consulta, por exemplo,Z_R2R_PERIOD_CLOSE, e clique em 'Criar'. Na janela pop-up, informe um título descritivo, como 'Extração do fechamento de período de registro a relatório'. Em 'Fonte de dados', selecione 'Junção de tabelas'. 3. Defina as junções de tabelas: Adicione a tabela principalBKPF(cabeçalho do documento contábil). Em seguida, adicione a tabelaBSEG(segmento do documento contábil). O SAP sugerirá automaticamente as condições de junção (MANDT, BUKRS, BELNR, GJAHR). Confira e aceite. Para as atividades de abertura e fechamento de período, você precisará de uma consulta separada que unaCDHDReCDPOS. 4. Selecione os campos de saída (campos da lista): Acesse a aba 'Seleção de campos da lista'. Selecione nas tabelas disponíveis os campos necessários para o Event Log. Eles incluemBKPF-BUKRS,BKPF-BELNR,BKPF-GJAHR,BKPF-MONAT,BKPF-CPUDT,BKPF-CPUTM,BKPF-USNAM,BKPF-BLART,BSEG-HKONT,BSEG-DMBTRe outros, conforme necessário. 5. Defina os parâmetros de entrada (campos de seleção): Acesse a aba 'Campos de seleção'. Escolha os campos usados para filtrar os dados durante a execução. Os mais importantes sãoBKPF-BUKRS(código da empresa) eBKPF-GJAHR(exercício fiscal). Você também pode adicionarBKPF-MONAT(período de lançamento) eBKPF-BLART(tipo de documento). 6. Crie variantes para cada atividade: Como o SQVI não combina diferentes seleções de dados (como um SQL UNION), você precisa executar a consulta várias vezes. Para cada atividade (por exemplo, 'Provisão ou acréscimo lançado'), execute a consulta e informe valores de filtro específicos na tela de seleção, como uma lista de tipos de documento relacionados a provisões. Salve esse conjunto de critérios de seleção como uma variante. Repita o processo para cada atividade que possa ser extraída. 7. Execute a consulta e extraia os dados: Execute a consulta para cada variante criada. A consulta será executada com os filtros específicos daquela atividade. 8. Exporte os resultados: Na tela de resultados, exporte os dados para um arquivo local. O formato mais comum é 'Planilha'. Repita a exportação para cada variante. 9. Combine e transforme os dados: Abra os arquivos exportados em um programa de planilhas ou use uma ferramenta de script. Combine manualmente os dados de todos os arquivos em um único arquivo principal. 10. Adicione colunas constantes e calculadas: No arquivo combinado, adicione as colunas que não são extraídas diretamente das tabelas SAP. IncluaActivityName(defina manualmente com base na variante de origem dos dados),FinancialPeriod(concatenando o exercício fiscal e o período),EventTime(combinando os campos de data e hora),SourceSystemeLastDataUpdate. 11. Formate os dados para carregamento: Salve o arquivo final em formato CSV ou Excel, com os cabeçalhos de coluna corretos exigidos pela sua ferramenta de Process Mining. Confira os tipos e a formatação dos dados antes de carregá-lo.
Configuração
- Fonte de dados: junção de tabelas no SAP Query (SQVI). As principais tabelas são BKPF, BSEG, CDHDR e CDPOS. * Intervalo de datas: recomendamos extrair dados de pelo menos 3 a 6 períodos fiscais completos para identificar padrões. Defina o filtro em
BKPF-GJAHR(exercício fiscal) eBKPF-MONAT(período). * Filtro de código da empresa: sempre filtre porBKPF-BUKRS(código da empresa) para limitar o volume de dados e concentrar a análise em entidades legais específicas. Não recomendamos extrair dados de todos os códigos de empresa de uma só vez. * Filtro de tipo de documento: use filtros emBKPF-BLART(tipo de documento) para isolar atividades específicas, como provisões, ajustes ou estornos. Você precisará obter os tipos de documento relevantes para sua organização. * Pré-requisitos: o usuário que executa a extração precisa de autorização para usar a transaçãoSQVIe de acesso de visualização às tabelas financeiras relevantes (por exemplo, objeto de autorização S_TABU_DIS). * Considerações de performance: a junção de BKPF e BSEG pode consumir muitos recursos. Execute a extração fora dos horários de pico. Evite usar intervalos de datas muito amplos ou deixar o filtro de código da empresa sem restrições, pois isso pode causar problemas de memória ou tempo limite excedido.
Consulta de exemplo sql
/*
LOGICAL REPRESENTATION FOR SAP QUERY (SQVI)
This is not a single executable script. Due to limitations in SQVI, you must create a base query joining BKPF and BSEG, then run it multiple times using different selection screen variants to extract each activity below. The results must be combined manually.
A separate query joining CDHDR and CDPOS is needed for period open/close activities.
*/
-- Activity 1: Period Opened For Posting
-- Required Query: Join CDHDR and CDPOS in SQVI.
SELECT
CONCAT(T001B.VONJ1, T001B.POPER) AS FinancialPeriod,
'Period Opened For Posting' AS ActivityName,
TO_TIMESTAMP(CONCAT(CDHDR.UDATE, CDHDR.UTIME), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
T001B.BUKRS AS BUKRS,
NULL AS BELNR,
CDHDR.USERNAME AS USNAM,
NULL AS HKONT,
NULL AS BLART,
NULL AS DMBTR,
NULL AS JournalEntryType
FROM CDHDR
JOIN CDPOS ON CDHDR.CHANGENR = CDPOS.CHANGENR
JOIN T001B ON SUBSTRING(CDPOS.TABKEY, 4, 4) = T001B.BUKRS
WHERE CDHDR.OBJECTCLAS = 'DEBI_BUKRS' AND CDPOS.TABNAME = 'T001B' AND CDPOS.FNAME = 'OFPER' AND CDPOS.VALUE_NEW > CDPOS.VALUE_OLD;
UNION ALL
-- Activity 2: Accrual Or Provision Posted
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Accrual Or Provision Posted' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Accrual' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.BLART IN ('SA', '[Your Accrual Doc Type]'); -- Filter by document types used for accruals
UNION ALL
-- Activity 3: Intercompany Document Cleared
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Intercompany Document Cleared' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.AUGBL AS BELNR, -- The clearing document number
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Clearing' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BSEG.AUGBL IS NOT NULL AND BSEG.VBUND IS NOT NULL; -- Identify cleared items with an intercompany trading partner
UNION ALL
-- Activity 4: Foreign Currency Valuation Run
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Foreign Currency Valuation Run' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Valuation' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.TCODE IN ('FAGL_FCV', 'FBB1'); -- Filter by FCV transaction code
UNION ALL
-- Activity 5: GR/IR Clearing Run Executed
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'GR/IR Clearing Run Executed' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Clearing' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.TCODE IN ('F.13', 'F13E'); -- Filter by automated clearing transaction codes
UNION ALL
-- Activity 6: Account Reconciliation Started (Proxy)
-- This is a proxy. It takes the earliest adjusting journal entry timestamp for the period.
SELECT
A.FinancialPeriod,
'Account Reconciliation Started' AS ActivityName,
MIN(A.EventTime) AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
A.BUKRS,
NULL AS BELNR,
NULL AS USNAM,
NULL AS HKONT,
NULL AS BLART,
NULL AS DMBTR,
NULL AS JournalEntryType
FROM (
SELECT CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
BKPF.BUKRS
FROM BKPF
WHERE BKPF.BLART IN ('AB', '[Your Adjusting Doc Type]')
) AS A
GROUP BY A.FinancialPeriod, A.BUKRS;
UNION ALL
-- Activity 7: Adjusting Journal Entry Posted
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Adjusting Journal Entry Posted' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Adjusting' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.BLART IN ('AB', '[Your Adjusting Doc Type]'); -- Filter by document types for adjustments
UNION ALL
-- Activity 8: Reversal Entry Posted
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Reversal Entry Posted' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Reversal' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.STBLG IS NOT NULL; -- STBLG (Reversed Document Number) is populated for reversals
UNION ALL
-- Activity 9: Period Closed For Posting
-- Required Query: Join CDHDR and CDPOS in SQVI.
SELECT
CONCAT(T001B.VONJ1, T001B.POPER) AS FinancialPeriod,
'Period Closed For Posting' AS ActivityName,
TO_TIMESTAMP(CONCAT(CDHDR.UDATE, CDHDR.UTIME), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
T001B.BUKRS AS BUKRS,
NULL AS BELNR,
CDHDR.USERNAME AS USNAM,
NULL AS HKONT,
NULL AS BLART,
NULL AS DMBTR,
NULL AS JournalEntryType
FROM CDHDR
JOIN CDPOS ON CDHDR.CHANGENR = CDPOS.CHANGENR
JOIN T001B ON SUBSTRING(CDPOS.TABKEY, 4, 4) = T001B.BUKRS
WHERE CDHDR.OBJECTCLAS = 'DEBI_BUKRS' AND CDPOS.TABNAME = 'T001B' AND CDPOS.FNAME = 'OFPER' AND CDPOS.VALUE_NEW < CDPOS.VALUE_OLD;
/*
-- Activities Not Extractable via this Method
-- The following activities are not data postings and cannot be reliably extracted by querying finance tables BKPF/BSEG.
-- Extraction would require analyzing application logs (SLG1), system logs (STAT), or custom-built logging solutions.
-- Activity: Trial Balance Report Generated
-- Activity: Financial Statements Generated
-- Activity: Reconciliation Reviewed
*/ Etapas
- Defina o escopo e o desenho do programa: Especifique a lógica para identificar cada uma das 12 atividades necessárias. Consulte os responsáveis pelos processos de negócio e os analistas funcionais do SAP para confirmar os tipos de documento, as contas do razão e os nomes dos programas associados às atividades de fechamento de período no seu ambiente SAP ECC.
- Crie o programa ABAP: Usando a transação
SE38(Editor ABAP), crie um novo programa executável, por exemplo,Z_PM_R2R_EXTRACTION. Informe um título descritivo e defina o tipo do programa como 'Programa executável'. - Defina a tela de seleção: No programa, defina uma tela de seleção usando
PARAMETERSeSELECT-OPTIONS. Nela, os usuários poderão especificar o escopo da extração, incluindo código da empresa (BUKRS), exercício fiscal (GJAHR) e período de lançamento (MONAT). Isso é essencial para controlar o volume de dados. - Declare as estruturas de dados: Defina uma estrutura de tabela interna para armazenar os dados finais do Event Log. Ela deve incluir todos os atributos obrigatórios e recomendados:
FinancialPeriod,ActivityName,EventTime,SourceSystem,LastDataUpdate,BUKRS,BELNR,USNAM,HKONT,BLART,DMBTReJournalEntryType. - Implemente a lógica de extração de dados: Escreva a lógica ABAP principal para selecionar os dados de cada uma das 12 atividades. Para cada atividade, consulte as tabelas SAP relevantes (por exemplo, BKPF, BSEG, TBTCO, CDHDR) e preencha uma tabela interna intermediária. Use como modelo a lógica apresentada na seção de consulta ABAP correspondente.
- Identifique as atividades inferidas: Para atividades que não são registradas explicitamente no SAP padrão, como 'Reconciliação de conta iniciada' ou 'Reconciliação revisada', implemente a lógica de inferência acordada. Isso pode envolver verificar a primeira execução de um relatório específico ou consultar tabelas personalizadas 'Z', se existirem.
- Consolide os dados dos eventos: Depois de extrair os dados de cada atividade, acrescente os registros de todas as tabelas intermediárias à tabela interna consolidada final. Preencha corretamente o campo
EventTimeusando o campo de origem relevante, como a data e hora de lançamento do documento ou a data e hora de início do job. - Padronize e formate os dados: Antes de gerar a saída, padronize os campos principais. Combine o exercício fiscal e o período no identificador
FinancialPeriod. Defina valores estáticos paraSourceSystemeLastDataUpdate. Mantenha um formato consistente para os timestamps. - Desenvolva a funcionalidade de saída: Adicione ao programa a opção de exportar a tabela interna final. O método mais comum é gravar os dados em um arquivo CSV ou delimitado por tabulações no servidor de aplicações SAP (usando
OPEN DATASET) ou permitir que o usuário baixe o arquivo diretamente para o computador local (usando o módulo de funçãoGUI_DOWNLOAD). - Teste e valide: Teste o programa cuidadosamente com um conjunto de dados representativo que abranja vários códigos de empresa e períodos. Use as etapas de validação para garantir a precisão e a integridade dos dados. Ajuste a lógica de seleção com base no feedback de especialistas funcionais.
- Agende a execução (opcional): Depois da validação, você pode agendar o programa para ser executado como um job em segundo plano pela transação
SM36. Assim, a extração do Event Log pode ocorrer periodicamente de forma automatizada, sem intervenção manual.
Configuração
- Critérios de seleção: o programa deve ter uma tela de seleção para filtrar os dados. Os principais filtros são:
Código da empresa (BUKRS): obrigatório para limitar o escopo às entidades legais relevantes.Exercício fiscal (GJAHR): obrigatório para definir o ano principal da extração.Período de lançamento (MONAT): obrigatório para selecionar os períodos financeiros específicos.
- Configuração específica por atividade: muitas seleções dependem da configuração específica do seu SAP. Elas devem ser configuráveis como parâmetros ou constantes no programa:
Tipos de documento de provisão/acréscimo: lista de tipos de documento (BLART) usados para identificar lançamentos de provisões e acréscimos.Tipos de documento de lançamentos de ajuste: lista de tipos de documento usados para identificar lançamentos contábeis de ajuste.Nomes de programas/jobs em segundo plano: nomes técnicos dos programas usados para avaliação de moeda estrangeira (por exemplo,FAGL_FCV), compensação de GR/IR (por exemplo,SAPF124), relatórios de balancete e geração de demonstrações financeiras (por exemplo,RFBILA00).
- Intervalo de datas: embora a seleção principal seja por exercício fiscal e período, a lógica subjacente deve considerar a data e a hora completas dos eventos. Para uma análise inicial, recomendamos extrair dados dos últimos 3 a 6 períodos financeiros concluídos.
- Performance: em ambientes SAP de grande porte, a performance do programa é fundamental. Garanta que as seleções no banco de dados usem campos indexados, especialmente nas tabelas como
BKPFeBSEG. Evite selecionar todos os campos (SELECT *) e, se necessário, processe os dados em lotes gerenciáveis. - Autorizações: o usuário ou a conta de serviço que executa o programa precisa de autorização para acessar todas as tabelas consultadas (
BKPF,BSEG,TBTCO,TBTCP,CDHDR,CDPOS) e executar transações comoSE38(para desenvolvimento) eSM37/SM36(para agendamento e monitoramento).
Consulta de exemplo abap
REPORT Z_PM_R2R_EXTRACTION.
" ====================================================================
" DATA DECLARATIONS
" ====================================================================
TYPES: BEGIN OF ty_event_log,
FinancialPeriod TYPE string,
ActivityName TYPE string,
EventTime TYPE timestamp,
SourceSystem TYPE string,
LastDataUpdate TYPE timestamp,
BUKRS TYPE bukrs,
BELNR TYPE belnr_d,
USNAM TYPE usnam,
HKONT TYPE hkont,
BLART TYPE blart,
DMBTR TYPE dmbtr,
JournalEntryType TYPE string,
END OF ty_event_log.
DATA: lt_final_log TYPE STANDARD TABLE OF ty_event_log,
ls_log_entry LIKE LINE OF lt_final_log.
DATA: lv_source_system TYPE string VALUE 'SAP ECC'.
GET TIME STAMP FIELD ls_log_entry-LastDataUpdate.
" ====================================================================
" SELECTION SCREEN
" ====================================================================
SELECT-OPTIONS: s_bukrs FOR ls_log_entry-bukrs OBLIGATORY,
s_gjahr FOR bkpf-gjahr OBLIGATORY,
s_monat FOR bkpf-monat OBLIGATORY.
PARAMETERS: p_accrl TYPE blart DEFAULT 'SA', " Example Doc Type for Accruals
p_adjst TYPE blart DEFAULT 'AJ', " Example Doc Type for Adjustments
p_fcv TYPE btcjob DEFAULT 'FAGL_FCV*', " Program for FC Valuation
p_grir TYPE btcjob DEFAULT 'SAPF124*', " Program for GR/IR Clearing
p_fs TYPE btcjob DEFAULT 'RFBILA00'. " Program for Fin. Statements
" ====================================================================
" MAIN LOGIC
" ====================================================================
START-OF-SELECTION.
" --- 1. Period Opened For Posting ---
" Note: This is complex. This example queries change documents for posting period config (T001B).
SELECT h~objectid, h~udate, h~utime, h~username
INTO TABLE @DATA(lt_period_open)
FROM cdhdr AS h
WHERE h~objectclas = 'V_T001B' AND h~change_ind = 'U'.
LOOP AT lt_period_open INTO DATA(ls_period_open).
" Further logic needed to parse OBJECTID and check CDPOS for opening a period.
" This is a simplified placeholder for a complex logic.
ls_log_entry-ActivityName = 'Period Opened For Posting'.
" Populate other fields... append to lt_final_log
ENDLOOP.
" --- 2. Accrual Or Provision Posted ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_accrual)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat AND h~blart = @p_accrl.
LOOP AT lt_accrual INTO DATA(ls_accrual).
CLEAR ls_log_entry.
CONVERT DATE ls_accrual-cpudt TIME ls_accrual-cputm INTO TIME STAMP ls_log_entry-EventTime TIME ZONE sy-zonlo.
CONCATENATE ls_accrual-gjahr ls_accrual-monat INTO ls_log_entry-FinancialPeriod.
ls_log_entry-ActivityName = 'Accrual Or Provision Posted'.
ls_log_entry-BUKRS = ls_accrual-bukrs.
ls_log_entry-BELNR = ls_accrual-belnr.
ls_log_entry-USNAM = ls_accrual-usnam.
ls_log_entry-HKONT = ls_accrual-hkont.
ls_log_entry-BLART = ls_accrual-blart.
ls_log_entry-DMBTR = ls_accrual-dmbtr.
ls_log_entry-JournalEntryType = 'Accrual'.
GET TIME STAMP FIELD ls_log_entry-LastDataUpdate.
ls_log_entry-SourceSystem = lv_source_system.
APPEND ls_log_entry TO lt_final_log.
ENDLOOP.
" --- 3. Intercompany Document Cleared ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_ic_clear)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat
AND h~blart = 'AB' AND i~vbund <> space.
LOOP AT lt_ic_clear INTO DATA(ls_ic_clear).
" Populate ls_log_entry and append to lt_final_log, setting ActivityName = 'Intercompany Document Cleared'
ENDLOOP.
" --- 4. Foreign Currency Valuation Run ---
SELECT j~jobname, j~sdlstrtda, j~sdlstrttm, j~sdluname
INTO TABLE @DATA(lt_fcv_jobs)
FROM tbtco AS j
WHERE j~jobname LIKE @p_fcv AND j~status = 'F'. " F = Finished
LOOP AT lt_fcv_jobs INTO DATA(ls_fcv_job).
" Populate ls_log_entry, deriving FinancialPeriod from date, setting ActivityName = 'Foreign Currency Valuation Run'
ENDLOOP.
" --- 5. GR/IR Clearing Run Executed ---
SELECT j~jobname, j~sdlstrtda, j~sdlstrttm, j~sdluname
INTO TABLE @DATA(lt_grir_jobs)
FROM tbtco AS j
WHERE j~jobname LIKE @p_grir AND j~status = 'F'.
LOOP AT lt_grir_jobs INTO DATA(ls_grir_job).
" Populate ls_log_entry, deriving FinancialPeriod from date, setting ActivityName = 'GR/IR Clearing Run Executed'
ENDLOOP.
" --- 6. Account Reconciliation Started (Inferred) ---
" Note: Inferring this by first run of a report, e.g., FAGLB03. Requires custom logging or complex logic.
" Placeholder: Query a custom log table if available.
" SELECT ... FROM zreco_log ...
" --- 7. Adjusting Journal Entry Posted ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_adjust)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat AND h~blart = @p_adjst.
LOOP AT lt_adjust INTO DATA(ls_adjust).
" Populate ls_log_entry and append, setting ActivityName = 'Adjusting Journal Entry Posted', JournalEntryType = 'Adjusting'
ENDLOOP.
" --- 8. Reversal Entry Posted ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_reversal)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat AND h~stblg <> space.
LOOP AT lt_reversal INTO DATA(ls_reversal).
" Populate ls_log_entry and append, setting ActivityName = 'Reversal Entry Posted', JournalEntryType = 'Reversal'
ENDLOOP.
" --- 9. Trial Balance Report Generated (Inferred from Job) ---
" Similar to other jobs, query TBTCO for Trial Balance report programs.
" SELECT ... FROM tbtco ... WHERE jobname LIKE '[Your Trial Balance Program]'.
" --- 10. Financial Statements Generated ---
SELECT j~jobname, j~sdlstrtda, j~sdlstrttm, j~sdluname
INTO TABLE @DATA(lt_fs_jobs)
FROM tbtco AS j
WHERE j~jobname LIKE @p_fs AND j~status = 'F'.
LOOP AT lt_fs_jobs INTO DATA(ls_fs_job).
" Populate ls_log_entry, deriving FinancialPeriod from date, setting ActivityName = 'Financial Statements Generated'
ENDLOOP.
" --- 11. Reconciliation Reviewed (Inferred) ---
" Note: This activity is almost always managed outside of SAP or in a custom solution.
" Placeholder: Query a custom approval/log table if available.
" SELECT ... FROM zreco_approval ...
" --- 12. Period Closed For Posting ---
" Note: Similar to 'Period Opened', this is very complex. Query change documents for T001B.
SELECT h~objectid, h~udate, h~utime, h~username
INTO TABLE @DATA(lt_period_close)
FROM cdhdr AS h
WHERE h~objectclas = 'V_T001B' AND h~change_ind = 'U'.
LOOP AT lt_period_close INTO DATA(ls_period_close).
" Further logic needed to parse OBJECTID and check CDPOS for closing a period.
ls_log_entry-ActivityName = 'Period Closed For Posting'.
" Populate other fields... append to lt_final_log
ENDLOOP.
" ... Code to display or download the lt_final_log internal table ...
ENDFORMS. Etapas
- Reúna os pré-requisitos: obtenha credenciais de acesso somente para leitura ao banco de dados subjacente do SAP ECC. Identifique o esquema correto do banco, que normalmente é
SAPSR3ou outro nome informado pelo administrador do banco de dados. - Identifique a configuração do sistema: consulte a equipe de Finanças do SAP para determinar os
códigos de empresa(BUKRS) e os períodos financeiros que você precisa analisar. É fundamental identificar ostipos de documento(BLART) usados no seu sistema para as transações 'Provisão ou acréscimo lançado', 'Lançamento de ajuste contábil' e 'Intercompany'. - Verifique os nomes de programas e jobs: confirme os nomes dos programas usados em jobs em lote importantes, como avaliação de moeda estrangeira (por exemplo,
FAGL_FCV), compensação de GR/IR (por exemplo,SAPF124), relatórios de balancete (por exemplo,RFBILA00) e geração de demonstrações financeiras (por exemplo,RFBILA00). Você pode encontrá-los consultando os jobs agendados na transaçãoSM37. - Personalize a consulta SQL: copie a consulta SQL fornecida para um editor de texto ou cliente SQL. Substitua as variáveis de espaço reservado
{{start_date}},{{end_date}}e{{company_codes}}pelos valores reais da sua análise. Atualize as listas de tipos de documento e nomes de programas com base nas informações reunidas nas etapas anteriores. - Conecte-se ao banco de dados: use um cliente SQL padrão, como DBeaver, SQL Server Management Studio ou Oracle SQL Developer, para se conectar ao banco de dados SAP com as credenciais obtidas.
- Execute a consulta: execute a consulta SQL personalizada no banco de dados. Dependendo do intervalo de datas e do tamanho das tabelas financeiras, a execução pode demorar bastante.
- Confira os resultados iniciais: quando a consulta terminar, faça uma verificação rápida dos resultados. Confira se o número de linhas é razoável, se todas as colunas estão presentes e se os resultados incluem diferentes valores de
ActivityName. - Exporte os dados: exporte todo o conjunto de resultados do cliente SQL para um arquivo CSV. Salve o arquivo com codificação UTF-8 para evitar problemas com caracteres.
- Prepare os dados para carregamento: antes de carregar os dados em uma ferramenta de Process Mining, confirme se os cabeçalhos das colunas no arquivo CSV correspondem exatamente aos nomes de atributos exigidos (
FinancialPeriod,ActivityName,EventTimeetc.). Confira também se a colunaEventTimeusa um formato consistente de timestamp, comoYYYY-MM-DD HH:MI:SS.
Configuração
- Credenciais do banco de dados: é necessário um usuário de banco de dados com acesso somente para leitura às principais tabelas financeiras e de sistema do SAP, incluindo
BKPF,BSEG,TBTCO,CDHDReCDPOS. - Intervalo de datas: recomendamos extrair dados de pelo menos 3 a 6 períodos financeiros completos para identificar variações relevantes no processo. Considere que intervalos maiores aumentarão significativamente o tempo de execução da consulta.
- Códigos de empresa (
BUKRS): sempre filtre por uma lista específica de códigos de empresa. Executar a consulta para todos os códigos de empresa em um sistema de grande porte não é viável e provavelmente causará problemas de performance. - Tipos de documento (
BLART): a identificação de tipos de lançamento contábil, como provisões e ajustes, depende inteiramente da configuração específica do SAP da sua organização. Para classificar as atividades corretamente, informe os códigos de tipo de documento corretos nas cláusulasWHEREda consulta. - Nomes de programas e jobs: a consulta usa nomes comuns de programas para etapas automatizadas de fechamento. Seu sistema pode usar programas personalizados ou outros nomes de jobs. Confira essas informações na transação
SM37e atualize a consulta conforme necessário. - Considerações de performance: esta consulta acessa tabelas muito grandes, especialmente
BSEGeCDPOS. Recomendamos executá-la fora do horário comercial para evitar impactos na performance do sistema. Aplicar filtros restritos de data e código da empresa é a maneira mais eficaz de controlar o tempo de execução.
Consulta de exemplo sql
SELECT
CONCAT(CAST(b.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', b.MONAT), 2)) AS FinancialPeriod,
'Period Opened For Posting' AS ActivityName,
c.UDATE + c.UTIME AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
p.TABKEY AS CompanyCode,
NULL AS DocumentNumber,
c.USERNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM CDHDR c
JOIN CDPOS p ON c.OBJECTCLAS = p.OBJECTCLAS AND c.OBJECTID = p.OBJECTID AND c.CHANGENR = p.CHANGENR
WHERE c.OBJECTCLAS = 'V_T001B'
AND p.TABNAME = 'T001B'
AND p.FNAME = 'FRPE1'
AND c.UDATE BETWEEN '{{start_date}}' AND '{{end_date}}'
UNION ALL
SELECT
CONCAT(CAST(b.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', b.MONAT), 2)) AS FinancialPeriod,
'Period Closed For Posting' AS ActivityName,
c.UDATE + c.UTIME AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
p.TABKEY AS CompanyCode,
NULL AS DocumentNumber,
c.USERNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM CDHDR c
JOIN CDPOS p ON c.OBJECTCLAS = p.OBJECTCLAS AND c.OBJECTID = p.OBJECTID AND c.CHANGENR = p.CHANGENR
WHERE c.OBJECTCLAS = 'V_T001B'
AND p.TABNAME = 'T001B'
AND p.FNAME = 'TOPE1'
AND c.UDATE BETWEEN '{{start_date}}' AND '{{end_date}}'
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Accrual Or Provision Posted' AS ActivityName,
h.CPUDT + h.CPUTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Accrual' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.BUDAT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.BLART IN ('SA', '[Your Accrual Doc Type]')
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Intercompany Document Cleared' AS ActivityName,
h.AUGDT AS EventTime, -- Clearing Date
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Clearing' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.AUGDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.BLART IN ('[Your Intercompany Doc Type]')
AND h.AUGBL IS NOT NULL
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Foreign Currency Valuation Run' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME = 'FAGL_FCV' OR p.PROGNAME = 'SAPF100'
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F' -- Finished
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'GR/IR Clearing Run Executed' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME = 'SAPF124' -- Program for F.13
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Account Reconciliation Started' AS ActivityName, -- Proxy event
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME IN ('FAGLL03', 'FBL3N') -- Common reconciliation reports
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Adjusting Journal Entry Posted' AS ActivityName,
h.CPUDT + h.CPUTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Adjusting' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.BUDAT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.BLART IN ('[Your Adjusting Doc Type]')
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Reversal Entry Posted' AS ActivityName,
h.CPUDT + h.CPUTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Reversal' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.BUDAT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.STBLG IS NOT NULL -- STBLG links to the reversed document
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Trial Balance Report Generated' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME IN ('RFSSLD00', 'S_ALR_87012310')
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Financial Statements Generated' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME = 'RFBILA00' -- Program for F.01
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
-- UNION ALL
-- Note: 'Reconciliation Reviewed' is typically not a standard, logged event in SAP ECC.
-- This activity often happens offline or in a custom tool.
-- The following is a placeholder to be adapted if a custom (Z-table) log exists.
-- SELECT
-- CONCAT(CAST(YEAR(z.REVIEW_DATE) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(z.REVIEW_DATE)), 2)) AS FinancialPeriod,
-- 'Reconciliation Reviewed' AS ActivityName,
-- z.REVIEW_DATE AS EventTime,
-- 'SAP_ECC' AS SourceSystem,
-- CURRENT_TIMESTAMP AS LastDataUpdate,
-- z.BUKRS AS CompanyCode,
-- z.HKONT AS DocumentNumber, -- Using GL Account as a proxy identifier
-- z.REVIEWER_USER AS ResponsibleUser,
-- z.HKONT AS GLAccount,
-- NULL AS DocumentType,
-- NULL AS AmountInLocalCurrency,
-- NULL AS JournalEntryType
-- FROM ZRECON_LOG z -- Replace with your custom table for reconciliation status
-- WHERE z.REVIEW_DATE BETWEEN '{{start_date}}' AND '{{end_date}}'
-- AND z.STATUS = 'Reviewed'
; Pronto para começar?
Use este Template de dados para dar início à sua jornada de Process Mining e obter insights valiosos sobre as operações de fechamento financeiro. Comece hoje a otimizar seu processo de registro a relatório!
Otimize o fechamento de registro a relatório e reduza o tempo de ciclo agora
Elimine gargalos e reduza em 30% o ciclo de fechamento de registro a relatório.
Não é necessário informar cartão de crédito. Comece seu teste grátis de 14 dias.