Ir para o conteúdo principal

Caso de Uso: Oportunidade de Venda


Caso de Uso: Oportunidade de Venda (OV)

1. Objetivo do Cenário

OEste cenário abaixo consiste em um Kanban de Oportunidades (OOPR) no SAP CRM One.
O objetivo foi:

  • Organizar as Oportunidades de Venda por etapas do pipeline (pipeline).

  • Mostrar os vendedores responsáveis pela abertura e última movimentação da oportunidade.OV.

  • Destacar prioridades e cores dinâmicas deconforme acordoprobabilidade come a classificação da oportunidade (Alto, Médio, Baixo).status.

  • Exibir datas-chave da negociação:: abertura, previsão de fechamento efechamento, próximo contato.

  • Controlar o potencial deda vendaOV (Valor1) e, o valor ponderado (Valor2) conformee adocumentos probabilidade.relacionados (Valor3).

  • Incluir no verso do card o último parecer/atividade registrado no SAP.

  • Fornecer uma visão visualvisual, clara e rápidaprática para acompanhamento de status, progresso e prioridade.acompanhamento.


2. Estrutura básicada Query

Query inicialprincipal

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",
    -- Agrupador obrigatório (primeira coluna)
    '#DAE8F8'#F5F5F5' AS "CorAgrupador", -- Cor de fundo da coluna (segunda coluna obrigatória)
    T0."OpprId" AS "IdDoc",
    -- ID da oportunidade
    97'97' AS "TipoObjeto",
    -- Tipo do objeto SAP para oportunidade (ObjectType = 97)
    T0."OpprId" || ' - ' || T0."CardCode" || ' - ' || SUBSTRING(T1."CardName", 1, 30) AS "Titulo", -- Título do card
    T0."OpenDate" AS "Data1",
    -- Data inicial da oportunidade
    T0."PredDate" AS "Data2",
    -- Data prevista de fechamento
    T5."U_DtProxContato" AS "Data3",

    --/* DataÚltima realnota/parecer de fechamento*/
    (podeSELECT serTOP NULL)1 T0.T11."Memo"Notes" FROM OCLG T11
     WHERE T11."ClgCode" = C."ClgCode") AS "Observacao", -- Observação do card

    T2."SlpName" AS "Responsavel",

    --/* ResponsávelPrioridade pelapor oportunidadeclassificação (vendedor)*/
    IFNULL(T7."Descript", 'Alto') AS "Prioridade", -- Prioridade (campo nativo da oportunidade)
    CASE
        WHEN IFNULL(T7."Descript", 'Alto') = 'Alto'  THEN '#00FF00'     -- Verde#FF6347'
        WHEN IFNULL(T7."Descript", 'Alto') = 'Médio' THEN '#FFFF00'    -- Amarelo#1E90FF'
        WHEN IFNULL(T7."Descript", 'Alto') = 'Baixo' THEN '#FF0000'    -- Vermelho#7DD78C'
        ELSE '#FFF'                                                -- Cor padrão, branco
    END AS "CorPrioridade",

    --SUBSTRING(T2."SlpName", Cor1, da prioridade (pode ser customizada se quiser)
    T6."descript"24) AS "Classificacao", -- Classificação
    '#000' AS "CorClassificacao",

    --/* CorIndicadores da classificação*/
    T0."MaxSumLoc" AS "Valor1",  -- Valor potencial da oportunidade (valor local)Potencial
    T0."MaxSumLoc" * (T0.T4."CloPrcnt"/100) AS "Valor2", -- ValorPonderado
    2 (pode ser outro campo, se quiser)
    0IFNULL(dv."DocValor",0) AS "Valor3", -- ValorDocumentos 3vinculados
    (idem)
    TO_INT(T0.CAST(T4."CloPrcnt") AS INT) AS "Progresso",

    --/* ProgressoCampos (exemplo:extras 0-5*/
    statusCASE T0."Status"
        0%-100%)WHEN 'L' THEN 'Perdida'
        WHEN 'W' THEN 'Vencida'
        WHEN 'O' THEN 'Aberta'
        ELSE 'Desconhecido'
    END AS "CampoUsuario1",

    -- Campo usuário 1 (ex: tipo)
    ''T0."Name" AS "CampoUsuario2",

    --/* CampoCores usuáriodo 2card (ex:*/
    origem)CASE WHEN T0."Status" = '#DAE8F8'L' THEN '#FF6347'
         WHEN T0."Status" = 'W' THEN '#7DD78C'
         WHEN T0."Status" = 'O' THEN '#1E90FF'
         ELSE '#FF6347' END AS "CorDoCard",

    --CASE CorWHEN daT0."Status" borda= do'L' cardTHEN (última'#F9D9D9'
         colunaWHEN obrigatória)T0."Status" = 'W' THEN '#D7FDDE'
         WHEN T0."Status" = 'O' THEN '#DEEEFF'
         ELSE '#E9E9E9' END AS "CorDoCardTotal"

