Gatilhos para CAMPANHA e  CAMPWF

Destina-se aos Supervisores do Sistema ISOCRM

Objetivo

Este documento tem o objetivo de detalhar como é construído os gatilhos para Campanha e Campanha com WorkFlow

Exemplos:

Os exemplos abaixo são gatilhos usados em produção por clientes, portanto já são homologados.

Exemplo 1-Envio de Email lendo resposta dos DC do Contato da campanha

(Envia email pelo Workflow de acordo com informações respondidas em dados complementares do contato da Campanha)

INSERT INTO ISOSDCON_ENTIDADE

SELECT DISTINCT A.ISOEMP_CODIGO, §ISOSDCONEXE_CODIGO§, C.ISOMKATECMPCNT_ENTCODIGO AS CODIGO,'A', CAST(CONVERT(CHAR , GETDATE(), 120) AS DATETIME), §ISOSDCONEXE_USUARIOALTERACAO§

FROM

ISOMKATECMPCNTATTVALUES A LEFT JOIN ISOMKATECMPCNTATT B

ON

A.ISOMKATECMPCNTATTID = B.ISOMKATECMPCNTATTID AND

A.ISOEMP_CODIGO = B.ISOEMP_CODIGO AND

A.ISOMKATECMPCNTFORMDEFID = B.ISOMKATECMPCNTFORMDEFID

LEFT JOIN ISOMKATECMPCONTATO C

ON

A.ISOMKATECMP_CODIGO = C.ISOMKATECMP_CODIGO AND

A.ISOEMP_CODIGO = C.ISOEMP_CODIGO AND

A.ISOMKATECMPCNT_SEQUENCIA = C.ISOMKATECMPCNT_SEQUENCIA

WHERE B.ISOMKATECMPCNTFORMDEFID = 3 AND

B.ISOMKATECMPCNTATTID = 54 AND

B.ISOMKFIN_CODIGO = 1 AND

DATEADD(DAY, 1, CAST(CONVERT(CHAR , GETDATE(), 102) AS DATETIME)) = CONVERT(DATETIME, DBO.RETORNADATA(A.ISOMKATECMPCNTATTVALUE, 2), 120)

Exemplo 2 – Inserir cliente/contato de uma Campanha em outra Campanha

(insere contato na campanha de acordo com o resultado da finalidade de uma outra campanha)

INSERT INTO ISOSDCON_CAMPANHACONTATO

SELECT DISTINCT A.ISOEMP_CODIGO, §ISOSDCONEXE_CODIGO§, B.ISOMKATECMP_CODIGO, B.ISOMKATECMPCNT_SEQUENCIA,

'A', CAST(CONVERT(CHAR , GETDATE(), 120) AS DATETIME), §ISOSDCONEXE_USUARIOALTERACAO§ FROM ISOMKATECMPCNTDETALHE A

WITH (NOLOCK) LEFT JOIN ISOMKATECMPCONTATO B

WITH (NOLOCK) ON A.ISOEMP_CODIGO = B.ISOEMP_CODIGO

AND A.ISOMKATECMP_CODIGO = B.ISOMKATECMP_CODIGO

AND A.ISOMKATECMPCNT_SEQUENCIA = B.ISOMKATECMPCNT_SEQUENCIA

WHERE A.ISOMKATECMP_CODIGO = 1 AND A.ISOMKFINRSL_CODIGO = 64 AND

UPPER(B.ISOMKATECMPCNT_SITTABULADA) <> 'PRO'

Exemplo 3-Envio de e-mail após 45 dias com base em resposta DC Contato da Campanha

APÓS 45 DIAS DO INICIO DE VIGÊNCIA (Envia email pelo Workflow de acordo com informações respondidas em

Dados Complementares do contato da Campanha)

INSERT INTO ISOSDCON_ENTIDADE

SELECT DISTINCT A.ISOEMP_CODIGO, §ISOSDCONEXE_CODIGO§, C.ISOMKATECMPCNT_ENTCODIGO AS CODIGO,'A',

CAST(CONVERT(CHAR , GETDATE(), 120) AS DATETIME), §ISOSDCONEXE_USUARIOALTERACAO§

FROM ISOMKATECMPCNTATTVALUES A

LEFT JOIN ISOMKATECMPCONTATO C

ON

