Seu Template de Dados de Purchase to Pay - Processamento de Faturas
Seu Template de Dados de Purchase to Pay - Processamento de Faturas
- Atributos recomendados para coletar
- Atividades-chave a monitorizar
- Orientações de extração do SAP ECC
Atributos de Processamento de Faturas de P2P
| Nome | Descrição | ||
|---|---|---|---|
| Atividade Activity | O nome de uma etapa ou evento de negócio específico ocorrido durante o ciclo de vida da fatura. | ||
| Descrição O atributo Atividade representa uma etapa ou ação distinta no Workflow de processamento de faturas. Essas atividades são derivadas de vários eventos do sistema, como criação de documentos, alterações de status, aprovações ou ações de usuários registradas nos logs de alteração do SAP. Analisar atividades é o cerne do Process Mining. Isso permite a visualização de mapas de processo, identificação de gargalos (ex: longas esperas após 'Fatura Enviada para Aprovação'), loops de retrabalho (ex: ciclos repetidos de bloqueio e liberação de pagamento) e desvios de conformidade. A sequência e frequência das atividades revelam o fluxo real do processo (as-is). Por que é importante Define as etapas no mapa de processo, permitindo visualizar fluxos, descobrir gargalos e identificar retrabalhos. Onde obter Este atributo costuma ser derivado de várias fontes, incluindo códigos de transação (SY-TCODE), campos de status em tabelas como RBKP (ex: RBSTAT) e eventos de alteração das tabelas CDHDR e CDPOS. Exemplos Fatura EstacionadaFatura Enviada para AprovaçãoFatura AprovadaFatura LançadaFatura Compensada | |||
| Número da fatura InvoiceNumber | O identificador único para um documento de fatura de fornecedor. | ||
| Descrição O Número da Fatura serve como o identificador único (ID do caso) para a jornada de processamento. Cada número corresponde a uma única fatura recebida de um fornecedor, permitindo que todas as atividades relacionadas — da captura de dados ao pagamento final — sejam rastreadas como uma única instância do processo. Na análise de Process Mining, este atributo é fundamental para reconstruir o ciclo de vida de cada fatura. Ele permite conectar eventos distintos registrados no SAP, como pré-edição (parking), lançamento (posting), bloqueio e compensação, em uma sequência cronológica. Isso oferece uma visão clara de como cada fatura é tratada, quanto tempo leva e onde ocorrem desvios do processo padrão. Por que é importante Esta é a chave primária que vincula todos os eventos de uma mesma fatura, sendo a base essencial para a análise do processo e exploração de variantes. Onde obter Geralmente é o Número do Documento da tabela RBKP, campo BELNR, muitas vezes concatenado com a Empresa (BUKRS) e o Ano Fiscal (GJAHR) para garantir unicidade absoluta. Exemplos 510004567851000456795100045680 | |||
| Tempo do Evento EventTime | O registro exato de data e hora em que uma atividade ocorreu. | ||
| Descrição Event Time registra o exato momento em que uma atividade de negócio foi executada e logada no sistema de origem. Este timestamp é a espinha dorsal cronológica do processo, ordenando todas as atividades de cada fatura em uma sequência coerente. Na análise, o Event Time é essencial para calcular todas as métricas baseadas em duração, como tempos de ciclo, tempos de espera e tempos de processamento entre atividades. Ele alimenta Dashboards como o 'Tempo de Ciclo de Ponta a Ponta da Fatura' e 'Duração da Resolução de Bloqueio de Pagamento', fornecendo os dados necessários para medir o tempo decorrido entre quaisquer dois pontos do processo. Timestamps precisos são críticos para identificar atrasos e gargalos de desempenho. Por que é importante Este registro de tempo é essencial para ordenar os eventos corretamente e calcular todas as métricas de desempenho, como tempos de ciclo e durações de gargalos. Onde obter Geralmente derivado da combinação da data de alteração (UDATE) e hora de alteração (UTIME) da tabela CDHDR. Para eventos de criação, pode ser a data e hora das tabelas como a RBKP (ERNAM, ERZET). Exemplos 2023-03-15T10:30:00Z2023-03-16T14:05:21Z2023-03-28T09:00:00Z | |||
| Data de Compensação ClearingDate | A data em que o pagamento foi realizado e a fatura foi baixada do contas a pagar. | ||
| Descrição A Data de Compensação marca a etapa final do ciclo de vida da fatura: o pagamento. É a data em que o item em aberto da fatura é baixado por um documento de pagamento no sistema. Esta data representa o momento real da execução do pagamento. Este atributo é o ponto final para muitos KPIs críticos, incluindo o 'Tempo Médio de Ciclo da Fatura' e a 'Taxa de Pagamento em Dia'. Ele é comparado com a Data de Vencimento para medir o desempenho do pagamento. Para análise de descontos financeiros, é comparado com o período de desconto para verificar se o pagamento foi feito a tempo de capturá-lo. Por que é importante Marca a conclusão do processo e serve de base para calcular o tempo de ciclo total, taxas de pagamento em dia e aproveitamento de descontos. Onde obter Para itens compensados, este é o campo 'Data de Compensação' (AUGDT) da tabela de itens de fornecedores compensados, BSAK. Exemplos 2023-04-152023-05-022023-05-20 | |||
| Data de Lançamento PostingDate | A data em que a fatura foi oficialmente lançada nos livros contábeis. | ||
| Descrição A Data de Lançamento é uma data fundamental no processo contábil. Ela determina o período fiscal em que a despesa da fatura é reconhecida no Razão Geral. Geralmente, é definida pelo analista de Contas a Pagar durante o processamento. Na análise de processos, a atividade 'Fatura Lançada', marcada por essa data, é um marco principal. O tempo decorrido desde o recebimento da fatura até a Data de Lançamento é um componente crítico do tempo total de ciclo. Esta data também é essencial para relatórios financeiros e análises de produtividade, como o acompanhamento do volume de faturas lançadas por semana ou mês. Por que é importante Marca um marco crítico no processo, determina o período contábil da transação e é um componente-chave para o cálculo do tempo de ciclo. Onde obter Este é o campo 'Data de Lançamento' (BUDAT) da tabela de cabeçalho de faturas, RBKP. Exemplos 2023-03-202023-04-052023-04-11 | |||
| Data de Vencimento do Pagamento PaymentDueDate | A data limite para o pagamento da fatura ao fornecedor, conforme as condições de pagamento. | ||
| Descrição A Data de Vencimento é calculada com base na data base da fatura e nas condições de pagamento acordadas. Representa o prazo para realizar o pagamento sem atrasos, evitando multas ou danos à relação com fornecedores. Este atributo é crucial para KPIs de desempenho e conformidade, como a 'Taxa de Pagamento em Dia' e a 'Perda de Oportunidade de Desconto'. Ao comparar a data real do pagamento (Data de Compensação) com a Data de Vencimento, a análise pode determinar automaticamente se um pagamento foi pontual, antecipado ou atrasado. É um elemento base para o dashboard de Conformidade com as Condições de Pagamento. Por que é importante Serve como linha de base para medir a pontualidade dos pagamentos e identificar chances de capturar descontos por antecipação. Onde obter Esta data costuma ser calculada. A data base para pagamento (ZFBDT) fica na tabela BSEG. A lógica da data de vencimento também depende das condições de pagamento (BSEG-ZTERM). Exemplos 2023-04-192023-05-052023-05-11 | |||
| Nome do Utilizador UserName | O ID de usuário SAP da pessoa que executou a atividade. | ||
| Descrição O atributo Nome de Usuário identifica o indivíduo responsável por realizar uma determinada atividade. Geralmente, é o nome de usuário do SAP registrado com a transação ou evento de alteração. Este atributo é crucial para análise de desempenho em nível de usuário ou equipe. Ajuda a responder perguntas como 'Quem são os aprovadores mais rápidos?' ou 'Quais usuários geram mais retrabalho?'. É usado em dashboards para analisar a distribuição de carga de trabalho, identificar necessidades de treinamento e entender variações de performance entre colaboradores. Por que é importante Permite analisar o desempenho e a carga de trabalho por indivíduo ou equipe, ajudando a identificar talentos, necessidades de treinamento e desequilíbrios de recursos. Onde obter Este é o campo 'Alterado por' (USERNAME) da tabela de cabeçalho de alteração de documentos, CDHDR. Para eventos de criação, pode ser o campo 'Inserido por' (ERNAM) em tabelas como a RBKP. Exemplos JSMITHBWILSONCHEN | |||
| Número do fornecedor VendorNumber | Um identificador exclusivo para o fornecedor que enviou a fatura. | ||
| Descrição O Número do Fornecedor é a chave mestre de dados que identifica o fornecedor. Ele vincula a transação da fatura a um parceiro de negócio específico, permitindo análises baseadas nas características do fornecedor. Analisar o processo por Número do Fornecedor pode revelar insights importantes sobre o relacionamento e desempenho dos parceiros. Por exemplo, ajuda a identificar quais fornecedores enviam consistentemente faturas com erros que geram bloqueios de pagamento, ou quais faturas são processadas com maior eficiência. Esta informação é valiosa para a gestão de fornecedores e iniciativas de compras estratégicas (strategic sourcing). Por que é importante Permite análises específicas por fornecedor, ajudando a identificar padrões, problemas ou eficiências ligados a parceiros específicos. Onde obter Este é o campo 'Emissor da Fatura' (LIFNR) da tabela de cabeçalho de faturas, RBKP. Exemplos 100345100876200112 | |||
| Número do Pedido de Compra PurchaseOrderNumber | O identificador do Pedido de Compra (PO) com o qual a fatura é conciliada. | ||
| Descrição O Número do Pedido de Compra (PO) vincula a fatura ao documento de compra original. Isso é fundamental para a conciliação de três vias (Pedido, Recebimento de Mercadoria e Fatura) e para analisar a eficiência do processo de faturas com pedido. Este atributo é crítico para dashboards como a 'Taxa de Discrepância na Conciliação Fatura-PO'. Ele permite segmentar o processo entre faturas com e sem pedido, que costumam ter caminhos e complexidades muito diferentes. Analisar problemas relacionados a pedidos específicos pode ajudar a diagnosticar falhas nas etapas anteriores do processo de suprimentos. Por que é importante Conecta a fatura ao processo de compras, permitindo analisar faturas com PO vs. sem PO e identificar divergências no matching. Onde obter Geralmente encontrado no nível do item. O 'Número do Pedido de Compra' (EBELN) fica na tabela de itens da fatura, RSEG. Pode ser necessário agregar ao nível do cabeçalho. Exemplos 450001756345000175644500017565 | |||
| Razão de Bloqueio de Pagamento PaymentBlockReason | Um código que indica o motivo pelo qual uma fatura está bloqueada para pagamento. | ||
| Descrição Quando uma fatura apresenta discrepância ou exige investigação, um bloqueio de pagamento é aplicado. O código do Motivo do Bloqueio de Pagamento especifica o porquê, como variação de quantidade, variação de preço ou um bloqueio manual. Este atributo é essencial para o dashboard de 'Duração da Resolução de Bloqueio de Pagamento'. Analisar a frequência e a duração dos bloqueios por motivo ajuda a identificar as causas raiz dos atrasos. Por exemplo, se a 'Discrepância de Preço' for o motivo mais comum para bloqueios longos, isso aponta para um problema potencial nos dados mestres ou no processo de pedido de compra que precisa ser corrigido. Por que é importante Explica por que as faturas atrasam, permitindo a análise de causa raiz dos bloqueios de pagamento e ajudando a priorizar os esforços de melhoria. Onde obter O motivo do bloqueio de pagamento pode ser encontrado no nível do item na tabela RSEG (campo SPGRS) ou na tabela de documentos contábeis BSEG (campo ZLSPR). Exemplos RIM | |||
| Valor da Fatura InvoiceAmount | O valor bruto total da fatura na moeda do documento original. | ||
| Descrição Invoice Amount representa o valor total da fatura enviada pelo fornecedor. É uma métrica financeira chave para cada invoice case. No Process Mining, este atributo é essencial para análises baseadas em valor. Ele permite filtrar e segmentar o processo pelo montante da fatura, o que geralmente se correlaciona com a complexidade e as exigências de aprovação. Por exemplo, faturas de alto valor podem seguir caminhos de aprovação mais rigorosos. Também é usado em análises de conformidade para checar se faturas de alto valor estão ignorando etapas obrigatórias de aprovação. Por que é importante Permite análises baseadas em valor, ajudando a priorizar faturas caras e a entender como o montante impacta o fluxo e a conformidade. Onde obter Este é o campo 'Valor Bruto da Fatura' (RMWWR) da tabela de cabeçalho de faturas, RBKP. Exemplos 1500.7512500.00850.20 | |||
| Código da Empresa CompanyCode | O identificador da entidade legal ou empresa para a qual a fatura está sendo processada. | ||
| Descrição A Empresa (Company Code) é uma unidade organizacional fundamental no SAP Financials, representando uma entidade jurídica independente. Todas as transações financeiras, incluindo faturas, são lançadas em uma empresa específica. Este atributo permite segmentar a análise do processo por entidade legal. É crucial para comparar o desempenho, a conformidade e a eficiência entre diferentes empresas de um mesmo grupo. Os Dashboards podem ser filtrados por Empresa para fornecer uma visão específica dos KPIs de processamento de faturas. Por que é importante Permite a comparação de processos e o benchmarking de desempenho entre diferentes entidades legais de uma organização. Onde obter Este é o campo 'Empresa' (BUKRS) da tabela de cabeçalho de faturas, RBKP. Exemplos 10002000US01 | |||
| Condições de Pagamento PaymentTerms | O código que define as condições de pagamento acordadas com o fornecedor, como períodos de desconto e datas de vencimento. | ||
| Descrição As Condições de Pagamento definem as regras de quando uma fatura deve ser paga e quais descontos financeiros estão disponíveis para pagamentos antecipados. Exemplos incluem 'Net 30 dias' ou '2% 10, Net 30', que significa 2% de desconto se pago em 10 dias; caso contrário, o valor total vence em 30 dias. Este atributo é a base para o dashboard de 'Perda de Oportunidade de Desconto' e para o KPI de 'Taxa de Captura de Descontos'. A análise usa as condições de pagamento junto com as datas de lançamento e pagamento para determinar se um desconto estava disponível e se foi aproveitado. Também é fundamental para o Dashboard de Conformidade com Condições de Pagamento. Por que é importante É essencial para analisar as taxas de captura de descontos financeiros e entender o impacto financeiro dos atrasos no processo. Onde obter Este é o campo 'Chave de Condições de Pagamento' (ZTERM) da tabela de cabeçalho de faturas, RBKP. Exemplos Z0010001NT30 | |||
| Conta do Razão GeneralLedgerAccount | O número da conta contábil (G/L) na qual a despesa ou custo da fatura é lançado. | ||
| Descrição A Conta do Razão (G/L Account) é a conta de destino no plano de contas onde o impacto financeiro da fatura é registrado. É um dado crítico para relatórios financeiros e gestão de custos. No Process Mining, analisar a conta contábil adiciona uma dimensão financeira ao fluxo do processo. O dashboard de 'Análise de Uso de Contas Contábeis' pode revelar padrões de gastos, identificar possíveis erros de classificação de faturas e garantir que os custos sejam alocados aos departamentos ou projetos corretos, unindo a execução do processo ao impacto financeiro. Por que é importante Adiciona uma dimensão financeira ao processo, permitindo a análise de alocação de custos, padrões de gastos e possíveis erros de codificação de faturas. Onde obter Localizado no nível do item. O 'Número da Conta do Razão' (HKONT) está na tabela RSEG para faturas com pedido ou BSEG para faturas diretas de FI. Exemplos 630000655100741000 | |||
| End Time EndTime | O timestamp que indica quando uma atividade foi concluída. Para eventos instantâneos, é o mesmo que o Horário de Início. | ||
| Descrição O atributo Horário de Término marca a conclusão de uma atividade específica. Para muitos eventos no SAP, registrados como pontos únicos no tempo, o Horário de Término será idêntico ao de Início. No entanto, para atividades com duração mensurável, como uma etapa de aprovação ativa, ele representa o fim desse trabalho. Na análise de processos, ter um Horário de Término distinto permite medir o tempo de processamento da atividade, separado do tempo de espera anterior. Isso ajuda a diferenciar quanto tempo uma atividade leva para ser executada versus quanto tempo um caso espera para começar, fornecendo insights profundos sobre a eficiência dos recursos. Por que é importante Permite calcular o tempo de processamento da activity, distinguindo-o do tempo de espera entre atividades e aprimorando a análise de gargalos. Onde obter Geralmente é o mesmo que o Horário de Início, derivado de CDHDR-UDATE e CDHDR-UTIME. Em alguns casos, pode vir dos logs de Workflow que registram explicitamente o início e o fim de uma tarefa. Exemplos 2023-03-15T10:35:10Z2023-03-16T14:10:00Z2023-03-28T09:02:45Z | |||
| Está Vencido IsOverdue | Um indicador calculado que sinaliza se a fatura foi paga após a data de vencimento. | ||
| Descrição Este é um atributo booleano calculado comparando a 'Data de Compensação' (pagamento real) com a 'Data de Vencimento'. Se a compensação ocorrer após o vencimento, a flag é verdadeira; caso contrário, é falsa. Isso fornece uma medida direta da pontualidade para cada fatura. O atributo simplifica a análise e visualização em Dashboards. Ele permite filtragem e agregação fácil para calcular o KPI de 'Taxa de Pagamento em Dia'. Os usuários podem segmentar rapidamente o processo para comparar os fluxos de faturas atrasadas versus pontuais, revelando padrões que levam aos atrasos. Por que é importante Simplifica a análise de pontualidade de pagamentos e permite comparar facilmente faturas pagas no prazo e com atraso. Onde obter Este atributo não existe no SAP. Ele é calculado durante a transformação de dados usando a fórmula: Data de Compensação > Data de Vencimento. Exemplos verdadeirofalse | |||
| Moeda Currency | O código da moeda para o valor da fatura. | ||
| Descrição O atributo Moeda especifica a moeda na qual o valor da fatura é denominado (ex: BRL, USD, EUR). Este atributo fornece o contexto essencial para o Valor da Fatura. Ele permite a interpretação e agregação correta dos dados financeiros, especialmente em organizações globais. A análise pode ser filtrada por moeda para comparar a eficiência ou problemas entre diferentes regiões. Para agregações financeiras consolidadas, os valores podem precisar de conversão para uma única moeda de reporte. Por que é importante Fornece o contexto necessário para valores financeiros, garantindo a interpretação correta e permitindo filtros e análises baseados em moeda. Onde obter Este é o campo 'Moeda' (WAERS) da tabela de cabeçalho de faturas, RBKP. Exemplos USDEURGBP | |||
| Motivo da Rejeição RejectionReason | Um código ou texto que explica por que uma fatura foi rejeitada durante o workflow de aprovação. | ||
| Descrição Quando um aprovador rejeita uma fatura, o ideal é que forneça um motivo. Pode ser um código padronizado ou um comentário livre indicando problemas como 'Número do pedido incorreto', 'Fatura duplicada' ou 'Valor incorreto'. Esses dados são vitais para o dashboard de 'Motivos e Tendências de Rejeição de Faturas'. Ao analisar a frequência dos diferentes motivos, a empresa pode identificar problemas comuns e implementar ações corretivas. Por exemplo, se 'Número do pedido incorreto' for frequente, pode indicar a necessidade de melhor comunicação com fornecedores ou treinamento para a equipe de entrada de dados. Essa análise é fundamental para reduzir o retrabalho no processo. Por que é importante Indica a causa raiz das rejeições, permitindo melhorias focadas para reduzir o retrabalho e aumentar as taxas de acerto na primeira tentativa. Onde obter Essa informação geralmente não fica em um único campo padrão. Pode estar em logs de contêiner de Workflow, campos de texto longo do documento ou campos específicos em soluções de Workflow personalizadas. Exemplos DUPLICATE_INVVALOR_INCORRETONO_PO_MATCH | |||
| O Desconto foi Perdido? IsCashDiscountLost | Um indicador calculado que sinaliza se um desconto financeiro disponível foi perdido. | ||
| Descrição Este é um atributo booleano calculado com base nas condições de pagamento e na data real do pagamento. Ele é definido como verdadeiro se as 'Condições de Pagamento' ofereciam um desconto e a 'Data de Compensação' ocorreu após o vencimento desse desconto. Isso mede diretamente a perda financeira por ineficiência. Este atributo é a base do dashboard de 'Perda de Oportunidade de Desconto'. Ele permite quantificar facilmente o impacto financeiro dos atrasos. Ao filtrar casos onde esta flag é verdadeira, os analistas podem investigar as variantes do processo e os gargalos que mais causam perdas de desconto, criando um caso de negócio sólido para a melhoria do processo. Por que é importante Quantifica diretamente a perda financeira causada por atrasos, criando um argumento forte para a otimização do workflow de faturas. Onde obter Este atributo não existe no SAP. Ele é calculado durante a transformação de dados, interpretando as 'Condições de Pagamento' e comparando a 'Data de Compensação' com a data limite do desconto. Exemplos verdadeirofalse | |||
| Sistema de Origem SourceSystem | Identifica o sistema de origem específico de onde os dados foram extraídos. | ||
| Descrição O atributo Sistema de Origem indica a procedência dos dados do evento, como o nome de uma instância específica do SAP ECC. Isso é muito importante em ambientes com múltiplos ERPs ou quando os dados são combinados de fontes diferentes. Na análise, esse atributo ajuda a diferenciar processos e desempenhos entre sistemas, regiões ou unidades de negócio que operam em instâncias separadas. Garante a clareza da linhagem dos dados e permite filtragens específicas por sistema. Por que é importante Fornece contexto crucial em ambientes multi-sistemas, permitindo a segregação correta dos dados e a análise de desempenho específica por sistema. Onde obter Geralmente é um valor estático adicionado durante a extração, representando o ID do Sistema SAP (TADIR-SRCSYSTEM) ou um identificador atribuído manualmente para a instância específica. Exemplos SAPECC_PROD_EUECC_US_FINSAP_ERP_6_EHP8 | |||
| Tempo de Processamento ProcessingTime | O tempo gasto em uma atividade específica. | ||
| Descrição O Tempo de Processamento mede o tempo necessário para executar uma atividade, do início ao fim. É calculado como a diferença entre o Horário de Término e o Horário de Início. Isso é diferente do tempo de ciclo, que inclui o tempo de espera entre as atividades. Analisar o tempo de processamento ajuda a entender o esforço real ou o tempo de execução (touch time) de cada etapa. Pode apontar atividades que consomem muitos recursos ou são ineficientes. Por exemplo, um tempo longo na 'Captura de Dados da Fatura' pode indicar uma fatura complexa ou um processo de digitação ineficiente. Esta métrica é valiosa para planejamento de recursos e iniciativas de automação. Por que é importante Mede a duração real do trabalho em uma activity, ajudando a identificar etapas que consomem muitos recursos e a distinguir tempo de trabalho ativo de tempos de espera ociosos. Onde obter Este atributo não existe no SAP. Ele é calculado durante a transformação de dados usando a fórmula: Horário de Término - Horário de Início. Exemplos PT5M10SPT2H15MPT30S | |||
| Tipo de Documento DocumentType | Um código que classifica o documento contábil, por exemplo, como fatura de fornecedor ou nota de crédito. | ||
| Descrição O Tipo de Documento é usado para categorizar transações no SAP. No processamento de faturas, tipos comuns incluem 'RE' para faturas padrão ou 'KG' para notas de crédito de fornecedor. O tipo de documento controla aspectos do lançamento, como o intervalo de numeração usado. Na análise, este atributo permite filtrar o processo para tipos específicos de transação. Por exemplo, o processo de tratamento de uma nota de crédito pode ser muito diferente de uma fatura padrão. Separar esses fluxos usando o Tipo de Documento proporciona uma visão mais precisa e útil do processo. Por que é importante Permite separar e analisar diferentes transações, como faturas vs. notas de crédito, que seguem caminhos de processo distintos. Onde obter Este é o campo 'Tipo de Documento' (BLART) da tabela de cabeçalho de faturas, RBKP. Exemplos REKRKG | |||
| Última Atualização de Dados LastDataUpdate | Timestamp que indica quando os dados do processo foram atualizados pela última vez a partir do sistema de origem. | ||
| Descrição Este atributo registra a data e a hora da extração ou atualização de dados mais recente. Ele se aplica a todo o conjunto de dados, e não a eventos individuais, indicando a atualidade dos dados. É um metadado crítico para usuários de Dashboards e analistas. Ajuda a entender o período coberto pela análise e garante decisões baseadas em informações atuais. Geralmente é exibido em destaque nos Dashboards para informar a atualização dos dados. Por que é importante Informa os usuários sobre a atualidade dos dados, garantindo que análises e decisões sejam baseadas em informações recentes. Onde obter Este valor é gerado e injetado no conjunto de dados pela ferramenta de extração ou ETL no momento da atualização dos dados. Exemplos 2024-05-20T08:00:00Z2024-05-21T08:00:00Z2024-05-22T08:00:00Z | |||
Atividades de Processamento de Faturas de P2P
| Atividade | Descrição | ||
|---|---|---|---|
| Bloqueio de Pagamento Ativado | Esta atividade ocorre quando um bloqueio é inserido em um item da fatura, impedindo o pagamento. Bloqueios podem ser definidos automaticamente por discrepâncias na conciliação ou manualmente por diversos motivos. | ||
| Por que é importante Este evento é crítico para medir a Duração da Resolução de Bloqueio de Pagamento e identificar as causas raiz dos atrasos. Ele destaca problemas com preços, quantidades ou aprovações pendentes. Onde obter Este é um evento explícito que pode ser rastreado pelos logs de alteração de documentos (tabelas CDHDR e CDPOS) para a tabela BSEG, campo ZLSPR (Chave de Bloqueio de Pagamento). Captura Timestamp dos documentos de alteração (CDHDR) quando o valor de BSEG-ZLSPR muda de vazio para preenchido. Tipo de evento explicit | |||
| Dados da Fatura Capturados | Marca a criação inicial do documento de fatura no SAP, seja como um documento pré-editado (parked) ou totalmente lançado. Geralmente, este é o primeiro evento registrado no sistema para o ciclo de vida de uma fatura e serve como o ponto inicial do processo. | ||
| Por que é importante Esta atividade é o ponto inicial principal para medir o tempo de ciclo de ponta a ponta. Analisar a duração a partir deste ponto ajuda a identificar atrasos na fase de entrada de dados e criação de documentos. Onde obter O timestamp de criação é capturado na tabela BKPF do SAP, campos CPUDT (Data em que o documento contábil foi inserido) e CPUTM (Hora da inserção). Captura Use o timestamp de criação do documento do cabeçalho da tabela BKPF (CPUDT). Tipo de evento explicit | |||
| Fatura Compensada | Esta atividade marca a etapa final de um ciclo de vida bem-sucedido da fatura, onde a obrigação em aberto é baixada por um documento de pagamento. Isso indica que o pagamento foi executado. | ||
| Por que é importante Como principal end event, ele é crucial para calcular o tempo de ciclo total de ponta a ponta. Ele confirma a conclusão do processo e serve para medir a pontualidade dos pagamentos. Onde obter Este é um evento explícito registrado na tabela de itens da fatura BSEG. A data de compensação fica no campo AUGDT e o número do documento de compensação em AUGBL. Captura Use a data de compensação (BSEG-AUGDT) do item da linha do documento de fatura. Tipo de evento explicit | |||
| Fatura Estornada | Representa o cancelamento de um documento de fatura lançado. Um documento de estorno é criado para anular o impacto financeiro da fatura original. | ||
| Por que é importante Esta atividade destaca um caminho significativo de exceção e retrabalho. Analisar a frequência e os motivos dos estornos pode revelar problemas sistêmicos no processo de validação e lançamento de faturas. Onde obter Este é um evento explícito registrado na tabela de cabeçalho de documento BKPF. O cabeçalho do documento estornado contém o número do documento de estorno (STBLG) e o ano fiscal (STJAH). Captura Identifique documentos onde o campo BKPF-STBLG está preenchido. O timestamp do event é a data de lançamento do documento de estorno. Tipo de evento explicit | |||
| Fatura Lançada | Este é um evento financeiro fundamental onde a fatura é oficialmente registrada no Razão Geral, gerando uma obrigação. Isso move o documento de um estado temporário (parked) para um lançamento contábil permanente. | ||
| Por que é importante O lançamento é um marco importante que confirma a validade da fatura. É um pré-requisito para o pagamento e um indicador-chave da produtividade do processamento. Onde obter Este é um evento explícito registrado na tabela de cabeçalho de documento BKPF. O registro de tempo é a data de lançamento, BKPF-BUDAT. O documento não terá mais o status 'parked'. Captura Use a data de lançamento (BKPF-BUDAT) para documentos que não estão pré-editados (BKPF-BSTAT está vazio ou ' '). Tipo de evento explicit | |||
| Bloqueio de Pagamento Liberado | Representa a remoção de um bloqueio de pagamento de um item da fatura, permitindo que ele prossiga para o lote de pagamento. Isso indica que um problema identificado anteriormente foi resolvido. | ||
| Por que é importante Esta atividade encerra a medição da duração do bloqueio. Analisar o tempo entre a definição e a liberação de um bloqueio revela a eficiência do processo de resolução de problemas. Onde obter Este evento é rastreado por meio dos logs de documentos de alteração (tabelas CDHDR e CDPOS) da tabela BSEG, campo ZLSPR (Chave de Bloqueio de Pagamento), quando o bloqueio é removido. Captura Timestamp dos documentos de alteração (CDHDR) quando o valor de BSEG-ZLSPR muda de preenchido para vazio. Tipo de evento explicit | |||
| Fatura Aprovada | Indica que a fatura foi formalmente aprovada pela autoridade designada, permitindo que ela siga para lançamento e pagamento. Geralmente é a etapa final de um Workflow. | ||
| Por que é importante Este marco encerra a medição do tempo de ciclo de aprovação. Ele desbloqueia o processo, permitindo o pagamento pontual e ajudando a analisar a carga de trabalho entre os aprovadores. Onde obter Geralmente capturado das tabelas do SAP Business Workflow identificando a conclusão de uma tarefa de aprovação. Alternativamente, pode ser inferido pela liberação de um bloqueio de pagamento relativo à aprovação. Captura Timestamp da etapa de aprovação concluída nos logs de Workflow ou da remoção de um bloqueio de pagamento específico. Tipo de evento inferred | |||
| Fatura Enviada para Aprovação | Representa o ponto em que uma fatura é enviada para um Workflow formal de aprovação. O mecanismo de captura depende da implementação específica do SAP Workflow ou de sistema de terceiros. | ||
| Por que é importante Esta atividade inicia a contagem para o KPI de Tempo de Ciclo de Aprovação de Fatura. É essencial para identificar atrasos na cadeia de aprovação e analisar o desempenho dos aprovadores. Onde obter Este evento costuma ser capturado das tabelas do SAP Business Workflow (ex: SWW_WI2OBJ, SWWLOG) identificando o início de uma tarefa de aprovação específica. Em cenários simples, pode ser inferido de uma mudança de status em um campo personalizado. Captura Requer a análise dos logs de Workflow do SAP ou campos de status personalizados vinculados ao documento da fatura. Tipo de evento inferred | |||
| Fatura Estacionada | Indica que uma fatura foi inserida no SAP, mas ainda não foi lançada no razão geral. É um estado temporário que permite revisão, correção ou aprovação antes do lançamento financeiro. | ||
| Por que é importante Rastrear quando as faturas são pré-editadas (parked) e por quanto tempo, destaca gargalos na validação pré-lançamento e no processo de aprovação. Isso separa o tempo de entrada de dados do tempo de processamento financeiro. Onde obter Isso é inferido pelo status do documento na tabela BKPF, campo BSTAT. Valores 'V' (Documento Parked) ou 'W' (Documento Parked com Liberação de Alteração) indicam o estado pré-editado. Captura Identifique documentos onde o campo de status BKPF-BSTAT é 'V'. O timestamp do event é a data de criação BKPF-CPUDT. Tipo de evento inferred | |||
| Fatura Rejeitada | Indica que uma fatura foi rejeitada durante o processo de aprovação. Esta ação geralmente exige correção e reenvio, criando um loop de retrabalho. | ||
| Por que é importante Rastrear rejeições é crucial para identificar motivos comuns de falha, como dados incorretos ou violações de políticas. Isso ajuda a quantificar o retrabalho e indicar áreas para melhoria do processo ou educação de fornecedores. Onde obter Este evento costuma ser encontrado nos logs do SAP Business Workflow como uma etapa de rejeição. Também pode ser inferido de mudanças de status específicas ou notas adicionadas ao documento da fatura. Captura Timestamp da etapa de rejeição nos logs de Workflow ou de uma mudança de status do documento indicando rejeição. Tipo de evento inferred | |||
| Fatura Vencida | Um event calculado que ocorre quando a data atual ultrapassa a data líquida de vencimento e a fatura ainda não foi paga. O vencimento é determinado pelos termos de pagamento e pela data base. | ||
| Por que é importante Esta atividade é essencial para monitorar o KPI de Taxa de Pagamento em Dia. Ela sinaliza proativamente faturas com risco de atraso, o que pode prejudicar a relação com fornecedores e gerar multas. Onde obter Este evento é calculado comparando a data atual com a data de vencimento líquida. A data de vencimento é derivada da data base (BSEG-ZFBDT) e das condições de pagamento (BSEG-ZTERM). Captura O event é disparado quando Tipo de evento calculated | |||
Guias de Extração
Etapas
- Crie o Programa ABAP: Use a transação
SE38ouSE80para criar um novo programa executável, por exemplo,Z_PM_INVOICE_EXTRACT. Atribua um título adequado e defina o tipo como 'Programa Executável'. - Defina a Tela de Seleção: No programa, defina uma tela de seleção para permitir a filtragem dos dados. Os parâmetros principais devem incluir Company Code (
BUKRS), Fiscal Year (GJAHR), Posting Date Range (BUDAT) e um parâmetro para o caminho do arquivo de saída no servidor de aplicação. - Declare as Estruturas de Dados: Defina uma estrutura de tabela interna para armazenar o event log final. Esta estrutura deve incluir todos os atributos obrigatórios e recomendados:
InvoiceNumber,Activity,EventTime,UserName,VendorNumber,PurchaseOrderNumber,InvoiceAmount,PostingDate,PaymentDueDate,PaymentBlockReasoneClearingDate. - Implemente a Lógica de Seleção de Dados: Escreva a lógica ABAP principal para selecionar os dados das faturas. A abordagem envolve múltiplas seleções que são combinadas na tabela de event log final.
- Primeiro, selecione os dados de cabeçalho e item das tabelas principais de faturas
BKPF,BSEG,RBKPeRSEGcom base nos critérios da tela de seleção. - Para cada fatura, gere os eventos base como 'Invoice Data Captured' (pelo timestamp de criação) e 'Invoice Posted' (pelo timestamp de lançamento).
- Consulte as tabelas de documentos de modificação
CDHDReCDPOSpara encontrar alterações relacionadas a bloqueios de pagamento (campoZLSPRnaBSEG). Para cada alteração relevante, crie os eventos 'Payment Block Set' e 'Payment Block Released'. - Identifique os eventos 'Invoice Cleared' verificando o documento de compensação (
AUGBL) e a data de compensação (AUGDT) na tabelaBSEG. - Identifique os eventos 'Invoice Reversed' procurando por um documento de estorno (
STBLG) no cabeçalhoBKPF. - Implemente uma lógica personalizada para capturar eventos de workflow ('Invoice Sent For Approval', 'Approved', 'Rejected'). Esta parte é específica de cada cliente e exige a adaptação do código às tabelas ou campos de status do seu workflow.
- Primeiro, selecione os dados de cabeçalho e item das tabelas principais de faturas
- Gere Eventos Calculados: Na lógica do programa, calcule o evento
Invoice Becomes Overdue. Isso é feito comparando a data de vencimento da fatura (PaymentDueDate) com a data atual para todas as faturas não pagas. Se a data de vencimento já passou, crie um evento com oEventTimedefinido como a data de vencimento. - Povoar a Tabela de Event Log: Conforme os dados de cada fatura são coletados das diferentes fontes, formate-os e adicione novas linhas à tabela interna final de event log, uma linha por activity.
- Exporte os Dados para um Arquivo: Use os comandos
OPEN DATASET,TRANSFEReCLOSE DATASETpara gravar o conteúdo da tabela interna final em um arquivo simples no caminho do servidor SAP especificado na tela de seleção. Use um separador consistente, como ponto e vírgula ou tabulação, para criar um arquivo CSV. - Agende a Extração: Para extrações regulares, crie uma variante para o programa com os critérios desejados e agende a execução como um job de segundo plano usando a transação
SM36. - Recupere o Arquivo de Saída: Acesse o diretório do servidor SAP via transação
AL11para localizar o arquivo gerado. Use a transaçãoCG3Ypara baixar o arquivo do servidor para sua máquina local. - Prepare para o Upload: Antes de carregar em uma ferramenta de Process Mining, abra o arquivo CSV para verificar se os cabeçalhos estão corretos, se o formato dos dados é consistente (especialmente os timestamps) e se o separador é o esperado. Certifique-se de salvar o arquivo com codificação UTF-8.
Configuração
- Critérios de Seleção: O relatório ABAP deve incluir uma tela de seleção abrangente. Os filtros mais importantes são:
Company Code (BUKRS): Para limitar a extração a entidades legais específicas.Posting Date (BUDAT): Para definir o período da extração. Recomenda-se extrair dados em blocos gerenciáveis, por exemplo, de 3 a 6 meses por vez.Document Type (BLART): Para incluir apenas tipos de documentos de fatura relevantes, como 'RE' para faturas de logística e 'KR' para faturas de fornecedores.
- Caminho do Arquivo de Saída: Parâmetro obrigatório para especificar o caminho completo e o nome do arquivo no servidor de aplicação SAP onde o arquivo será gerado. O usuário que executa o relatório precisa de permissão de escrita neste diretório.
- Considerações de Performance: Para grandes volumes de dados, o relatório deve ser executado como um job de segundo plano em horários de menor pico para evitar a degradação do sistema. A lógica deve selecionar apenas os campos necessários das tabelas e utilizar índices padrão do banco de dados SAP sempre que possível.
- Pré-requisitos e Autorizações: O usuário ou conta de serviço que executa esta extração precisa de:
- Permissões de execução de relatórios ABAP (parte de
S_PROGRAM). - Acesso de leitura às tabelas financeiras e de logística, incluindo
BKPF,BSEG,RBKP,RSEG,CDHDReCDPOS. - Autorização para gravar arquivos no diretório especificado do servidor de aplicação (
S_DATASET). - Acesso às transações
SE38,SM36,AL11eCG3Ypara desenvolvimento, agendamento e recuperação de arquivos.
- Permissões de execução de relatórios ABAP (parte de
a Consulta de Exemplo abap
REPORT Z_PM_INVOICE_EXTRACT.
*&---------------------------------------------------------------------*
*& Tables for Selection Screen
*&---------------------------------------------------------------------*
TABLES: BKPF, RBKP.
*&---------------------------------------------------------------------*
*& Data Declarations
*&---------------------------------------------------------------------*
TYPES: BEGIN OF ty_event_log,
InvoiceNumber TYPE belnr_v,
Activity TYPE string,
EventTime TYPE timestamp,
UserName TYPE uname,
VendorNumber TYPE lifnr,
PurchaseOrderNumber TYPE ebeln,
InvoiceAmount TYPE wrbtr,
PostingDate TYPE budat,
PaymentDueDate TYPE faedt,
PaymentBlockReason TYPE rstgr,
ClearingDate TYPE augdt,
END OF ty_event_log.
DATA: gt_event_log TYPE TABLE OF ty_event_log,
gs_event_log TYPE ty_event_log.
DATA: lt_bkpf TYPE TABLE OF bkpf,
ls_bkpf TYPE bkpf,
lt_bseg TYPE TABLE OF bseg,
ls_bseg TYPE bseg.
DATA: lt_rbkp TYPE TABLE OF rbkp,
ls_rbkp TYPE rbkp.
*&---------------------------------------------------------------------*
*& Selection Screen
*&---------------------------------------------------------------------*
SELECT-OPTIONS: s_bukrs FOR bkpf-bukrs OBLIGATORY,
s_gjahr FOR bkpf-gjahr OBLIGATORY,
s_budat FOR bkpf-budat.
PARAMETERS: p_fpath TYPE string OBLIGATORY DEFAULT '/usr/sap/tmp/invoice_events.csv'.
*&---------------------------------------------------------------------*
*& Start of Program Logic
*&---------------------------------------------------------------------*
START-OF-SELECTION.
" Select FI Invoices (e.g., Doc Type KR)
SELECT * FROM bkpf INTO TABLE lt_bkpf
WHERE bukrs IN s_bukrs
AND gjahr IN s_gjahr
AND budat IN s_budat
AND blart = 'KR'.
" Select MM Invoices
SELECT * FROM rbkp INTO TABLE lt_rbkp
WHERE bukrs IN s_bukrs
AND gjahr IN s_gjahr
AND budat IN s_budat.
* --- Process FI Invoices ---
LOOP AT lt_bkpf INTO ls_bkpf.
CLEAR gs_event_log.
gs_event_log-InvoiceNumber = ls_bkpf-belnr.
gs_event_log-PostingDate = ls_bkpf-budat.
SELECT SINGLE * FROM bseg INTO ls_bseg
WHERE bukrs = ls_bkpf-bukrs
AND belnr = ls_bkpf-belnr
AND gjahr = ls_bkpf-gjahr
AND koart = 'K'. " Vendor Line Item
IF sy-subrc = 0.
gs_event_log-VendorNumber = ls_bseg-lifnr.
gs_event_log-InvoiceAmount = ls_bseg-wrbtr.
gs_event_log-ClearingDate = ls_bseg-augdt.
" Calculate Due Date
CALL FUNCTION 'DETERMINE_DUE_DATE'
EXPORTING
i_bseg = ls_bseg
IMPORTING
e_faedt = gs_event_log-PaymentDueDate.
ENDIF.
" Activity: Invoice Data Captured
gs_event_log-Activity = 'Invoice Data Captured'.
CONVERT DATE ls_bkpf-cpudt TIME ls_bkpf-cputm INTO TIME STAMP gs_event_log-EventTime TIME ZONE sy-zonlo.
gs_event_log-UserName = ls_bkpf-usnam.
APPEND gs_event_log TO gt_event_log.
" Activity: Invoice Parked (if BSTAT = 'V')
IF ls_bkpf-bstat = 'V'.
gs_event_log-Activity = 'Invoice Parked'.
APPEND gs_event_log TO gt_event_log.
ENDIF.
" Activity: Invoice Posted
gs_event_log-Activity = 'Invoice Posted'.
CONVERT DATE ls_bkpf-budat TIME ls_bkpf-cputm INTO TIME STAMP gs_event_log-EventTime TIME ZONE sy-zonlo.
gs_event_log-UserName = ls_bkpf-usnam.
APPEND gs_event_log TO gt_event_log.
" Activity: Invoice Cleared
IF ls_bseg-augbl IS NOT INITIAL.
gs_event_log-Activity = 'Invoice Cleared'.
CONVERT DATE ls_bseg-augdt INTO TIME STAMP gs_event_log-EventTime TIME ZONE sy-zonlo.
gs_event_log-UserName = ls_bseg-usnam_cl.
APPEND gs_event_log TO gt_event_log.
ENDIF.
" Activity: Invoice Becomes Overdue
IF gs_event_log-PaymentDueDate IS NOT INITIAL AND gs_event_log-PaymentDueDate < sy-datum AND ls_bseg-augbl IS INITIAL.
gs_event_log-Activity = 'Invoice Becomes Overdue'.
CONVERT DATE gs_event_log-PaymentDueDate INTO TIME STAMP gs_event_log-EventTime TIME ZONE sy-zonlo.
gs_event_log-UserName = 'SYSTEM'.
APPEND gs_event_log TO gt_event_log.
ENDIF.
" Activity: Invoice Reversed
IF ls_bkpf-stblg IS NOT INITIAL.
DATA: ls_rev_bkpf TYPE bkpf.
SELECT SINGLE budat, usnam FROM bkpf INTO ls_rev_bkpf
WHERE belnr = ls_bkpf-stblg AND bukrs = ls_bkpf-bukrs AND gjahr = ls_bkpf-gjahr.
IF sy-subrc = 0.
gs_event_log-Activity = 'Invoice Reversed'.
CONVERT DATE ls_rev_bkpf-budat INTO TIME STAMP gs_event_log-EventTime TIME ZONE sy-zonlo.
gs_event_log-UserName = ls_rev_bkpf-usnam.
APPEND gs_event_log TO gt_event_log.
ENDIF.
ENDIF.
ENDLOOP.
* --- NOTE: The logic for MM invoices (from lt_rbkp) would be similar, joining RBKP with RSEG.
* --- NOTE: The logic for Payment Blocks and Workflow events requires reading change documents (CDHDR/CDPOS)
* --- or custom workflow tables. Below is a conceptual example for payment blocks.
* --- Conceptual Example for 'Payment Block Set' / 'Released' using Change Docs
* DATA: lt_cdhdr TYPE TABLE OF cdhdr, ls_cdhdr TYPE cdhdr,
* lt_cdpos TYPE TABLE OF cdpos, ls_cdpos TYPE cdpos.
* SELECT * FROM cdhdr INTO TABLE lt_cdhdr
* WHERE objectclas = 'BELEG' AND objectid IN (SELECT belnr FROM bkpf WHERE ...).
* LOOP AT lt_cdhdr.
* SELECT * FROM cdpos INTO TABLE lt_cdpos
* WHERE changenr = ls_cdhdr-changenr AND tabname = 'BSEG' AND fname = 'ZLSPR'.
* LOOP AT lt_cdpos.
* "... logic to create 'Payment Block Set' (if VALUE_NEW is not blank)
* "... or 'Payment Block Released' (if VALUE_NEW is blank) events.
* ENDLOOP.
* ENDLOOP.
* --- Conceptual Example for Workflow events ('Sent For Approval', 'Approved', 'Rejected')
* --- This part MUST be customized based on your specific workflow implementation (e.g., OpenText VIM, SAP WF).
* --- You would query the relevant workflow tables or status change tables here.
*&---------------------------------------------------------------------*
*& Write to File
*&---------------------------------------------------------------------*
END-OF-SELECTION.
DATA: lv_string TYPE string,
lv_header TYPE string.
" Create Header
lv_header = 'InvoiceNumber;Activity;EventTime;UserName;VendorNumber;PurchaseOrderNumber;InvoiceAmount;PostingDate;PaymentDueDate;PaymentBlockReason;ClearingDate'.
OPEN DATASET p_fpath FOR OUTPUT IN TEXT MODE ENCODING UTF-8.
IF sy-subrc = 0.
TRANSFER lv_header TO p_fpath.
LOOP AT gt_event_log INTO gs_event_log.
CONCATENATE gs_event_log-InvoiceNumber
gs_event_log-Activity
gs_event_log-EventTime
gs_event_log-UserName
gs_event_log-VendorNumber
gs_event_log-PurchaseOrderNumber
gs_event_log-InvoiceAmount
gs_event_log-PostingDate
gs_event_log-PaymentDueDate
gs_event_log-PaymentBlockReason
gs_event_log-ClearingDate
INTO lv_string SEPARATED BY ';'.
TRANSFER lv_string TO p_fpath.
ENDLOOP.
CLOSE DATASET p_fpath.
ELSE.
MESSAGE 'Error opening file.' TYPE 'E'.
ENDIF.