Seu Template de Dados para Record to Report - Fechamento e Conciliação de Período
Seu Template de Dados para Record to Report - Fechamento e Conciliação de Período
- Atributos recomendados para coletar
- Principais atividades a rastrear para análise de processo
- Orientação passo a passo para extração de dados
Record to Report - Atributos de Fechamento e Conciliação de Período
| Nome | Descrição | ||
|---|---|---|---|
| Período Financeiro FinancialPeriod | Um identificador exclusivo para o ciclo de relatório financeiro, como '2023-12' para dezembro de 2023, servindo como o 'caso' para o processo de fechamento de final de período. | ||
| Descrição O Período Financeiro é o identificador central do Case que agrupa todas as atividades relacionadas ao fechamento contábil de um intervalo de tempo específico, geralmente um mês civil ou período fiscal. Cada período financeiro representa uma execução completa do processo de fechamento. Na análise de Process Mining, este atributo permite rastrear todo o ciclo de vida de um fechamento, desde o início até o reporte final. É usado para comparar tempos de ciclo entre diferentes períodos, identificar caminhos comuns e analisar variações entre procedimentos de fechamento mensais, trimestrais e anuais. Ao tratar cada período como um Case, os analistas podem medir o desempenho ao longo do tempo e identificar gargalos sistêmicos. Por que é importante Este é o identificador essencial do Case que enquadra a análise, permitindo a comparação do desempenho do fechamento de período ao longo do tempo e a identificação de 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 de documentos financeiros, normalmente de tabelas como a BKPF. Exemplos 2023-122024-032024-Q1 | |||
| Atividade ActivityName | O nome de uma etapa ou tarefa de negócio específica realizada no processo de fechamento, como 'Adjusting Journal Entry Posted' ou 'Period Closed For Posting'. | ||
| Descrição Este atributo representa um único Event ou tarefa no processo ponta a ponta de fechamento e conciliação de período. As atividades são os blocos de construção do mapa de processo, mostrando a sequência do trabalho realizado. Elas são frequentemente derivadas de uma combinação de códigos de transação, tipos de documento ou alterações de status no SAP S/4HANA. Analisar atividades é fundamental para o Process Mining. Isso ajuda a visualizar o fluxo do processo, identificar desvios do procedimento padrão, descobrir gargalos onde as atividades levam muito tempo e entender a frequência e a ordem das tarefas. Isso é crucial para dashboards como o Period Close Variant Analysis e o Current Period Close Status. Por que é importante Define as etapas do processo, formando a base do mapa do processo e permitindo a análise do fluxo, desvios e 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 a tarefas de fechamento financeiro (ex: do SAP Financial Closing cockpit). Exemplos Período Aberto para LançamentoReconciliação de Conta IniciadaDemonstrações Financeiras GeradasReconciliação Intercompany Iniciada | |||
| Hora de Início EventTime | O timestamp que indica quando uma atividade específica começou ou foi registrada no sistema. | ||
| Descrição O Event Time captura a data e a hora precisas em que uma atividade ocorreu. Para lançamentos financeiros, isso costuma ser o horário de criação (CPUTM) ou a data de lançamento (BUDAT) de um documento. Para mudanças de status ou tarefas, é o timestamp de quando a alteração foi registrada. Este atributo é fundamental para a ordenação cronológica das atividades e base para toda análise temporal. Ele é usado para calcular tempos de ciclo entre atividades, a duração de tarefas específicas e a duração total do processo de ponta a ponta. Ele suporta diretamente KPIs como o Tempo Médio de Ciclo de Fechamento de Período e o Tempo Médio de Aprovação de Reconciliação. Por que é importante Este timestamp obrigatório permite a ordenação cronológica dos eventos e é a base para todos os cálculos de duração e desempenho. Onde obter Extraído de campos de timestamp como Data de Criação (CPUDT) e Hora de Criação (CPUTM) em tabelas como BKPF, ou de campos de data de modificação em várias tabelas de status (ex: CDHDR, CDPOS). Exemplos 2023-12-28T09:15:30Z2024-01-02T14:00:12Z2024-01-05T11:21:00Z | |||
| Código da Empresa CompanyCode | Um identificador exclusivo para uma entidade legal ou empresa dentro da organização SAP. | ||
| Descrição A Empresa (Company Code) representa uma unidade contábil independente dentro de uma organização, para a qual um conjunto completo e independente de contas pode ser criado. Todas as atividades de fechamento de período são realizadas no nível da Empresa. Esta é uma dimensão organizacional fundamental para a análise financeira. No Process Mining, ela permite comparar o processo de fechamento de período entre diferentes entidades legais. O dashboard 'Period Close Variant Analysis' utiliza a Empresa para identificar inconsistências e promover a padronização dos procedimentos de fechamento. Por que é importante Fornece um contexto organizacional crítico, permitindo a comparação de processos entre diferentes entidades legais para identificar variações e melhores práticas. Onde obter Encontrado em quase 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 final para a conclusão de uma atividade importante, como a geração de demonstrações financeiras. | ||
| Descrição A Target Completion Date representa o prazo interno ou externo para um marco específico no processo de fechamento. É a data em que se espera que uma tarefa seja concluída. Este atributo é essencial para medir o cumprimento do cronograma e o desempenho em relação aos prazos. É a base para o dashboard 'Reporting Deadline Adherence' e para o KPI 'Financial Statement On-Time Rate', que comparam esta data planejada com a Por que é importante Permite a análise do desempenho em relação aos prazos, ajudando a medir e melhorar as taxas de conclusão pontual das atividades críticas de fechamento. Onde obter Esses dados geralmente residem em um sistema de gerenciamento de tarefas ou agendamento, como o SAP Financial Closing Cockpit, onde as listas de tarefas de fechamento são definidas com datas de término planejadas. Exemplos 2024-01-05T23:59:59Z2024-04-04T23:59:59Z2024-07-05T23:59:59Z | |||
| End Time EndTime | O timestamp que indica quando uma atividade foi concluída. | ||
| Descrição O End Time marca a conclusão de uma tarefa. Em alguns casos, pode ser igual ao Start Time para Eventos instantâneos registrados no sistema. Para atividades com duração mensurável, representa o timestamp de finalização. Combinado com o Start Time, este atributo é essencial para calcular o Por que é importante Permite o cálculo das durações das atividades (Processing Time), que é crucial para identificar gargalos de desempenho e analisar a eficiência. Onde obter Assim como o Start Time, este dado pode vir de vários campos de timestamp. Para algumas atividades, pode ser igual ao Start Time. Para outras, pode ser uma data separada de 'concluído em' ou 'alterado em' nas tabelas de aplicação ou logs de alteração (CDHDR, 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 Geral. | ||
| Descrição O número da conta do Razão Geral (GL) identifica as contas individuais usadas para registrar transações financeiras, como caixa, contas a pagar ou receita. Muitas atividades de fim de período, como conciliações e lançamentos de ajuste, estão diretamente ligadas a contas específicas. Este 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 identificar atrasos relacionados a contas específicas. Por que é importante Vincula as atividades do processo a contas financeiras específicas, permitindo uma análise detalhada de reconciliações e lançamentos para encontrar as causas raiz dos problemas. Onde obter Encontrado em tabelas de itens de documentos financeiros, principalmente BSEG (campo HKONT) ou na tabela de diário universal do S/4HANA, a ACDOCA. 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 única atribuída pelo SAP a cada lançamento financeiro. Ele serve como a referência principal para rastrear e auditar transações individuais que compõem as atividades no processo de fechamento. Embora não seja um Case ID em si, ele fornece um link crucial de volta ao sistema de origem. Os analistas podem usar o Número do Documento para fazer um drill-down de uma visão de Process Mining para os detalhes específicos da transação no SAP S/4HANA para análise de causa raiz. É especialmente útil ao investigar lançamentos contábeis de ajuste específicos ou lançamentos de conciliação. Por que é importante Fornece uma referência direta à transação subjacente no SAP, permitindo um drill-down fácil e auditabilidade a partir do modelo de processo. Onde obter Localizado na tabela de cabeçalho de documento financeiro BKPF (campo BELNR) e tabelas de itens de linha como BSEG ou ACDOCA. Exemplos 100000045190000001300000023 | |||
| Status da Reconciliação ReconciliationStatus | O status de uma atividade de conciliação de conta, como 'Open', 'In Progress' ou 'Approved'. | ||
| Descrição Este atributo rastreia o estado de um processo de conciliação para uma determinada conta ou tarefa. Indica se uma conciliação foi iniciada, enviada para revisão, aprovada ou rejeitada. As mudanças de status são eventos fundamentais no processo. Isso é essencial para o dashboard 'Reconciliation Rework Analysis'. Ao analisar a sequência de status, é possível identificar quando um status 'Approved' é seguido por novos ajustes, o que indica retrabalho. Também suporta o KPI 'First-Pass Reconciliation Rate', mostrando quais conciliações são aprovadas sem qualquer rejeição ou reabertura prévia. Por que é importante Rastreia o progresso e o resultado das tarefas de conciliação, permitindo identificar retrabalho, medir taxas de aprovação e analisar gargalos. Onde obter Essas informações geralmente são armazenadas em tabelas relacionadas à ferramenta de conciliação específica utilizada, como o SAP Financial Closing Cockpit ou o SAP Account Substantiation and Automation by BlackLine. Exemplos Não IniciadoEm PreparaçãoAprovadoRejeitado | |||
| Tempo de Processamento ProcessingTime | A duração de uma atividade individual, calculada como a diferença entre o seu End Time e Start Time. | ||
| Descrição O Processing Time, também conhecido como duração da atividade, mede o tempo gasto em uma única tarefa. Ele é calculado subtraindo o Essa métrica calculada é fundamental para a análise de desempenho. Ela ajuda a identificar gargalos no nível da atividade e é a principal medida usada nos dashboards de 'Eficiência na Alocação de Recursos' e 'Vazão de Aprovação de Reconciliação'. A soma dos tempos de processamento também pode fornecer insights sobre o tempo total de execução manual (touch time) no processo. Por que é importante Mede a duração das tarefas individuais, destacando diretamente os gargalos e formando a base para a análise de eficiência. Onde obter Campo calculado: Exemplos PT1M30SPT8HP2D | |||
| Usuário Responsável ResponsibleUser | O ID do usuário da pessoa que executou a atividade ou é responsável pela tarefa. | ||
| Descrição Este atributo identifica o colaborador que realizou uma determinada tarefa, como o lançamento de uma partida de diário ou a aprovação de uma conciliação. Geralmente é capturado como um ID de usuário nos logs do sistema e nos cabeçalhos dos documentos. Analisar o processo por usuário é fundamental para entender a distribuição da carga de trabalho, o desempenho individual e as necessidades de treinamento. O dashboard de Resource Allocation Efficiency utiliza este atributo diretamente para visualizar os tempos de processamento das atividades por usuário. Também pode ajudar a identificar candidatos à automação, destacando tarefas altamente repetitivas realizadas por muitos usuários. Por que é importante Conecta as atividades do processo às pessoas que as realizaram, permitindo a análise de carga de trabalho, otimização de recursos e gestão de desempenho. Onde obter Comumente encontrado em tabelas de cabeçalho de documento como BKPF (campo USNAM - Nome do Usuário) ou em tabelas de alteração de documentos como CDHDR (campo USERNAME). Exemplos ABROWNCSMITHDJOHNSON | |||
| C digo de 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 (T-code) é um atalho para iniciar uma função ou 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 oferece um indicador técnico claro da atividade realizada. Este atributo ajuda a criar as definições de atividade para o modelo de processo. É uma forma confiável de diferenciar atividades automatizadas de manuais e entender exatamente como uma tarefa foi executada no sistema. Analisar os T-codes pode revelar métodos fora do padrão ou ineficientes que estão sendo utilizados pelos colaboradores. Por que é importante Fornece uma visão técnica, em nível de sistema, de como uma atividade foi realizada, o que é útil para identificar etapas manuais versus automatizadas e procedimentos fora do padrão. Onde obter Encontrado na tabela de cabeçalho do documento financeiro BKPF (campo TCODE) ou em logs de alteração de documentos. Exemplos FB01FAGL_FCVF.13 | |||
| Data Real de Conclusão ActualCompletionDate | A data real em que uma atividade fundamental ou todo o fechamento do período foi concluído. | ||
| Descrição Este atributo captura a data real de conclusão de um marco importante. É o timestamp da aprovação final das demonstrações financeiras ou do fechamento do período de lançamento. Ele é o contraponto à Por que é importante Fornece o tempo real dos marcos, o que é necessário para medir o desempenho em relação aos prazos planejados e analisar atrasos. Onde obter Originado do EventTime da atividade final em 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 sinalizador booleano indicando se a atividade foi realizada por um usuário do sistema ou por um processo automatizado. | ||
| Descrição Esta sinalização (flag) diferencia as tarefas realizadas manualmente por um usuário daquelas executadas automaticamente pelo sistema, como um job em lote agendado para avaliação de moeda ou execuções de compensação automática. Geralmente é derivada com base no ID do Este atributo é fundamental para entender o nível de automação no fechamento. Ajuda a identificar oportunidades de automação 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 automáticas. Por que é importante Distingue entre atividades humanas e do sistema, o que é fundamental para identificar oportunidades de automação e analisar a eficiência de ambas. Onde obter Este é um atributo derivado, muitas vezes baseado em uma regra aplicada ao campo 'ResponsibleUser' (ex: verificando IDs de usuários de sistema ou lote como 'BATCHUSER') ou ao Código da Transação. Exemplos verdadeirofalse | |||
| É Retrabalho de Reconciliação IsReconciliationRework | Um sinalizador booleano que é verdadeiro se uma atividade de reconciliação for seguida por uma rejeição ou mais ajustes. | ||
| Descrição Este atributo calculado identifica instâncias de retrabalho no sub-processo de conciliação. A lógica sinaliza atividades ou Cases onde uma conciliação é rejeitada, reaberta após o envio ou onde lançamentos de ajuste são feitos após a suposta conclusão da conciliação de uma conta do Razão. Esta sinalização (flag) foi projetada especificamente para alimentar o dashboard 'Reconciliation Rework Analysis' e o KPI 'Reconciliation Rework Rate'. Ela transforma sequências complexas de processos em um atributo simples e mensurável que quantifica o retrabalho, ajudando as equipes a focar na qualidade de primeira. Por que é importante Quantifica diretamente o retrabalho, uma forma central de ineficiência de processo, permitindo análises direcionadas e esforços de melhoria na qualidade da reconciliação. Onde obter Calculado com base na sequência de atividades. Por exemplo, um sinalizador é definido como verdadeiro se a sequência 'Reconciliation Approved' for seguida por 'Adjusting Journal Entry Posted' para a mesma conta contábil dentro do mesmo período. Exemplos verdadeirofalse | |||
| Está no prazo IsOnTime | Um sinalizador booleano que é verdadeiro se um marco foi concluído na data prevista ou antes dela. | ||
| Descrição Este atributo fornece um resultado binário simples para o cumprimento do cronograma. É calculado comparando a Este é o cálculo central por trás do KPI 'Financial Statement On-Time Rate'. Ele simplifica o acompanhamento do desempenho ao converter comparações de datas em um status claro de 'no prazo' ou 'atrasado', facilmente visualizado em dashboards e relatórios. Ajuda a medir a eficácia das iniciativas destinadas a acelerar o fechamento. Por que é importante Simplifica a análise de cumprimento de prazos em um resultado claro de sucesso ou falha, facilitando o rastreamento e o reporte da pontualidade. Onde obter Campo calculado: Exemplos verdadeirofalse | |||
| Moeda do Documento DocumentCurrency | O código da moeda para os valores no documento financeiro. | ||
| Descrição Este atributo especifica a moeda na qual a transação foi registrada, como BRL, USD ou EUR. Ele fornece o contexto essencial para o atributo Em organizações multinacionais, a análise por moeda pode ser importante. Garante que os valores monetários sejam interpretados corretamente e é necessário para qualquer conversão para uma única moeda de reporte para análise agregada. Sem este contexto, os valores de Por que é importante Fornece o contexto necessário para quaisquer valores monetários, garantindo que os montantes sejam interpretados corretamente, especialmente em ambientes multi-moeda. Onde obter Localizado na tabela de cabeçalho de documento financeiro BKPF (campo WAERS). Exemplos USDEURJPY | |||
| Sistema de Origem SourceSystemId | Identificador da instância ou cliente específico do SAP S/4HANA de onde os dados foram extraídos. | ||
| Descrição Este atributo especifica o sistema de origem dos dados. Em ambientes com múltiplas instâncias SAP (por exemplo, para diferentes regiões ou unidades de negócio), este campo é crucial para distinguir as fontes de dados. É usado principalmente para governança de dados, auditoria e para garantir a integridade dos dados. Na análise, pode ser usado como um filtro para comparar processos em diferentes sistemas de origem, caso eles sejam combinados em um único modelo de Process Mining. Por que é importante Fornece linhagem de dados e contexto essenciais, garantindo clareza sobre a origem dos dados, especialmente em ecossistemas de múltiplos sistemas. Onde obter Geralmente são metadados adicionados durante o processo de extração de dados, muitas vezes extraídos do ID do sistema (SY-SYSID) ou do mandante (SY-MANDT) no SAP. Exemplos S4H_PROD_100S4H_QAS_200ECC_LEGACY_001 | |||
| Tempo de Ciclo do Fechamento de Período PeriodCloseCycleTime | O tempo total decorrido para um período financeiro, desde a primeira até a última atividade. | ||
| Descrição Esta métrica representa a duração de ponta a ponta do processo de fechamento de período para um único Case (Período Financeiro). É calculada como a diferença entre o timestamp da última atividade e da primeira atividade dentro daquele período. Este é um indicador chave de desempenho (KPI), que alimenta o dashboard 'Period Close Cycle Time Overview' e o KPI 'Average Period Close Cycle Time'. Ele fornece uma medida de alto nível da eficiência e velocidade geral do processo de fechamento, permitindo comparações ao longo do tempo e benchmarking entre diferentes códigos de empresa. Por que é importante Representa o KPI principal para a duração total do processo, permitindo o acompanhamento de alto nível das 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 entradas padrão, apropriações (accruals) e ajustes. | ||
| Descrição O Tipo de Lançamento Contábil, ou Tipo de Documento na terminologia 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 de período, este atributo é crucial para isolar tipos específicos de atividades. Por exemplo, permite que analistas foquem em lançamentos contábeis de ajuste para alimentar o dashboard 'Adjusting Journal Entry Analysis' e o KPI 'Adjusting Journal Entries Count'. Também auxilia no cálculo do 'Manual Postings Ratio'. Por que é importante Categoriza as transações financeiras, permitindo que a análise foque em tipos específicos de lançamentos, como ajustes manuais, que são críticos para um fechamento tranquilo. Onde obter Este é um campo padrão na tabela de cabeçalho de documentos financeiros BKPF (campo BLART). Exemplos SAKRAB | |||
| Última Atualização de Dados LastDataUpdate | O timestamp que indica quando os dados foram atualizados pela última vez ou extraídos do sistema de origem. | ||
| Descrição Este atributo registra a data e a hora da extração de dados mais recente. Ele fornece contexto sobre o quão atualizados estão os dados que estão sendo analisados na ferramenta de Process Mining. Seu objetivo principal é a governança de dados e a conscientização do usuário. Os visualizadores do dashboard podem ver quão atual é a análise, o que é especialmente importante para dashboards de monitoramento em tempo real, como o 'Current Period Close Status'. Ajuda os usuários a entenderem se estão olhando para dados de hoje, de ontem ou da semana passada. Por que é importante Informa os usuários sobre a atualidade dos dados, garantindo que compreendam quão recentes são os insights do processo. Onde obter Estes são metadados gerados e marcados 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 Este atributo representa o valor monetário associado a um documento financeiro. Para ajustes de fim de período, pode ser o valor da apropriação (accrual) ou da correção que está sendo lançada. Analisar o valor é útil para avaliações de materialidade. Permite que os analistas priorizem a investigação de lançamentos de ajuste de alto valor, que podem representar um risco financeiro maior. Pode ser usado para filtrar o mapa do processo e focar apenas em transações acima de um determinado limite, simplificando a visão para as atividades mais significativas. Por que é importante Adiciona uma dimensão financeira à análise, permitindo a priorização de problemas com base no impacto monetário e materialidade. Onde obter Este 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 de Fechamento e Conciliação de Período
| Atividade | Descrição | ||
|---|---|---|---|
| Demonstrações Financeiras Geradas | Esta atividade marca a criação das demonstrações financeiras oficiais, como o Balanço Patrimonial e a Demonstração do Resultado (DRE). Representa o ápice dos processos de contabilidade e consolidação de fim de período. | ||
| Por que é importante Este é um marco importante no ciclo Record to Report. O tempo de execução é crítico para cumprir os prazos de reporte e fornecer informações tempestivas aos stakeholders. Onde obter Melhor capturado através de uma ferramenta de gestão de fechamento financeiro como o SAP Financial Closing Cockpit, onde é uma tarefa explícita. Caso contrário, deve ser inferido a partir de logs de geração de relatórios ou timestamps de criação de arquivos. Captura Rastreie o status de conclusão da tarefa 'Generate Financial Statements' em uma ferramenta de fechamento ou analise os logs de execução de relatórios. Tipo de evento inferred | |||
| Lançamento Contábil de Ajuste Realizado | Representa um lançamento contábil corretivo feito após as conciliações iniciais, geralmente para corrigir discrepâncias encontradas durante o processo de revisão. Esta é uma transação explícita lançada no Razão Geral (GL). | ||
| Por que é importante Uma alta frequência de lançamentos de ajuste indica baixa qualidade inicial nos processos anteriores ou nas reconciliações. Analisar esses lançamentos é fundamental para identificar as causas raiz dos erros e reduzir o retrabalho. Onde obter Registrados como documentos explícitos nas tabelas ACDOCA e BKPF. Podem ser identificados por tipos de documentos específicos, datas de lançamento no final do ciclo de fechamento ou descrições de texto específicas. Captura Filtre lançamentos contábeis na BKPF com base em uma combinação de tipo de documento e data de lançamento relativa às atividades de reconciliação. Tipo de evento explicit | |||
| Período Aberto para Lançamento | Isso marca o início do período financeiro, onde os períodos de lançamento são abertos para o registro de transações. Trata-se de uma alteração de configuração explícita e registrada, realizada por um administrador financeiro no SAP, permitindo lançamentos contábeis para o novo período. | ||
| Por que é importante Esta atividade serve como o Evento de início principal para o processo de fechamento de fim de período. Permite a medição precisa do tempo total do ciclo e fornece um ponto de partida claro para a análise do processo. Onde obter Este Event é capturado de documentos de modificação (tabelas CDHDR e CDPOS) que registram alterações na tabela de controle de período de lançamento T001B, normalmente executada via transação OB52. Captura Filtre os logs de alteração da tabela T001B referentes ao ano fiscal e período específicos. Tipo de evento explicit | |||
| Período Fechado para Lançamento | Esta é a atividade final do ciclo, onde o período de lançamento é formalmente fechado para impedir novas transações. Esta ação garante a integridade dos dados para os relatórios financeiros finalizados. | ||
| Por que é importante Esta atividade serve como o Evento de término definitivo para o processo. É essencial para calcular o tempo total do ciclo de fechamento e analisar as tendências de conclusão do processo. Onde obter Semelhante à abertura de um período, este Event é capturado a partir de documentos de modificação (tabelas CDHDR e CDPOS) que registram atualizações na tabela de controle de período de lançamento T001B via transação OB52. Captura Filtre os logs de alteração da tabela T001B para identificar o fechamento do ano fiscal e período relevantes. Tipo de evento explicit | |||
| Reconciliação de Conta Aprovada | Esta atividade significa a aprovação final de uma conciliação de conta do Razão, confirmando que o saldo está comprovado e que quaisquer pendências foram resolvidas. Isso é inferido a partir de uma alteração de status para 'Approved' em uma ferramenta de conciliação. | ||
| Por que é importante Este marco assinala a conclusão de uma atividade de controle crítica. Rastrear os tempos de aprovação ajuda a identificar gargalos no processo de revisão e é essencial para medir o retrabalho e o rendimento de primeira (first-pass yield). Onde obter Capturado de um sistema de gestão de reconciliação, como o SAP Account Substantiation and Automation, rastreando o timestamp do status de aprovação final. Captura Identifique o timestamp de quando o campo de status de uma reconciliação é atualizado para o estado final 'Aprovado'. Tipo de evento inferred | |||
| Reconciliação de Conta Iniciada | Marca o início do processo manual ou semiautomatizado de substanciação dos saldos das contas do Razão. Isso é inferido quando o status de uma reconciliação muda de 'Novo' para 'Em andamento' ou quando a primeira ação do preparador é registrada. | ||
| Por que é importante Este é um marco fundamental para entender a duração e o esforço envolvidos na comprovação do balanço. Ajuda a identificar quais contas ou departamentos iniciam suas conciliações com atraso. Onde obter Este Event é normalmente capturado de uma ferramenta de conciliação dedicada, como SAP Account Substantiation and Automation by BlackLine ou outros sistemas de terceiros. É inferido a partir dos timestamps de mudança de status. Captura Rastreie o timestamp da primeira mudança de status de um estado 'Not Started' para a conciliação de uma determinada conta do Razão. Tipo de evento inferred | |||
| Reconciliação Intercompany Iniciada | Esta atividade sinaliza o início do processo de correspondência e conciliação de transações entre diferentes empresas dentro do mesmo grupo. Muitas vezes é iniciada pela execução de um job de conciliação ou pela criação de um novo Case de conciliação na ferramenta ICMR do SAP. | ||
| Por que é importante A reconciliação intercompany costuma ser complexa e demorada. Analisar sua duração e fluxo é crucial para agilizar o fechamento do grupo e garantir a precisão das finanças consolidadas. Onde obter Inferido a partir de mudanças de status no módulo SAP Intercompany Matching and Reconciliation (ICMR) ou da criação dos primeiros documentos de reconciliação para o período. Captura Rastreie a data de criação ou o timestamp de mudança de status para as unidades de conciliação na ferramenta ICMR para o período informado. Tipo de evento inferred | |||
| Balancete Preparado | Indica que um balancete foi gerado e salvo para revisão, servindo como um ponto de controle fundamental antes da criação das demonstrações financeiras finais. A captura deste evento geralmente depende de procedimentos em que a saída do relatório é salva. | ||
| Por que é importante A preparação do balancete é uma etapa de qualidade crucial. Analisar o seu tempo de execução ajuda a entender a prontidão para o reporte final e pode destacar atrasos em atividades anteriores. Onde obter Este geralmente não é um Event explícito. Pode ser inferido a partir da execução de uma transação de relatório específica, se as variantes forem salvas com marcação de usuário e data, ou se o processo for gerenciado em uma ferramenta como o SAP Financial Closing Cockpit. Captura Exige análise do sistema para determinar se existe um mecanismo de log confiável, 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 assinatura final nas demonstrações financeiras pela gestão autorizada antes da publicação. Geralmente é um processo offline, mas pode ser capturado se houver uma etapa formal de aprovação digital. | ||
| Por que é importante Este é o portão final de controle e qualidade. Rastrear o tempo de execução é essencial para entender o cumprimento dos prazos de reporte e a eficiência geral do ciclo de revisão gerencial. Onde obter Este Event é capturado se houver um campo de workflow ou status para aprovação de 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 timestamp 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 de fechamento. A execução deste programa lança as diferenças de avaliação resultantes. | ||
| Por que é importante Garante a conformidade com as normas contábeis e fornece um quadro financeiro preciso. Rastrear essa atividade ajuda a assegurar que todas as avaliações de moeda sejam realizadas no tempo correto. Onde obter Capturado dos logs de execução do programa de avaliação de moeda estrangeira (ex: FAGL_FCV). Os detalhes do job são armazenados nas tabelas TBTCO e TBTCP. Captura Monitore os logs de execução de jobs relacionados à transação FAGL_FCV ou seu programa subjacente. Tipo de evento explicit | |||
| Execução de Compensação Automática Realizada | Representa a execução de programas de compensação automática no SAP, como a execução de compensação de EM/EF (Entrada de Mercadorias/Entrada de Faturas). Esses jobs conciliam e compensam itens em aberto em contas específicas do Razão, reduzindo o esforço manual de conciliação. | ||
| Por que é importante Esta atividade destaca o nível de automação no processo de conciliação. Falhas ou exceções nessas execuções podem levar a um trabalho manual significativo e atrasos. Onde obter Capturado dos logs de execução de jobs específicos, como F.13 ou F.13E para compensação automática. As tabelas de log de jobs TBTCO e TBTCP contêm os detalhes da execução. Captura Monitore os timestamps de início e fim dos jobs associados a transações como F.13 nos logs de jobs do SAP. Tipo de evento explicit | |||
| Provisões e Acúmulos Lançados | Este Event captura a criação de lançamentos manuais de diário para apropriações (accruals), diferimentos e outras provisões necessárias para relatórios financeiros precisos sob o regime de competência. Estas são transações explícitas lançadas no Razão Geral. | ||
| Por que é importante O rastreamento desses 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 (upstream). Onde obter Registrados 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 apropriações (accruals). Captura Filtre os documentos na tabela BKPF por tipo de documento (ex: 'SA' ou tipos customizados) e data de lançamento dentro do período. 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 de moeda, reclassificação e eliminação de lucros intercompany. Essas tarefas são normalmente gerenciadas e registradas no monitor de consolidação. | ||
| Por que é importante Para organizações com múltiplas entidades legais, o processo de consolidação é um item de caminho crítico. Monitorar essas tarefas ajuda a agilizar o fechamento do grupo e garante relatórios consolidados pontuais. Onde obter Capturado dos logs de status no Data Monitor ou Consolidation Monitor no SAP S/4HANA for Group Reporting. Cada tarefa geralmente possui um usuário, timestamp e status. Captura Extraia logs de execução de tarefas das tabelas subjacentes do monitor de consolidação do Group Reporting. Tipo de evento explicit | |||
| Transferência de Dados do Livro Auxiliar Concluída | Representa a conclusão de jobs em lote que transferem dados resumidos de livros auxiliares, como Contas a Receber, Contas a Pagar e Contabilidade de Ativos, para o Razão Geral. Isso garante que todas as transações operacionais subjacentes sejam refletidas no GL antes do início dos procedimentos de fechamento. | ||
| Por que é importante Atrasos no fechamento de livros auxiliares (subledgers) podem ser um grande gargalo para o processo geral. Rastrear essa atividade ajuda a identificar ineficiências na coleta de dados e integração de sistemas de origem. Onde obter Inferido a partir do status de conclusão bem-sucedida de jobs de lote específicos responsáveis pela liquidação de ledgers e transferência de dados. Logs de jobs podem ser encontrados nas tabelas TBTCO e TBTCP. Captura Identifique e monitore os timestamps de conclusão dos jobs de lote relevantes na visão geral de jobs do SAP (transação SM37). Tipo de evento explicit | |||
Guias de Extração
Etapas
- Identificar e Verificar CDS Views: Faça login no seu sistema SAP S/4HANA usando SAP HANA Studio ou 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 Reconciliação de Contas, você pode precisar criar views personalizadas, como
Z_I_ACCOUNTRECONCILIATION, para capturar mudanças de status. - Expor 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. - Ativar o Serviço OData: Vá até a transação
/IWFND/MAINT_SERVICEno hub do SAP Gateway. Clique em 'Add Service', encontre o serviço gerado no passo anterior e adicione-o. Isso torna o serviço ativo e disponível para consultas. - Estabelecer Conexão de Dados: Na sua ferramenta de extração escolhida (como Python, Power BI ou uma plataforma de ETL dedicada), conecte-se ao novo serviço OData. Você precisará da URL do serviço e das credenciais com autorização para acessar as CDS views.
- Adaptar e Executar a Query: Copie a query SQL fornecida. Modifique os valores dos espaços reservados para intervalos de datas, empresas e quaisquer nomes de CDS views customizadas ou jobs de lote para corresponderem ao seu ambiente SAP. Execute a consulta no endpoint do serviço OData. Note que o OData usa uma sintaxe diferente ($filter, $select), então talvez seja necessário traduzir a lógica da query UNION ALL em uma série de chamadas de API separadas, uma para cada atividade.
- Consolidar Dados de Atividade: Como o OData geralmente não suporta queries UNION ALL complexas em uma única chamada, você executará uma requisição separada para cada bloco de atividade da query. Consolide os resultados de todas as requisições em um único conjunto de dados ou tabela na sua ferramenta cliente.
- Transformar e Limpar os Dados: Revise os dados consolidados. Certifique-se de que as colunas
EventTimeeEndTimeestejam em um formato de timestamp consistente. Verifique se oFinancialPeriodestá formatado corretamente como 'AAAA-MM'. Trate valores nulos em colunas comoResponsibleUserouDocumentNumberconforme necessário. - Exportar como Event Log: Export Re o conjunto de dados final consolidado para um arquivo CSV. Garanta que os cabeçalhos das colunas correspondam aos atributos exigidos:
FinancialPeriod,ActivityName,EventTime,EndTime,ResponsibleUser, etc. Este arquivo agora 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 automáticas) são essenciais. Views customizadas, comoZ_I_ACCOUNTRECONCILIATION, costumam ser necessárias para capturar o status de processos internos não cobertos pelas views padrão. - Intervalo de Datas: Defina um período específico para a extração para gerenciar o volume de dados. A query utiliza os espaços reservados
[Start Date]e[End Date], que normalmente devem cobrir de 3 a 6 períodos fiscais completos para uma análise relevante. - Filtros Principais: Filtrar é crucial para a performance e relevância. Sempre filtre por
CompanyCode. Outros filtros importantes incluemLedger(ex: '0L' para o ledger principal),FiscalYeare valores específicos deDocumentTypepara diferenciar lançamentos regulares, provisões e ajustes. - Pré-requisitos: O usuário que executa a extração precisa de autorizações no SAP para acessar as CDS views especificadas e executar serviços OData (ex: objetos de autorização
S_SERVICE,S_RFC). Os serviços do SAP Gateway devem estar configurados e ativos. - Performance: Consultar a
I_JournalEntryItempode exigir muito do sistema. Sempre aplique filtros seletivos, especialmente em datas, empresas e ledgers. Considere executar a extração em horários de pouco movimento ou usar uma estratégia de carga 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
- Identificar e Verificar CDS Views: Faça login no seu sistema SAP S/4HANA usando SAP HANA Studio ou 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 Reconciliação de Contas, você pode precisar criar views personalizadas, como
Z_I_ACCOUNTRECONCILIATION, para capturar mudanças de status. - Expor 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. - Ativar o Serviço OData: Vá até a transação
/IWFND/MAINT_SERVICEno hub do SAP Gateway. Clique em 'Add Service', encontre o serviço gerado no passo anterior e adicione-o. Isso torna o serviço ativo e disponível para consultas. - Estabelecer Conexão de Dados: Na sua ferramenta de extração escolhida (como Python, Power BI ou uma plataforma de ETL dedicada), conecte-se ao novo serviço OData. Você precisará da URL do serviço e das credenciais com autorização para acessar as CDS views.
- Adaptar e Executar a Query: Copie a query SQL fornecida. Modifique os valores dos espaços reservados para intervalos de datas, empresas e quaisquer nomes de CDS views customizadas ou jobs de lote para corresponderem ao seu ambiente SAP. Execute a consulta no endpoint do serviço OData. Note que o OData usa uma sintaxe diferente ($filter, $select), então talvez seja necessário traduzir a lógica da query UNION ALL em uma série de chamadas de API separadas, uma para cada atividade.
- Consolidar Dados de Atividade: Como o OData geralmente não suporta queries UNION ALL complexas em uma única chamada, você executará uma requisição separada para cada bloco de atividade da query. Consolide os resultados de todas as requisições em um único conjunto de dados ou tabela na sua ferramenta cliente.
- Transformar e Limpar os Dados: Revise os dados consolidados. Certifique-se de que as colunas
EventTimeeEndTimeestejam em um formato de timestamp consistente. Verifique se oFinancialPeriodestá formatado corretamente como 'AAAA-MM'. Trate valores nulos em colunas comoResponsibleUserouDocumentNumberconforme necessário. - Exportar como Event Log: Export Re o conjunto de dados final consolidado para um arquivo CSV. Garanta que os cabeçalhos das colunas correspondam aos atributos exigidos:
FinancialPeriod,ActivityName,EventTime,EndTime,ResponsibleUser, etc. Este arquivo agora 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 automáticas) são essenciais. Views customizadas, comoZ_I_ACCOUNTRECONCILIATION, costumam ser necessárias para capturar o status de processos internos não cobertos pelas views padrão. - Intervalo de Datas: Defina um período específico para a extração para gerenciar o volume de dados. A query utiliza os espaços reservados
[Start Date]e[End Date], que normalmente devem cobrir de 3 a 6 períodos fiscais completos para uma análise relevante. - Filtros Principais: Filtrar é crucial para a performance e relevância. Sempre filtre por
CompanyCode. Outros filtros importantes incluemLedger(ex: '0L' para o ledger principal),FiscalYeare valores específicos deDocumentTypepara diferenciar lançamentos regulares, provisões e ajustes. - Pré-requisitos: O usuário que executa a extração precisa de autorizações no SAP para acessar as CDS views especificadas e executar serviços OData (ex: objetos de autorização
S_SERVICE,S_RFC). Os serviços do SAP Gateway devem estar configurados e ativos. - Performance: Consultar a
I_JournalEntryItempode exigir muito do sistema. Sempre aplique filtros seletivos, especialmente em datas, empresas e ledgers. Considere executar a extração em horários de pouco movimento ou usar uma estratégia de carga 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]';