A.ISOMKATECMP_CODIGO = C.ISOMKATECMP_CODIGOAND A.ISOEMP_CODIGO = C.ISOEMP_CODIGO

AND A.ISOMKATECMPCNT_SEQUENCIA = C.ISOMKATECMPCNT_SEQUENCIA

WHERE A.ISOMKATECMPCNTFORMDEFID = 1 AND A.ISOMKATECMPCNTATTID = 22 AND

DBO.RETORNADIFERENCA(A.ISOMKATECMPCNTATTVALUE) = 45 AND A.ISOMKATECMP_CODIGO = 4 AND

A.ISOEMP_CODIGO = 1

Exemplo 4- Inserir um contato na campanha de acordo com a Região do Cliente

REGIAO 1 (Insere um contato na campanha de acordo com a Região do Cliente e classificação do cliente/contato)

INSERT INTO ISOSDCON_ENTIDADE

SELECT DISTINCT A.ISOEMP_CODIGO, §ISOSDCONEXE_CODIGO§, B.ISOMKATECMPCNT_ENTCODIGO

AS CODIGO,'A', CAST(CONVERT(CHAR , GETDATE(), 120) AS DATETIME), §ISOSDCONEXE_USUARIOALTERACAO§

FROM ISOMKATECMPCONTATO B WITH (NOLOCK)

INNER JOIN ISOENTORGANIZACAO C WITH (NOLOCK)

ON B.ISOMKATECMPCNT_ENTCODIGO = C.ISOENTORG_CODIGO

INNER JOIN ISOENTCLIENTE A WITH (NOLOCK)

ON A.ISOEMP_CODIGO = B.ISOEMP_CODIGO

AND A.ISOENTCLI_CODIGO = C.ISOENTORG_CODIGO

WHERE B.ISOMKATECMP_CODIGO NOT IN (8, 28, 30)

AND A.ISOENTCLA_CODIGO IN (1,8,9,10)

AND A.ISOREG_CODIGO = 1

Exemplo 5:Inserir contato lendo ramo de atividade e que não tenha NF emitidas a mais de 180 dias.

REVENDAS INATIVAS (Insere contato na campanha de acordo com Ramo de Atividade e que não tenham Nota fiscal emitidas a mais de 180 dias)

INSERT INTO ISOSDCON_ENTIDADE

SELECT 1, §ISOSDCONEXE_CODIGO§, ISOENTORG_CODIGO, 'A', CAST(CONVERT(CHAR , GETDATE(), 120) AS DATETIME), §ISOSDCONEXE_USUARIOALTERACAO§

FROM ISOENTORGANIZACAO

WHERE ISOENTRAMATV_CODIGO = 3

AND ISOENTORG_CODIGO NOT IN ( SELECT ISOENTCLI_CODIGO FROM ISOENTCLINOTAFISCAL

WHERE ISOENTCLINF_DATA > GETDATE() - 180 ) AND ISOENTORG_FLAG = 'A' AND

ISOENTORG_DATACADASTRO < GETDATE() - 180

Exemplo 6- Inserir contato na campanha com Nota fiscal de determinado produto a 90 dias

Produto X (insere contato na campanha com Nota fiscal de determinado produto a 90 dias)

INSERT INTO ISOSDCON_ENTIDADE

SELECT DISTINCT 1, §ISOSDCONEXE_CODIGO§, ISOENTCLIENTE.ISOENTCLI_CODIGO, 'A', CAST(CONVERT(CHAR , GETDATE(), 120) AS DATETIME), §ISOSDCONEXE_USUARIOALTERACAO§

FROM ISOENTCLIENTE

INNER JOIN ISOENTCLINOTAFISCAL

ON ISOENTCLINOTAFISCAL.ISOENTCLI_CODIGO = ISOENTCLIENTE.ISOENTCLI_CODIGO

LEFT JOIN ISOENTCLINFITEM

ON ISOENTCLINOTAFISCAL.ISOENTCLINF_NUMERO = ISOENTCLINFITEM.ISOENTCLINF_NUMERO

AND ISOENTCLINOTAFISCAL.ISOENTCLINF_REFFISCAL = ISOENTCLINFITEM.ISOENTCLINF_REFFISCAL

AND ISOENTCLINOTAFISCAL.ISOENTCLINF_SERIE = ISOENTCLINFITEM.ISOENTCLINF_SERIE

