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 na análise do processo
- Orientações passo a passo para extração de dados
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 reporte financeiro, como '2023-12' para dezembro de 2023, que funciona como o caso do processo de fechamento do fim do período. | ||
| Descrição O período financeiro é o identificador de caso principal que agrupa todas as atividades relacionadas ao fechamento dos livros para um intervalo específico, normalmente um mês do calendário ou período fiscal. Cada período financeiro representa uma execução completa do processo de fechamento do período. Na análise de Process Mining, esse atributo permite acompanhar todo o ciclo de vida do fechamento, desde o início até o reporte final. Ele é usado para comparar tempos de ciclo entre diferentes períodos, identificar caminhos recorrentes do processo e analisar variações entre procedimentos de fechamento mensais, trimestrais e anuais. Ao tratar cada período como um caso, os analistas conseguem medir a performance ao longo do tempo e identificar gargalos sistêmicos. Por que isso importa Este é o identificador de caso essencial que estrutura a análise, permitindo comparar a performance do fechamento do período ao longo do tempo e identificar tendências ou problemas recorrentes. Onde obter Derivado da combinação dos campos Ano Fiscal (GJAHR) e Período de Lançamento (MONAT) dos cabeçalhos dos documentos financeiros, normalmente das tabelas como BKPF. Exemplos 2023-122024-032024-Q1 | |||
| Atividade ActivityName | O nome de uma etapa ou tarefa específica do negócio executada no processo de fechamento do período, como 'Adjusting Journal Entry Posted' ou 'Period Closed For Posting'. | ||
| Descrição Esse atributo representa um único evento ou tarefa no processo de fechamento e reconciliação do período de ponta a ponta. As atividades são os blocos de construção do mapa do processo, mostrando a sequência do trabalho realizado. Elas geralmente são derivadas de uma combinação de códigos de transação, tipos de documento ou alterações de status no SAP S/4HANA. Analisar as atividades é fundamental para o Process Mining. Isso ajuda a visualizar o fluxo do processo, identificar desvios do procedimento padrão, descobrir gargalos em que as atividades demoram demais e entender a frequência e a ordem das tarefas. Esse recurso é essencial para Dashboards como Period Close Variant Analysis e Current Period Close Status. Por que isso importa Define as etapas do processo, formando a base do mapa do processo e permitindo analisar o fluxo, os desvios e os gargalos. Onde obter Derivado de várias fontes, como Códigos de Transação (TCODE), Tipos de Documento (BLART) ou campos de status em tabelas relacionadas às tarefas de fechamento financeiro, por exemplo, do SAP Financial Closing Cockpit. Exemplos Período aberto para lançamentosReconciliação de conta iniciadaDemonstrações financeiras geradasReconciliação intercompany iniciada | |||
| Horário de início EventTime | O carimbo de data e hora que indica quando uma atividade começou ou foi registrada no sistema. | ||
| Descrição O horário do evento registra a data e a hora exatas em que uma atividade ocorreu. Para lançamentos financeiros, geralmente corresponde ao horário de criação (CPUTM) ou à data de lançamento (BUDAT) de um documento. Para alterações de status ou tarefas, é o horário em que a alteração foi registrada. Esse atributo é essencial para ordenar cronologicamente as atividades e serve de base para todas as análises relacionadas ao tempo. Ele é usado para calcular os tempos de ciclo entre atividades, a duração de tarefas específicas e a duração total do processo de ponta a ponta. Também dá suporte direto a KPIs como Average Period Close Cycle Time e Avg Reconciliation Approval Time. Por que isso importa Esse carimbo de data e hora obrigatório permite ordenar os eventos cronologicamente e serve de base para todos os cálculos de duração e performance. Onde obter Obtido de campos de data e hora, como Data de Criação (CPUDT) e Hora de Criação (CPUTM), em tabelas como BKPF, ou de campos de data de alteração em várias tabelas de status, como CDHDR e CDPOS. Exemplos 2023-12-28T09:15:30Z2024-01-02T14:00:12Z2024-01-05T11:21:00Z | |||
| Código da empresa CompanyCode | Um identificador exclusivo de uma entidade legal ou empresa dentro da organização SAP. | ||
| Descrição O código da empresa representa uma unidade contábil independente dentro de uma organização, para a qual é possível criar um conjunto completo e autônomo de contas. Todas as atividades de fechamento do período são realizadas no nível do código da empresa. Essa é uma dimensão organizacional fundamental para a análise financeira. No Process Mining, ela permite comparar o processo de fechamento do período entre diferentes entidades legais. O Dashboard "Period Close Variant Analysis" usa o código da empresa para identificar inconsistências e promover a padronização dos procedimentos de fechamento. Por que isso importa Fornece um contexto organizacional essencial, permitindo comparar processos entre diferentes entidades legais para identificar variações e boas práticas. Onde obter É encontrado em praticamente todas as tabelas financeiras do SAP, principalmente na tabela de cabeçalho BKPF (campo BUKRS). Exemplos 10001710US01DE01 | |||
| Data prevista de conclusão TargetCompletionDate | A data planejada ou o prazo para concluir uma atividade importante, como a geração das demonstrações financeiras. | ||
| Descrição A data prevista de conclusão representa o prazo interno ou externo para um marco específico do processo de fechamento do período. É a data até a qual se espera que uma tarefa seja concluída. Esse atributo é essencial para medir a aderência ao cronograma e a performance em relação aos prazos. Ele é a base do Dashboard "Reporting Deadline Adherence" e do KPI "Financial Statement On-Time Rate", que comparam essa data prevista com a Por que isso importa Permite analisar a performance em relação aos prazos, ajudando a medir e melhorar as taxas de conclusão no prazo das atividades críticas de fechamento. Onde obter Esses dados geralmente ficam em um sistema de gerenciamento ou agendamento de tarefas, como o SAP Financial Closing cockpit, no qual as listas de tarefas de fechamento são definidas com datas planejadas de término. Exemplos 2024-01-05T23:59:59Z2024-04-04T23:59:59Z2024-07-05T23:59:59Z | |||
| Horário de término EndTime | O carimbo de data e hora que indica quando uma atividade foi concluída. | ||
| Descrição O horário de término marca a conclusão de uma tarefa. Em alguns casos, pode ser igual ao horário de início para eventos instantâneos registrados no sistema. Em atividades com duração mensurável, representa o horário de finalização. Combinado ao horário de início, esse atributo é essencial para calcular o Por que isso importa Permite calcular a duração das atividades (Processing Time), o que é essencial para identificar gargalos de performance e analisar a eficiência. Onde obter Assim como o horário de início, este dado pode ser obtido de vários campos de data e hora. Para algumas atividades, pode ser igual ao horário de início. Para outras, pode ser uma data separada de 'concluído em' ou 'alterado em' nas tabelas da aplicação ou nos logs de alterações, como CDHDR e CDPOS. Exemplos 2023-12-28T09:16:10Z2024-01-02T17:30:00Z2024-01-05T11:21:00Z | |||
| Número da conta do Razão GlAccountNumber | O identificador de uma conta específica no Razão. | ||
| Descrição O número da conta do Razão identifica contas individuais usadas para registrar transações financeiras, como caixa, contas a pagar ou receita. Muitas atividades de fechamento do período, como reconciliações e lançamentos de ajuste, estão diretamente relacionadas a contas específicas do Razão. Esse atributo é essencial para uma análise detalhada dos processos financeiros. O Dashboard "Adjusting Journal Entry Analysis" o utiliza para mostrar o volume de ajustes por conta, ajudando a identificar áreas problemáticas. O KPI "Avg GL Account Reconciliation Time" também depende dele para localizar atrasos relacionados a contas específicas. Por que isso importa Vincula as atividades do processo a contas financeiras específicas, permitindo uma análise detalhada de reconciliações e lançamentos contábeis para encontrar as causas-raiz dos problemas. Onde obter É encontrado nas tabelas de itens de linha dos documentos financeiros, principalmente na BSEG (campo HKONT) ou na tabela de diário universal ACDOCA do S/4HANA. Exemplos 113100004000000073000000 | |||
| Número do documento DocumentNumber | O identificador exclusivo de um documento financeiro, como um lançamento contábil. | ||
| Descrição O número do documento é uma chave exclusiva atribuída pelo SAP a cada lançamento financeiro. Ele serve como referência principal para rastrear e auditar as transações individuais que compõem as atividades do processo de fechamento. Embora não seja um Case ID, ele fornece um vínculo essencial com o sistema de origem. Os analistas podem usar o número do documento para detalhar, a partir de uma visão de Process Mining, os detalhes da transação específica no SAP S/4HANA e realizar uma análise de causa-raiz. Ele é especialmente útil ao investigar lançamentos contábeis de ajuste ou lançamentos de reconciliação específicos. Por que isso importa Fornece uma referência direta à transação subjacente no SAP, permitindo detalhamento e auditabilidade a partir do modelo do processo. Onde obter Está localizado na tabela de cabeçalho de documentos financeiros BKPF (campo BELNR) e em tabelas de itens de linha, como BSEG ou ACDOCA. Exemplos 100000045190000001300000023 | |||
| Status da reconciliação ReconciliationStatus | O status de uma atividade de reconciliação de conta, como "Aberta", "Em andamento" ou "Aprovada". | ||
| Descrição Esse atributo acompanha o estado de um processo de reconciliação para uma determinada conta ou tarefa. Ele indica se uma reconciliação foi iniciada, enviada para revisão, aprovada ou rejeitada. As mudanças de status são eventos importantes no processo. Esse atributo é fundamental para o Dashboard "Reconciliation Rework Analysis". Ao analisar a sequência de status, é possível identificar quando o status "Aprovada" é seguido por novos ajustes, indicando retrabalho. Ele também dá suporte ao KPI "First-Pass Reconciliation Rate", mostrando quais reconciliações são aprovadas sem rejeição ou reabertura anterior. Por que isso importa Acompanha o progresso e o resultado das tarefas de reconciliação, permitindo identificar retrabalho, medir taxas de aprovação e analisar gargalos. Onde obter Essas informações normalmente ficam armazenadas em tabelas relacionadas à ferramenta de reconciliação utilizada, como o SAP Financial Closing cockpit ou o SAP Account Substantiation and Automation by BlackLine. Exemplos Não iniciadoEm preparaçãoAprovadoRejeitado | |||
| Usuário responsável ResponsibleUser | O ID do usuário que executou a atividade ou é responsável pela tarefa. | ||
| Descrição Esse atributo identifica o funcionário que executou uma determinada tarefa, como lançar um documento contábil ou aprovar uma reconciliação. Normalmente, ele é capturado como um ID de usuário nos logs do sistema e nos cabeçalhos dos documentos. Analisar o processo por usuário é essencial para entender a distribuição da carga de trabalho, a performance individual e as necessidades de treinamento. O Dashboard Resource Allocation Efficiency usa diretamente esse atributo para visualizar os tempos de processamento das atividades por usuário. Ele também pode ajudar a identificar candidatos à automação ao destacar tarefas altamente repetitivas executadas por muitos usuários. Por que isso importa Relaciona as atividades do processo às pessoas que as executaram, permitindo analisar a carga de trabalho, otimizar recursos e gerenciar a performance. Onde obter Normalmente encontrado em tabelas de cabeçalho de documentos, como BKPF, no campo USNAM (Nome do Usuário), ou em tabelas de documentos de alteração, como CDHDR, no campo USERNAME. Exemplos ABROWNCSMITHDJOHNSON | |||
| Código da transação TransactionCode | O código da transação SAP (T-code) usado para executar a atividade. | ||
| Descrição Um código de transação é um atalho para iniciar uma função ou um programa específico no SAP. Por exemplo, FB01 é usado para lançar um documento, e FAGLB03 para exibir saldos de contas do Razão. O T-code geralmente fornece um indicador técnico claro da atividade realizada. Esse atributo ajuda a criar as definições de atividades do modelo do processo. É uma forma confiável de diferenciar atividades automatizadas e manuais e entender exatamente como uma tarefa foi executada no sistema. A análise dos T-codes pode revelar métodos não padronizados ou ineficientes usados pelos funcionários. Por que isso importa Fornece uma visão técnica, no nível do sistema, de como uma atividade foi executada, sendo útil para identificar etapas manuais e automatizadas e procedimentos não padronizados. Onde obter É encontrado na tabela de cabeçalho de documentos financeiros BKPF (campo TCODE) ou nos logs de documentos de alteração. Exemplos FB01FAGL_FCVF.13 | |||
| Data real de conclusão ActualCompletionDate | A data real em que uma atividade importante ou todo o fechamento do período foi concluído. | ||
| Descrição Esse atributo registra a data real de conclusão de um marco significativo. Ele corresponde ao timestamp da aprovação final das demonstrações financeiras ou do fechamento do período de lançamentos. É o equivalente de Por que isso importa Fornece o momento real dos marcos, o que é necessário para medir a performance em relação aos prazos planejados e analisar atrasos. Onde obter É obtido do EventTime da atividade final de uma sequência, como "Financial Statements Approved" ou "Period Closed For Posting". Exemplos 2024-01-06T10:00:00Z2024-04-05T17:00:00Z2024-07-04T11:00:00Z | |||
| É automatizado IsAutomated | Um indicador booleano que informa se a atividade foi executada por um usuário do sistema ou por um processo automatizado. | ||
| Descrição Esse indicador diferencia tarefas executadas manualmente por uma pessoa daquelas executadas automaticamente pelo sistema, como um job em lote agendado para avaliação cambial ou execuções automatizadas de compensação. Ele normalmente é derivado com base no ID de Esse atributo é essencial para entender o nível de automação do processo de fechamento. Ele ajuda a identificar oportunidades de automação adicional ao destacar tarefas manuais de alto volume. Também é usado na análise de causa-raiz para verificar se os gargalos ocorrem em etapas manuais ou automatizadas. Por que isso importa Diferencia atividades humanas e do sistema, o que é essencial para identificar oportunidades de automação e analisar a eficiência de ambas. Onde obter Esse é um atributo derivado, geralmente baseado em uma regra aplicada ao campo "ResponsibleUser" (por exemplo, verificando IDs de usuários do sistema ou de lote, como "BATCHUSER") ou ao código da transação. Exemplos truefalse | |||
| É pontual IsOnTime | Um indicador booleano que é verdadeiro quando um marco é concluído na data prevista ou antes dela. | ||
| Descrição Esse atributo fornece um resultado binário simples para a aderência ao cronograma. Ele é calculado comparando Esse é o cálculo central do KPI "Financial Statement On-Time Rate". Ele simplifica o acompanhamento da performance ao transformar comparações de datas em um status claro de "no prazo" ou "atrasado", facilmente visualizado em Dashboards e relatórios. Isso ajuda a medir a eficácia das iniciativas voltadas para acelerar o fechamento. Por que isso importa Simplifica a análise da aderência aos prazos em um resultado claro de sucesso ou falha, facilitando o acompanhamento e o reporte da performance no prazo. Onde obter Campo calculado: Exemplos truefalse | |||
| É retrabalho de reconciliação IsReconciliationRework | Um indicador booleano que é verdadeiro quando uma atividade de reconciliação é seguida por uma rejeição ou por novos ajustes. | ||
| Descrição Esse atributo calculado identifica ocorrências de retrabalho no subprocesso de reconciliação. A lógica sinaliza atividades ou casos em que uma reconciliação é rejeitada, reaberta após o envio ou em que lançamentos de ajuste são realizados depois que uma reconciliação supostamente foi concluída para uma conta do Razão. Esse indicador foi criado especificamente para alimentar o Dashboard "Reconciliation Rework Analysis" e o KPI "Reconciliation Rework Rate". Ele transforma sequências complexas do processo em um atributo simples e mensurável, quantificando a extensão do retrabalho e ajudando as equipes a melhorar a qualidade na primeira execução. Por que isso importa Quantifica diretamente o retrabalho, uma forma importante de ineficiência do processo, permitindo análises e iniciativas de melhoria direcionadas à qualidade das reconciliações. Onde obter Calculado com base na sequência de atividades. Por exemplo, o indicador é definido como verdadeiro quando a sequência "Reconciliation Approved" é seguida por "Adjusting Journal Entry Posted" para a mesma conta do Razão dentro do mesmo período. Exemplos truefalse | |||
| Moeda do documento DocumentCurrency | O código da moeda dos valores no documento financeiro. | ||
| Descrição Esse atributo especifica a moeda em que a transação foi registrada, como USD, EUR ou JPY. Ele fornece o contexto essencial para o atributo Em organizações multinacionais, analisar os dados por moeda pode ser importante. Isso garante que os valores monetários sejam interpretados corretamente e é necessário para qualquer conversão para uma única moeda de reporte em análises agregadas. Sem esse contexto, os valores de Por que isso importa Fornece o contexto necessário para interpretar corretamente os valores monetários, especialmente em um ambiente com várias moedas. Onde obter Está localizado na tabela de cabeçalho de documentos financeiros BKPF (campo WAERS). Exemplos USDEURJPY | |||
| Sistema de origem SourceSystemId | Identificador da instância ou do cliente específico do SAP S/4HANA de onde os dados foram extraídos. | ||
| Descrição Esse atributo especifica o sistema de origem dos dados. Em ambientes com várias instâncias SAP, por exemplo, para diferentes regiões ou unidades de negócio, esse campo é essencial para distinguir as fontes de dados. Ele é usado principalmente para governança de dados, auditoria e garantia da integridade dos dados. Na análise, pode ser usado como filtro para comparar processos entre diferentes sistemas de origem quando eles são combinados em um único modelo de Process Mining. Por que isso importa Fornece linhagem e contexto essenciais dos dados, garantindo clareza sobre sua origem, especialmente em ambientes com vários sistemas. Onde obter Normalmente são metadados adicionados durante o processo de extração de dados, geralmente obtidos do ID do sistema (SY-SYSID) ou do cliente (SY-MANDT) no SAP. Exemplos S4H_PROD_100S4H_QAS_200ECC_LEGACY_001 | |||
| Tempo de ciclo do fechamento do período PeriodCloseCycleTime | O tempo total necessário para concluir um período financeiro, da primeira à última atividade. | ||
| Descrição Essa métrica representa a duração de ponta a ponta do processo de fechamento do período para um único caso (Financial Period). Ela é calculada como a diferença entre o timestamp da última atividade e o da primeira atividade dentro desse período. Esse é um dos principais indicadores de performance, dando suporte direto ao Dashboard "Period Close Cycle Time Overview" e ao KPI "Average Period Close Cycle Time". Ele fornece uma medida geral da eficiência e da velocidade do processo de fechamento, permitindo comparações ao longo do tempo e benchmarking entre diferentes códigos de empresa. Por que isso importa Representa o principal KPI da duração geral do processo, permitindo acompanhar, em alto nível, as melhorias de eficiência ao longo do tempo. Onde obter Calculado no nível do caso: Exemplos P5D10H30MP7D2HP6D | |||
| Tipo de lançamento contábil JournalEntryType | O tipo de documento financeiro que está sendo lançado, diferenciando lançamentos padrão, apropriações e ajustes. | ||
| Descrição O tipo de lançamento contábil, ou tipo de documento na terminologia do SAP, é uma chave que classifica documentos contábeis. Ele controla em quais tipos de conta um documento pode ser lançado e é usado para distinguir diferentes transações de negócio, como uma fatura de fornecedor (KR), um lançamento no Razão (SA) ou um pagamento de cliente (DZ). No contexto do fechamento do período, esse atributo é essencial para isolar tipos específicos de atividades. Por exemplo, ele permite que os analistas se concentrem em lançamentos contábeis de ajuste para dar suporte ao Dashboard "Adjusting Journal Entry Analysis" e ao KPI "Adjusting Journal Entries Count". Ele também ajuda a calcular o "Manual Postings Ratio". Por que isso importa Categoriza as transações financeiras, permitindo concentrar a análise em tipos específicos de lançamentos, como ajustes manuais, que são essenciais para um fechamento do período eficiente. Onde obter É um campo padrão da tabela de cabeçalho de documentos financeiros BKPF (campo BLART). Exemplos SAKRAB | |||
| Última atualização dos dados LastDataUpdate | O carimbo de data e hora que indica quando os dados foram atualizados ou extraídos pela última vez do sistema de origem. | ||
| Descrição Esse atributo registra a data e a hora da extração de dados mais recente. Ele fornece contexto sobre a atualidade dos dados analisados na ferramenta de Process Mining. Seu principal objetivo é apoiar a governança de dados e a conscientização dos usuários. Quem visualiza o Dashboard consegue ver quão atual é a análise, o que é especialmente importante para Dashboards de monitoramento quase em tempo real, como 'Current Period Close Status'. Isso ajuda a entender se os dados exibidos são de hoje, de ontem ou da semana passada. Por que isso importa Informa aos usuários a atualidade dos dados, garantindo que eles entendam quão recentes são os insights do processo. Onde obter São metadados gerados e registrados no conjunto de dados pela ferramenta de extração de dados ou ETL no momento da execução. Exemplos 2024-06-10T08:00:00Z2024-06-09T08:00:00Z | |||
| Valor do documento DocumentAmount | O valor total do lançamento financeiro na moeda do documento. | ||
| Descrição Esse atributo representa o valor monetário associado a um documento financeiro. Nos ajustes de fim de período, pode ser o valor da apropriação ou da correção que está sendo lançada. A análise do valor é útil para avaliações de materialidade. Ela permite que os analistas priorizem a investigação de lançamentos de ajuste de alto valor, que podem representar um risco financeiro maior. O atributo também pode ser usado para filtrar o mapa do processo e concentrar a análise apenas em transações acima de determinado limite, simplificando a visualização para mostrar as atividades mais relevantes. Por que isso importa Adiciona uma dimensão financeira à análise, permitindo priorizar problemas com base no impacto monetário e na materialidade. Onde obter Esse valor normalmente precisa ser agregado a partir de tabelas de itens de linha, como BSEG ou ACDOCA (campo WRBTR, valor na moeda do documento). Exemplos 15000.00250.75-500.00 | |||
Record to Report - Atividades do fechamento do período e da reconciliação
| Atividade | Descrição | ||
|---|---|---|---|
| Demonstrações financeiras geradas | Essa atividade marca a criação das demonstrações financeiras oficiais, como o Balanço Patrimonial e a Demonstração do Resultado. Ela representa a conclusão dos processos contábeis e de consolidação do fim do período. | ||
| Por que isso importa Este é um marco importante no ciclo de Record to Report. Seu momento é crítico para cumprir os prazos de reporte e fornecer informações oportunas às partes interessadas. Onde obter O ideal é capturá-lo por meio de uma ferramenta de gerenciamento do fechamento financeiro, como o SAP Financial Closing Cockpit, onde ele aparece como uma tarefa explícita. Caso contrário, deve ser inferido pelos logs de geração de relatórios ou pelos horários de criação dos arquivos. Captura Acompanhe o status de conclusão da tarefa 'Generate Financial Statements' em uma ferramenta de fechamento ou analise os logs de execução dos relatórios. Tipo de evento inferred | |||
| Lançamento contábil de ajuste registrado | Representa um lançamento contábil corretivo feito depois das reconciliações iniciais, normalmente para corrigir divergências encontradas durante a análise. Trata-se de uma transação explícita lançada no General Ledger. | ||
| Por que isso importa Uma frequência alta de lançamentos de ajuste indica baixa qualidade na primeira execução dos processos ou reconciliações anteriores. Analisar esses lançamentos é essencial para identificar as causas-raiz dos erros e reduzir o retrabalho. Onde obter Registrado como documentos explícitos nas tabelas ACDOCA e BKPF. Eles podem ser identificados por tipos de documento específicos, datas de lançamento próximas ao fim do ciclo de fechamento ou descrições de texto específicas. Captura Filtre os lançamentos contábeis na BKPF com base em uma combinação de tipo de documento e data de lançamento em relação às atividades de reconciliação. Tipo de evento explicit | |||
| Período aberto para lançamentos | Isso marca o início do período financeiro, quando os períodos de lançamento são abertos para o registro de transações. Trata-se de uma alteração explícita de configuração, registrada e realizada por um administrador financeiro no SAP, permitindo lançamentos contábeis no novo período. | ||
| Por que isso importa Essa atividade funciona como o principal evento de início do processo de fechamento do período. Ela permite medir com precisão o tempo total do ciclo e estabelece um ponto inicial claro para a análise do processo. Onde obter Esse evento é capturado a partir dos documentos de alteração, nas tabelas CDHDR e CDPOS, que registram modificações na tabela de controle de períodos de lançamento T001B, normalmente executadas pela transação OB52. Captura Filtre os logs de alterações da tabela T001B relacionados ao ano fiscal e ao período específicos. Tipo de evento explicit | |||
| Período fechado para lançamentos | Esta é a atividade final do ciclo, quando o período de lançamentos é formalmente fechado para impedir novas transações. Essa ação garante a integridade dos dados dos relatórios financeiros finalizados. | ||
| Por que isso importa Essa atividade funciona como o evento definitivo de fim do processo. Ela é essencial para calcular o tempo total do ciclo de fechamento do período e analisar tendências de conclusão do processo. Onde obter Assim como na abertura do período, esse evento é capturado nos documentos de alteração, nas tabelas CDHDR e CDPOS, que registram atualizações na tabela de controle de períodos de lançamento T001B pela transação OB52. Captura Filtre os logs de alterações da tabela T001B para identificar o fechamento do ano fiscal e do período relevantes. Tipo de evento explicit | |||
| Reconciliação de conta aprovada | Essa atividade representa a aprovação final de uma reconciliação de conta do GL, confirmando que o saldo foi comprovado e que todos os problemas foram resolvidos. Ela é inferida a partir da alteração do status para 'Approved' em uma ferramenta de reconciliação. | ||
| Por que isso importa Esse marco indica a conclusão de uma atividade de controle crítica. Acompanhar os tempos de aprovação ajuda a identificar gargalos no processo de análise e é essencial para medir o retrabalho e o rendimento na primeira passagem. Onde obter Capturado em um sistema de gerenciamento de reconciliações, como o SAP Account Substantiation and Automation, acompanhando o horário do status de aprovação final. Captura Identifique o horário em que o campo de status de uma reconciliação é atualizado para seu estado final 'Approved'. Tipo de evento inferred | |||
| Reconciliação de conta iniciada | Marca o início do processo manual ou semiautomatizado de comprovação dos saldos das contas do GL. Isso é inferido quando o status de uma reconciliação muda de 'New' para 'In Progress' ou quando a primeira ação do preparador é registrada. | ||
| Por que isso importa Este é um marco importante para entender a duração e o esforço envolvidos na comprovação dos saldos do balanço patrimonial. Ele ajuda a identificar quais contas ou departamentos iniciam suas reconciliações com atraso. Onde obter Esse evento normalmente é capturado em uma ferramenta dedicada de reconciliação, como o SAP Account Substantiation and Automation by BlackLine, ou em outros sistemas de terceiros. Ele é inferido a partir dos horários das alterações de status. Captura Acompanhe o horário da primeira alteração de status a partir do estado 'Not Started' para uma determinada reconciliação de conta do GL. Tipo de evento inferred | |||
| Reconciliação intercompany iniciada | Essa atividade representa o início do processo de correspondência e reconciliação de transações entre diferentes códigos de empresa do mesmo grupo corporativo. Ela geralmente é iniciada pela execução de um job de reconciliação ou pela criação de um novo caso de reconciliação na ferramenta ICMR do SAP. | ||
| Por que isso importa A reconciliação intercompany costuma ser complexa e demorada. Analisar sua duração e seu fluxo é essencial para simplificar o fechamento do grupo e garantir a precisão das demonstrações financeiras consolidadas. Onde obter Inferido a partir das alterações de status no módulo SAP Intercompany Matching and Reconciliation (ICMR) ou da criação dos primeiros documentos de reconciliação do período. Captura Acompanhe a data de criação ou o horário da alteração de status das unidades de reconciliação no ICMR para o período informado. Tipo de evento inferred | |||
| Acréscimos e provisões lançados | Esse evento captura a criação de lançamentos contábeis manuais para acréscimos, diferimentos e outras provisões necessários para uma apresentação financeira precisa pelo regime de competência. São transações explícitas lançadas no General Ledger. | ||
| Por que isso importa Acompanhar esses lançamentos ajuda a analisar o volume e o momento dos ajustes manuais. Um volume alto pode indicar oportunidades de automação ou melhoria nos processos anteriores. Onde obter Registrado como lançamentos contábeis explícitos na tabela de diário universal ACDOCA e na tabela de cabeçalho BKPF. Esses lançamentos podem ser identificados por tipos de documento específicos configurados para acréscimos. Captura Filtre os documentos da tabela BKPF pelo tipo de documento, por exemplo, 'SA' ou tipos personalizados, e pela data de lançamento dentro do período. Tipo de evento explicit | |||
| Balancete preparado | Indica que um balancete foi gerado e salvo para análise, servindo como um ponto de controle importante antes da criação das demonstrações financeiras finais. A captura desse evento geralmente depende de procedimentos nos quais a saída do relatório é salva. | ||
| Por que isso importa A preparação do balancete é um gate de qualidade essencial. Analisar seu momento ajuda a entender a prontidão para o relatório final e pode destacar atrasos nas atividades anteriores. Onde obter Esse geralmente não é um evento explícito. Ele pode ser inferido a partir da execução de uma transação de relatório específica, caso as variantes sejam salvas com o usuário e o horário, ou se o processo for gerenciado em uma ferramenta como o SAP Financial Closing Cockpit. Captura É necessário analisar o sistema para determinar se existe um mecanismo confiável de registro, como logs de execução de relatórios ou listas de tarefas do closing cockpit. Tipo de evento inferred | |||
| Demonstrações financeiras aprovadas | Representa a aprovação final das demonstrações financeiras pela administração autorizada antes da publicação. Muitas vezes, esse é um processo offline, mas ele pode ser capturado quando existe uma etapa formal de aprovação digital. | ||
| Por que isso importa Este é o gate final de qualidade e controle. Acompanhar seu momento é essencial para entender a aderência aos prazos de reporte e a eficiência geral do ciclo de análise da administração. Onde obter Esse evento é capturado quando existe um Workflow ou campo de status para aprovação das demonstrações, por exemplo, no SAP Financial Closing Cockpit ou em um sistema de gerenciamento de documentos. Captura Identifique um campo de dados e um horário que indiquem a aprovação final do pacote de demonstrações financeiras. Tipo de evento inferred | |||
| Execução de avaliação de moeda estrangeira | Este é um procedimento padrão de fim de mês para reavaliar itens em aberto e saldos em moedas estrangeiras com base nas taxas de câmbio do fim do período. A execução desse programa lança as diferenças de avaliação resultantes. | ||
| Por que isso importa Garante a conformidade com as normas contábeis e fornece uma visão financeira precisa. Acompanhar essa atividade ajuda a garantir que todas as avaliações cambiais sejam realizadas no prazo. Onde obter Capturado nos logs de execução do programa de avaliação de moeda estrangeira, por exemplo, FAGL_FCV. Os detalhes dos jobs ficam armazenados nas tabelas TBTCO e TBTCP. Captura Monitore os logs de execução dos jobs relacionados à transação FAGL_FCV ou ao programa subjacente. Tipo de evento explicit | |||
| Execução de compensação automática concluída | Representa a execução de programas de compensação automática no SAP, como o job de compensação GR/IR (Goods Receipt/Invoice Receipt). Esses jobs fazem a correspondência e compensam itens em aberto em contas específicas do GL, reduzindo o esforço manual de reconciliação. | ||
| Por que isso importa Essa atividade destaca o nível de automação do processo de reconciliação. Falhas ou exceções nessas execuções podem gerar trabalho manual significativo e atrasos. Onde obter Capturado nos logs de execução de jobs em lote específicos, como F.13 ou F.13E para compensação automática. As tabelas TBTCO e TBTCP contêm os detalhes da execução. Captura Monitore os horários de início e término dos jobs associados a transações como F.13 nos logs de jobs do SAP. Tipo de evento explicit | |||
| Tarefas de consolidação executadas | Representa a execução de atividades de consolidação no SAP Group Reporting, como conversão cambial, reclassificação e eliminação de lucros intercompany. Essas tarefas normalmente são gerenciadas e registradas no monitor de consolidação. | ||
| Por que isso importa Para organizações com várias entidades legais, o processo de consolidação é um item crítico do caminho. Monitorar essas tarefas ajuda a simplificar o fechamento do grupo e garantir a entrega pontual dos relatórios consolidados. Onde obter Capturado nos logs de status do Data Monitor ou do Consolidation Monitor no SAP S/4HANA para Group Reporting. Cada tarefa normalmente tem um usuário, um horário e um status. Captura Extraia os logs de execução das tarefas das tabelas subjacentes do monitor de consolidação do Group Reporting. Tipo de evento explicit | |||
| Transferência de dados dos subledgers concluída | Representa a conclusão dos jobs em lote que transferem dados consolidados de subledgers, como Contas a Receber, Contas a Pagar e Contabilidade de Ativos, para o General Ledger. Isso garante que todas as transações operacionais subjacentes estejam refletidas no GL antes do início dos procedimentos de fechamento. | ||
| Por que isso importa Atrasos no fechamento dos subledgers podem ser um gargalo importante para o processo como um todo. Acompanhar essa atividade ajuda a identificar ineficiências na coleta e na integração de dados dos sistemas de origem. Onde obter Inferido a partir do status de conclusão bem-sucedida de jobs em lote específicos, responsáveis pela liquidação do ledger e pela transferência de dados. Os logs dos jobs podem ser encontrados nas tabelas TBTCO e TBTCP. Captura Identifique e monitore os horários de conclusão dos jobs em lote relevantes na visão geral de jobs do SAP, pela transação SM37. Tipo de evento explicit | |||
Guias de extração
Etapas
- Identifique e verifique as CDS Views: Acesse seu sistema SAP S/4HANA usando o SAP HANA Studio ou o Eclipse com ADT. Use as ABAP Development Tools para pesquisar e verificar a existência das CDS Views padrão mencionadas na consulta, como I_JournalEntryItem, I_BatchJob e I_ConsolidationTaskLog. Para processos como Account Reconciliation, talvez seja necessário criar CDS Views personalizadas, por exemplo Z_I_ACCOUNTRECONCILIATION, para capturar alterações de status.
- Exponha as CDS Views via OData: No backend do SAP, use a transação
SEGW(Gateway Service Builder) para criar um novo projeto. Clique com o botão direito na pasta Data Model e selecione 'Reference -> Data Source'. Adicione as CDS Views necessárias. Gere os objetos de runtime para criar um serviço OData que exponha essas Views para consumo externo. - Ative o serviço OData: Acesse a transação
/IWFND/MAINT_SERVICEno hub do SAP Gateway. Clique em 'Add Service', localize o serviço gerado na etapa anterior e adicione-o. Isso ativa o serviço e o disponibiliza para consultas. - Estabeleça a conexão de dados: Na ferramenta de extração de dados escolhida, como Python, Power BI ou uma plataforma ETL dedicada, estabeleça uma conexão com o serviço OData recém-criado. Você precisará da URL do serviço e de credenciais apropriadas, com autorização para acessar as CDS Views.
- Adapte e execute a consulta: Copie a consulta SQL fornecida. Modifique os valores de placeholder para intervalos de datas, códigos de empresa e quaisquer CDS Views personalizadas ou nomes de batch jobs, de acordo com o seu ambiente SAP. Execute a consulta no endpoint do serviço OData. Observe que o OData usa uma sintaxe diferente ($filter, $select), portanto talvez seja necessário traduzir a lógica da consulta UNION ALL em uma série de chamadas de API separadas, uma para cada atividade.
- Consolide os dados das atividades: Como o OData normalmente não oferece suporte direto a consultas UNION ALL complexas em uma única chamada, você executará uma solicitação separada para cada bloco de atividade da consulta. Consolide os resultados de todas as solicitações em um único conjunto de dados ou tabela na ferramenta cliente.
- Transforme e limpe os dados: Revise os dados consolidados. Garanta que as colunas
EventTimeeEndTimeestejam em um formato de timestamp consistente. Verifique seFinancialPeriodestá formatado corretamente como 'YYYY-MM'. Trate os valores NULL em colunas comoResponsibleUserouDocumentNumberconforme necessário. - Exporte como Event Log: Exporte o conjunto de dados final e consolidado para um arquivo CSV. Garanta que os cabeçalhos das colunas correspondam aos atributos necessários:
FinancialPeriod,ActivityName,EventTime,EndTime,ResponsibleUseretc. Agora, o arquivo está pronto para ser carregado no ProcessMind.
Configuração
- CDS Views: A consulta depende de uma combinação de CDS Views padrão e personalizadas. Views padrão como
I_JournalEntryItem(para lançamentos contábeis) eI_BatchJob(para execuções automatizadas) são essenciais. Views personalizadas, comoZ_I_ACCOUNTRECONCILIATION, geralmente são necessárias para capturar o status de processos internos que não são cobertos pelas Views padrão. - Intervalo de datas: Defina um intervalo específico para a extração e controlar o volume de dados. A consulta usa os placeholders
[Start Date]e[End Date], que normalmente devem abranger de 3 a 6 períodos fiscais completos para uma análise relevante. - Filtros principais: Filtrar é essencial para garantir performance e relevância. Sempre filtre por
CompanyCode. Outros filtros importantes incluemLedger(por exemplo, '0L' para o ledger principal),FiscalYeare valores específicos deDocumentTypepara diferenciar lançamentos regulares, apropriações e ajustes. - Pré-requisitos: O usuário que executar a extração precisa de autorizações no SAP para acessar as CDS Views especificadas e executar serviços OData, como os objetos de autorização
S_SERVICEeS_RFC. Os serviços do SAP Gateway devem estar configurados e ativados. - Performance: Consultar
I_JournalEntryItempode exigir muitos recursos. Sempre aplique filtros seletivos, especialmente em datas, códigos de empresa e ledgers. Considere executar a extração fora do horário de pico ou usar uma estratégia de carregamento incremental para monitoramento contínuo.
a Consulta de exemplo sql
SELECT
CONCAT(CAST(PostingDate AS DATE FORMAT 'YYYY'), '-', CAST(PostingDate AS DATE FORMAT 'MM')) AS FinancialPeriod,
'Period Opened For Posting' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
CAST(CreationDateTime AS TIMESTAMP) AS EndTime,
CreatedByUser AS ResponsibleUser,
CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_FinPostingPeriodControl -- This is a proxy; this activity is a configuration change often found in change logs (CDHDR/CDPOS for table T001B)
WHERE PostingPeriodVariant = '[Your Variant]' AND FiscalYear = '[Your Fiscal Year]' AND FromPostingPeriod = 1 AND AuthorizationGroup IS NOT NULL -- Logic to detect the opening event
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod, -- Infer period from Job Name if patterned, otherwise use job start date
'Subledger Data Transfer Completed' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE '[Subledger Job Prefix]%' AND JobStatus = 'F' -- 'F' for Finished
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(CAST(CreationDate AS DATE FORMAT 'YYYY'), '-', CAST(CreationDate AS DATE FORMAT 'MM')) AS FinancialPeriod,
'Intercompany Reconciliation Started' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
NULL AS EndTime,
CreatedByUser AS ResponsibleUser,
LeadingCompanyCode AS CompanyCode,
NULL AS GlAccountNumber,
ReconciliationCase AS DocumentNumber,
ReconciliationCaseStatus AS ReconciliationStatus,
NULL AS TargetCompletionDate,
NULL AS ProcessingTime
FROM I_ICRcnCase -- Part of SAP S/4HANA for group reporting
WHERE CreationDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Accruals And Provisions Posted' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
CAST(CreationDateTime AS TIMESTAMP) AS EndTime,
CreatedByUser AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
AccountingDocument AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_JournalEntryItem
WHERE DocumentType IN ('[Accrual Doc Type 1]', '[Accrual Doc Type 2]') -- e.g., 'SA', 'AC'
AND PostingDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Automated Clearing Run Executed' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE 'SAPF124%' AND JobStatus = 'F'
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Foreign Currency Valuation Run' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE 'FAGL_FCV%' AND JobStatus = 'F'
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
-- This activity often requires a custom view on a custom table or an add-on like SAP Account Substantiation and Automation.
-- The following is a placeholder for such a custom view.
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Account Reconciliation Started' AS ActivityName,
CAST(ChangedAt AS TIMESTAMP) AS EventTime,
NULL AS EndTime,
ChangedBy AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
ReconciliationID AS DocumentNumber,
'In Progress' AS ReconciliationStatus,
PlannedCompletionDate AS TargetCompletionDate,
NULL AS ProcessingTime
FROM Z_I_ACCOUNTRECONCILIATION -- Placeholder for your custom reconciliation status view
WHERE Status = 'IN_PROGRESS' AND OldStatus = 'NEW'
AND ChangeDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Adjusting Journal Entry Posted' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
CAST(CreationDateTime AS TIMESTAMP) AS EndTime,
CreatedByUser AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
AccountingDocument AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_JournalEntryItem
WHERE DocumentType IN ('[Adjustment Doc Type 1]', '[Adjustment Doc Type 2]') -- e.g., 'AJ'
AND PostingDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
-- This activity often requires a custom view on a custom table or an add-on product.
-- The following is a placeholder for such a custom view.
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Account Reconciliation Approved' AS ActivityName,
CAST(ChangedAt AS TIMESTAMP) AS EventTime,
CAST(ChangedAt AS TIMESTAMP) AS EndTime,
ApprovedBy AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
ReconciliationID AS DocumentNumber,
'Approved' AS ReconciliationStatus,
PlannedCompletionDate AS TargetCompletionDate,
NULL AS ProcessingTime
FROM Z_I_ACCOUNTRECONCILIATION -- Placeholder for your custom reconciliation status view
WHERE Status = 'APPROVED'
AND ChangeDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Consolidation Tasks Executed' AS ActivityName,
CAST(TaskExecutionUTCTimestamp AS TIMESTAMP) AS EventTime,
CAST(TaskCompletionUTCTimestamp AS TIMESTAMP) AS EndTime,
ExecutedByUser AS ResponsibleUser,
ConsolidationUnitCompanyCode AS CompanyCode, -- Assuming mapping exists
NULL AS GlAccountNumber,
DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(TaskExecutionUTCTimestamp AS TIMESTAMP), CAST(TaskCompletionUTCTimestamp AS TIMESTAMP)) AS ProcessingTime
FROM I_ConsolidationTaskLog
WHERE ConsolidationTaskStatus = 'S' -- Successful
AND TaskExecutionUTCDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Trial Balance Prepared' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE '[Trial Balance Job Prefix]%' AND JobStatus = 'F' -- Example: FAGL_TRIAL_BALANCE_RUN
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Financial Statements Generated' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE '[Fin Statement Job Prefix]%' AND JobStatus = 'F'
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
-- Approval is often a manual step. This requires a custom solution to capture.
-- The following is a placeholder for such a custom view.
SELECT
CONCAT(ApprovalYear, '-', LPAD(ApprovalPeriod, 2, '0')) AS FinancialPeriod,
'Financial Statements Approved' AS ActivityName,
CAST(ApprovalTimestamp AS TIMESTAMP) AS EventTime,
CAST(ApprovalTimestamp AS TIMESTAMP) AS EndTime,
ApproverUser AS ResponsibleUser,
CompanyCode,
NULL AS GlAccountNumber,
FinancialStatementVersion AS DocumentNumber,
'Approved' AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM Z_I_FINSTATEMENTAPPROVAL -- Placeholder for custom approval tracking view
WHERE ApprovalDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(CAST(LastChangeDate AS DATE FORMAT 'YYYY'), '-', CAST(LastChangeDate AS DATE FORMAT 'MM')) AS FinancialPeriod,
'Period Closed For Posting' AS ActivityName,
CAST(LastChangeDateTime AS TIMESTAMP) AS EventTime,
CAST(LastChangeDateTime AS TIMESTAMP) AS EndTime,
LastChangedByUser AS ResponsibleUser,
CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_FinPostingPeriodControl -- Proxy, see note on 'Period Opened'
WHERE PostingPeriodStatus = 'C' -- 'C' for Closed
AND LastChangeDate BETWEEN '[Start Date]' AND '[End Date]'; Etapas
- Confirme se o acesso direto de leitura ao schema do SAP HANA que contém as tabelas de aplicação necessárias está disponível e identifique o proprietário do schema de ACDOCA, TBTCO, CDHDR e CDPOS. Substitua o placeholder do schema na consulta pelo nome de schema aprovado.
- Confirme o ano fiscal, o período fiscal, o escopo do código de empresa e o intervalo de datas da extração. Use um intervalo que cubra todo o ciclo de fechamento, normalmente de três a seis meses, e substitua os parâmetros de data por valores adequados ao seu sistema.
- Valide os mapeamentos locais de campos para alterações na configuração do período de lançamento, conclusão de batch jobs, alterações no status de reconciliação, execução da consolidação, geração de relatórios e registros de aprovação. A consulta usa placeholders profissionais para objetos de origem que não têm garantia de existir em toda implantação do SAP S/4HANA. Substitua esses placeholders por Views ou tabelas aprovadas do seu sistema antes da execução.
- Execute a consulta com credenciais de banco de dados somente leitura. A consulta cria explicitamente uma linha de evento para cada atividade necessária e não infere eventos adicionais com base na ordem dos eventos.
- Revise as colunas retornadas. FinancialPeriod é o identificador do caso, ActivityName é a atividade do evento e EventTime é o timestamp obrigatório do evento. EndTime, ResponsibleUser, CompanyCode, GlAccountNumber, DocumentNumber, ReconciliationStatus e TargetCompletionDate são incluídos quando o registro de origem os fornece.
- Valide se todas as atividades necessárias estão presentes no resultado, inclusive as que podem não ter registros de origem em determinado período. Para tipos de atividade ausentes, a consulta retorna uma linha de validação com ActivityName definido como Activity Coverage Validation. Remova essa linha ou trate-a separadamente antes do upload no ProcessMind caso a importação de destino exija apenas eventos de negócio.
- Faça a reconciliação de eventos representativos com os registros de aplicação e logs de jobs do SAP. Confirme se os eventos de lançamentos contábeis correspondem aos registros de ACDOCA, se os eventos de jobs correspondem aos registros de TBTCO e se os eventos de alteração correspondem aos registros de CDHDR e CDPOS ou às fontes de reconciliação e aprovação configuradas.
- Exporte o resultado como CSV UTF-8 ou em outro formato tabular compatível com o ProcessMind. Preserve os nomes exatos das colunas FinancialPeriod, ActivityName e EventTime. Ordene por FinancialPeriod e EventTime e mantenha uma linha para cada evento extraído explicitamente.
- Carregue o Event Log no ProcessMind e configure FinancialPeriod como identificador do caso, ActivityName como atividade e EventTime como timestamp inicial. Mapeie EndTime como timestamp final quando disponível e mapeie as demais colunas como atributos de evento ou de caso.
Observação importante sobre o mapeamento das fontes: o SAP S/4HANA não oferece uma estrutura universal de tabelas para todas as ferramentas de reconciliação, monitores de consolidação, arquivos de relatórios, workflows de aprovação ou configurações de período de lançamento. Substitua cada placeholder [Your table name] e [Your column name] na consulta por um objeto e uma coluna verificados no seu sistema. Não trate um placeholder como SQL executável.
Configuração
- Acesso ao banco de dados: Use um usuário de banco de dados SAP HANA somente leitura, com autorização SELECT em ACDOCA, TBTCO, CDHDR, CDPOS e nos objetos de origem configurados para controle do período de lançamento, reconciliação, consolidação, relatórios e aprovações.
- Configuração do schema: Substitua [Your SAP schema] pelo schema real que contém os objetos de aplicação. Confirme se os objetos são tabelas, calculation views ou reporting views aprovadas.
- Intervalo de datas: Extraia todo o ciclo de fechamento, normalmente de três a seis meses. Inclua as atividades de abertura e fechamento, lançamentos tardios, estornos, aprovações e ajustes pós-fechamento.
- Período fiscal: Filtre pelo ano fiscal e pelo período fiscal usados pelo código de empresa. Não presuma períodos do ano-calendário se a variante do ano fiscal for diferente.
- Company Code: Aplique um filtro de código de empresa quando o processo estiver limitado a determinadas entidades legais. Use [Configure based on your system] quando o escopo for mantido em um mapeamento organizacional separado.
- Tipos de documento: Restrinja a extração de lançamentos contábeis aos tipos de documento usados para apropriações, provisões, ajustes, avaliação, compensação e outros lançamentos de fechamento. Confirme a configuração local dos tipos de documento antes de ativar esses filtros.
- Status do job: Inclua apenas jobs concluídos ou finalizados com sucesso nas atividades de conclusão. Valide os valores de status locais de TBTCO antes de aplicar um predicado de status.
- Documentos de alteração: Filtre CDHDR e CDPOS pela classe de objeto e pelos indicadores de alteração relevantes depois de confirmar a configuração local. Os documentos de alteração, sozinhos, podem não identificar todas as atividades de negócio.
- Fontes de reconciliação e aprovação: Configure objetos de origem verificados para transições de status de reconciliação, ações do preparador, aprovações, datas-alvo e assinatura digital. Essas fontes variam conforme os componentes e as extensões do SAP implantados.
- Performance: Restrinja os predicados por ano fiscal, período fiscal, código de empresa, data de lançamento e timestamp do evento. Aplique os filtros em cada ramificação UNION ALL, evite varreduras irrestritas de ACDOCA e execute durante uma janela de relatórios aprovada.
- Tipos de dados: Normalize os timestamps para um fuso horário e tipo de dados comuns. Converta strings vazias em NULL e preserve os zeros à esquerda em códigos de empresa, números de conta e números de documento.
- Pré-requisitos: Confirme se os componentes SAP necessários, as ferramentas de reconciliação, a funcionalidade de consolidação, o registro de jobs, a ativação de documentos de alteração e qualquer registro de auditoria de relatórios ou workflows estão disponíveis e preenchidos.
- Segurança e conformidade: Aplique o princípio do menor privilégio, proteja os dados financeiros e de usuários, documente a finalidade da extração e siga os requisitos de auditoria de SAP e de banco de dados da organização.
a Consulta de exemplo sql
WITH
params AS (
SELECT
TO_DATE('[Start date YYYY-MM-DD]') AS start_date,
TO_DATE('[End date YYYY-MM-DD]') AS end_date,
'[Fiscal year]' AS fiscal_year_filter,
'[Fiscal period]' AS fiscal_period_filter,
'[Company code filter]' AS company_code_filter
FROM DUMMY
),
base_events AS (
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0') AS FinancialPeriod,
'Accruals And Provisions Posted' AS ActivityName,
CAST(a.BUDAT AS TIMESTAMP) AS EventTime,
CAST(NULL AS TIMESTAMP) AS EndTime,
CAST(a.USNAM AS NVARCHAR(80)) AS ResponsibleUser,
CAST(a.RBUKRS AS NVARCHAR(20)) AS CompanyCode,
CAST(a.RACCT AS NVARCHAR(40)) AS GlAccountNumber,
CAST(a.BELNR AS NVARCHAR(40)) AS DocumentNumber,
CAST(NULL AS NVARCHAR(40)) AS ReconciliationStatus,
CAST(NULL AS DATE) AS TargetCompletionDate
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Accrual document type]', '[Provision document type]')
UNION ALL
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0'),
'Adjusting Journal Entry Posted',
CAST(a.BUDAT AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(a.USNAM AS NVARCHAR(80)),
CAST(a.RBUKRS AS NVARCHAR(20)),
CAST(a.RACCT AS NVARCHAR(40)),
CAST(a.BELNR AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Adjusting journal entry document type]')
UNION ALL
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0'),
'Foreign Currency Valuation Run',
CAST(a.BUDAT AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(a.USNAM AS NVARCHAR(80)),
CAST(a.RBUKRS AS NVARCHAR(20)),
CAST(a.RACCT AS NVARCHAR(40)),
CAST(a.BELNR AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Foreign currency valuation document type]')
UNION ALL
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0'),
'Automated Clearing Run Executed',
CAST(a.BUDAT AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(a.USNAM AS NVARCHAR(80)),
CAST(a.RBUKRS AS NVARCHAR(20)),
CAST(a.RACCT AS NVARCHAR(40)),
CAST(a.BELNR AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Automated clearing document type]')
UNION ALL
SELECT
CAST(j.[Financial period column] AS NVARCHAR(20)),
'Subledger Data Transfer Completed',
CAST(j.[Job end timestamp column] AS TIMESTAMP),
CAST(j.[Job end timestamp column] AS TIMESTAMP),
CAST(j.[Job user column] AS NVARCHAR(80)),
CAST(j.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(j.[Job name column] AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].TBTCO j
CROSS JOIN params p
WHERE j.[Job end timestamp column] >= p.start_date
AND j.[Job end timestamp column] < ADD_DAYS(p.end_date, 1)
AND j.[Job status column] = '[Successful job status]'
AND j.[Job name column] IN ('[AR transfer job]', '[AP transfer job]', '[Asset Accounting transfer job]')
UNION ALL
SELECT
CAST(j.[Financial period column] AS NVARCHAR(20)),
'Intercompany Reconciliation Started',
CAST(j.[Job start timestamp column] AS TIMESTAMP),
CAST(j.[Job end timestamp column] AS TIMESTAMP),
CAST(j.[Job user column] AS NVARCHAR(80)),
CAST(j.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(j.[Job name column] AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].TBTCO j
CROSS JOIN params p
WHERE j.[Job start timestamp column] >= p.start_date
AND j.[Job start timestamp column] < ADD_DAYS(p.end_date, 1)
AND j.[Job name column] IN ('[Intercompany reconciliation job]')
UNION ALL
SELECT
CAST(r.[Financial period column] AS NVARCHAR(20)),
'Intercompany Reconciliation Started',
CAST(r.[Status change timestamp column] AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(r.[Responsible user column] AS NVARCHAR(80)),
CAST(r.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(r.[Reconciliation case column] AS NVARCHAR(40)),
CAST(r.[Status column] AS NVARCHAR(40)),
CAST(r.[Target completion date column] AS DATE)
FROM [Your table name for intercompany reconciliation] r
CROSS JOIN params p
WHERE r.[Status change timestamp column] >= p.start_date
AND r.[Status change timestamp column] < ADD_DAYS(p.end_date, 1)
AND r.[Status column] IN ('Started', 'In Progress')
UNION ALL
SELECT
CAST(r.[Financial period column] AS NVARCHAR(20)),
'Account Reconciliation Started',
CAST(r.[Status change timestamp column] AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(r.[Responsible user column] AS NVARCHAR(80)),
CAST(r.[Company code column] AS NVARCHAR(20)),
CAST(r.[GL account column] AS NVARCHAR(40)),
CAST(r.[Reconciliation case column] AS NVARCHAR(40)),
CAST(r.[Status column] AS NVARCHAR(40)),
CAST(r.[Target completion date column] AS DATE)
FROM [Your table name for account reconciliation] r
CROSS JOIN params p
WHERE r.[Status change timestamp column] >= p.start_date
AND r.[Status change timestamp column] < ADD_DAYS(p.end_date, 1)
AND r.[Status column] IN ('In Progress')
UNION ALL
SELECT
CAST(r.[Financial period column] AS NVARCHAR(20)),
'Account Reconciliation Approved',
CAST(r.[Status change timestamp column] AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(r.[Approver user column] AS NVARCHAR(80)),
CAST(r.[Company code column] AS NVARCHAR(20)),
CAST(r.[GL account column] AS NVARCHAR(40)),
CAST(r.[Reconciliation case column] AS NVARCHAR(40)),
CAST(r.[Status column] AS NVARCHAR(40)),
CAST(r.[Target completion date column] AS DATE)
FROM [Your table name for account reconciliation] r
CROSS JOIN params p
WHERE r.[Status change timestamp column] >= p.start_date
AND r.[Status change timestamp column] < ADD_DAYS(p.end_date, 1)
AND r.[Status column] = 'Approved'
UNION ALL
SELECT
CAST(c.[Financial period column] AS NVARCHAR(20)),
'Consolidation Tasks Executed',
CAST(c.[Execution start timestamp column] AS TIMESTAMP),
CAST(c.[Execution end timestamp column] AS TIMESTAMP),
CAST(c.[Responsible user column] AS NVARCHAR(80)),
CAST(c.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(c.[Task identifier column] AS NVARCHAR(40)),
CAST(c.[Status column] AS NVARCHAR(40)),
CAST(c.[Target completion date column] AS DATE)
FROM [Your table name for consolidation execution] c
CROSS JOIN params p
WHERE c.[Execution start timestamp column] >= p.start_date
AND c.[Execution start timestamp column] < ADD_DAYS(p.end_date, 1)
AND c.[Status column] IN ('Completed', 'Successful')
UNION ALL
SELECT
CAST(t.[Financial period column] AS NVARCHAR(20)),
'Trial Balance Prepared',
CAST(t.[Report saved timestamp column] AS TIMESTAMP),
CAST(t.[Report saved timestamp column] AS TIMESTAMP),
CAST(t.[Responsible user column] AS NVARCHAR(80)),
CAST(t.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(t.[Report identifier column] AS NVARCHAR(40)),
CAST(t.[Status column] AS NVARCHAR(40)),
CAST(t.[Target completion date column] AS DATE)
FROM [Your table name for trial balance output] t
CROSS JOIN params p
WHERE t.[Report saved timestamp column] >= p.start_date
AND t.[Report saved timestamp column] < ADD_DAYS(p.end_date, 1)
AND t.[Status column] IN ('Saved', 'Completed')
UNION ALL
SELECT
CAST(f.[Financial period column] AS NVARCHAR(20)),
'Financial Statements Generated',
CAST(f.[Generation timestamp column] AS TIMESTAMP),
CAST(f.[Generation timestamp column] AS TIMESTAMP),
CAST(f.[Responsible user column] AS NVARCHAR(80)),
CAST(f.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(f.[Report identifier column] AS NVARCHAR(40)),
CAST(f.[Status column] AS NVARCHAR(40)),
CAST(f.[Target completion date column] AS DATE)
FROM [Your table name for financial statement output] f
CROSS JOIN params p
WHERE f.[Generation timestamp column] >= p.start_date
AND f.[Generation timestamp column] < ADD_DAYS(p.end_date, 1)
AND f.[Status column] IN ('Generated', 'Saved', 'Completed')
UNION ALL
SELECT
CAST(f.[Financial period column] AS NVARCHAR(20)),
'Financial Statements Approved',
CAST(f.[Approval timestamp column] AS TIMESTAMP),
CAST(f.[Approval timestamp column] AS TIMESTAMP),
CAST(f.[Approver user column] AS NVARCHAR(80)),
CAST(f.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(f.[Report identifier column] AS NVARCHAR(40)),
CAST(f.[Status column] AS NVARCHAR(40)),
CAST(f.[Target completion date column] AS DATE)
FROM [Your table name for financial statement approval] f
CROSS JOIN params p
WHERE f.[Approval timestamp column] >= p.start_date
AND f.[Approval timestamp column] < ADD_DAYS(p.end_date, 1)
AND f.[Status column] = 'Approved'
UNION ALL
SELECT
CAST(x.[Financial period column] AS NVARCHAR(20)),
'Period Opened For Posting',
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Changed by column] AS NVARCHAR(80)),
CAST(x.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(x.[Change document number column] AS NVARCHAR(40)),
CAST(x.[New status column] AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your table name for posting period changes] x
CROSS JOIN params p
WHERE x.[Change timestamp column] >= p.start_date
AND x.[Change timestamp column] < ADD_DAYS(p.end_date, 1)
AND x.[New status column] = 'Open'
UNION ALL
SELECT
CAST(x.[Financial period column] AS NVARCHAR(20)),
'Period Closed For Posting',
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Changed by column] AS NVARCHAR(80)),
CAST(x.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(x.[Change document number column] AS NVARCHAR(40)),
CAST(x.[New status column] AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your table name for posting period changes] x
CROSS JOIN params p
WHERE x.[Change timestamp column] >= p.start_date
AND x.[Change timestamp column] < ADD_DAYS(p.end_date, 1)
AND x.[New status column] = 'Closed'
),
activity_list AS (
SELECT 'Period Opened For Posting' AS ActivityName FROM DUMMY
UNION ALL SELECT 'Subledger Data Transfer Completed' FROM DUMMY
UNION ALL SELECT 'Intercompany Reconciliation Started' FROM DUMMY
UNION ALL SELECT 'Accruals And Provisions Posted' FROM DUMMY
UNION ALL SELECT 'Automated Clearing Run Executed' FROM DUMMY
UNION ALL SELECT 'Foreign Currency Valuation Run' FROM DUMMY
UNION ALL SELECT 'Account Reconciliation Started' FROM DUMMY
UNION ALL SELECT 'Adjusting Journal Entry Posted' FROM DUMMY
UNION ALL SELECT 'Account Reconciliation Approved' FROM DUMMY
UNION ALL SELECT 'Consolidation Tasks Executed' FROM DUMMY
UNION ALL SELECT 'Trial Balance Prepared' FROM DUMMY
UNION ALL SELECT 'Financial Statements Generated' FROM DUMMY
UNION ALL SELECT 'Financial Statements Approved' FROM DUMMY
UNION ALL SELECT 'Period Closed For Posting' FROM DUMMY
),
missing_activities AS (
SELECT
CAST(NULL AS NVARCHAR(20)) AS FinancialPeriod,
'Activity Coverage Validation' AS ActivityName,
CAST(NULL AS TIMESTAMP) AS EventTime,
CAST(NULL AS TIMESTAMP) AS EndTime,
CAST(NULL AS NVARCHAR(80)) AS ResponsibleUser,
CAST(NULL AS NVARCHAR(20)) AS CompanyCode,
CAST(NULL AS NVARCHAR(40)) AS GlAccountNumber,
CAST(NULL AS NVARCHAR(40)) AS DocumentNumber,
CAST('Missing activity: ' || al.ActivityName AS NVARCHAR(40)) AS ReconciliationStatus,
CAST(NULL AS DATE) AS TargetCompletionDate
FROM activity_list al
LEFT JOIN base_events b ON b.ActivityName = al.ActivityName
WHERE b.ActivityName IS NULL
)
SELECT
FinancialPeriod,
ActivityName,
EventTime,
EndTime,
ResponsibleUser,
CompanyCode,
GlAccountNumber,
DocumentNumber,
ReconciliationStatus,
TargetCompletionDate
FROM base_events
UNION ALL
SELECT
FinancialPeriod,
ActivityName,
EventTime,
EndTime,
ResponsibleUser,
CompanyCode,
GlAccountNumber,
DocumentNumber,
ReconciliationStatus,
TargetCompletionDate
FROM missing_activities
ORDER BY FinancialPeriod, EventTime, ActivityName Pronto para começar?
Dê à sua organização as condições para alcançar mais eficiência e conformidade usando este Template de dados. Comece hoje a transformar seu processo de Record to Report.
Otimize hoje seu fechamento e sua reconciliação de Record to Report
Descubra ineficiências e reduza em até 30% o tempo do seu ciclo de fechamento.
Não é necessário cartão de crédito. Comece em poucos minutos.