FROM OOPR"OOPR" T0
LEFT JOIN OCRD"OCRD" T1 ON T1."CardCode" = T0."CardCode"
LEFT JOIN OSLP"OSLP" T2 ON T2."SlpCode" = T0."LastSlp"
LEFT JOIN OOST"OOST" T4 ON T0."StepLast" = T4."StepId"
LEFT JOIN "@DWU_ATENDIMENTO" T5 ON T5."U_CodTipoAtendimento"='1' AND T5."U_BaseEntry" = TO_NVARCHAR(T0."OpprId") AND T5."U_BaseType" = '33' AND T5."U_Status" = 'O'
LEFT JOIN OTER"OTER" T6 ON T6."territryID" = T1."Territory"
leftLEFT joinJOIN OOIR"OOIR" T7 ON T0."IntRate" = T7."Num"
WHERELEFT 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."OpenDate"OpprId"
BETWEENLEFT '{[Data1CRMOne][DataJOIN Inicial]}'doc_values dv ON dv."ObjType" = LS."LkBaseType" AND '{[Data2CRMOne][Datadv."DocEntry" Final]}'= ANDLS."LkBaseEntry"
T2."SlpCode"WHERE in (SELECT "SlpCode" FROM RetornaVendedoresSubordinados('#UserIDCRM#'))1=1
ORDER BY T0.T4."OpprId"CloPrcnt";

 

3. Estrutura do Kanban

  1. Agrupador (colunas)

    • Baseado em OOST.StepIdetapasEtapas dado pipeline de oportunidade.

    • Exemplo: Prospecção, Negociação, Fechamento.

  2. Cards (oportunidades)Oportunidades) exibem:

    • Título: ID da OV + Cliente.

    • Responsável: Último vendedor da etapa (LastSlp).

    • Observação: MemoÚltimo parecer da oportunidade.OV (atividade vinculada em OCLG).

    • Datas:

      • Data1 = Abertura.

      • Data2 = Previsão de fechamento.

      • Data3 = Próximo contato.

    • ValoresIndicadores:

      • Valor1 = Potencial da OV.

      • Valor2 = Potencial ×ponderado Probabilidadepela (%).probabilidade.

      • Valor3 = NãoValor utilizadode nessedocumento cenáriovinculado (padrãoex.: =pedido, 0)entrega, fatura).

    • Progresso: Probabilidade% da probabilidade de fechamento (CloPrcnt).

    • Campos extras:

      Reservados
        para
      • personalização

        CampoUsuario1 futura.= Status da OV (Aberta, Perdida, Vencida).

      • CampoUsuario2 = Nome do registro.

  3. Cores:

    • Coluna (Agrupador)Agrupador: azulCinza suave #DAE8F8#F5F5F5.

    • Card (borda/fundo)fundo/borda): tambémdefinidos #DAE8F8conforme nestestatus exemplo.da OV:

      • Aberta → Azul.

      • Perdida → Vermelho.

      • Vencida → Verde.

    • Prioridade: cores dinâmicas com base na classificação (Alto, Médio, Baixo).

      • Alto → Verde.

      • Médio → Amarelo.

      • Baixo → Vermelho.


 

4. Destaques do Caso

  • Integração com aatividades hierarquiae de vendedorespareceres:
    Apenas o verso do card mostra oportunidadessempre ligadaso aoúltimo usuárioparecer ou subordinados (RetornaVendedoresSubordinados)registrado.

  • PossibilidadeIntegração com documentos comerciais: exibe valores de cotações, pedidos, entregas ou faturas vinculados.

  • Uso de cores dinâmicas e suaves para destacar territórioprioridades (viae OTER).status.

  • Flexibilidade para usaraplicar camposfiltros no CRM One (ex.: vendedor, status, datas, tipo de usuárioatendimento, (UDFs)setor, grupo de PN).


5. Resultado Final

O resultado é um Kanban de Oportunidades, comoque U_DtProxContato.oferece:

  • Clareza visual para identificar rapidamente status e prioridades.

  • EstruturaRiqueza modular:de podeinformação ser facilmente expandida paraao incluir corespareceres, dinâmicas no card (fundoprogresso e borda)valores ouvinculados.

    regras
  • adicionais
  • de

    Controle progresso.gerencial sobre negociações em andamento.

 5. Resultado final

image.png