Caso de Uso: Oportunidade de Venda
Caso de Uso: Oportunidade de Venda (OV)
1. Objetivo do Cenário
Este cenário consiste em um Kanban de Oportunidades (OOPR) no SAP CRM One.
O objetivo foi:
-
Organizar as Oportunidades de Venda por etapas do pipeline.
-
Mostrar os vendedores responsáveis pela abertura e última movimentação da OV.
-
Destacar prioridades e cores dinâmicas conforme probabilidade e status.
-
Exibir datas-chave: abertura, previsão de fechamento, próximo contato.
-
Controlar o potencial da OV (Valor1), o valor ponderado (Valor2) e documentos relacionados (Valor3).
-
Incluir no verso do card o último parecer/atividade registrado no SAP.
-
Fornecer uma visão visual, clara e prática para acompanhamento.
2. Estrutura da Query
Query principal
WITH last_activity AS (
SELECT
A."U_BaseEntry",
MAX(C."ClgCode") AS "LastClgCode"
FROM "@DWU_ATENDIMENTO" A
JOIN "@DWU_ATEND_PARECER" P ON P."DocEntry" = A."DocEntry"
JOIN "OCLG" C ON C."ClgCode" = P."U_NumAtividade"
GROUP BY A."U_BaseEntry"
),
last_stage AS (
SELECT r1."OpprId", r1."Step_Id", r1."ObjType" AS "LkBaseType", r1."DocId" AS "LkBaseEntry"
FROM "OOPR" h
JOIN "OPR1" r1 ON r1."OpprId" = h."OpprId"
AND r1."Line" = (SELECT MAX(r11."Line") FROM OPR1 r11 WHERE r11."OpprId" = h."OpprId")
),
doc_values AS (
SELECT 23 AS "ObjType", q."DocEntry", q."DocTotal" FROM "OQUT" q
UNION ALL
SELECT 17, r."DocEntry", r."DocTotal" FROM "ORDR" r
UNION ALL
SELECT 15, d."DocEntry", d."DocTotal" FROM "ODLN" d
UNION ALL
SELECT 13, i."DocEntry", i."DocTotal" FROM "OINV" i
)
SELECT
T4."Descript" AS "Agrupador",
'#F5F5F5' AS "CorAgrupador",
T0."OpprId" AS "IdDoc",
'97' AS "TipoObjeto",
T0."OpprId" || ' - ' || T0."CardCode" || ' - ' || SUBSTRING(T1."CardName", 1, 30) AS "Titulo",
T0."OpenDate" AS "Data1",
T0."PredDate" AS "Data2",
T5."U_DtProxContato" AS "Data3",
/* Última nota/parecer */
(SELECT TOP 1 T11."Notes" FROM OCLG T11
WHERE T11."ClgCode" = C."ClgCode") AS "Observacao",
T2."SlpName" AS "Responsavel",
/* Prioridade por classificação */
IFNULL(T7."Descript", 'Alto') AS "Prioridade",
CASE
WHEN IFNULL(T7."Descript", 'Alto') = 'Alto' THEN '#FF6347'
WHEN IFNULL(T7."Descript", 'Alto') = 'Médio' THEN '#1E90FF'
WHEN IFNULL(T7."Descript", 'Alto') = 'Baixo' THEN '#7DD78C'
ELSE '#FFF'
END AS "CorPrioridade",
SUBSTRING(T2."SlpName", 1, 24) AS "Classificacao",
'#000' AS "CorClassificacao",
/* Indicadores */
T0."MaxSumLoc" AS "Valor1", -- Potencial
T0."MaxSumLoc" * (T4."CloPrcnt"/100) AS "Valor2", -- Ponderado
IFNULL(dv."DocValor",0) AS "Valor3", -- Documentos vinculados
CAST(T4."CloPrcnt" AS INT) AS "Progresso",
/* Campos extras */
CASE T0."Status"
WHEN 'L' THEN 'Perdida'
WHEN 'W' THEN 'Vencida'
WHEN 'O' THEN 'Aberta'
ELSE 'Desconhecido'
END AS "CampoUsuario1",
T0."Name" AS "CampoUsuario2",
/* Cores do card */
CASE WHEN T0."Status" = 'L' THEN '#FF6347'
WHEN T0."Status" = 'W' THEN '#7DD78C'
WHEN T0."Status" = 'O' THEN '#1E90FF'
ELSE '#FF6347' END AS "CorDoCard",
CASE WHEN T0."Status" = 'L' THEN '#F9D9D9'
WHEN T0."Status" = 'W' THEN '#D7FDDE'
WHEN T0."Status" = 'O' THEN '#DEEEFF'
ELSE '#E9E9E9' END AS "CorDoCardTotal"
FROM "OOPR" T0
LEFT JOIN "OCRD" T1 ON T1."CardCode" = T0."CardCode"
LEFT JOIN "OSLP" T2 ON T2."SlpCode" = T0."LastSlp"
LEFT JOIN "OOST" T4 ON T0."StepLast" = T4."StepId"
LEFT JOIN "@DWU_ATENDIMENTO" T5 ON T5."U_BaseEntry" = TO_NVARCHAR(T0."OpprId") AND T5."U_BaseType" = '33' AND T5."U_Status" = 'O'
LEFT JOIN "OTER" T6 ON T6."territryID" = T1."Territory"
LEFT JOIN "OOIR" T7 ON T0."IntRate" = T7."Num"
LEFT JOIN last_activity LA ON LA."U_BaseEntry" = TO_NVARCHAR(T0."OpprId")
LEFT JOIN "OCLG" C ON C."ClgCode" = LA."LastClgCode"
LEFT JOIN last_stage LS ON LS."OpprId" = T0."OpprId"
LEFT JOIN doc_values dv ON dv."ObjType" = LS."LkBaseType" AND dv."DocEntry" = LS."LkBaseEntry"
WHERE 1=1
ORDER BY T4."CloPrcnt";
3. Estrutura do Kanban
-
Agrupador (colunas)
-
Baseado em
OOST.StepId
→ Etapas do pipeline de oportunidade. -
Exemplo: Prospecção, Negociação, Fechamento.
-
-
Cards (Oportunidades) exibem:
-
Título: ID da OV + Cliente.
-
Responsável: Último vendedor da etapa (LastSlp).
-
Observação: Último parecer da OV (atividade vinculada em OCLG).
-
Datas:
-
Data1 = Abertura.
-
Data2 = Previsão de fechamento.
-
Data3 = Próximo contato.
-
-
Indicadores:
-
Valor1 = Potencial da OV.
-
Valor2 = Potencial ponderado pela probabilidade.
-
Valor3 = Valor de documento vinculado (ex.: pedido, entrega, fatura).
-
-
Progresso: % da probabilidade de fechamento (
CloPrcnt
). -
Campos extras:
-
CampoUsuario1 = Status da OV (Aberta, Perdida, Vencida).
-
CampoUsuario2 = Nome do registro.
-
-
-
Cores:
-
Agrupador: Cinza suave
#F5F5F5
. -
Card (fundo/borda): definidos conforme status da OV:
-
Aberta → Azul.
-
Perdida → Vermelho.
-
Vencida → Verde.
-
-
Prioridade: cores dinâmicas com base na classificação (Alto, Médio, Baixo).
-
4. Destaques do Caso
-
Integração com atividades e pareceres: o verso do card mostra sempre o último parecer registrado.
-
Integração com documentos comerciais: exibe valores de cotações, pedidos, entregas ou faturas vinculados.
-
Uso de cores dinâmicas e suaves para destacar prioridades e status.
-
Flexibilidade para aplicar filtros no CRM One (ex.: vendedor, status, datas, tipo de atendimento, setor, grupo de PN).
5. Resultado Final
O resultado é um Kanban de Oportunidades que oferece:
-
Clareza visual para identificar rapidamente status e prioridades.
-
Riqueza de informação ao incluir pareceres, progresso e valores vinculados.
-
Controle gerencial sobre negociações em andamento.