WHERE

ISOPRD_CODIGO IN (40860179) AND DATEDIFF(DAY, ISOENTCLINF_DATA, GETDATE()) = 90

Exemplo7- Inserir contatos na campanha lendo data de aniversário e segmento da Entidade

ANIVERSARIANTES DO DIA(REPRESENTANTES) (insere contatos na campanha de acordo com data de aniversário e segmento da Entidade)

INSERT INTO ISOSDCON_ENTIDADE

SELECT 1, §ISOSDCONEXE_CODIGO§, ISOENTPES_CODIGO, 'A', CAST(CONVERT(CHAR , GETDATE(), 120) AS DATETIME), §ISOSDCONEXE_USUARIOALTERACAO§

FROM ISOENTPESSOA

WHERE DAY(ISOENTPES_DATANASCIMENTO) = DAY(GETDATE())

AND MONTH(ISOENTPES_DATANASCIMENTO) = MONTH(GETDATE())

AND ISOENTPES_DATANASCIMENTO <> '1753-01-01'

AND ISOENTPES_DATANASCIMENTO IS NOT NULL

AND ISOENTSEG_CODIGO = 11

Exemplo 8- Inserir contato na campanha de acordo com a Classificação do papel

Campanha X (insere contato na campanha de acordo com a Classificação do papel)

INSERT INTO ISOSDCON_ENTIDADE

SELECT 1, §ISOSDCONEXE_CODIGO§, ISOENTCLI_CODIGO, 'A', CAST(CONVERT(CHAR , GETDATE(), 120) AS DATETIME), §ISOSDCONEXE_USUARIOALTERACAO§

FROM ISOENTECLIENTE WHERE ISOENTCLAP_CODIGO=1

Exemplo9-Alterar situação do contato da Campanha atraves do resultado informado.

11-CONTATO CAMPANHA-SIT 5-PROSPECÇÃO/SUSPECTS (Altera através de workflow a situação do contato da Campanha de acordo com o Resultado da Finalidade)

INSERT INTO ISOSDCON_ENTIDADE

SELECT DISTINCT A.ISOEMP_CODIGO, §ISOSDCONEXE_CODIGO§, B.ISOMKATECMPCNT_ENTCODIGO

AS CODIGO,'A', CAST(CONVERT(CHAR , GETDATE(), 120) AS DATETIME), §ISOSDCONEXE_USUARIOALTERACAO§

FROM ISOMKATECMPCNTDETALHE A

WITH (NOLOCK) LEFT JOIN ISOMKATECMPCONTATO B

WITH (NOLOCK) ON A.ISOEMP_CODIGO = B.ISOEMP_CODIGO

AND A.ISOMKATECMP_CODIGO = B.ISOMKATECMP_CODIGO

AND A.ISOMKATECMPCNT_SEQUENCIA = B.ISOMKATECMPCNT_SEQUENCIA

LEFT JOIN ISOMKATECAMPANHA C ON C.ISOEMP_CODIGO = A.ISOEMP_CODIGO AND

C.ISOMKATECMP_CODIGO = A.ISOMKATECMP_CODIGO

WHERE C.ISOMKFIN_CODIGO = 10 AND A.ISOMKFINRSL_CODIGO IN (21,22) AND ISOMKATECMPCNTDET_FINALCONTATO >= §ISOWFPRCPAD_MK_DATAMOTOR§

Exemplo10-Inserir clientes de um determinado responsável em sua própria campanha.

Campanha - Inserir clientes de um determinado responsável em sua própria campanha.

INSERT INTO ISOSDCON_ENTIDADE

SELECT 1, §ISOSDCONEXE_CODIGO§, ISOENT_CODIGO

AS CODIGO ,'A', CAST(CONVERT(CHAR , GETDATE(), 120)

AS DATETIME), §ISOSDCONEXE_USUARIOALTERACAO§

FROM ISOENTIDADE

WHERE ISOENT_FLAG = 'A' AND ISOENT_CODIGO IN(SELECT ISOENTCLI_CODIGO FROM

ISOENTRSP_CLIENTES

WHERE ISOENTRSP_CODIGO IN (5922,2400,154,148,1581,1623,2408) AND ISOENTRSP_CLI_FLAG = 'A')