Como podemos ajudar?

Bem vindo a nossa página de manuais. Utilize a caixa de pesquisa abaixo para procurar o conteúdo desejado.

Últimos artigos

Aviso via transaction para documentos e cadastros

  • CRM One
  • Web
  • Aviso via transaction para documentos e cadastros

Se você precisa alertar o usuário sobre determinada situação e pedir a ciência/concordância dele, essa é a funcionalidade certa.

O CRM One possui uma tratativa para transactions padrões do SAP Business One, onde ela pode ao invés de simplesmente bloquear a ação, apresentar uma mensagem e questionar o usuário se quer seguir ou não.

Exemplo de uso:

A empresa necessita que seja enviada uma mensagem de confirmação sempre que o usuário transformar um LEAD em um CLIENTE.

Então, criaremos uma transaction padrão no B1, considerando:

1- Verificar o tipo do PN no log das tabelas do B1, para identificar o tipo do PN antes da alteração.
2- Verificar o tipo do PN que está sendo salvo.

Ao validar, iremos retornar a mensagem de “erro” da transaction no seguinte formato:

[AlertaCRMOne] Deseja alterar o cadastro de LEAD para CLIENTE?

Ao receber a mensagem da transaction, o CRM One irá interpretar a string [AlertaCRMOne] e transformará o bloqueio em uma “mensagem de confirmação”.

Veja como o retorno da transaction aparecerá:

Se o usuário clicar no botão NÃO, a mensagem será fechada e nada será feito, inclusive a atualização do cadastro.

Se o usuário clicar no botão SIM, o CRM One irá reprocessar a atualização e seguir adiante.

É importante entender que quando o usuário clicar no botão SIM, o CRM One atualiza um campo de usuário de controle chamado U_DWU_IgnoraAlerta na tabela correspondente da validação com o valor ‘S‘ de SIM. Por isso, sua transaction deve validar esse campo também para permitir que a atualização ocorra com sucesso quando o usuário clicar no botão SIM, ou seja, quando o CRM One reprocessar a atualização, a transaction não vai exibir a mensagem de novo.

Agora, veja a transaction SQL para a tratativa:

-- ################################################
-- INÍCIO - Alerta Lead para Cliente - CRM ONE
-- ################################################

-- VALIDA NOVO CADASTRO DO TIPO CLIENTE
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?'
		select @error, @error_message
	END
END

-- VALIDA SE O CADASTRO ESTÁ SENDO ALTERADO 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?'
		select @error, @error_message
	END
END

-- REDEFINE O CAMPO U_DWU_IgnoraAlerta PARA 'N' PARA CAIR NOVAMENTE NA VALIDAÇÃO DE ATUALIZAÇÃO
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
-- ################################################

Agora, veja a transaction HANA para a tratativa:

-- ################################################
-- 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);
	
	----------------------------------------------------------------------------------
	-- VALIDA NOVO CADASTRO DO TIPO CLIENTE
	----------------------------------------------------------------------------------
	IF :transaction_type = ('A') 
		THEN 
			SELECT (SELECT "CardType" FROM OCRD WHERE "CardCode" = :list_of_cols_val_tab_del) INTO CardType FROM DUMMY;
			SELECT (SELECT IFNULL("U_DWU_IgnoraAlerta", 'N') FROM OCRD WHERE "CardCode" = :list_of_cols_val_tab_del) INTO U_DWU_IgnoraAlerta FROM DUMMY;
			SELECT (SELECT IFNULL("U_DWU_Origem", '') FROM OCRD WHERE "CardCode" = :list_of_cols_val_tab_del) INTO U_DWU_Origem FROM DUMMY;
			
			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;
	
	----------------------------------------------------------------------------------
	-- VALIDA SE O CADASTRO ESTÁ SENDO ALTERADO DE LEAD PARA CLIENTE
	----------------------------------------------------------------------------------
	IF :transaction_type = ('U') 
		THEN 
			SELECT (SELECT TOP 1 "CardType" FROM ACRD WHERE "CardCode" = :list_of_cols_val_tab_del ORDER BY "LogInstanc" DESC) INTO CardTypeLog FROM DUMMY;
			SELECT (SELECT "CardType" FROM OCRD WHERE "CardCode" = :list_of_cols_val_tab_del) INTO CardType FROM DUMMY;
			SELECT (SELECT IFNULL("U_DWU_IgnoraAlerta", 'N') FROM OCRD WHERE "CardCode" = :list_of_cols_val_tab_del) INTO U_DWU_IgnoraAlerta FROM DUMMY;
			SELECT (SELECT IFNULL("U_DWU_Origem", '') FROM OCRD WHERE "CardCode" = :list_of_cols_val_tab_del) INTO U_DWU_Origem FROM DUMMY;
			
			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;
	
	
	----------------------------------------------------------------------------------
	-- REDEFINE O CAMPO U_DWU_IgnoraAlerta PARA 'N' PARA CAIR NOVAMENTE NA VALIDAÇÃO DE ATUALIZAÇÃO
	----------------------------------------------------------------------------------
	IF :transaction_type='A' OR :transaction_type='U'
		THEN 
			SELECT (SELECT "CardType" FROM OCRD WHERE "CardCode" = :list_of_cols_val_tab_del) 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
-- ################################################

Pronto!

Agora você pode criar estes alertas nas telas existentes do CRM One WEB e personalizar ainda mais o ambiente do CRM One.

Esse artigo foi útil?
4 out Of 5 Stars
5 Stars 33%
4 Stars 33%
3 Stars 0%
2 Stars 33%
1 Stars 0%
Como podemos melhorar este artigo?
Precisa de ajuda?
Índice