4.4 function CRMONE_BP_MESSAGE: Mensagem do Parceiro de Negócio
Mensagem do Parceiro de Negócio
Recurso que exibe um mensagem informativa no topo dos documentos do CRM One (Atendimento, Cotação, Pedido e Oportunidade) assim que o PN é selecionado. A origem do texto e da cor é uma function HANA, totalmente personalizável.
Quando usar
- Alertar o usuário sobre limite de crédito, títulos em atraso, bloqueios ou políticas específicas do cliente.
- Exibir instruções operacionais no momento da venda (ex.: “exigir pedido de compra”, “usar tabela X”).
- Centralizar a lógica do aviso no banco (HANA), facilitando manutenção e auditoria.
Como funciona
- No momento em que o usuário define o Parceiro de Negócio no documento, o CRM One chama a function
CRMOne_BP_Message
no HANA. - A function retorna duas colunas:
Value
→ texto que será exibido na mensagem.Color
→ cor do texto (hex ou nome CSS).
- A mensagem aparece automaticamente no topo da tela do documento.
O time pode alterar livremente a lógica interna da function para atender cada necessidade.
Function padrão (exemplo: Limite de crédito disponível)
Crie a function abaixo no HANA (schema do ambiente). Ela calcula: Limite − Saldo − Pedidos em aberto.
CREATE FUNCTION CRMOne_BP_Message(
CardCode VARCHAR(254),
UserCode VARCHAR(254),
SlpCode VARCHAR(254),
ObjectId VARCHAR(254)
)
RETURNS TABLE ("Value" VARCHAR(254), "Color" VARCHAR(254))
LANGUAGE SQLSCRIPT
AS
BEGIN
RETURN
(
SELECT
(
(SELECT IFNULL(C."CardName",'') FROM OCRD C WHERE C."CardCode" = :CardCode)
|| ' Limite de crédito disponível: R$ '
|| TO_DECIMAL(
IFNULL(
(SELECT IFNULL(C."CreditLine",0)
- IFNULL(C."Balance",0)
- IFNULL((SELECT SUM(O."DocTotal")
FROM ORDR O
WHERE O."DocStatus"='O' AND O."CardCode"=:CardCode),0)
FROM OCRD C
WHERE C."CardCode"=:CardCode),
0),
30,2)
) AS "Value",
'#000' AS "Color"
FROM DUMMY
);
END;
O retorno da coluna Color
pode ser ajustado dinamicamente (ex.: vermelho quando o disponível < 0). Veja a seção “Customizações”.
Onde aparece
- Atendimento
- Cotação de venda
- Pedido de venda
- Oportunidade de venda
Assim que o PN é escolhido, a mensagem é carregada automaticamente.
Exemplo visual Atendimento(mensagem com limite de crédito):
Customizações úteis (modelos prontos)
1) Cor dinâmica por situação do crédito
/* Dica: ajuste a cor conforme o disponível */
SELECT
case when :disp < 0 then '#DC2626' -- vermelho
when :disp = 0 then '#F59E0B' -- amarelo
else '#16A34A' -- verde
end as "Color";
2) Mensagens por observação do cliente
No exemplo abaixo, adaptamos a function para que a mensagem mostre as observações cadastradas no PN (campo Free_Text
do OCRD
):
CREATE FUNCTION CRMOne_BP_Message(
CardCode VARCHAR(254),
UserCode VARCHAR(254),
SlpCode VARCHAR(254),
ObjectId VARCHAR(254)
)
RETURNS TABLE (
"Value" NVARCHAR(2000),
"Color" NVARCHAR(254)
)
LANGUAGE SQLSCRIPT
AS
BEGIN
RETURN
(
SELECT
CASE
WHEN LENGTH(IFNULL(TO_NVARCHAR(T0."Free_Text"), '')) = 0
THEN T0."CardName" || ' – sem observações cadastradas.'
ELSE
T0."CardName" || ' – Observações:' || CHAR(10) || CHAR(10) ||
SUBSTRING(TO_NVARCHAR(T0."Free_Text"), 1, 1800) -- evita extrapolar 2000
END AS "Value",
'#1E3A8A' AS "Color"
FROM OCRD T0
WHERE T0."CardCode" = :CardCode
);
END;
Resultado esperado no CRM One:
-
Ao selecionar o cliente em Atendimento, Cotação, Pedido ou Oportunidade, aparecerá um pop-up com as observações cadastradas no PN.
-
Se não houver observações, o sistema mostra a mensagem:
Cliente X – sem observações cadastradas.
📌 Esse exemplo mostra que o recurso é personalizável:
Você pode trocar a lógica e exibir qualquer informação do cadastro do cliente, como limite de crédito, notas em atraso ou observações internas.
Parâmetros recebidos
Parâmetro | Descrição |
---|---|
CardCode |
PN selecionado no documento (obrigatório). |
UserCode |
Usuário logado (permite mensagens por perfil). |
SlpCode |
Vendedor (permite regras por equipe). |
ObjectId |
Tipo do documento que chamou (ex.: 97 = OV, 17 = Pedido, 23 = Cotação, etc.). |
Boas práticas
- Mantenha a function rápida: use índices e evite sub-queries pesadas.
- Prefira IFNULL para evitar valores nulos no texto.
- Retorne mensagens curtas e diretas; se precisar de detalhes, inclua um resumo + instrução para abrir outra tela/relatório.
Nenhum comentário para exibir
Nenhum comentário para exibir