Seu Template de Dados de Devoluções e Reembolsos
Seu Template de Dados de Devoluções e Reembolsos
- Atributos recomendados para coletar
- Atividades-chave a monitorizar
- Orientação para Extração
Atributos de Devolução e Reembolso
| Nome | Descrição | ||
|---|---|---|---|
| ID do Caso de Devolução ReturnCaseId | O identificador exclusivo para um único processo de devolução, vinculando todas as atividades do início ao fim. | ||
| Descrição O ID do Caso de Devolução serve como o identificador principal que agrupa todos os eventos e atividades de uma única instância. Cada solicitação recebe um ID único, permitindo o rastreamento de ponta a ponta. No Process Mining, este atributo é fundamental para reconstruir o fluxo. Ele permite analisar durações, variantes e gargalos, conectando eventos distintos como 'Solicitação Iniciada', 'Mercadoria Recebida' e 'Reembolso Processado' em uma linha do tempo coerente. Por que é importante Chave essencial para rastrear a devolução do início ao fim, permitindo análises de tempo de ciclo e variantes. Onde obter Geralmente o número do documento de vendas (VBELN) da tabela VBAK, onde a categoria indica devolução. Exemplos 600001896000019060000191 | |||
| Nome da Atividade ActivityName | O nome de uma atividade ou evento de negócio específico que ocorreu no processo de devolução e reembolso. | ||
| Descrição Descreve um passo ou marco no ciclo de devolução. As atividades representam o trabalho realizado, como 'Ordem de Devolução Aprovada'. São derivadas de mudanças de status ou ações no SAP S/4HANA. Analisar a sequência e frequência dessas atividades é o cerne do Process Mining. Ajuda a visualizar o mapa do processo, identificar caminhos comuns e detectar atividades repetitivas que indicam retrabalho. Por que é importante As atividades formam a espinha dorsal do mapa de processos, permitindo visualizar e analisar o fluxo, gargalos e variações. Onde obter Os nomes das atividades costumam ser derivados de uma combinação de dados, como mudanças de status de documentos nas tabelas VBUK/VBUP, eventos de criação em tabelas de cabeçalho como VBAK (vendas) e BKPF (contabilidade), e status de movimentação de mercadorias na MSEG. Exemplos Solicitação de Devolução IniciadaMercadorias Recebidas no ArmazémNota de Crédito CriadaReembolso Processado | |||
| Tempo do Evento EventTime | O timestamp preciso que indica quando uma atividade específica ocorreu. | ||
| Descrição O Event Time captura a data e a hora em que um evento de negócio foi registrado no sistema. Esse timestamp é crucial para ordenar as atividades cronologicamente e para toda análise temporal. No Process Mining, esse atributo é usado para calcular os tempos de ciclo entre atividades, identificar a duração de cada etapa e analisar o desempenho do processo ao longo do tempo. É a base para descobrir gargalos, monitorar o cumprimento de SLAs e entender a dinâmica temporal do processo de devolução. Por que é importante Este timestamp é essencial para ordenar eventos, calcular durações e identificar atrasos no processo. Onde obter Extraído de campos de data e hora de criação ou alteração (ERDAT/ERZET) em tabelas como VBAK ou da data de lançamento (BUDAT). Exemplos 2023-10-26T10:05:00Z2023-10-27T14:30:15Z2023-10-28T09:00:00Z | |||
| ID do sistema de origem SourceSystemId | Identificador do sistema de origem de onde os dados foram extraídos. | ||
| Descrição Especifica o sistema de origem dos dados do evento. Geralmente, é o ID da instância do SAP S/4HANA. Em ambientes complexos, é vital para rastreabilidade e integridade dos dados, ajudando a diferenciar processos que ocorrem em diferentes ERPs ou sistemas integrados de armazém. Por que é importante Fornece contexto crucial para a origem e linhagem dos dados, especialmente em cenários com múltiplos sistemas, garantindo rastreabilidade e confiança. Onde obter Valor geralmente estático, configurado na extração. Pode ser obtido nas informações administrativas do SAP, como o System ID (SID). Exemplos S4H_PROD_100S4Q_DEV_200 | |||
| Última Atualização de Dados LastDataUpdateTimestamp | O registro de data e hora que indica quando os dados deste evento foram atualizados ou extraídos pela última vez. | ||
| Descrição Registra a data e hora da última extração ou atualização, indicando o quão recentes são os dados analisados. Importante para garantir a tempestividade da análise de Process Mining. Permite aos usuários saber a atualidade das informações, algo vital para o monitoramento operacional de casos em andamento. Por que é importante Indica a atualização dos dados, fundamental para garantir que as análises e dashboards reflitam informações recentes. Onde obter Geralmente gerado e gravado no dataset no momento da extração de dados pela ferramenta de ETL. Exemplos 2023-11-01T02:00:00Z2023-11-02T02:00:00Z | |||
| Event End Time EventEndTime | O timestamp que marca a concluso de uma atividade, usado para calcular a durao. | ||
| Descrição Enquanto o StartTime (EventTime) marca o início de uma atividade, o EventEndTime marca a sua conclusão. Para muitos eventos gerados pelo sistema, os horários de início e fim são idênticos, representando uma ocorrência instantânea. No entanto, para atividades que possuem uma duração mensurável, como 'Inspeção de Item', esse atributo é crucial. Esse atributo permite o cálculo direto do tempo de processamento da atividade. Isso é fundamental para a análise de desempenho, ajudando a identificar quais etapas específicas — e não apenas os intervalos entre elas — estão consumindo mais tempo. Por que é importante Permite o cálculo preciso da duração de atividades individuais, essencial para identificar ineficiências em etapas específicas do processo. Onde obter Geralmente derivado. Costuma ser o horário de início da atividade seguinte no caso. Exemplos 2023-10-26T11:25:30Z2023-10-27T15:00:00Z2023-10-28T09:10:45Z | |||
| ID do Cliente CustomerId | O identificador exclusivo do cliente que iniciou a devolução. | ||
| Descrição Identifica o cliente que solicitou a devolução, vinculando-o aos dados mestre. Analisar devoluções por cliente ajuda a identificar padrões, como taxas de retorno atípicas que podem indicar insatisfação ou fraude. Também permite segmentar o processo por tipo de cliente, permitindo níveis de serviço personalizados. Por que é importante Conecta as devoluções a clientes específicos, permitindo analisar o comportamento do consumidor, a segmentação e identificar quem devolve com frequência. Onde obter Encontrado no campo de número do cliente (KUNNR) na tabela de cabeçalho da ordem de devolução (VBAK). Exemplos CUST-001234CUST-005678CUST-009012 | |||
| ID do Produto ProductId | O identificador exclusivo do item que está sendo devolvido. | ||
| Descrição Especifica o material ou produto devolvido, vinculando o processo ao catálogo de itens. Analisar por produto é fundamental para detectar itens com altas taxas de devolução, o que pode indicar defeitos ou descrições ruins. Ajuda em decisões sobre design, fornecedores e estoque. Por que é importante Vincula o processo de devolução a produtos específicos, permitindo analisar as taxas de devolução por item e identificar problemas de qualidade ou descrição. Onde obter Encontrado no campo de número do material (MATNR) na tabela de itens da ordem de devolução (VBAP) ou na tabela de itens da remessa de devolução (LIPS). Exemplos FG-10023HW-45981SW-LICENSE-PREM | |||
| Motivo da devolução ReturnReason | O motivo fornecido pelo cliente para devolver o item. | ||
| Descrição Este atributo captura o motivo da devolução declarado pelo cliente, como 'Item Defeituoso' ou 'Tamanho Errado'. Geralmente é selecionado em uma lista de códigos de motivo. Analisar esses motivos é vital para identificar problemas de qualidade ou falhas nas descrições de venda. Oferece insights sobre a insatisfação do cliente e ajuda a priorizar melhorias para reduzir a taxa de devoluções. Por que é importante Oferece insights críticos sobre o motivo das devoluções, permitindo a análise de causa raiz para resolver problemas de qualidade do produto, erros no atendimento ou lacunas nas expectativas do cliente. Onde obter Normalmente armazenado na tabela de itens da ordem (VBAP), no campo ABGRU (Motivo de rejeição). Exemplos 001 - Qualidade Ruim002 - Danificado no Transporte005 - Item Incorreto Enviado | |||
| Nome do Utilizador UserName | O ID de usuário do funcionário que executou a atividade. | ||
| Descrição Identifica o usuário ou agente do sistema responsável por uma tarefa. No SAP, isso geralmente é capturado nos campos de criação ou alteração de documentos. Analisar por usuário ajuda a identificar necessidades de treinamento e distribuição de carga. Também é essencial para investigar desvios, vinculando ações a indivíduos para fins de conformidade e auditoria. Por que é importante Atribui as atividades do processo a usuários específicos, permitindo a análise de desempenho da equipe, carga de trabalho e conformidade. Onde obter Normalmente encontrado em tabelas de cabeçalho de documentos, como ERNAM (Criado por) em VBAK (Ordens de Vendas), LIKP (Remessas) e BKPF (Documentos Contábeis). Os detalhes do usuário podem ser enriquecidos com a tabela mestre de usuários USR21. Exemplos CBROWNASMITHWF_BATCH | |||
| Valor do Reembolso RefundAmount | O valor monetário final do reembolso emitido ao cliente. | ||
| Descrição Representa o valor real creditado ao cliente, registrado em documentos como notas de crédito. É uma métrica financeira chave. Essencial para analisar divergências de valor e segmentar devoluções por montante, identificando se casos de alto valor levam mais tempo para serem resolvidos. Por que é importante Rastreia o impacto financeiro e é essencial para analisar a precisão do reembolso e entender os custos totais. Onde obter Extraído do campo de valor líquido (NETWR) do documento de nota de crédito, encontrado em tabelas como VBRK (Cabeçalho do Documento de Faturamento) ou BSEG (Segmento do Documento Contábil). Exemplos 125.50999.0049,99 | |||
| Aderência à Política de Devolução ReturnPolicyAdherence | Um sinalizador indicando se o caso de devolução está em conformidade com a política de devolução definida. | ||
| Descrição Indica se a devolução cumpre os critérios da política (ex: prazo ou motivo válido). Baseia o dashboard de 'Visão Geral de Conformidade'. Quantifica as taxas de conformidade e permite detalhar casos irregulares para entender os motivos e reforçar as políticas. Por que é importante Quantifica a conformidade com as regras de negócio, ajudando a identificar e reduzir violações de política que podem impactar a lucratividade ou criar exceções no processo. Onde obter Calculado com base em regras de negócio. Por exemplo: (Data de Início da Devolução - Data da Compra Original) <= [Dias de Devolução Permitidos]. Isso requer a Data da Compra Original e as regras da política. Exemplos verdadeirofalse | |||
| Aderência ao SLA de Reembolso RefundSlaAdherence | Um sinalizador que indica se o reembolso foi processado dentro da meta do Acordo de Nível de Serviço (SLA). | ||
| Descrição Verifica se o reembolso foi processado dentro da data alvo do SLA. Fornece um indicador de conformidade para cada caso. É a métrica central para monitorar a aderência ao SLA. Ajuda a medir o cumprimento de prazos com o cliente e identifica casos que falharam, permitindo analisar as causas dos atrasos. Por que é importante Mede diretamente o desempenho em relação aos compromissos com o cliente, sendo um indicador crítico de qualidade do serviço e satisfação. Onde obter Calculado comparando o EventTime da atividade 'Refund Processed' com a 'RefundSlaTargetDate' de cada caso. Exemplos verdadeirofalse | |||
| Agente de Processamento ProcessingAgent | O agente ou grupo de recursos específico responsável por uma atividade manual. | ||
| Descrição Identifica a pessoa ou equipe que realizou a tarefa. Pode ser mais específico que o 'Nome do Usuário' ao referir-se a um papel ou time. Valioso para o dashboard de 'Eficiência de Aprovação', permitindo analisar o desempenho por agentes. Ajuda a entender a distribuição de carga, identificar necessidades de treinamento e reconhecer os melhores desempenhos. Por que é importante Permite analisar o desempenho por agente ou equipe, ajudando a gerenciar a carga de trabalho, identificar necessidades de treinamento e aumentar a eficiência. Onde obter Disponível nas funções de Parceiro de Negócios SAP ou derivada do departamento/papel do usuário na estrutura de RH. Exemplos Suporte Nível 1Equipe de Inspeção do ArmazémDepto Financeiro - CP | |||
| Data Alvo do SLA de Reembolso RefundSlaTargetDate | A data limite para o processamento do reembolso do caso de devolução. | ||
| Descrição Define o prazo de SLA para o processamento do reembolso. Geralmente é calculado com base em regras de negócio (ex: número de dias após o recebimento). Este campo baseia o dashboard de 'Monitoramento de SLA' e seu KPI. Permite o rastreio proativo de casos em risco de atraso, ajudando a melhorar a satisfação do cliente. Por que é importante Serve de base para medir a conformidade com o SLA, ajudando a monitorar o desempenho, priorizar casos antigos e melhorar a satisfação do cliente. Onde obter Quase sempre um campo derivado. A lógica usa uma data-chave mais um prazo das regras de negócio (ex: tipo de cliente). Exemplos 2023-11-10T23:59:59Z2023-11-15T23:59:59Z2023-11-20T23:59:59Z | |||
| É Automatizado IsAutomated | Um sinalizador que indica se uma atividade foi realizada por um sistema ou por um ser humano. | ||
| Descrição Diferencia atividades automáticas (workflow, jobs) de tarefas manuais. Essencial para calcular a 'Taxa de Aprovação Automática' e identificar chances de automação. Ao filtrar tarefas manuais, as empresas focam melhorias onde a automação traria mais ganho em velocidade e custo. Por que é importante Diferencia tarefas manuais de automatizadas, o que é crucial para identificar oportunidades de automação e medir o impacto da transformação digital. Onde obter Geralmente derivado do nome de usuário. Se for 'WF_BATCH' ou similar, a atividade é marcada como automática. Exemplos verdadeirofalse | |||
| É Retrabalho IsRework | Um sinalizador que indica se uma atividade em um caso é a repetição de uma atividade anterior. | ||
| Descrição Identifica casos de retrabalho, onde uma atividade se repete no mesmo caso (ex: inspeção repetida ou nota de crédito refilmada). Essencial para o KPI de 'Taxa de Retrabalho'. Ajuda a quantificar a ineficiência, destacando atividades propensas a erros que exigem melhores controles ou treinamento. Por que é importante Destaca ineficiências e erros ao sinalizar trabalhos repetidos, permitindo melhorias focadas para reduzir desperdícios e atrasos. Onde obter Este sinalizador geralmente é calculado pela ferramenta de Process Mining ou na transformação de dados. Verifica se a mesma atividade já ocorreu no caso. Exemplos verdadeirofalse | |||
| ID da Política de Devolução ReturnPolicyId | O identificador da política de devolução que se aplica a este caso específico. | ||
| Descrição Indica qual política ou regra se aplica à transação. As regras variam por produto, segmento ou tempo da compra. Essencial para a 'Visão Geral de Conformidade'. Ao associar o caso a uma política, o sistema verifica automaticamente prazos e condições, sinalizando desvios para análise. Por que é importante Permite a verificação automatizada de conformidade com as regras de negócio, garantindo que as devoluções sejam processadas de forma consistente e conforme a política. Onde obter Pode não ser um campo padrão do SAP, exigindo derivação por lógica de negócio ou uso de campos customizados. Exemplos STD-30DIASELEC-90DAY-WARRANTYFINAL-SALE-DEFECT | |||
| Número da Nota de Crédito CreditMemoNumber | O identificador exclusivo do documento de nota de crédito que autoriza o reembolso. | ||
| Descrição Uma nota de crédito é o documento de faturamento que credita oficialmente a conta do cliente pelos itens devolvidos. Este atributo é o número exclusivo desse documento financeiro. Rastrear o Número da Nota de Crédito é fundamental para analisar a liquidação financeira do processo de devolução. Ele marca um marco crítico, muitas vezes acionando o pagamento real do reembolso, e é necessário para reconciliação financeira e auditoria. Por que é importante Representa a transação financeira oficial do reembolso, essencial para o acompanhamento das etapas finais e para auditoria financeira. Onde obter Número do faturamento (VBELN) da tabela VBRK, onde a categoria indica nota de crédito. Exemplos 900003459000034690000347 | |||
| Número da Remessa de Devolução ReturnDeliveryNumber | O identificador exclusivo do documento de remessa de devolução. | ||
| Descrição Quando um cliente devolve mercadorias fisicamente, um documento de remessa de devolução é criado no SAP. Este atributo é o número único desse documento. Este ID é importante para rastrear o movimento físico, conectando o financeiro à logística e permitindo analisar as fases de recebimento e inspeção. Por que é importante Fornece um link essencial entre a ordem de devolução e o recebimento físico da mercadoria, fundamental para analisar tempos de logística e processamento no armazém. Onde obter Número da remessa (VBELN) da tabela LIKP, onde a categoria indica remessa de devolução. Exemplos 840000128400001384000014 | |||
| Organização de vendas SalesOrganization | A unidade organizacional responsável pela venda original e pela devolução. | ||
| Descrição A Organização de Vendas é um elemento chave no SAP que representa a unidade responsável pela venda e distribuição. Ela é atribuída à transação de devolução. Este atributo permite filtrar e comparar o processo entre diferentes unidades de negócio ou regiões. Isso ajuda a identificar se certas áreas têm taxas de devolução maiores ou processos menos eficientes, servindo de base para a análise de desempenho organizacional. Por que é importante Permite comparar o desempenho e as taxas do processo de devolução entre diferentes unidades de negócio, regiões ou canais de venda. Onde obter Encontrado no campo de organização de vendas (VKORG) na tabela de cabeçalho da ordem de devolução (VBAK). Exemplos 10002100US01 | |||
| Resultado da Inspeção do Item ItemInspectionOutcome | O resultado da inspeção física do item devolvido. | ||
| Descrição Registra o resultado da inspeção no armazém (ex: 'Aceito', 'Rejeitado'). Estes dados determinam o valor do reembolso. Analisar este resultado ajuda a identificar causas de rejeição e fornece feedback sobre embalagens ou transportadoras se houver muitos danos no trânsito. Por que é importante Explica o processo de decisão por trás das aprovações ou rejeições de reembolso, fornecendo dados valiosos sobre o estado do item e motivos de ajustes no valor. Onde obter Informação que pode estar no lote de inspeção do QM, como status/motivo no item da remessa (LIPS) ou campo customizado. Exemplos Aceito - Para revendaAceito - Para reformaRejeitado - Dano causado pelo clienteRejeitado - Item incorreto devolvido | |||
| Status da Ordem de Devolução ReturnOrderStatus | O status geral atual do caso de devolução. | ||
| Descrição Fornece um status geral do caso (ex: 'Aberto', 'Em Processo'). Geralmente é um status agregado derivado do último marco concluído. Essencial para o 'Dashboard de Status Operacional', ajudando gestores a entender a distribuição dos casos e a alocação de recursos em cada etapa. Por que é importante Oferece um panorama de onde cada caso está no processo, o que é essencial para Dashboards operacionais que acompanham a carga de trabalho e o status atual. Onde obter Derivado dos campos de status dos documentos relevantes. Por exemplo, do status do cabeçalho (GBSTK) ou do status do item (LFSTK) na ordem de venda relacionada (VBUK/VBUP) ou nos documentos de remessa. Exemplos Aguardando Recebimento de MercadoriasInspeção PendenteReembolso PendenteEncerrado | |||
| Tempo de Ciclo do Caso CycleTime | O tempo total decorrido do início ao fechamento de um caso de devolução. | ||
| Descrição Mede a duração total do processo de devolução. Geralmente é a diferença entre o primeiro e o último evento. O Tempo de Ciclo é um KPI primordial. É usado para monitorar o desempenho, definir metas e identificar tendências. Analisar fatores que aumentam o ciclo ajuda a revelar ineficiências sistêmicas. Por que é importante KPI fundamental para medir a eficiência global, impactando satisfação e custos operacionais. Onde obter Campo calculado. É a diferença entre o tempo máximo e mínimo de evento para cada ID de caso. Exemplos 5d 4h 30m12d 2h 15m2d 8h 0m | |||
| Valor de Reembolso Solicitado RequestedRefundAmount | O valor de reembolso inicialmente solicitado ou esperado no início do processo. | ||
| Descrição Este atributo captura o valor dos itens na solicitação inicial, servindo de base para comparação com o valor final reembolsado. Este campo é obrigatório para o dashboard de 'Análise de Divergência de Valores'. Comparar o solicitado com o real ajuda a identificar reembolsos parciais por danos ou taxas, garantindo transparência financeira. Por que é importante Serve como base para medir a precisão do reembolso, ajudando a identificar e analisar divergências entre os valores esperados e os efetivados. Onde obter Geralmente obtido do valor líquido dos itens na ordem original. Seria o valor (NETWR) dos itens na tabela VBAP. Exemplos 125.501050.0049,99 | |||
Atividades de Devolução e Reembolso
| Atividade | Descrição | ||
|---|---|---|---|
| Caso de Devolução Fechado | Atividade final que indica a conclusão do processo. Inferida quando o documento atinge o status fechado no sistema. | ||
| Por que é importante Define o fim do ciclo de vida do processo, permitindo calcular o tempo total. Confirma que o caso foi resolvido. Onde obter Inferido a partir do status geral da ordem de devolução na tabela VBAK ou de seus itens em VBAP ao atingirem o estado 'Concluído' ou 'Encerrado'. Isso é determinado pela configuração de gerenciamento de status do sistema. Captura Inferido pela mudança do status do documento de ordem de devolução para 'Concluído'. Tipo de evento inferred | |||
| Inspeção de Item Concluída | Representa a conclusão da avaliação de qualidade e condição das mercadorias devolvidas. No Advanced Returns Management, este é um passo explícito que registra o resultado da inspeção e define a ação seguinte, como reembolso ou descarte. | ||
| Por que é importante A duração e o resultado da inspeção impactam diretamente o tempo de processamento do reembolso e a gestão do estoque. Esta atividade é vital para analisar a eficiência e o retrabalho. Onde obter No SAP Advanced Returns Management (ARM), este pode ser um evento explícito da transação de inspeção. Também pode ser inferido de uma mudança de status no item da ordem de devolução indicando o resultado da inspeção. Captura Capturado a partir de logs de transação ou mudanças de status relacionadas às atividades de acompanhamento logístico no ARM. Tipo de evento explicit | |||
| Mercadorias Recebidas no Armazém | Marca o recebimento físico no armazém. Capturado quando o Recebimento de Mercadoria (PGR) é executado para a remessa de devolução. | ||
| Por que é importante Marco crítico que inicia a contagem para inspeção. Atrasos antes deste ponto dependem do cliente; depois, são internos. Onde obter Capturado das tabelas de documentos de material MSEG e MKPF para o tipo de movimento de recebimento de mercadorias associado a devoluções. A data de lançamento (MKPF-BUDAT) indica o horário do evento. Captura O evento corresponde ao lançamento de um recebimento de mercadorias para a remessa de devolução. Tipo de evento explicit | |||
| Nota de Crédito Criada | Criação do documento de faturamento oficial que credita o cliente. Evento capturado quando a nota de crédito é gerada. | ||
| Por que é importante A criação da nota de crédito é um marco financeiro crítico. Ela confirma o valor a ser reembolsado e autoriza o início do processo de pagamento. Onde obter Capturado a partir da criação de um documento de faturamento na tabela VBRK com uma categoria que indica nota de crédito. Isso é vinculado à solicitação de nota de crédito na tabela VBFA. Captura O evento é registrado ao salvar um novo documento de faturamento de nota de crédito (ex: usando a transação VF01). Tipo de evento explicit | |||
| Reembolso Processado | Esta atividade marca a etapa final, onde o crédito financeiro é compensado, indicando que o pagamento foi enviado ao cliente. Isso é identificado pela criação de um documento de compensação no módulo financeiro. | ||
| Por que é importante Momento do pagamento ao cliente. O tempo até este passo é o principal motor da satisfação e da medição de SLA. Onde obter Inferido das informações do documento de compensação na tabela de itens de linha da contabilidade financeira BSEG. A data de compensação (BSEG-AUGDT) no item de linha do cliente associado à nota de crédito indica quando o reembolso foi processado. Captura Inferido pelo preenchimento do campo de data de compensação no documento contábil associado à nota de crédito. Tipo de evento inferred | |||
| Solicitação de Devolução Iniciada | Ponto de partida onde a ordem de devolução é criada. Capturado quando um novo documento de vendas deste tipo é salvo no SAP S/4HANA. | ||
| Por que é importante Esta atividade marca o início oficial do ciclo de vida da devolução. Analisar o tempo deste evento até o fechamento é crucial para medir o tempo total do ciclo e a experiência do cliente. Onde obter Evento capturado da criação do documento de vendas (VBAK), onde a categoria indica ordem de devolução. Usa o timestamp VBAK-ERDAT. Captura O evento é registrado ao salvar uma nova ordem de venda de devolução (ex: usando a transação VA01). Tipo de evento explicit | |||
| Solicitação de Nota de Crédito Criada | Após uma inspeção bem-sucedida, esta atividade marca a criação de uma solicitação para emitir um crédito ao cliente. Isso é capturado como um novo documento de vendas, uma solicitação de nota de crédito, que referencia a ordem de devolução original. | ||
| Por que é importante Gatilho para o acerto financeiro. Analisar o tempo da inspeção até aqui revela a eficiência na passagem da logística para o financeiro. Onde obter Capturado a partir da criação de um documento de vendas na tabela VBAK com uma categoria de documento para Solicitação de Nota de Crédito. O vínculo com a devolução é mantido na tabela de fluxo de documentos VBFA. Captura O evento é registrado ao salvar um novo documento de solicitação de nota de crédito. Tipo de evento explicit | |||
| Devolução Rejeitada | Indica que o item devolvido não atendeu aos critérios da política de devolução e o pedido de reembolso ou crédito foi negado. Normalmente, isso é capturado por um código de motivo ou status específico aplicado ao item da ordem de devolução após a inspeção. | ||
| Por que é importante Rastrear rejeições ajuda a analisar a conformidade com as políticas e identificar motivos comuns de negação. É um caminho de exceção chave. Onde obter Inferido a partir de um motivo de rejeição (VBAP-ABGRU) definido no item da ordem de devolução ou de um status específico atribuído durante o processo de inspeção no Advanced Returns Management. Captura Inferido pela definição de um motivo de rejeição ou um status específico de 'rejeitado' no item do documento de devolução. Tipo de evento inferred | |||
| Documento contábil criado | Ocorre quando a nota de crédito é lançada na contabilidade, gerando os lançamentos oficiais no razão. | ||
| Por que é importante Esta atividade confirma que o crédito foi integrado ao sistema financeiro. O tempo entre a criação da nota de crédito e o lançamento contábil pode revelar problemas na interface entre faturamento e finanças. Onde obter Capturado a partir da criação de um cabeçalho de documento na tabela contábil BKPF, que está vinculado à nota de crédito em VBRK (VBRK-BELNR). Captura O evento é registrado após o lançamento bem-sucedido do documento de faturamento na Contabilidade Financeira. Tipo de evento explicit | |||
| Entrega de Devolução Criada | Sinaliza a criação do documento de remessa de entrada para gerenciar o recebimento físico das mercadorias. O sistema captura isso como um evento explícito vinculado à ordem de devolução. | ||
| Por que é importante Marco logístico chave. O tempo entre a aprovação e a criação da remessa destaca a eficiência da comunicação com o armazém. Onde obter Capturado a partir da criação de um cabeçalho de remessa na tabela LIKP, vinculado à ordem de devolução anterior pela tabela de fluxo de documentos VBFA. Captura O evento é registrado ao salvar um novo documento de remessa de devolução (ex: usando a transação VL01N). Tipo de evento explicit | |||
| Ordem de Devolução Aprovada | Representa a aprovação formal ou liberação da ordem de devolução. Geralmente é identificado por uma mudança de status no cabeçalho ou item do documento de vendas, indicando que os bloqueios foram removidos. | ||
| Por que é importante As etapas de aprovação podem ser uma grande fonte de atrasos. Rastrear essa atividade ajuda a identificar gargalos na fase inicial de autorização das devoluções. Onde obter Inferido de tabelas de gerenciamento de status ou campos de status diretamente nas tabelas VBAK ou VBAP. Uma mudança em um status de liberação ou a remoção de um bloqueio de remessa (VBAP-LIFSP) pode significar aprovação. Captura Inferido a partir de uma alteração nos campos de status do cabeçalho ou do item da ordem de devolução indicando liberação ou aprovação. Tipo de evento inferred | |||
| Ordem de Troca Criada | Representa uma solução alternativa: em vez do reembolso, uma nova ordem de venda é criada para enviar um item de substituição. Ocorre quando uma nova ordem referencia a devolução original. | ||
| Por que é importante Esta atividade ajuda a diferenciar devoluções para reembolso de devoluções para troca, que possuem fluxos e resultados diferentes. É essencial para a análise de variantes. Onde obter Capturado a partir da criação de um novo documento de vendas em VBAK que está vinculado à ordem de devolução na tabela de fluxo de documentos (VBFA). Captura O evento é registrado ao salvar um novo documento de ordem de venda designado como substituição. Tipo de evento explicit | |||
Guias de Extração
Etapas
- Verificação de Pré-requisitos: Certifique-se de que a conta de usuário que executará a extração tenha as autorizações necessárias no SAP S/4HANA para acessar as Core Data Services (CDS) Views exigidas. As views principais incluem I_SalesDocument, I_SalesDocumentItem, I_SDDocumentFlow, I_DeliveryDocument, I_MaterialDocumentHeader, I_BillingDocument, I_JournalEntry e I_ClearedItem.
- Acesso à Ferramenta de Consulta: Faça login no seu cliente SQL ou ferramenta de integração de dados de preferência que tenha conexão estabelecida com o banco de dados SAP S/4HANA. Pode ser uma ferramenta própria da SAP, como o SAP Analytics Cloud, ou uma plataforma de ETL de terceiros.
- Configuração dos Parâmetros da Consulta: Antes de executar, você deve modificar a consulta SQL fornecida. Localize os valores de placeholder e substitua-os pelos parâmetros corretos para o seu ambiente. Isso inclui definir o
[Start Date],[End Date],[Your Source System ID],[Your Return Order Type]e outros filtros de tipo de documento ou código de empresa. - Execução da Consulta de Extração: Copie a consulta SQL completa e execute-a na sua ferramenta. A consulta foi projetada para coletar todas as atividades especificadas em um único conjunto de dados, unindo os resultados de várias instruções select.
- Entendimento da Lógica da Consulta: Cada bloco
SELECTna estruturaUNION ALLé responsável por extrair uma atividade específica. Ele une várias CDS views para reunir os atributos necessários, atribui uma string fixa como oActivityNamee seleciona o timestamp relevante para oEventTime. - Revisão dos Dados Brutos: Após a conclusão da consulta, faça uma breve revisão da saída. Verifique se o número de linhas é razoável e se colunas fundamentais como
ReturnCaseId,ActivityNameeEventTimeforam preenchidas conforme esperado. - Transformação de Dados: A consulta está estruturada para gerar um formato de log de eventos plano. Geralmente, não são necessárias transformações estruturais significativas. No entanto, você pode precisar ajustar formatos de timestamp ou tipos de dados dependendo dos requisitos do seu sistema de destino.
- Exportação do Event Log: Exporte o conjunto de resultados da consulta como um arquivo CSV. Certifique-se de que o arquivo utilize a codificação UTF-8 para evitar problemas de caracteres, especialmente em nomes de usuários ou descrições de produtos.
- Upload para a Ferramenta de Process Mining: O arquivo CSV resultante está pronto para ser carregado na sua plataforma de Process Mining, como o ProcessMind. Mapeie as colunas do arquivo para os campos correspondentes na ferramenta, por exemplo,
ReturnCaseIdpara ID do Caso,ActivityNamepara Atividade eEventTimepara Timestamp.
Configuração
- Pré-requisitos: O usuário executor precisa de autorizações de exibição para objetos relacionados a documentos de vendas (VBAK), remessas (LIKP), faturamento (VBRK) e contabilidade (BSEG, BKPF). O acesso às CDS views subjacentes é essencial.
- Filtros de Escopo de Dados: É fundamental filtrar a consulta por tipos de documentos específicos para isolar o processo de devolução. Configure os placeholders para tipos de ordem de devolução (ex: 'RE'), tipos de solicitação de nota de crédito (ex: 'G2') e tipos de ordem de troca (ex: 'SO'). Filtrar por
CompanyCodeouSalesOrganizationtambém é altamente recomendável para limitar o escopo dos dados. - Filtro de Intervalo de Datas: Para gerenciar o desempenho e o volume de dados, sempre aplique um filtro de intervalo de datas. Comece com um período recente de 3 a 6 meses. A consulta utiliza a data de criação da ordem de devolução inicial (
I_SalesDocument.CreationDate) como a principal condição de filtro. - Considerações de Desempenho: Esta é uma consulta abrangente que une várias CDS views de grande porte. A execução pode consumir muitos recursos no sistema S/4HANA de origem. Agende a extração para horários fora do pico comercial para minimizar o impacto. Para conjuntos de dados muito extensos, considere estratégias de carregamento incremental.
a Consulta de Exemplo sql
WITH ReturnOrders AS (
SELECT
SalesDocument AS ReturnCaseId,
CreationDate,
CreationDateTime,
CreatedByUser,
OrderReason,
SoldToParty
FROM I_SalesDocument
WHERE SalesDocumentType = '[Your Return Order Type]' -- e.g., 'RE'
AND CreationDate BETWEEN '[Start Date]' AND '[End Date]'
AND CompanyCode = '[Your Company Code]'
)
-- 1. Return Request Initiated
SELECT
RO.ReturnCaseId AS "ReturnCaseId",
'Return Request Initiated' AS "ActivityName",
RO.CreationDateTime AS "EventTime",
RO.CreationDateTime AS "EventEndTime",
RO.CreatedByUser AS "UserName",
RO.OrderReason AS "ReturnReason",
CAST(NULL AS DECIMAL(17, 2)) AS "RefundAmount",
I.Material AS "ProductId",
RO.SoldToParty AS "CustomerId",
'[Your Source System ID]' AS "SourceSystemId",
CURRENT_UTCTIMESTAMP AS "LastDataUpdateTimestamp"
FROM ReturnOrders RO
JOIN I_SalesDocumentItem I ON RO.ReturnCaseId = I.SalesDocument
UNION ALL
-- 2. Return Order Approved
SELECT
SD.SalesDocument AS "ReturnCaseId",
'Return Order Approved' AS "ActivityName",
SD.LastChangeDateTime AS "EventTime",
SD.LastChangeDateTime AS "EventEndTime",
SD.LastChangedByUser AS "UserName",
SD.OrderReason AS "ReturnReason",
CAST(NULL AS DECIMAL(17, 2)) AS "RefundAmount",
I.Material AS "ProductId",
SD.SoldToParty AS "CustomerId",
'[Your Source System ID]' AS "SourceSystemId",
CURRENT_UTCTIMESTAMP AS "LastDataUpdateTimestamp"
FROM I_SalesDocument AS SD
JOIN ReturnOrders RO ON SD.SalesDocument = RO.ReturnCaseId
JOIN I_SalesDocumentItem I ON SD.SalesDocument = I.SalesDocument
WHERE SD.OverallSDProcessStatus <> 'A' -- Not Open, implying it has been processed/approved
AND I.SDProcessStatus <> 'A'
UNION ALL
-- 3. Return Delivery Created
SELECT
DF.PrecedingDocument AS "ReturnCaseId",
'Return Delivery Created' AS "ActivityName",
LH.CreationDateTime AS "EventTime",
LH.CreationDateTime AS "EventEndTime",
LH.CreatedByUser AS "UserName",
RO.OrderReason AS "ReturnReason",
CAST(NULL AS DECIMAL(17, 2)) AS "RefundAmount",
LI.Material AS "ProductId",
RO.SoldToParty AS "CustomerId",
'[Your Source System ID]' AS "SourceSystemId",
CURRENT_UTCTIMESTAMP AS "LastDataUpdateTimestamp"
FROM I_SDDocumentFlow AS DF
JOIN ReturnOrders RO ON DF.PrecedingDocument = RO.ReturnCaseId
JOIN I_DeliveryDocument AS LH ON DF.SubsequentDocument = LH.DeliveryDocument
JOIN I_DeliveryDocumentItem AS LI ON LH.DeliveryDocument = LI.DeliveryDocument
WHERE DF.PrecedingDocumentCategory = 'C' AND DF.SubsequentDocumentCategory = 'J'
UNION ALL
-- 4. Goods Received at Warehouse
SELECT
DF.PrecedingDocument AS "ReturnCaseId",
'Goods Received at Warehouse' AS "ActivityName",
MH.CreationDateTime AS "EventTime",
MH.CreationDateTime AS "EventEndTime",
MH.CreatedByUser AS "UserName",
RO.OrderReason AS "ReturnReason",
CAST(NULL AS DECIMAL(17, 2)) AS "RefundAmount",
MI.Material AS "ProductId",
RO.SoldToParty AS "CustomerId",
'[Your Source System ID]' AS "SourceSystemId",
CURRENT_UTCTIMESTAMP AS "LastDataUpdateTimestamp"
FROM I_SDDocumentFlow AS DF
JOIN ReturnOrders RO ON DF.PrecedingDocument = RO.ReturnCaseId
JOIN I_DeliveryDocumentItem AS LI ON DF.SubsequentDocument = LI.DeliveryDocument AND DF.SubsequentDocumentItem = LI.DeliveryDocumentItem
JOIN I_MaterialDocumentItem AS MI ON LI.DeliveryDocument = MI.DeliveryDocument AND LI.DeliveryDocumentItem = MI.DeliveryDocumentItem
JOIN I_MaterialDocumentHeader AS MH ON MI.MaterialDocument = MH.MaterialDocument AND MI.MaterialDocumentYear = MH.MaterialDocumentYear
WHERE DF.SubsequentDocumentCategory = 'J' AND MH.GoodsMovementType = '[Your Return Goods Receipt MVT]' -- e.g., '651', '653'
UNION ALL
-- 5. Item Inspection Completed
SELECT
SDI.SalesDocument AS "ReturnCaseId",
'Item Inspection Completed' AS "ActivityName",
SDI.LastChangeDateTime AS "EventTime",
SDI.LastChangeDateTime AS "EventEndTime",
SDI.LastChangedByUser AS "UserName",
RO.OrderReason AS "ReturnReason",
CAST(NULL AS DECIMAL(17, 2)) AS "RefundAmount",
SDI.Material AS "ProductId",
RO.SoldToParty AS "CustomerId",
'[Your Source System ID]' AS "SourceSystemId",
CURRENT_UTCTIMESTAMP AS "LastDataUpdateTimestamp"
FROM I_SalesDocumentItem AS SDI
JOIN ReturnOrders RO ON SDI.SalesDocument = RO.ReturnCaseId
WHERE SDI.ReturnsInspectionStatus = '4' -- 'Inspection Completed', adjust value based on your config
UNION ALL
-- 6. Return Rejected
SELECT
SDI.SalesDocument AS "ReturnCaseId",
'Return Rejected' AS "ActivityName",
SDI.LastChangeDateTime AS "EventTime",
SDI.LastChangeDateTime AS "EventEndTime",
SDI.LastChangedByUser AS "UserName",
RO.OrderReason AS "ReturnReason",
CAST(NULL AS DECIMAL(17, 2)) AS "RefundAmount",
SDI.Material AS "ProductId",
RO.SoldToParty AS "CustomerId",
'[Your Source System ID]' AS "SourceSystemId",
CURRENT_UTCTIMESTAMP AS "LastDataUpdateTimestamp"
FROM I_SalesDocumentItem AS SDI
JOIN ReturnOrders RO ON SDI.SalesDocument = RO.ReturnCaseId
WHERE SDI.SalesDocumentItemRejectionReason <> ''
UNION ALL
-- 7. Credit Memo Request Created
SELECT
DF.PrecedingDocument AS "ReturnCaseId",
'Credit Memo Request Created' AS "ActivityName",
CM_REQ.CreationDateTime AS "EventTime",
CM_REQ.CreationDateTime AS "EventEndTime",
CM_REQ.CreatedByUser AS "UserName",
RO.OrderReason AS "ReturnReason",
CAST(NULL AS DECIMAL(17, 2)) AS "RefundAmount",
I.Material AS "ProductId",
RO.SoldToParty AS "CustomerId",
'[Your Source System ID]' AS "SourceSystemId",
CURRENT_UTCTIMESTAMP AS "LastDataUpdateTimestamp"
FROM I_SDDocumentFlow AS DF
JOIN ReturnOrders RO ON DF.PrecedingDocument = RO.ReturnCaseId
JOIN I_SalesDocument AS CM_REQ ON DF.SubsequentDocument = CM_REQ.SalesDocument
JOIN I_SalesDocumentItem I ON CM_REQ.SalesDocument = I.SalesDocument
WHERE CM_REQ.SalesDocumentType = '[Your Credit Memo Request Type]' -- e.g., 'CR'
UNION ALL
-- 8. Exchange Order Created
SELECT
DF.PrecedingDocument AS "ReturnCaseId",
'Exchange Order Created' AS "ActivityName",
EX_ORD.CreationDateTime AS "EventTime",
EX_ORD.CreationDateTime AS "EventEndTime",
EX_ORD.CreatedByUser AS "UserName",
RO.OrderReason AS "ReturnReason",
CAST(NULL AS DECIMAL(17, 2)) AS "RefundAmount",
I.Material AS "ProductId",
RO.SoldToParty AS "CustomerId",
'[Your Source System ID]' AS "SourceSystemId",
CURRENT_UTCTIMESTAMP AS "LastDataUpdateTimestamp"
FROM I_SDDocumentFlow AS DF
JOIN ReturnOrders RO ON DF.PrecedingDocument = RO.ReturnCaseId
JOIN I_SalesDocument AS EX_ORD ON DF.SubsequentDocument = EX_ORD.SalesDocument
JOIN I_SalesDocumentItem I ON EX_ORD.SalesDocument = I.SalesDocument
WHERE EX_ORD.SalesDocumentType = '[Your Exchange Order Type]' -- e.g., 'OR'
UNION ALL
-- 9. Credit Memo Created
SELECT
DF_CM.PrecedingDocument AS "ReturnCaseId",
'Credit Memo Created' AS "ActivityName",
BD.CreationDateTime AS "EventTime",
BD.CreationDateTime AS "EventEndTime",
BD.CreatedByUser AS "UserName",
RO.OrderReason AS "ReturnReason",
BD.TotalNetAmount AS "RefundAmount",
BDI.Material AS "ProductId",
RO.SoldToParty AS "CustomerId",
'[Your Source System ID]' AS "SourceSystemId",
CURRENT_UTCTIMESTAMP AS "LastDataUpdateTimestamp"
FROM I_SDDocumentFlow AS DF
JOIN I_SalesDocument AS CM_REQ ON DF.SubsequentDocument = CM_REQ.SalesDocument AND CM_REQ.SalesDocumentType = '[Your Credit Memo Request Type]'
JOIN I_SDDocumentFlow AS DF_CM ON CM_REQ.SalesDocument = DF_CM.PrecedingDocument
JOIN I_BillingDocument AS BD ON DF_CM.SubsequentDocument = BD.BillingDocument
JOIN I_BillingDocumentItem AS BDI ON BD.BillingDocument = BDI.BillingDocument
JOIN ReturnOrders RO ON DF.PrecedingDocument = RO.ReturnCaseId
WHERE DF.PrecedingDocumentCategory = 'C'
UNION ALL
-- 10. Accounting Document Created
SELECT
RO.ReturnCaseId AS "ReturnCaseId",
'Accounting Document Created' AS "ActivityName",
JE.CreationDateTime AS "EventTime",
JE.CreationDateTime AS "EventEndTime",
JE.CreatedByUser AS "UserName",
RO.OrderReason AS "ReturnReason",
JE.AmountInCompanyCodeCurrency AS "RefundAmount",
JRI.ProductName AS "ProductId",
RO.SoldToParty AS "CustomerId",
'[Your Source System ID]' AS "SourceSystemId",
CURRENT_UTCTIMESTAMP AS "LastDataUpdateTimestamp"
FROM I_JournalEntry AS JE
JOIN I_JournalEntryItem JRI ON JE.AccountingDocument = JRI.AccountingDocument
JOIN I_BillingDocument BD ON JE.ReferenceDocument = BD.BillingDocument
JOIN I_SDDocumentFlow DF_CM ON BD.BillingDocument = DF_CM.SubsequentDocument
JOIN I_SalesDocument CM_REQ ON DF_CM.PrecedingDocument = CM_REQ.SalesDocument AND CM_REQ.SalesDocumentType = '[Your Credit Memo Request Type]'
JOIN I_SDDocumentFlow DF ON CM_REQ.SalesDocument = DF.SubsequentDocument
JOIN ReturnOrders RO ON DF.PrecedingDocument = RO.ReturnCaseId
WHERE JE.OriginalReferenceDocumentType = 'VBRK'
UNION ALL
-- 11. Refund Processed
SELECT
RO.ReturnCaseId AS "ReturnCaseId",
'Refund Processed' AS "ActivityName",
CI.ClearingDate AS "EventTime",
CI.ClearingDate AS "EventEndTime",
CI.LastChangedByUser AS "UserName",
RO.OrderReason AS "ReturnReason",
CI.AmountInCompanyCodeCurrency AS "RefundAmount",
JRI.ProductName AS "ProductId",
RO.SoldToParty AS "CustomerId",
'[Your Source System ID]' AS "SourceSystemId",
CURRENT_UTCTIMESTAMP AS "LastDataUpdateTimestamp"
FROM I_ClearedItem AS CI
JOIN I_JournalEntryItem JRI ON CI.AccountingDocument = JRI.AccountingDocument AND CI.FiscalYear = JRI.FiscalYear AND CI.LedgerGLLineItem = JRI.LedgerGLLineItem
JOIN I_JournalEntry JE ON JRI.AccountingDocument = JE.AccountingDocument
JOIN I_BillingDocument BD ON JE.ReferenceDocument = BD.BillingDocument
JOIN I_SDDocumentFlow DF_CM ON BD.BillingDocument = DF_CM.SubsequentDocument
JOIN I_SalesDocument CM_REQ ON DF_CM.PrecedingDocument = CM_REQ.SalesDocument AND CM_REQ.SalesDocumentType = '[Your Credit Memo Request Type]'
JOIN I_SDDocumentFlow DF ON CM_REQ.SalesDocument = DF.SubsequentDocument
JOIN ReturnOrders RO ON DF.PrecedingDocument = RO.ReturnCaseId
WHERE JE.OriginalReferenceDocumentType = 'VBRK' AND CI.ClearingDate IS NOT NULL
UNION ALL
-- 12. Return Case Closed
SELECT
SD.SalesDocument AS "ReturnCaseId",
'Return Case Closed' AS "ActivityName",
SD.LastChangeDateTime AS "EventTime",
SD.LastChangeDateTime AS "EventEndTime",
SD.LastChangedByUser AS "UserName",
SD.OrderReason AS "ReturnReason",
CAST(NULL AS DECIMAL(17, 2)) AS "RefundAmount",
I.Material AS "ProductId",
SD.SoldToParty AS "CustomerId",
'[Your Source System ID]' AS "SourceSystemId",
CURRENT_UTCTIMESTAMP AS "LastDataUpdateTimestamp"
FROM I_SalesDocument AS SD
JOIN ReturnOrders RO ON SD.SalesDocument = RO.ReturnCaseId
JOIN I_SalesDocumentItem I ON SD.SalesDocument = I.SalesDocument
WHERE SD.OverallSDProcessStatus = 'C' -- 'Completed' Etapas
- Verificação de Pré-requisitos: Certifique-se de que a conta de usuário que executará a extração tenha as autorizações necessárias no SAP S/4HANA para acessar as Core Data Services (CDS) Views exigidas. As views principais incluem I_SalesDocument, I_SalesDocumentItem, I_SDDocumentFlow, I_DeliveryDocument, I_MaterialDocumentHeader, I_BillingDocument, I_JournalEntry e I_ClearedItem.
- Acesso à Ferramenta de Consulta: Faça login no seu cliente SQL ou ferramenta de integração de dados de preferência que tenha conexão estabelecida com o banco de dados SAP S/4HANA. Pode ser uma ferramenta própria da SAP, como o SAP Analytics Cloud, ou uma plataforma de ETL de terceiros.
- Configuração dos Parâmetros da Consulta: Antes de executar, você deve modificar a consulta SQL fornecida. Localize os valores de placeholder e substitua-os pelos parâmetros corretos para o seu ambiente. Isso inclui definir o
[Start Date],[End Date],[Your Source System ID],[Your Return Order Type]e outros filtros de tipo de documento ou código de empresa. - Execução da Consulta de Extração: Copie a consulta SQL completa e execute-a na sua ferramenta. A consulta foi projetada para coletar todas as atividades especificadas em um único conjunto de dados, unindo os resultados de várias instruções select.
- Entendimento da Lógica da Consulta: Cada bloco
SELECTna estruturaUNION ALLé responsável por extrair uma atividade específica. Ele une várias CDS views para reunir os atributos necessários, atribui uma string fixa como oActivityNamee seleciona o timestamp relevante para oEventTime. - Revisão dos Dados Brutos: Após a conclusão da consulta, faça uma breve revisão da saída. Verifique se o número de linhas é razoável e se colunas fundamentais como
ReturnCaseId,ActivityNameeEventTimeforam preenchidas conforme esperado. - Transformação de Dados: A consulta está estruturada para gerar um formato de log de eventos plano. Geralmente, não são necessárias transformações estruturais significativas. No entanto, você pode precisar ajustar formatos de timestamp ou tipos de dados dependendo dos requisitos do seu sistema de destino.
- Exportação do Event Log: Exporte o conjunto de resultados da consulta como um arquivo CSV. Certifique-se de que o arquivo utilize a codificação UTF-8 para evitar problemas de caracteres, especialmente em nomes de usuários ou descrições de produtos.
- Upload para a Ferramenta de Process Mining: O arquivo CSV resultante está pronto para ser carregado na sua plataforma de Process Mining, como o ProcessMind. Mapeie as colunas do arquivo para os campos correspondentes na ferramenta, por exemplo,
ReturnCaseIdpara ID do Caso,ActivityNamepara Atividade eEventTimepara Timestamp.
Configuração
- Pré-requisitos: O usuário executor precisa de autorizações de exibição para objetos relacionados a documentos de vendas (VBAK), remessas (LIKP), faturamento (VBRK) e contabilidade (BSEG, BKPF). O acesso às CDS views subjacentes é essencial.
- Filtros de Escopo de Dados: É fundamental filtrar a consulta por tipos de documentos específicos para isolar o processo de devolução. Configure os placeholders para tipos de ordem de devolução (ex: 'RE'), tipos de solicitação de nota de crédito (ex: 'G2') e tipos de ordem de troca (ex: 'SO'). Filtrar por
CompanyCodeouSalesOrganizationtambém é altamente recomendável para limitar o escopo dos dados. - Filtro de Intervalo de Datas: Para gerenciar o desempenho e o volume de dados, sempre aplique um filtro de intervalo de datas. Comece com um período recente de 3 a 6 meses. A consulta utiliza a data de criação da ordem de devolução inicial (
I_SalesDocument.CreationDate) como a principal condição de filtro. - Considerações de Desempenho: Esta é uma consulta abrangente que une várias CDS views de grande porte. A execução pode consumir muitos recursos no sistema S/4HANA de origem. Agende a extração para horários fora do pico comercial para minimizar o impacto. Para conjuntos de dados muito extensos, considere estratégias de carregamento incremental.
a Consulta de Exemplo sql
WITH ReturnOrders AS (
SELECT
SalesDocument AS ReturnCaseId,
CreationDate,
CreationDateTime,
CreatedByUser,
OrderReason,
SoldToParty
FROM I_SalesDocument
WHERE SalesDocumentType = '[Your Return Order Type]' -- e.g., 'RE'
AND CreationDate BETWEEN '[Start Date]' AND '[End Date]'
AND CompanyCode = '[Your Company Code]'
)
-- 1. Return Request Initiated
SELECT
RO.ReturnCaseId AS "ReturnCaseId",
'Return Request Initiated' AS "ActivityName",
RO.CreationDateTime AS "EventTime",
RO.CreationDateTime AS "EventEndTime",
RO.CreatedByUser AS "UserName",
RO.OrderReason AS "ReturnReason",
CAST(NULL AS DECIMAL(17, 2)) AS "RefundAmount",
I.Material AS "ProductId",
RO.SoldToParty AS "CustomerId",
'[Your Source System ID]' AS "SourceSystemId",
CURRENT_UTCTIMESTAMP AS "LastDataUpdateTimestamp"
FROM ReturnOrders RO
JOIN I_SalesDocumentItem I ON RO.ReturnCaseId = I.SalesDocument
UNION ALL
-- 2. Return Order Approved
SELECT
SD.SalesDocument AS "ReturnCaseId",
'Return Order Approved' AS "ActivityName",
SD.LastChangeDateTime AS "EventTime",
SD.LastChangeDateTime AS "EventEndTime",
SD.LastChangedByUser AS "UserName",
SD.OrderReason AS "ReturnReason",
CAST(NULL AS DECIMAL(17, 2)) AS "RefundAmount",
I.Material AS "ProductId",
SD.SoldToParty AS "CustomerId",
'[Your Source System ID]' AS "SourceSystemId",
CURRENT_UTCTIMESTAMP AS "LastDataUpdateTimestamp"
FROM I_SalesDocument AS SD
JOIN ReturnOrders RO ON SD.SalesDocument = RO.ReturnCaseId
JOIN I_SalesDocumentItem I ON SD.SalesDocument = I.SalesDocument
WHERE SD.OverallSDProcessStatus <> 'A' -- Not Open, implying it has been processed/approved
AND I.SDProcessStatus <> 'A'
UNION ALL
-- 3. Return Delivery Created
SELECT
DF.PrecedingDocument AS "ReturnCaseId",
'Return Delivery Created' AS "ActivityName",
LH.CreationDateTime AS "EventTime",
LH.CreationDateTime AS "EventEndTime",
LH.CreatedByUser AS "UserName",
RO.OrderReason AS "ReturnReason",
CAST(NULL AS DECIMAL(17, 2)) AS "RefundAmount",
LI.Material AS "ProductId",
RO.SoldToParty AS "CustomerId",
'[Your Source System ID]' AS "SourceSystemId",
CURRENT_UTCTIMESTAMP AS "LastDataUpdateTimestamp"
FROM I_SDDocumentFlow AS DF
JOIN ReturnOrders RO ON DF.PrecedingDocument = RO.ReturnCaseId
JOIN I_DeliveryDocument AS LH ON DF.SubsequentDocument = LH.DeliveryDocument
JOIN I_DeliveryDocumentItem AS LI ON LH.DeliveryDocument = LI.DeliveryDocument
WHERE DF.PrecedingDocumentCategory = 'C' AND DF.SubsequentDocumentCategory = 'J'
UNION ALL
-- 4. Goods Received at Warehouse
SELECT
DF.PrecedingDocument AS "ReturnCaseId",
'Goods Received at Warehouse' AS "ActivityName",
MH.CreationDateTime AS "EventTime",
MH.CreationDateTime AS "EventEndTime",
MH.CreatedByUser AS "UserName",
RO.OrderReason AS "ReturnReason",
CAST(NULL AS DECIMAL(17, 2)) AS "RefundAmount",
MI.Material AS "ProductId",
RO.SoldToParty AS "CustomerId",
'[Your Source System ID]' AS "SourceSystemId",
CURRENT_UTCTIMESTAMP AS "LastDataUpdateTimestamp"
FROM I_SDDocumentFlow AS DF
JOIN ReturnOrders RO ON DF.PrecedingDocument = RO.ReturnCaseId
JOIN I_DeliveryDocumentItem AS LI ON DF.SubsequentDocument = LI.DeliveryDocument AND DF.SubsequentDocumentItem = LI.DeliveryDocumentItem
JOIN I_MaterialDocumentItem AS MI ON LI.DeliveryDocument = MI.DeliveryDocument AND LI.DeliveryDocumentItem = MI.DeliveryDocumentItem
JOIN I_MaterialDocumentHeader AS MH ON MI.MaterialDocument = MH.MaterialDocument AND MI.MaterialDocumentYear = MH.MaterialDocumentYear
WHERE DF.SubsequentDocumentCategory = 'J' AND MH.GoodsMovementType = '[Your Return Goods Receipt MVT]' -- e.g., '651', '653'
UNION ALL
-- 5. Item Inspection Completed
SELECT
SDI.SalesDocument AS "ReturnCaseId",
'Item Inspection Completed' AS "ActivityName",
SDI.LastChangeDateTime AS "EventTime",
SDI.LastChangeDateTime AS "EventEndTime",
SDI.LastChangedByUser AS "UserName",
RO.OrderReason AS "ReturnReason",
CAST(NULL AS DECIMAL(17, 2)) AS "RefundAmount",
SDI.Material AS "ProductId",
RO.SoldToParty AS "CustomerId",
'[Your Source System ID]' AS "SourceSystemId",
CURRENT_UTCTIMESTAMP AS "LastDataUpdateTimestamp"
FROM I_SalesDocumentItem AS SDI
JOIN ReturnOrders RO ON SDI.SalesDocument = RO.ReturnCaseId
WHERE SDI.ReturnsInspectionStatus = '4' -- 'Inspection Completed', adjust value based on your config
UNION ALL
-- 6. Return Rejected
SELECT
SDI.SalesDocument AS "ReturnCaseId",
'Return Rejected' AS "ActivityName",
SDI.LastChangeDateTime AS "EventTime",
SDI.LastChangeDateTime AS "EventEndTime",
SDI.LastChangedByUser AS "UserName",
RO.OrderReason AS "ReturnReason",
CAST(NULL AS DECIMAL(17, 2)) AS "RefundAmount",
SDI.Material AS "ProductId",
RO.SoldToParty AS "CustomerId",
'[Your Source System ID]' AS "SourceSystemId",
CURRENT_UTCTIMESTAMP AS "LastDataUpdateTimestamp"
FROM I_SalesDocumentItem AS SDI
JOIN ReturnOrders RO ON SDI.SalesDocument = RO.ReturnCaseId
WHERE SDI.SalesDocumentItemRejectionReason <> ''
UNION ALL
-- 7. Credit Memo Request Created
SELECT
DF.PrecedingDocument AS "ReturnCaseId",
'Credit Memo Request Created' AS "ActivityName",
CM_REQ.CreationDateTime AS "EventTime",
CM_REQ.CreationDateTime AS "EventEndTime",
CM_REQ.CreatedByUser AS "UserName",
RO.OrderReason AS "ReturnReason",
CAST(NULL AS DECIMAL(17, 2)) AS "RefundAmount",
I.Material AS "ProductId",
RO.SoldToParty AS "CustomerId",
'[Your Source System ID]' AS "SourceSystemId",
CURRENT_UTCTIMESTAMP AS "LastDataUpdateTimestamp"
FROM I_SDDocumentFlow AS DF
JOIN ReturnOrders RO ON DF.PrecedingDocument = RO.ReturnCaseId
JOIN I_SalesDocument AS CM_REQ ON DF.SubsequentDocument = CM_REQ.SalesDocument
JOIN I_SalesDocumentItem I ON CM_REQ.SalesDocument = I.SalesDocument
WHERE CM_REQ.SalesDocumentType = '[Your Credit Memo Request Type]' -- e.g., 'CR'
UNION ALL
-- 8. Exchange Order Created
SELECT
DF.PrecedingDocument AS "ReturnCaseId",
'Exchange Order Created' AS "ActivityName",
EX_ORD.CreationDateTime AS "EventTime",
EX_ORD.CreationDateTime AS "EventEndTime",
EX_ORD.CreatedByUser AS "UserName",
RO.OrderReason AS "ReturnReason",
CAST(NULL AS DECIMAL(17, 2)) AS "RefundAmount",
I.Material AS "ProductId",
RO.SoldToParty AS "CustomerId",
'[Your Source System ID]' AS "SourceSystemId",
CURRENT_UTCTIMESTAMP AS "LastDataUpdateTimestamp"
FROM I_SDDocumentFlow AS DF
JOIN ReturnOrders RO ON DF.PrecedingDocument = RO.ReturnCaseId
JOIN I_SalesDocument AS EX_ORD ON DF.SubsequentDocument = EX_ORD.SalesDocument
JOIN I_SalesDocumentItem I ON EX_ORD.SalesDocument = I.SalesDocument
WHERE EX_ORD.SalesDocumentType = '[Your Exchange Order Type]' -- e.g., 'OR'
UNION ALL
-- 9. Credit Memo Created
SELECT
DF_CM.PrecedingDocument AS "ReturnCaseId",
'Credit Memo Created' AS "ActivityName",
BD.CreationDateTime AS "EventTime",
BD.CreationDateTime AS "EventEndTime",
BD.CreatedByUser AS "UserName",
RO.OrderReason AS "ReturnReason",
BD.TotalNetAmount AS "RefundAmount",
BDI.Material AS "ProductId",
RO.SoldToParty AS "CustomerId",
'[Your Source System ID]' AS "SourceSystemId",
CURRENT_UTCTIMESTAMP AS "LastDataUpdateTimestamp"
FROM I_SDDocumentFlow AS DF
JOIN I_SalesDocument AS CM_REQ ON DF.SubsequentDocument = CM_REQ.SalesDocument AND CM_REQ.SalesDocumentType = '[Your Credit Memo Request Type]'
JOIN I_SDDocumentFlow AS DF_CM ON CM_REQ.SalesDocument = DF_CM.PrecedingDocument
JOIN I_BillingDocument AS BD ON DF_CM.SubsequentDocument = BD.BillingDocument
JOIN I_BillingDocumentItem AS BDI ON BD.BillingDocument = BDI.BillingDocument
JOIN ReturnOrders RO ON DF.PrecedingDocument = RO.ReturnCaseId
WHERE DF.PrecedingDocumentCategory = 'C'
UNION ALL
-- 10. Accounting Document Created
SELECT
RO.ReturnCaseId AS "ReturnCaseId",
'Accounting Document Created' AS "ActivityName",
JE.CreationDateTime AS "EventTime",
JE.CreationDateTime AS "EventEndTime",
JE.CreatedByUser AS "UserName",
RO.OrderReason AS "ReturnReason",
JE.AmountInCompanyCodeCurrency AS "RefundAmount",
JRI.ProductName AS "ProductId",
RO.SoldToParty AS "CustomerId",
'[Your Source System ID]' AS "SourceSystemId",
CURRENT_UTCTIMESTAMP AS "LastDataUpdateTimestamp"
FROM I_JournalEntry AS JE
JOIN I_JournalEntryItem JRI ON JE.AccountingDocument = JRI.AccountingDocument
JOIN I_BillingDocument BD ON JE.ReferenceDocument = BD.BillingDocument
JOIN I_SDDocumentFlow DF_CM ON BD.BillingDocument = DF_CM.SubsequentDocument
JOIN I_SalesDocument CM_REQ ON DF_CM.PrecedingDocument = CM_REQ.SalesDocument AND CM_REQ.SalesDocumentType = '[Your Credit Memo Request Type]'
JOIN I_SDDocumentFlow DF ON CM_REQ.SalesDocument = DF.SubsequentDocument
JOIN ReturnOrders RO ON DF.PrecedingDocument = RO.ReturnCaseId
WHERE JE.OriginalReferenceDocumentType = 'VBRK'
UNION ALL
-- 11. Refund Processed
SELECT
RO.ReturnCaseId AS "ReturnCaseId",
'Refund Processed' AS "ActivityName",
CI.ClearingDate AS "EventTime",
CI.ClearingDate AS "EventEndTime",
CI.LastChangedByUser AS "UserName",
RO.OrderReason AS "ReturnReason",
CI.AmountInCompanyCodeCurrency AS "RefundAmount",
JRI.ProductName AS "ProductId",
RO.SoldToParty AS "CustomerId",
'[Your Source System ID]' AS "SourceSystemId",
CURRENT_UTCTIMESTAMP AS "LastDataUpdateTimestamp"
FROM I_ClearedItem AS CI
JOIN I_JournalEntryItem JRI ON CI.AccountingDocument = JRI.AccountingDocument AND CI.FiscalYear = JRI.FiscalYear AND CI.LedgerGLLineItem = JRI.LedgerGLLineItem
JOIN I_JournalEntry JE ON JRI.AccountingDocument = JE.AccountingDocument
JOIN I_BillingDocument BD ON JE.ReferenceDocument = BD.BillingDocument
JOIN I_SDDocumentFlow DF_CM ON BD.BillingDocument = DF_CM.SubsequentDocument
JOIN I_SalesDocument CM_REQ ON DF_CM.PrecedingDocument = CM_REQ.SalesDocument AND CM_REQ.SalesDocumentType = '[Your Credit Memo Request Type]'
JOIN I_SDDocumentFlow DF ON CM_REQ.SalesDocument = DF.SubsequentDocument
JOIN ReturnOrders RO ON DF.PrecedingDocument = RO.ReturnCaseId
WHERE JE.OriginalReferenceDocumentType = 'VBRK' AND CI.ClearingDate IS NOT NULL
UNION ALL
-- 12. Return Case Closed
SELECT
SD.SalesDocument AS "ReturnCaseId",
'Return Case Closed' AS "ActivityName",
SD.LastChangeDateTime AS "EventTime",
SD.LastChangeDateTime AS "EventEndTime",
SD.LastChangedByUser AS "UserName",
SD.OrderReason AS "ReturnReason",
CAST(NULL AS DECIMAL(17, 2)) AS "RefundAmount",
I.Material AS "ProductId",
SD.SoldToParty AS "CustomerId",
'[Your Source System ID]' AS "SourceSystemId",
CURRENT_UTCTIMESTAMP AS "LastDataUpdateTimestamp"
FROM I_SalesDocument AS SD
JOIN ReturnOrders RO ON SD.SalesDocument = RO.ReturnCaseId
JOIN I_SalesDocumentItem I ON SD.SalesDocument = I.SalesDocument
WHERE SD.OverallSDProcessStatus = 'C' -- 'Completed'