Seu Template de dados de Record to Report: fechamento do período e reconciliação
Seu Template de dados de Record to Report: fechamento do período e reconciliação
- Atributos recomendados para coleta
- Principais atividades para acompanhar
- Orientações para extração
Record to Report - Atributos do fechamento do período e da reconciliação
| Nome | Descrição | ||
|---|---|---|---|
| Período financeiro FinancialPeriod | Um identificador exclusivo do ciclo de relatórios financeiros, normalmente combinando o ano fiscal e o período de lançamento. | ||
| Descrição O período financeiro funciona como o principal identificador do caso, agrupando todas as atividades relacionadas ao fechamento e à reconciliação das contas desse ciclo de relatórios específico, como '2023-12' para dezembro de 2023. Isso permite uma análise abrangente de todo o processo de fechamento do período, do início ao fim, para cada período distinto. Na análise, ele permite acompanhar o tempo de ciclo de ponta a ponta de cada fechamento, comparar a performance entre diferentes períodos e identificar tendências ou anomalias. Ao definir cada período financeiro como um caso único, é possível 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, permitindo comparar entre períodos os tempos de ciclo de fechamento, as cargas de trabalho e a conformidade do processo. Onde obter Esse atributo normalmente é derivado da concatenação do ano fiscal (GJAHR) e do período de lançamento (MONAT) dos cabeçalhos dos documentos financeiros, por exemplo, da tabela BKPF. Exemplos 2023-122024-032023-Q4 | |||
| Atividade ActivityName | O nome do evento ou da tarefa de negócio específica realizada durante o processo de fechamento do período. | ||
| Descrição Esse atributo registra as etapas distintas realizadas no ciclo Record to Report, como 'Lançamento de ajuste contábil' ou 'Demonstrações financeiras geradas'. Ele forma a base do mapa de processos, mostrando a sequência de eventos que compõem o fechamento do período. Analisar atividades é fundamental para Process Mining. Isso ajuda a visualizar o fluxo do processo, identificar a sequência de tarefas, descobrir variações do processo e medir a frequência e a duração de cada etapa. Esse trabalho é essencial para localizar gargalos, caminhos de processo fora do padrão e oportunidades de padronização ou automação. Por que isso importa Esse atributo é obrigatório para construir o mapa de processos, permitindo visualizar e analisar a sequência de tarefas do fechamento do período. Onde obter É derivado de uma combinação de códigos de transação do SAP (TCODE), tipos de documento (BLART) ou execuções de programas específicos, como FAGL_FCV para avaliação de moeda estrangeira. Exemplos Lançamento de ajuste contábilReconciliação de conta iniciadaPeríodo fechado para lançamentos | |||
| Horário do evento EventTime | O timestamp que indica quando uma atividade ou evento ocorreu. | ||
| Descrição O horário do evento fornece a data e a hora exatas de cada atividade do processo, servindo como base cronológica da análise. Normalmente, ele combina a data e a hora de criação do documento. Esse timestamp é essencial para ordenar corretamente os eventos e reconstruir o fluxo do processo. Ele é usado 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 os timestamps ajuda a identificar atrasos e entender a distribuição temporal do trabalho. Por que isso importa Como atributo obrigatório, ele fornece a ordem cronológica dos eventos, necessária para calcular tempos de ciclo e descobrir gargalos do processo. Onde obter Normalmente, é obtido da data de entrada do documento (CPUDT) e do horário de entrada (CPUTM) na tabela BKPF para documentos financeiros. Exemplos 2023-12-28T14:30:15Z2024-01-02T09:05:00Z2024-01-05T17:21:45Z | |||
| Sistema de origem SourceSystem | O identificador do sistema de origem do qual os dados foram extraídos. | ||
| Descrição Esse atributo especifica a origem dos dados de eventos, como o nome ou ID da instância específica do SAP ECC. Em organizações com vários ERPs ou sistemas financeiros, esse campo é fundamental para distinguir dados de diferentes fontes. Mesmo em um ambiente com um único sistema, ele funciona como 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 uma linhagem de dados clara. Por que isso importa Fornece uma linhagem de dados essencial, confirmando a origem dos dados para a governança. Também é fundamental em ambientes com vários sistemas para diferenciar os processos. Onde obter Normalmente, é um valor estático adicionado durante a extração dos dados, identificando 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 | O timestamp de quando os dados foram atualizados ou extraídos pela última vez do sistema de origem. | ||
| Descrição Esse 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, fornecendo contexto sobre a atualidade dos insights do processo. Em Dashboards, especialmente nos que acompanham o progresso em tempo real, esse timestamp é fundamental para que os usuários entendam se estão consultando informações atualizadas até o momento ou dados do dia anterior. Ele alinha as expectativas dos usuários e é essencial para interpretar a análise corretamente. Por que isso importa Informa aos usuários o nível de atualização dos dados, algo fundamental para garantir que as análises e os Dashboards sejam atuais e relevantes. Onde obter Esse timestamp é gerado e adicionado pela ferramenta de extração de dados ou ETL ao fim de cada processo de carregamento de dados. Exemplos 2024-05-21T04:00:00Z2024-05-20T04:00:00Z2024-05-19T04:00:00Z | |||
| Código da empresa BUKRS | A unidade organizacional que representa uma entidade legal para a qual as demonstrações financeiras são geradas. | ||
| 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 equilibrados. Todas as transações financeiras são lançadas no nível do código da empresa. Em Process Mining, filtrar por 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 boas práticas em entidades de alta performance e localizar entidades que enfrentam atrasos, volumes altos de 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 fundamental para a análise financeira no nível do grupo. Onde obter Esse 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 contábil HKONT | O número da conta do razão geral na qual um item de linha é lançado. | ||
| Descrição A conta do razão geral (GL) é um elemento central dos dados mestres financeiros que classifica as transações. Todo lançamento financeiro é atribuído a uma ou mais contas do razão geral. No contexto do fechamento do período, analisar as atividades por conta contábil é essencial para os Dashboards 'Account Reconciliation Bottlenecks' e 'Adjusting Entries Volume Analysis'. Isso ajuda a identificar quais contas são mais difíceis de reconciliar, quais exigem mais ajustes e onde o risco de distorção relevante pode ser maior. Esse foco permite que os times priorizem seus esforços nas contas problemáticas. Por que isso importa Permite uma análise direcionada de reconciliações e lançamentos de ajuste, ajudando a identificar contas problemáticas que causam atrasos ou exigem correções frequentes. Onde obter Disponível na tabela de itens de linha dos documentos financeiros, BSEG (HKONT). Exemplos 113100400500750000 | |||
| Número do documento BELNR | O identificador exclusivo de um documento contábil dentro de um ano 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 normalmente não seja usado em análises de processos de alto nível, o número do documento é muito valioso para recursos de detalhamento. Em um Dashboard de Process Mining, os analistas podem usar o número do documento para voltar diretamente à transação específica no SAP e investigar anomalias em detalhes, como um lançamento de ajuste de alto valor ou um item de reconciliação atrasado. Ele cria um vínculo direto entre o insight e a transação de origem. Por que isso importa Fornece um vínculo direto com a transação de origem no SAP, permitindo uma análise detalhada, do processo até lançamentos contábeis específicos. Onde obter Localizado na tabela BKPF (BELNR), como chave primária. Exemplos 100000456719000001233000008901 | |||
| Tipo de documento BLART | Um código que classifica diferentes tipos de documentos contábeis. | ||
| Descrição O tipo de documento é usado no SAP para distinguir 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 poderoso. Ele pode ser usado para isolar tipos específicos de atividades, como apropriações, provisões ou lançamentos de estorno. Isso ajuda a analisar o volume e o impacto financeiro de diferentes transações relacionadas ao fechamento e pode ser usado para 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 apropriações, estornos ou lançamentos intercompany. Onde obter Localizado na tabela de cabeçalho dos documentos, BKPF (BLART). Exemplos SAABKR | |||
| Tipo de lançamento contábil JournalEntryType | Uma classificação dos lançamentos contábeis, como 'Padrão', 'Ajuste', 'Apropriação' ou 'Estorno'. | ||
| Descrição Este é um atributo derivado que categoriza documentos financeiros com base em sua finalidade de negócio no processo de fechamento. Ele costuma ser determinado por uma combinação do tipo de documento (BLART), do motivo do estorno (STGRD) ou das contas contábeis específicas utilizadas. Essa classificação é fundamental para o Dashboard 'Adjusting Entries Volume Analysis' e para os KPIs relacionados. Ao identificar explicitamente lançamentos de ajuste ou apropriação, 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 rotineiros de ajustes do fim do período. Por que isso importa Categoriza os lançamentos para uma análise direcionada, permitindo acompanhar e medir tipos importantes de lançamentos, como ajustes e apropriações, que são indicadores da saúde do processo. Onde obter Este é um campo derivado. A lógica precisa ser definida com base nas regras de negócio, normalmente usando campos como o tipo de documento (BLART) da BKPF. Exemplos AjusteProvisãoEstornoPadrão | |||
| Usuário responsável USNAM | O ID do usuário SAP que criou ou executou a transação. | ||
| Descrição Esse campo registra o usuário que lançou um documento, executou um relatório ou executou um programa relacionado ao fechamento. Ele identifica a pessoa responsável por determinada atividade. Analisar por usuário é fundamental para entender a distribuição da carga de trabalho, identificar necessidades de treinamento e investigar desvios do processo. Dashboards que mostram atividades por usuário podem destacar membros do time 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 dentro do time financeiro. Por que isso importa Permite analisar a distribuição da carga de trabalho e a performance do time, além de identificar desvios do processo associados a pessoas específicas. Onde obter Disponível na tabela BKPF (USNAM) para a criação de documentos. Para batch jobs, pode ser encontrado em TBTCO (SDLUNAME). Exemplos JSMITHRDOEFIN_ADMIN | |||
| Valor na moeda local DMBTR | O valor financeiro de um item de linha de uma transação, expresso na moeda local do código da empresa. | ||
| Descrição Esse atributo representa o valor monetário associado a um lançamento financeiro. Ele é a principal medida quantitativa do impacto de uma transação no razão geral. Analisar o valor é fundamental para priorizar problemas e entender o risco financeiro. Por exemplo, o Dashboard 'Adjusting Entries Volume Analysis' se torna muito mais útil quando consegue distinguir um volume alto de ajustes de baixo valor de um volume baixo de ajustes de alto valor. Isso ajuda a concentrar a atenção nas transações financeiramente relevantes. Por que isso importa Quantifica o impacto financeiro das transações, permitindo uma análise baseada em materialidade, como a identificação de lançamentos de ajuste de alto valor. Onde obter Disponível na tabela de itens de linha dos documentos, BSEG (DMBTR). Exemplos 1500.75-25000.00123456.00 | |||
| Ano fiscal GJAHR | O ano fiscal em que a transação foi lançada. | ||
| Descrição O ano 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 geralmente faça parte do ID do caso, ter o ano fiscal como um atributo separado é útil para análises de tendências de longo prazo. Isso permite comparar, ano a ano, os tempos do ciclo de fechamento, os volumes 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, ano a ano, a performance do processo de fechamento. Onde obter Disponível na tabela de cabeçalho do documento, BKPF (GJAHR). Exemplos 202320242022 | |||
| Data prevista de conclusão TargetCompletionDate | O prazo planejado ou a data de vencimento de uma atividade ou de todo o fechamento do período. | ||
| Descrição A Data de Conclusão Alvo representa o cronograma usado para medir o processo de fechamento do período. É o prazo até o qual marcos específicos ou o fechamento final devem ser concluídos. Esse atributo é essencial para qualquer análise relacionada à performance ou à conformidade. Ele é usado para calcular o KPI "Taxa de Fechamento do Período no Prazo" e alimentar o Dashboard "Conformidade do Fechamento e Tarefas em Atraso". Comparando o horário real do evento com essa data-alvo, o sistema consegue determinar se as tarefas estão no prazo, atrasadas ou em risco de atraso, permitindo uma gestão proativa do processo de fechamento. Por que isso importa Permite monitorar a conformidade e a performance ao fornecer uma referência para medir se as atividades de fechamento são concluídas no prazo, apoiando os KPIs de entregas no prazo. Onde obter Normalmente, esses são dados mestres 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 | O departamento funcional ou centro de custo responsável pela atividade ou transação. | ||
| Descrição Esse atributo identifica o departamento de negócio, como 'Finanças', 'Vendas' ou 'Logística', associado a uma transação. Ele costuma ser derivado dos dados mestres do centro de custo vinculado a um lançamento ou dos dados mestres do usuário. Analisar por departamento dá suporte ao Dashboard 'Close Team Workload Distribution'. Isso ajuda a entender como diferentes funções de negócio contribuem para a carga de trabalho do fim do período, especialmente ao iniciar transações que podem exigir ajustes ou reconciliações posteriormente. Também pode destacar áreas fora do time financeiro principal que impactam o processo de fechamento. Por que isso importa Ajuda a analisar a carga de trabalho e a aderência ao processo entre diferentes funções de negócio, revelando como vários departamentos impactam a eficiência do fechamento financeiro. Onde obter Frequentemente derivado do centro de custo (KOSTL) na BSEG ou dos dados mestres de RH do usuário responsável. Isso pode exigir a combinação de várias tabelas. Exemplos Finanças corporativasContas a pagarFP&A | |||
| É automatizado IsAutomated | Um indicador que mostra se uma atividade foi realizada por um usuário humano ou por um sistema automatizado. | ||
| Descrição Esse atributo booleano diferencia as tarefas manuais daquelas executadas automaticamente pelo sistema, como um job em lote agendado para a avaliação de moeda estrangeira ou um bot que lança partidas recorrentes. Isso geralmente é determinado pela análise do nome de usuário associado à transação, por exemplo, "BATCHUSER". Entender o nível de automação é essencial 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. Ela também ajuda a avaliar com precisão a carga de trabalho humana, excluindo as atividades geradas pelo sistema. Por que isso importa Diferencia as atividades manuais das atividades conduzidas pelo sistema, algo essencial para identificar oportunidades de automação e medir com precisão as cargas de trabalho manuais. Onde obter Esse é um atributo derivado. A lógica normalmente se baseia no User Name (USNAM), em que uma lista de IDs de usuários de sistema ou de lote conhecidos indica uma tarefa automatizada. Exemplos truefalse | |||
| É retrabalho IsRework | Um indicador calculado que identifica atividades que representam retrabalho, como uma reversão ou uma reconciliação rejeitada. | ||
| Descrição Esse atributo booleano sinaliza eventos ou sequências de eventos que indicam loops ineficientes ou correções no processo. Por exemplo, uma atividade "Reconciliação revisada" seguida por outro "Lançamento de ajuste contabilizado" na mesma conta pode ser sinalizada como retrabalho. Esse atributo é essencial para quantificar o desperdício do processo e apoia o Dashboard "Ocorrências de Retrabalho na Reconciliação" e o KPI "Taxa de Retrabalho na Reconciliação". 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 de processos voltadas a fazer certo da primeira vez. Por que isso importa Quantifica a ineficiência do processo ao sinalizar atividades que são correções ou repetições, ajudando a medir e reduzir o esforço desperdiçado. Onde obter Esse é um atributo calculado. A lógica é definida na ferramenta de process mining com base em sequências específicas de atividades, como loops, ou em atributos, como ReversalReason não nulo. Exemplos truefalse | |||
| Está atrasado IsOverdue | Um indicador calculado que mostra se uma atividade foi concluída depois da data-alvo planejada. | ||
| 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 ao prazo-alvo, o indicador será definido como true. Esse atributo apoia diretamente o Dashboard "Conformidade do Fechamento e Tarefas em Atraso" e o KPI "Taxa de Fechamento do Período no Prazo". Ele fornece um sinal claro e imediato de desvios no cronograma, permitindo que os gestores identifiquem rapidamente as tarefas atrasadas, entendam o impacto no cronograma geral e responsabilizem as equipes pelo cumprimento dos prazos. Por que isso importa Fornece um indicador claro de não conformidade com os cronogramas, permitindo identificar rapidamente as tarefas atrasadas e medir a performance no prazo. Onde obter Esse é um atributo calculado na ferramenta de process mining pela comparação entre EventTime e TargetCompletionDate. Exemplos truefalse | |||
| Motivo do estorno ReversalReason | Um código que indica o motivo pelo qual um documento financeiro foi estornado. | ||
| Descrição Quando um documento é estornado no SAP, um código de motivo pode ser atribuído para explicar a finalidade do estorno, por exemplo, 'Estorno no período atual' ou 'Lançamento incorreto'. Esse atributo fornece um contexto importante sobre a causa do retrabalho. Analisar os motivos de estorno ajuda a identificar padrões de erro, como entrada de dados incorreta ou datas erradas. Esse insight pode ser usado para implementar medidas preventivas, melhorar treinamentos ou aprimorar os controles do sistema, reduzindo o número de erros e estornos posteriores e tornando o fechamento mais eficiente. Por que isso importa Fornece um insight direto sobre as causas-raiz de erros e retrabalho, ajudando a identificar oportunidades de melhoria do processo e prevenção de erros. Onde obter Localizado na tabela de cabeçalho dos documentos, BKPF (STGRD). Exemplos 010205 | |||
| Parceiro comercial VBUND | O identificador da empresa afiliada do grupo envolvida em uma transação intercompany. | ||
| Descrição O ID do parceiro comercial é usado para identificar o outro código de empresa que participa de uma transação intercompany. Isso é essencial para reconciliar contas entre entidades legais relacionadas. Esse atributo dá suporte direto ao Dashboard 'Intercompany Reconciliation Flow' e ao KPI 'Intercompany Recon. Cycle Time'. Ao filtrar transações que têm um parceiro comercial, a análise pode se concentrar especificamente na eficiência e na pontualidade do processo de reconciliação intercompany, que costuma ser um dos principais pontos críticos durante o fechamento do período. Por que isso importa Identifica especificamente as transações intercompany, permitindo uma análise direcionada do processo de reconciliação intercompany, que costuma ser complexo e demorado. Onde obter Encontrado na tabela de itens de linha dos documentos, BSEG (VBUND). Exemplos 1000US013000 | |||
| Status da reconciliação ReconciliationStatus | O status atual de uma reconciliação de conta, como 'Aberta', 'Em revisão' ou 'Aprovada'. | ||
| Descrição Esse atributo acompanha o estado de uma reconciliação de conta à medida que ela avança pelo Workflow. Ele indica se uma reconciliação foi iniciada, enviada para revisão, aprovada ou rejeitada. Esse é um atributo importante para monitorar o progresso das atividades de reconciliação em tempo real. Ele ajuda a identificar quais reconciliações estão paradas e há quanto tempo, dando suporte a KPIs como 'Account Reconciliation Cycle Time'. Ele oferece visibilidade sobre o processo de aprovação e é fundamental para Dashboards que acompanham gargalos de reconciliação e a carga de trabalho do time. Por que isso importa Oferece visibilidade sobre o Workflow de reconciliação, permitindo acompanhar o progresso, identificar gargalos e medir os tempos de revisão e aprovação. Onde obter Essas informações geralmente ficam em uma ferramenta de reconciliação separada, como SAP Account Substantiation and Automation by BlackLine, ou em um campo de status personalizado. Normalmente, não são encontradas como um campo padrão em BKPF/BSEG. Exemplos Não iniciadoEm andamentoAprovadoRejeitado | |||
Record to Report - Atividades do fechamento do período e da reconciliação
| Atividade | Descrição | ||
|---|---|---|---|
| Demonstrações financeiras geradas | Isso representa o momento em que as demonstrações financeiras oficiais, como a demonstração de resultados e o balanço patrimonial, são geradas. Essa atividade normalmente é capturada acompanhando a execução de um programa específico de relatórios. | ||
| Por que isso importa Este é um marco importante que indica o fim do processamento dos dados e o início da fase final de revisão e aprovação. O tempo entre esse evento e a aprovação é um KPI importante. Onde obter 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, mais comumente a transação F.01. Captura A partir dos logs do sistema (STAD), acompanhando a execução da transação F.01 de demonstrações financeiras. Tipo de evento inferred | |||
| Execução da avaliação de moeda estrangeira | Isso representa a execução de um programa para reavaliar itens em aberto e saldos registrados em moedas estrangeiras usando as taxas de câmbio do fim do período. Normalmente, essa execução ocorre como um batch job durante as etapas de fechamento do período. | ||
| Por que isso importa Esta é uma etapa crítica para garantir relatórios financeiros precisos em organizações multinacionais. Analisar seu momento e sua duração ajuda a identificar oportunidades de automação e otimização de performance. Onde obter Capturado nos logs de execução do programa de avaliação de moeda estrangeira, como FAGL_FCV ou F.05. Os detalhes do batch job em tabelas como TBTCO e TBTCP fornecem os timestamps de execução. Captura A partir dos logs de batch jobs (tabela TBTCO) do programa FAGL_FC_VALUATION ou SAPF100. Tipo de evento explicit | |||
| Lançamento de ajuste contábil | Um lançamento contábil de ajuste é feito para corrigir saldos de contas depois que o processamento inicial das transações do período é concluído. Esse evento é capturado como um lançamento de documento financeiro padrão no SAP. | ||
| Por que isso importa Isso é essencial para a Adjusting Entries Volume Analysis. Um volume alto de ajustes sugere problemas na precisão dos processos anteriores e é um alvo importante para iniciativas de melhoria de processos. Onde obter Encontrado nas tabelas BKPF e BSEG. Esses lançamentos normalmente são identificados por um tipo de documento específico (BKPF-BLART) reservado para ajustes ou por terem sido lançados em períodos especiais de fechamento, como 13 a 16. Captura Filtrar a BKPF por documentos lançados em períodos especiais ou com tipos de documento de ajuste. Tipo de evento explicit | |||
| Período aberto para contabilização | Isso marca o início oficial de um período financeiro, permitindo o lançamento de transações 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 representa o evento inicial definitivo do caso do processo de fechamento do período. Analisar o tempo a partir deste ponto ajuda a entender todo o ciclo de vida do período financeiro. Onde obter As alterações nos períodos de lançamento feitas pela transação OB52 são registradas. Essas alterações podem ser extraídas analisando os documentos de alteração da tabela de configuração T001B, normalmente usando as tabelas CDHDR e CDPOS. Captura Extrair dos documentos de alteração da tabela T001B (CDHDR/CDPOS). Tipo de evento explicit | |||
| Período fechado para lançamentos | Representa o fechamento formal de um período de lançamentos, impedindo novos lançamentos contábeis operacionais. Isso garante 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 Period Close Cycle Time total e medir a performance dentro do prazo. Onde obter O fechamento de períodos pela transação OB52 é registrado. Essas alterações podem ser encontradas analisando os documentos de alteração, nas tabelas CDHDR e CDPOS, da tabela de configuração T001B. Captura Extrair dos documentos de alteração da tabela T001B (CDHDR/CDPOS). Tipo de evento explicit | |||
| Reconciliação de conta iniciada | Representa o início do processo de reconciliação de um conjunto de contas contábeis do período. No SAP ECC padrão, esse não é um evento discreto e normalmente é inferido a partir de atividades relacionadas, como a execução de um relatório-chave pela primeira vez. | ||
| Por que isso importa Esta atividade estabelece um marco importante para medir a duração de toda a fase de reconciliação. Entender quando a reconciliação começa é essencial para o KPI Account Reconciliation Cycle Time. Onde obter Esse evento não é registrado explicitamente. Ele precisa ser inferido a partir de outras fontes de dados, como o log de auditoria do sistema (transação STAD), considerando a primeira execução de um relatório de exibição de saldos, como FAGLB03 ou FS10N. Captura Inferir a partir da primeira execução de transações de relatórios relevantes, como FAGLB03, nos logs do sistema. 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 reconciliada. Isso é registrado como um lançamento financeiro explícito no SAP, normalmente em um documento de compensação. | ||
| Por que isso importa Atrasos na compensação de itens intercompany são um gargalo comum no processo de fechamento. Acompanhar essa atividade é fundamental para medir e melhorar o tempo de ciclo da reconciliação intercompany. Onde obter Identificado nos documentos financeiros em BKPF e BSEG. Um documento de compensação se vincula a itens em aberto e os encerra, e sua data de compensação (BSEG-AUGDT) serve como timestamp do evento. As transações intercompany são identificadas pelos campos de parceiro comercial. Captura Identificar documentos de compensação em BKPF/BSEG que envolvam itens com parceiros comerciais. Tipo de evento explicit | |||
| Execução do clearing de GR/IR | A execução do programa automatizado de clearing da conta Goods Receipt/Invoice Receipt. Esse programa relaciona as entradas de mercadorias correspondentes às entradas de faturas e compensa os itens entre si. | ||
| Por que isso importa A conta GR/IR é uma fonte frequente de problemas de reconciliação. Monitorar essa atividade garante que a etapa automatizada seja executada corretamente e ajuda a quantificar o volume de exceções que exigem acompanhamento manual. Onde obter A execução é capturada nos logs de batch jobs (transação SM37). O programa normalmente é o SAPF124, executado pela transação F.13. As tabelas de logs de jobs, como TBTCO, fornecem os timestamps necessários. Captura A partir dos logs de batch jobs (tabela TBTCO) do programa de clearing SAPF124. Tipo de evento explicit | |||
| Lançamento de estorno | Esta atividade captura o lançamento de um documento que estorna um lançamento contábil feito anteriormente, geralmente 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 alto de estornos aponta para possíveis problemas na precisão da entrada de dados ou nos controles do processo. Acompanhar esses eventos ajuda a medir as taxas de acerto na primeira execução e identificar áreas que precisam de melhoria. Onde obter Os documentos de estorno são encontrados na tabela BKPF. Eles geralmente são criados com a transação FB08 e contêm uma referência ao número do documento estornado no campo BKPF-STBLG. Captura Identificar documentos em que BKPF-STBLG esteja preenchido ou que tenham sido criados por códigos de transação de estorno. Tipo de evento explicit | |||
| Provisão ou apropriação lançada | Isso representa o registro de um lançamento contábil de apropriação, diferimento ou provisão, normalmente feito no fim de um período. Esse não é um tipo de evento distinto no SAP, mas é inferido pela identificação de lançamentos contábeis específicos com base em suas características. | ||
| Por que isso importa Isolar esses lançamentos ajuda a analisar o subprocesso de gestão de estimativas. Um volume alto ou ajustes frequentes em apropriações podem indicar áreas com oportunidades de melhoria do processo. Onde obter Inferido a partir das tabelas de documentos financeiros BKPF e BSEG. Os lançamentos podem ser identificados filtrando por um tipo de documento específico (BKPF-BLART), uma conta contábil única (BSEG-HKONT) ou palavras-chave no texto do cabeçalho (BKPF-BKTXT). Captura Filtrar as tabelas BKPF/BSEG por tipo de documento, contas contábeis específicas ou campos de texto. Tipo de evento inferred | |||
| Reconciliação revisada | Indica que uma reconciliação de uma conta específica ou de um grupo de contas foi revisada e confirmada. No SAP ECC padrão, esse não é um evento 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 destacar atrasos causados pela disponibilidade da gestão ou por retrabalho. Onde obter Essas informações não estão disponíveis nas tabelas padrão do ECC. Seria necessária uma solução personalizada, como um campo de status em uma tabela Z personalizada, um Workflow simples ou uma integração com uma ferramenta especializada de reconciliação de terceiros. Captura Capturar a alteração de status em um Workflow personalizado ou em uma tabela Z, se implementado. 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 verificar se o total de débitos é igual ao total de créditos antes da criação das demonstrações financeiras oficiais. | ||
| Por que isso importa Este é um controle de qualidade crítico antes do relatório final. Execuções repetidas desse relatório podem indicar que problemas nos dados subjacentes estão sendo encontrados e corrigidos, o que pode causar atrasos. Onde obter Inferido a partir dos logs de auditoria do sistema, como a transação STAD, que pode registrar a execução de transações de relatórios de balancete, como S_ALR_87012277 ou F.01. Captura A partir dos logs do sistema (STAD), acompanhando a execução dos códigos de transação de relatórios. Tipo de evento inferred | |||
Guias de extração
Etapas
- Acesse a ferramenta SAP Query: faça login 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 "Create". Na janela pop-up, informe um título descritivo, como "Extração do fechamento de Record to Report". Em "Data source", selecione "Table join". 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 proporá automaticamente as condições de junção (MANDT, BUKRS, BELNR, GJAHR), que você deve verificar e aceitar. Para as atividades de abertura e fechamento do período, será necessária uma consulta separada unindoCDHDReCDPOS. 4. Selecione os campos de saída (List Fields): acesse a aba "List fld. select.". Selecione nas tabelas disponíveis os campos necessários para o Event Log. Isso incluiBKPF-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 (Selection Fields): acesse a aba "Selection fields". Escolha os campos que serão usados para filtrar os dados durante a execução. Os campos mais importantes sãoBKPF-BUKRS(código da empresa) eBKPF-GJAHR(ano 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 consegue combinar seleções de dados diferentes, como um SQL UNION, você deverá executar a consulta várias vezes. Para cada atividade, por exemplo, "Provisão ou acréscimo contabilizado", execute a consulta e informe valores de filtro específicos na tela de seleção, como uma lista de tipos de documento relevantes para 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 e extraia os dados: execute a consulta para cada variante criada. Isso executará a consulta com os filtros específicos da atividade. 8. Exporte os resultados: na tela de resultados, exporte os dados para um arquivo local. O formato mais comum é "Spreadsheet". 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 mestre. 10. Adicione colunas constantes e calculadas: no arquivo combinado, adicione as colunas que não são extraídas diretamente das tabelas SAP. Isso incluiActivityName, definido manualmente com base na variante de origem dos dados,FinancialPeriod, obtido pela concatenação do ano fiscal e do período,EventTime, obtido pela combinação dos campos de data e hora,SourceSystemeLastDataUpdate. 11. Formate para upload: salve o arquivo final em formato CSV ou Excel, com os cabeçalhos de coluna corretos exigidos pela sua ferramenta de process mining. Verifique os tipos e a formatação dos dados antes do upload.
Configuração
- Fonte dos dados: junção de tabelas no SAP Query (SQVI). As principais tabelas são BKPF, BSEG, CDHDR e CDPOS. * Intervalo de datas: recomenda-se extrair dados de pelo menos 3 a 6 períodos financeiros completos para identificar padrões. Defina o filtro em
BKPF-GJAHR(ano fiscal) eBKPF-MONAT(período). * Filtro por 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 é recomendável extrair dados de todos os códigos de empresa de uma só vez. * Filtro por tipo de documento: use filtros emBKPF-BLART(tipo de documento) para isolar atividades específicas, como provisões, ajustes ou reversões. Você precisará obter os tipos de documento relevantes para a sua organização. * Pré-requisitos: o usuário que executar a extração precisa de autorização para usar a transaçãoSQVIe de acesso de exibição às tabelas financeiras relevantes, como o 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 aberto, pois isso pode causar problemas de memória ou timeouts.
a 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: defina a lógica específica para identificar cada uma das 12 atividades necessárias. Consulte os responsáveis pelo processo de negócio e os analistas funcionais SAP para confirmar os tipos de documento, as contas do razão geral e os nomes dos programas associados às atividades de fechamento do período no seu ambiente SAP ECC.
- Crie o programa ABAP: usando a transação
SE38(ABAP Editor), crie um novo programa executável, por exemplo,Z_PM_R2R_EXTRACTION. Informe um título descritivo e defina o tipo do programa como "Executable Program". - Defina a tela de seleção: no programa, defina uma tela de seleção usando
PARAMETERSeSELECT-OPTIONS. Essa tela permitirá que os usuários especifiquem o escopo da extração, incluindo código da empresa (BUKRS), ano 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 que armazenará os dados finais do Event Log. Essa estrutura 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, como BKPF, BSEG, TBTCO e CDHDR, e preencha uma tabela interna intermediária. Use como Template a lógica fornecida na seção de consulta ABAP.
- Identifique as atividades inferidas: para atividades que não são registradas explicitamente no SAP padrão, como "Reconciliação iniciada" ou "Reconciliação revisada", implemente a lógica de inferência acordada. Isso pode envolver a verificação da primeira execução de um relatório específico ou a consulta a tabelas personalizadas "Z", caso existam.
- Consolide os dados dos eventos: depois de extrair os dados de cada atividade individual, anexe os registros de cada tabela intermediária à tabela interna consolidada final. Garanta que o campo
EventTimeseja preenchido corretamente a partir do 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 da saída, padronize os campos principais. Combine o ano fiscal e o período no identificador
FinancialPeriod. Defina valores estáticos paraSourceSystemeLastDataUpdate. Garanta que os timestamps estejam em um formato consistente. - Desenvolva a funcionalidade de saída: adicione ao programa uma funcionalidade para exportar a tabela interna final. O método mais comum é gravar os dados em um arquivo CSV ou delimitado por tabulações no SAP Application Server, usando
OPEN DATASET, ou permitir que o usuário faça o download diretamente para a máquina local, usando o módulo de funçãoGUI_DOWNLOAD. - Teste e valide: teste cuidadosamente o programa com um conjunto de dados representativo, abrangendo 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. Refine a lógica de seleção com base no feedback dos especialistas funcionais.
- Agende a execução (opcional): depois de validado, o programa pode ser agendado para execução como um job em segundo plano pela transação
SM36. Isso permite extrair o Event Log periodicamente e 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 incluem:
Company Code (BUKRS): obrigatório para limitar o escopo às entidades legais relevantes.Fiscal Year (GJAHR): obrigatório para definir o ano principal da extração.Posting Period (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:
Accrual/Provision Document Types: uma lista de tipos de documento (BLART) usados para identificar lançamentos de acréscimos e provisões.Adjusting Entry Document Types: uma lista de tipos de documento usados para identificar lançamentos contábeis de ajuste.Background Job/Program Names: os nomes técnicos dos programas usados para avaliação de moeda estrangeira, por exemplo,FAGL_FCV, compensação 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 feita por ano fiscal e período, a lógica subjacente deve considerar a data e a hora completas dos eventos. Para uma análise inicial, recomenda-se extrair dados dos últimos 3 a 6 períodos financeiros concluídos.
- Performance: em ambientes SAP grandes, a performance do programa é crítica. Garanta que as seleções no banco de dados usem campos de índice, especialmente em tabelas como
BKPFeBSEG. Evite selecionar todos os campos (SELECT *) e processe os dados em pacotes gerenciáveis, se necessário. - Autorizações: o usuário ou a conta de serviço que executar este 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).
a 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 leitura ao banco de dados subjacente do SAP ECC. Identifique o schema correto do banco de dados, que normalmente é
SAPSR3ou um nome semelhante fornecido pelo administrador do banco de dados. - Identifique a configuração do sistema: consulte a equipe de Finanças SAP para determinar os
Company Codes(BUKRS) específicos e os períodos financeiros que você precisa analisar. É fundamental identificar osDocument Types(BLART) usados no seu sistema para as transações "Provisão ou acréscimo contabilizado", "Lançamento de ajuste contabilizado" e "Intercompany". - Verifique os nomes de programas e jobs: confirme os nomes dos programas dos principais jobs em lote, como avaliação de moeda estrangeira, por exemplo,
FAGL_FCV, compensação 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 verificando 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 coletadas nas etapas anteriores. - Conecte-se ao banco de dados: use uma ferramenta cliente SQL padrão, como DBeaver, SQL Server Management Studio ou Oracle SQL Developer, para se conectar ao banco de dados SAP usando 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 consulta pode levar bastante tempo para ser concluída.
- Revise os resultados iniciais: quando a consulta terminar, faça uma revisão rápida da saída. Verifique se há um número razoável de linhas, se todas as colunas estão presentes e se diferentes valores de
ActivityNameestão incluídos nos resultados. - Exporte os dados: exporte o conjunto completo de resultados do seu cliente SQL para um arquivo CSV. Garanta que o arquivo seja salvo com codificação UTF-8 para evitar problemas com caracteres.
- Prepare o upload: antes de fazer o upload para 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.). Verifique também se a colunaEventTimeestá em um formato de timestamp consistente, comoYYYY-MM-DD HH:MI:SS.
Configuração
- Credenciais do banco de dados: é necessário um usuário de banco de dados somente leitura com acesso às principais tabelas financeiras e de sistema do SAP. Isso inclui tabelas como
BKPF,BSEG,TBTCO,CDHDReCDPOS. - Intervalo de datas: recomendamos extrair dados de pelo menos 3 a 6 períodos financeiros completos para capturar variações relevantes do processo. Tenha em mente que intervalos maiores aumentarão significativamente o tempo de execução da consulta.
- Company Codes (
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 grande não é viável e provavelmente causará problemas de performance. - Document Types (
BLART): a identificação dos tipos de lançamento contábil, como provisões e ajustes, depende totalmente da configuração específica do SAP da sua organização. Você deve informar os códigos corretos de tipo de documento nas cláusulasWHEREda consulta para classificar as atividades com precisão. - Nomes de programas e jobs: a consulta usa nomes comuns de programas para as etapas automatizadas de fechamento. Seu sistema pode usar programas wrapper personalizados ou nomes de jobs diferentes. Verifique essas informações na transação
SM37e atualize a consulta conforme necessário. - Considerações de performance: essa consulta acessa tabelas muito grandes, especialmente
BSEGeCDPOS. Recomenda-se executar a extração fora do horário comercial para evitar impactos na performance do sistema. Aplicar filtros restritos de data e código da empresa é a forma mais eficaz de controlar o tempo de execução.
a 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 iniciar sua jornada de process mining e obter insights valiosos sobre suas operações de fechamento financeiro. Comece a otimizar seu processo de Record to Report hoje mesmo!
Otimize o fechamento de Record to Report e reduza o tempo de ciclo agora
Elimine gargalos e reduza em 30% o ciclo de fechamento de Record to Report.
Não é necessário cartão de crédito. Comece seu teste grátis de 14 dias.