Ir para o conteúdo principal

4.9 Aviso via transaction para documentos e cadastros

Quer alertar o usuário sobre uma situação específica no momento de salvar um documento ou cadastro no SAP? O CRM One permite interceptar a ação e exibir uma mensagem de confirmação antes de continuar.

💡 Essa funcionalidade é ideal quando você quer que o usuário confirme conscientemente uma ação importante, como alterar um lead para cliente.

Como funciona?

Ao invés de bloquear totalmente a ação por meio da transaction do SAP, você pode incluir uma mensagem de alerta com a tag especial [AlertaCRMOne].

Essa tag faz com que o CRM One interprete a resposta como uma confirmação — exibindo dois botões para o usuário escolher: Sim ou Não.

Exemplo de alerta na tela do CRM One

  • Se o usuário clicar em Não: a ação será cancelada sem alteração.
  • Se clicar em Sim: a alteração será reprocessada automaticamente.Por trás da mágica

Quando o usuário confirma (SIM), o CRM One atualiza o campo U_DWU_IgnoraAlerta na tabela correspondente com o valor ‘S’. A sua transaction precisa validar esse campo para evitar que a mensagem reapareça no reprocessamento.

Exemplo prático – Lead para Cliente

A seguir, veja o exemplo de transaction para exibir a mensagem ao alterar um parceiro de negócio do tipo LEAD para CLIENTE:

Transaction para SQL Server

-- INÍCIO - Alerta Lead para Cliente - CRM ONE
IF @object_type in ('2') and @transaction_type in ('A')
BEGIN
  IF 
    (SELECT CardType FROM OCRD WHERE CardCode = @list_of_cols_val_tab_del) = 'C'
    AND (SELECT ISNULL(U_DWU_IgnoraAlerta,'N') FROM OCRD WHERE CardCode = @list_of_cols_val_tab_del) = 'N'
    AND (SELECT ISNULL(U_DWU_Origem,'') FROM OCRD WHERE CardCode = @list_of_cols_val_tab_del) = 'W'
  BEGIN
    Select @error = -1, @error_message = '[AlertaCRMOne] Deseja inserir o cadastro diretamente como CLIENTE?'
  END
END

-- ALTERAÇÃO DE LEAD PARA CLIENTE
IF @object_type in ('2') and @transaction_type in ('U')
BEGIN
  IF 
    (SELECT TOP 1 CardType FROM ACRD WHERE CardCode = @list_of_cols_val_tab_del ORDER BY LogInstanc DESC) = 'L' 
    AND (SELECT CardType FROM OCRD WHERE CardCode = @list_of_cols_val_tab_del) = 'C'
    AND (SELECT ISNULL(U_DWU_IgnoraAlerta,'N') FROM OCRD WHERE CardCode = @list_of_cols_val_tab_del) = 'N'
    AND (SELECT ISNULL(U_DWU_Origem,'') FROM OCRD WHERE CardCode = @list_of_cols_val_tab_del) = 'W'
  BEGIN
    Select @error = -1, @error_message = '[AlertaCRMOne] Deseja alterar o cadastro de LEAD para CLIENTE?'
  END
END

-- RESET DO CAMPO DE ALERTA
IF @object_type in ('2') and @transaction_type in ('A','U')
BEGIN
  IF (SELECT CardType FROM OCRD WHERE CardCode = @list_of_cols_val_tab_del) = 'L'
  BEGIN
    UPDATE OCRD SET U_DWU_IgnoraAlerta = 'N' WHERE CardCode = @list_of_cols_val_tab_del
  END
END
-- FIM - Alerta Lead para Cliente - CRM ONE

Transaction para HANA

-- INÍCIO - Alerta Lead para Cliente - CRM ONE
IF :object_type = ('2')
THEN
  DECLARE CardTypeLog NVARCHAR(20);
  DECLARE CardType NVARCHAR(20);
  DECLARE U_DWU_IgnoraAlerta NVARCHAR(20);
  DECLARE U_DWU_Origem NVARCHAR(20);

  -- NOVO CLIENTE
  IF :transaction_type = ('A') THEN 
    SELECT ... INTO CardType FROM DUMMY;
    -- Demais seleções omitidas aqui por brevidade
    IF :CardType = 'C' AND :U_DWU_IgnoraAlerta = 'N' AND :U_DWU_Origem = 'W' 
    THEN 
      error_message := '[AlertaCRMOne] Deseja inserir o cadastro diretamente como CLIENTE?';
      error := 1;
    END IF;
  END IF;

  -- ALTERAÇÃO DE LEAD PARA CLIENTE
  IF :transaction_type = ('U') THEN 
    SELECT ... INTO CardTypeLog FROM DUMMY;
    -- Demais seleções omitidas aqui por brevidade
    IF :CardTypeLog = 'L' AND :CardType = 'C' AND :U_DWU_IgnoraAlerta = 'N' AND :U_DWU_Origem = 'W' 
    THEN 
      error_message := '[AlertaCRMOne] Deseja alterar o cadastro de LEAD para CLIENTE?';
      error := 1;
    END IF;
  END IF;

  -- RESET DE ALERTA
  IF :transaction_type='A' OR :transaction_type='U' THEN 
    SELECT ... INTO CardType FROM DUMMY;
    IF :CardType = 'L' THEN 
      UPDATE OCRD SET "U_DWU_IgnoraAlerta" = 'N' WHERE "CardCode" = :list_of_cols_val_tab_del;
    END IF;
  END IF;

END IF;
-- FIM - Alerta Lead para Cliente - CRM ONE

Resultado Final

Com isso, ao tentar salvar um parceiro como cliente, o sistema perguntará ao usuário se ele deseja prosseguir com a alteração. Tudo de forma clara, com controle e segurança.