Sie sind auf Seite 1von 40

Assunto: Repositrio de Frmulas Visuais

Projeto: TOTVS Framework


Verso do Documento: 1.16
Data: 25/07/2011
Atualizao: 22/05/2015

Contedo
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.

VALIDA DATA DE ENTREGA DE IMVEL......................................................................................3


VALIDAO DE INCLUSO DE PROSPECT/SUSPECT....................................................................3
VALIDAO DE DUPLICIDADE DE ATENDIMENTOS......................................................................4
ATENDIMENTO DUPLICADO - ENVIO DE EMAIL PARA SUPERINTENDENTE.....................................5
VALIDAO DO CAMPO EMAIL - CADASTRO DE PESSOAS...........................................................6
VALIDAO DO CAMPO TELEFONE ADICIONAL - PROSPECT........................................................6
VALIDAO DE DATA DA VISITA AO IMOVEL..............................................................................7
VALIDAO DO CAMPO EMAIL - CADASTRO DE USURIOS.........................................................7
VALIDAO DOS CAMPOS COMPLEMENTARES - FATURAMENTO DE MOVIMENTO.........................8
VALIDAO DO NUMERO DO CONTRATO RM SOLUM - FATURAMENTO DE MOV............................9
VALIDAO DE INCLUSO DE NOVOS PRODUTOS....................................................................10
ENVIO DE EMAIL NOVO USURIO............................................................................................10
ENVIO DE E-MAIL - ERRO NA ROTINA DE ENVIO DE E-MAILS AGENDADOS................................11
ALTERA CAMPO DO CADASTRO DE EVENTO DO LABORE...........................................................11
TORNAR ATENDENTE INATIVO QUANDO FUNCIONRIO FOR DEMITIDO......................................12
VALIDAO DO CAMPO CPF - CADASTRO DE FUNCIONRIOS....................................................13
VALIDAO DO CAMPO PIS - CADASTRO DE FUNCIONRIOS....................................................13
VALIDA PERFIL DE USURIO LOGADO......................................................................................14
VALIDA APROPRIAO DE ATENDIMENTO................................................................................14
VALIDA INCLUSO DE REQUISIES DO VITAE FORA DO PRAZO...............................................15
VALIDAR SE O CANDIDATO EST SENDO INSCRITO EM UM CURSO MAIS DE 2 VEZES..................16
TRATAR EXCEO ENVIANDO EMAIL.......................................................................................17
VALIDAR SE O CANDIDATO EST SENDO INSCRITO EM UM CURSO MAIS DE 2 VEZES..................18
VALIDAR INCLUSO E EXCLUSO DE RESPONSVEL FINANCEIRO NO EDUCACIONAL..................19
PREENCHIMENTO DE CAMPO COMPLEMENTAR AUTOMATICAMENTE..........................................20
VALIDAR DUPLICIDADE EM INCLUSO DE OCORRNCIAS PARA ALUNO......................................21
MOSTRAR CAMPO COMPLEMENTAR NA VISO DE ALUNOS.......................................................21
ENVIAR EMAIL PARA ALUNO COM 3 OCORRNCIAS..................................................................22
GRAVAR INFORMAO DO PRODUTO NO HISTRICO DO ITEM DE MOVIMENTO..........................23
VALIDAR PREENCHIMENTO DE NOME DE FUNCIONRIO COM ACENTO.......................................24
VALIDAR INFORMAO ORIGINAL DO CAMPO DESCRIO DA SEO........................................24
VALIDAR INFORMAO DO CAMPO DESCRIO DA SEO.......................................................24
ENVIAR EMAIL PELO VIA PROCESSO DO CADASTRO DE FUNCIONRIO......................................25
VALIDAR PREENCHIMENTO DE CENTRO DE CUSTO (CAMPO COMPLEMENTAR) POR INSUMO.......26
VALIDAR TAMANHO DO CAMPO CODIGO DE PROJETO...............................................................27
CANCELAR ATENDIMENTO RELACIONADO................................................................................28
HABILITAR CAMPO IMPRODUTIVO PARA RECURSOS DA COMPOSIO.......................................29
ALTERAR STATUS DO LANAMENTO PARA CANCELAMENTO DE LANAMENTO NO SGI................30
SALTAR ATENDENTE QUE J APROVOU ATENDIMENTO..............................................................31
CONFIGURAO PARA A FRMULA VISUAL FUNCIONAR...........................................................32

Analista: Felipe David Evangelista


Pgina 1 de 40

FRMU
LA
VISUAL

1. VALIDA DATA DE ENTREGA DE IMVEL

DESCRI
O

Esta Frmula Visual (Workflow) tem como objetivo validar o preenchimento da


Data de Entrega de um imvel no Sistema SGI, e o campo parmetro do
atendimento "INCLUIRSEMDATAENTREGA".

GATILHO

Cadastro >> Antes de Salvar o Registro >> CRM >> Atendimentos


SELECT
CASE

WHEN (
SELECT
XVENDA.DATAENTREGACHAVE

FROM

XVENDA (NOLOCK),

Activity=RMSWorkflow,
Path=Fields["CODCFO"].AsString

XEMPREENDIMENTO (NOLOCK),

XITEMVENDA (NOLOCK)

Activity=RMSWorkflow,
Path=Fields["CODCODCOLIGADA"].AsShort

WHERE

XEMPREENDIMENTO.COD_PESS_EMPR =
XVENDA.COD_PESS_EMPR AND XEMPREENDIMENTO.CODCOLIGADA =
XVENDA.CODCOLIGADA

CONSULTA
SQL

AND XITEMVENDA.NUM_VENDA =
XVENDA.NUM_VENDA AND XITEMVENDA.COD_PESS_EMPR =
XVENDA.COD_PESS_EMPR

=:CODCOLIGADA

Activity=RMSWorkflow,
Path=Tables["HPARAMATENDIMENTO"].Item["PARAMETR
O_10"].AsString

AND XVENDA.CODCOLIGADA

AND XVENDA.CODCFO =:CODCFO

ATIVIDAD
ES

AND
XEMPREENDIMENTO.CODEMPREENDIMENTO =:PARAMETRO_10

Activity=RMSWorkflow,
Path=Tables["HPARAMATENDIMENTO"].Item["PARAMETR
O_8"].AsString

AND XITEMVENDA.NUM_SUB_UNID
=:PARAMETRO_8 ) < GETDATE() THEN 0
ELSE 1
END AS RETORNO
FROM GCOLIGADA (NOLOCK)
WHERE CODCOLIGADA = 1

SE/SENAO

GERAR
EXCEO
OBSERVA
O

FRMU
LA
VISUAL
DESCRI
O

CONDIO DECLARATIVA

this.Tables["HATENDIMENTOBASE"]
["CODGRUPOATENDIMENTO"].AsString == "5" &&
this.Tables["HATENDIMENTOBASE"]
["CODTIPOATENDIMENTO"].AsString == "8" &&
this.Tables[0].Rows[0].RowState ==
System.Data.DataRowState.Added &&
this.rmsConsSQLActivity1.Fields["RETORNO"].AsInteger
== 1 && (this.Tables["HPARAMATENDIMENTO"]
["PARAMETRO_3"].AsString == "0" ||
this.Tables["HPARAMATENDIMENTO"]
["PARAMETRO_3"].IsNull)

MENSAGEM DE ERRO

Campo "Data de Entrega das Chaves" no Sistema


SGI maior que a Data Atual. Verifique o
preenchimento do campo, ou verifique se o
campo "Salvar atendimento para Imvel no
Entregue" (Pasta Parmetros) deve ser marcado.

necessria a criao de Campos Parmetros no TOTVS Gesto do


Relacionamento com o Cliente.

2. VALIDAO DE INCLUSO DE PROSPECT/SUSPECT


Esta Frmula Visual tem como objetivo validar se o CPF/CNPJ do Prospect-Suspect
j existe na Base de Dados de Clientes.

Analista: Felipe David Evangelista


Pgina 2 de 40

GATILHO

ATIVIDAD
ES

Cadastros >> Antes de Salvar o Registro >> CRM >> Prospect/Suspect


CONSULTA
SQL

SELECT COUNT (CGCCFO) AS QTD


FROM FCFO (NOLOCK)
WHERE CGCCFO = :CGCCFO

Activity=RMSWorkflow, Path=Fields.Item["CGCCFO"].AsString

SE/SENAO

CONDIO
DECLARATIVA

this.Tables[0].Rows[0].RowState ==
System.Data.DataRowState.Added &&
this.retornaCNPJ.Fields["QTD"].AsInteger > 0

GERAR
EXCEO

MENSAGEM DE ERRO

# Este CPF j existe no Cadastro de Clientes. Favor


verificar se este registro pode ser includo. #

OBSERVA
O

FRMU
LA
VISUAL

3. VALIDAO DE DUPLICIDADE DE ATENDIMENTOS

DESCRI
O

Esta Frmula Visual (Workflow) tem como objetivo validar duplicidade de


atendimentos do Tipo 9 e 10.

GATILHO

Cadastro >> Antes de Salvar o Registro >> CRM >> Atendimentos


/* CONSULTA SQL QUE RETORNA ATENDIMENTOS DUPLICADOS - VALIDACAO VIA
FORMULA VISUAL*/

CONSULTA
SQL

ATIVIDAD
ES

Activity=RMSWorkflow, Path=Fields["CODATENDIMENTO"].AsInteger

Activity=RMSWorkflow, Path=Fields["CODCFO"].AsString

Activity=RMSWorkflow,
Path=Tables["HPARAMATENDIMENTO"].Item["PARAMETRO_50"].AsString

SE/SENAO

CONDIO
DECLARATIVA

(this.Tables["HATENDIMENTOBASE"]["CODGRUPOATENDIMENTO"].AsString
== "6" && this.Tables["HATENDIMENTOBASE"]
["CODTIPOATENDIMENTO"].AsString == "9" ||
this.Tables["HATENDIMENTOBASE"]["CODGRUPOATENDIMENTO"].AsString
== "6" && this.Tables["HATENDIMENTOBASE"]
["CODTIPOATENDIMENTO"].AsString == "10") &&
this.rmsConsSQLActivity1.Fields["RETORNO"].AsInteger == 1 &&
(this.Tables[0].Rows[0].RowState == System.Data.DataRowState.Added ||
this.Tables[0].Rows[0].RowState == System.Data.DataRowState.Modified
|| this.Tables["HPARAMATENDIMENTO"]["PARAMETRO_50"].IsModified) &&
(this.Tables["HPARAMATENDIMENTO"]["PARAMETRO_55"].AsString == "0"
|| this.Tables["HPARAMATENDIMENTO"]["PARAMETRO_55"].IsNull)

GERAR
EXCEO

MENSAGEM DE ERRO

Texto da Atividade Expresso

EXPRESSES

NewLine + 'J existe um atendimento para este CLIENTE e


EMPREENDIMENTO. Verifique o preenchimento do atendimento, ou
verifique se o campo "Salvar Atendimento Duplicado" (Pasta
Parmetros) deve ser marcado.' + NewLine + NewLine

EXPRESSO
OBSERVA
O

IF (
SELECT COUNT(VALOR) AS OCORRENCIAS
FROM HPARAMATENDIMENTO (NOLOCK), HATENDIMENTOEXT (NOLOCK)
WHERE HPARAMATENDIMENTO.CODCOLIGADA = HATENDIMENTOEXT.CODCOLIGADA
AND HPARAMATENDIMENTO.CODATENDIMENTO =
HATENDIMENTOEXT.CODATENDIMENTO AND HPARAMATENDIMENTO.CODLOCAL =
HATENDIMENTOEXT.CODLOCAL
AND HPARAMATENDIMENTO.CODPARAMETRO = '50'
AND HPARAMATENDIMENTO.VALOR =:PARAMETRO_50
AND HATENDIMENTOEXT.CODCFO =:CODCFO
AND HATENDIMENTOEXT.CODATENDIMENTO <>:CODATENDIMENTO
AND CONVERT(VARCHAR(10),ABERTURA,102) >=
CONVERT(VARCHAR(10),DATEADD(MONTH,-3,
CONVERT(VARCHAR(10),GETDATE(),102)),102)
AND HATENDIMENTOEXT.CODSTATUS <> 'C'
AND HATENDIMENTOEXT.CODSTATUS <> 'R'
AND HATENDIMENTOEXT.CODSTATUS <> 'O'
AND HATENDIMENTOEXT.CODSTATUS <> 'F'
AND HATENDIMENTOEXT.CODSTATUS <> 'U' ) > 0
BEGIN
SELECT 1 AS RETORNO END
ELSE
BEGIN SELECT 0 AS RETORNO END

Activity=rmsThrowActivity1, Path=Message
VALOR CALCULADO
necessria a criao de Campos Parmetros no TOTVS Gesto do
Relacionamento com o Cliente.

Analista: Felipe David Evangelista


Pgina 3 de 40

FRMU
LA
VISUAL
DESCRI
O
GATILHO

4. ATENDIMENTO DUPLICADO - ENVIO DE EMAIL PARA


SUPERINTENDENTE
Esta Frmula Visual (Workflow) tem como objetivo enviar um e-mail alertando o
Superintendente de Vendas quanto incluso de atendimentos duplicados do Tipo 9 e 10.
Campo a ser testado: PARAMETRO_55
Tabela: HPARAMATENDIMENTO

Cadastro >> Antes de Salvar o Registro >> CRM >> Atendimentos


SE/SENAO

CONDIO
DECLARATIVA

this.Tables["HPARAMATENDIMENTO"]["PARAMETRO_55"].AsString == "1"

PARA CADA
ITERAO

LISTA DE ITENS

Activity=RMSWorkflow, Path=Tables[0].Rows

DECLARE @GRUPO INT


SET @GRUPO = '19'
SELECT
PPESSOA.EMAIL,
PPESSOA.NOME,
@GRUPO AS GRUPO

CONSULTA
SQL

FROM

ENVIO DE
EMAIL

ASSUNTO
DESTINATRIO
REMETENTE
TEXTO DO EMAIL

ATIVIDAD
ES

EXPRESSO
IMAGEM

Analista: Felipe David Evangelista


Pgina 4 de 40

HATENDENTE (NOLOCK)
INNER JOIN PPESSOA (NOLOCK)ON
HATENDENTE.CODPESSOA = PPESSOA.CODIGO
INNER JOIN HATENDENTEGRUPO (NOLOCK) ON
HATENDENTE.CODCOLIGADA = HATENDENTEGRUPO.CODCOLIGADA
AND HATENDENTE.CODATENDENTE = HATENDENTEGRUPO.CODATENDENTE
AND HATENDENTEGRUPO.CODGRUPO = @GRUPO

[TOTVS CRM Informa] Incluso de Atendimento Duplicado no Setor de


Vendas
Activity=rmsConsSQLActivity1, Path=Fields["EMAIL"].AsStringArray
Company
Texto da Atividade Expresso

EXPRESSES

'----------------------------------------------------------------------------' +
NewLine + NewLine +
'Prezado(a) Superintendente de Vendas, ' + NewLine + NewLine +
'O sistema [TOTVS Gesto do Relacionamento com o Cliente] constatou que um
atendimento do Tipo [Ficha de Atendimento] foi includo em duplicidade para o
cliente: ' + RMSWorkflow.CODCFO + '.' + NewLine + NewLine + 'Nmero do Atendimento
Duplicado: ' + RMSWorkflow.CODATENDIMENTO + NewLine + NewLine +
'----------------------------------------------------------------------------'

VALOR CALCULADO

Activity=rmsSendEmailActivity1, Path=Body

FRMU
LA
VISUAL
DESCRI
O

GATILHO

ATIVIDAD
ES

5. VALIDAO DO CAMPO EMAIL - CADASTRO DE PESSOAS


Frmula Visual que verifica se o campo EMAIL do Cadastro de Pessoas foi
preenchido corretamente.
Tabela: PPESSOA
Campo Validado: EMAIL
Valor: e-mail vlido
Cadastros >> Antes da Atualizao do Registro (Fim) >> Folha de Pagamento >>
Pessoas
SE/SENAO

CONDIO
DECLARATIVA

!new System.Text.RegularExpressions.Regex("^([0-9azA-Z]+([_.-]?[0-9a-zA-Z]+)*@[0-9a-zA-Z]+[0-9,a-z,AZ,.,-]*(.){1}[a-zA-Z]{2,4})+
$").IsMatch(this.Tables["PPESSOA"]["EMAIL"].AsString)

GERAR
EXCEO

MENSAGEM DE ERRO

Texto da Atividade Expresso

EXPRESSES

'----------------------------------------------------------------------------' +
NewLine + NewLine +
'Favor preencher o campo EMAIL com um valor vlido.'
+
NewLine + '( Exemplo: usuario@totvs.com.br )' + NewLine + NewLine +
NewLine + NewLine +
'----------------------------------------------------------------------------'

VALOR CALCULADO

Activity=rmsThrowActivity1, Path=Message

EXPRESSO

OBSERVA
O

FRMU
LA
VISUAL

6. VALIDAO DO CAMPO TELEFONE ADICIONAL - PROSPECT

Analista: Felipe David Evangelista


Pgina 5 de 40

DESCRI
O
GATILHO

ATIVIDAD
ES

Frmula Visual que verifica se o campo TELEFONE ADICIONAL do Cadastro de


Prospect foi preenchido corretamente.
Tabela: HPROSPECTCOMPL
Campo Validado: TELEFONEPROSPECT
Cadastros >> Antes de Salvar o Registro >> CRM >> Prospect/Suspect
SE/SENAO

CONDIO
DECLARATIVA

!this.Tables["HPROSPECTCOMPL"]
["TELEFONEPROSPECT"].IsNull && !new
System.Text.RegularExpressions.Regex("^\\d{2}
[\\s-]\\d{4}-\\d{4}$").IsMatch(this.Tables["HPROSPECTCOMPL"]
["TELEFONEPROSPECT"].AsString)

GERAR
EXCEO

MENSAGEM DE ERRO

Texto da Atividade Expresso

EXPRESSES

'----------------------------------------------------------------------------' +
NewLine + NewLine +
'Favor preencher o campo TELEFONE ADICIONAL (Pasta Campos Complementares) com um
valor vlido.'
+ NewLine + '( Padro: 31 0000-0000 )' +
NewLine + NewLine +
NewLine + NewLine +
'----------------------------------------------------------------------------'

VALOR CALCULADO

Activity=rmsThrowActivity1, Path=Message

EXPRESSO

OBSERVA
O

Analista: Felipe David Evangelista


Pgina 6 de 40

FRMU
LA
VISUAL

7. VALIDAO DE DATA DA VISITA AO IMOVEL


Esta Frmula Visual (Workflow) tem como objetivo validar o preenchimento da
Data da Visita ao Imvel.

DESCRI
O

GATILHO

ATIVIDAD
ES

Campo a ser testado: HPARAMATENDIMENTO.PARAMETRO_23


Tabela: HPARAMATENDIMENTO
Valor: Menor que HATENDIMENTOBASE.ABERTURA
Cadastro >> Antes de Salvar o Registro >> CRM >> Atendimentos

SE/SENAO

CONDIO
DECLARATIVA

this.Tables["HATENDIMENTOBASE"]
["CODGRUPOATENDIMENTO"].AsString == "6" &&
this.Tables["HATENDIMENTOBASE"]
["CODTIPOATENDIMENTO"].AsString == "9" &&
this.Tables["HPARAMATENDIMENTO"]
["PARAMETRO_23"].AsDateTime >
this.Tables["HATENDIMENTOBASE"]["ABERTURA"].AsDateTime

GERAR
EXCEO

MENSAGEM DE ERRO

Texto da Atividade Expresso

EXPRESSES

'----------------------------------------------------------------------------' +
NewLine + NewLine +
'O campo "Data da Visita ao Imvel" (Pasta Parmetros) deve ser preenchido com uma
Data anterior ou igual a Data Atual.' + NewLine + NewLine +
NewLine + NewLine +
'----------------------------------------------------------------------------'

VALOR CALCULADO

Activity=rmsThrowActivity1, Path=Message

EXPRESSO

OBSERVA
O

FRMU
LA
VISUAL
DESCRI
O

GATILHO

ATIVIDAD
ES

necessria a criao de Campos Parmetros no TOTVS Gesto do


Relacionamento com o Cliente.

8. VALIDAO DO CAMPO EMAIL - CADASTRO DE USURIOS


Frmula Visual que verifica se o campo EMAIL do Cadastro de Usurios foi
preenchido corretamente.
Tabela: GUSUARIO
Campo Validado: EMAIL
Valor: e-mail vlido
Cadastros >> Antes da Atualizao do Registro (Fim) >> Globais >> Usurios
SE/SENAO

CONDIO
DECLARATIVA

!this.Tables["GUSUARIO"]["EMAIL"].IsNull && !new


System.Text.RegularExpressions.Regex("^([0-9a-zA-Z]+([_.-]?
[0-9a-zA-Z]+)*@[0-9a-zA-Z]+[0-9,a-z,A-Z,.,-]*(.){1}[a-zA-Z]
{2,4})+$").IsMatch(this.Tables["GUSUARIO"]
["EMAIL"].AsString)

GERAR
EXCEO

MENSAGEM DE ERRO

Texto da Atividade Expresso

EXPRESSES

'----------------------------------------------------------------------------' +
NewLine + NewLine +
'Favor preencher o campo EMAIL com um valor vlido.'
+
NewLine + '( Exemplo: usuario@caparao.com.br )' + NewLine + NewLine +
NewLine + NewLine +
'----------------------------------------------------------------------------'

VALOR CALCULADO

Activity=rmsThrowActivity1, Path=Message

EXPRESSO

OBSERVA
O

Analista: Felipe David Evangelista


Pgina 7 de 40

Analista: Felipe David Evangelista


Pgina 8 de 40

FRMU
LA
VISUAL

DESCRI
O

9. VALIDAO DOS CAMPOS COMPLEMENTARES - FATURAMENTO


DE MOVIMENTO
Frmula Visual que verifica se os campos PRECO (RELACAO CUSTOBENEFICIO),PONTUAL ENTREGA NO PRAZO ESTABELECIDO,ADEQUADACAO AS
NORMAS TECNICAS,INOVACAO TECNOLOGICA,ADEQUADACAO PROJ DE INTERFACE,
FUNCIONALIDADE, etc, do Tipo Movimento 1.2.37 foram preenchidos, caso o
Perodo do Contrato do RM SOLUM associado ao movimento seja o ltimo.
Tabela: TMOVCOMPL
Campo Validado: PRECO, PONTUALIDADE, etc
Valor: No Nulo

GATILHO

Cadastros >> Antes de Salvar o Registro >> Estoque >> MovFaturamentoData


SELECT
CASE
WHEN
(
SELECT
DISTINCT(MPDO.IDCNT)
FROM
MPDO

Activity=RMSWorkflow,
Path=Tables["TMOVRELAC"].Item["CODCOLORIGEM"].AsInteger

INNER JOIN MCNT (NOLOCK) ON


MCNT.CODCOLIGADA = MPDO.CODCOLIGADA AND MCNT.IDPRJ = MPDO.IDPRJ AND MCNT.IDCNT = MPDO.IDCNT

CONSULTA
SQL

INNER JOIN TMOV (NOLOCK) ON MPDO.IDMOV =


TMOV.IDMOV AND MPDO.CODCOLIGADA = TMOV.CODCOLIGADA
WHERE
MPDO.CODCOLIGADA =:CODCOLIGADA

AND MPDO.IDMOV =:IDMOVORIGEM

Activity=RMSWorkflow,
Path=Tables["TMOVRELAC"].Item["IDMOVORIGEM"].AsInteger

AND MPDO.DATAFIM = MCNT.DATAFIM


) IS NOT NULL
THEN 1
ELSE 0
END ULTIMOPERIODOSOLUM
/* CONSULTA SQL PARA FORMULA VISUAL QUE VALIDA TIPO DE MOVIMENTO 1.2.37
SE RETORNAR 1 EH PORQUE O PERIODO DO CONTRATO NO RM SOLUM EH O ULTIMO */

ATIVIDAD
ES

SE/SENAO

CONDIO
DECLARATIVA

(this.Tables[0].Rows[0].RowState == System.Data.DataRowState.Added ||
this.Tables[0].Rows[0].RowState == System.Data.DataRowState.Modified)
&&
(this.Tables["TMOV"]["CODTMV"].AsString == "1.2.37" &&
this.rmsConsSQLActivity1.Fields["ULTIMOPERIODOSOLUM"].AsString == "1" &&
(this.Tables["TMOVCOMPL"]["PRECO"].IsNull || this.Tables["TMOVCOMPL"]
["PONTUALIDADE"].IsNull || this.Tables["TMOVCOMPL"]["ADEQUADACAO"].IsNull ||
this.Tables["TMOVCOMPL"]["INOVACAO"].IsNull || this.Tables["TMOVCOMPL"]
["ADEQPROJ"].IsNull || this.Tables["TMOVCOMPL"]["FUNCIONALIDADE"].IsNull ||
this.Tables["TMOVCOMPL"]["ATENDSOLCONSTR"].IsNull || this.Tables["TMOVCOMPL"]
["ACOMP"].IsNull || this.Tables["TMOVCOMPL"]["RELAC"].IsNull ||
this.Tables["TMOVCOMPL"]["QUALIDADE"].IsNull))

GERAR
EXCEO

MENSAGEM DE ERRO

Texto da Atividade Expresso

EXPRESSES

'----------------------------------------------------------------------------' + NewLine +
'Favor preencher os campos da Pasta Informaes Adicionais >> Campos Complementares, visto ser o ltimo
Perodo do Contrato associado no RM SOLUM. Os campos so: ' + NewLine + '"PRECO (RELACAO CUSTOBENEFICIO)", "PONTUAL ENTREGA NO PRAZO ESTABELECIDO", "ADEQUADACAO AS NORMAS TECNICAS", "INOVACAO
TECNOLOGICA", "ADEQUADACAO PROJ DE INTERFACE", "FUNCIONALIDADE", "ATEND SOLIC DA CONSTRUTORA", "ACOMP
DURANTE EXECUCAO OBRA", "RELACIONAMENTO COM A CONSTRUTORA" e "QUALIDADE DAS INFOR DOS PROJETOS/LAUDOS"' +
NewLine +
NewLine + '----------------------------------------------------------------------------'

VALOR CALCULADO

Activity=rmsThrowActivity1, Path=Message

EXPRESSO

OBSERVA
O

necessria a criao dos Campos Complementares no RM Nucleus e associar ao


Tipo de Movimento.

Analista: Felipe David Evangelista


Pgina 9 de 40

FRMU
LA
VISUAL
DESCRI
O

GATILHO

10.

VALIDAO DO NUMERO DO CONTRATO RM SOLUM FATURAMENTO DE MOV

Frmula Visual que verifica se o Campo Complementar NUMERO CONTRATO EMPREITEIRO


(Tipo de Movimento 1.2.37) igual ao campo NUMERO CONTRATO do Contrato do RM
Solum associado ao movimento de origem (1.1.16).
Tabela: TMOVCOMPL e MCNT
Campo Validado: TMOVCOMPL.NUMEROCONTRATO e MCNT.NUMCNT
Valor: TMOVCOMPL.NUMEROCONTRATO = MCNT.NUMCNT

Cadastros >> Antes de Salvar o Registro >> Estoque >> MovFaturamentoData


SELECT MCNT.NUMCNT
FROM

MPDO (NOLOCK)

Activity=RMSWorkflow,
Path=Tables["TMOVRELAC"].Item["CODCOLORIGEM"].AsShort

INNER JOIN MCNT


(NOLOCK) ON MCNT.CODCOLIGADA = MPDO.CODCOLIGADA AND
MCNT.IDPRJ = MPDO.IDPRJ AND MCNT.IDCNT = MPDO.IDCNT

CONSULTA
SQL

INNER JOIN TMOV


(NOLOCK) ON MPDO.IDMOV = TMOV.IDMOV AND
MPDO.CODCOLIGADA = TMOV.CODCOLIGADA
WHERE
MPDO.CODCOLIGADA =:CODCOLORIGEM

Activity=RMSWorkflow,
Path=Tables["TMOVRELAC"].Item["IDMOVORIGEM"].AsInteger

AND MPDO.IDMOV
=:IDMOVORIGEM
/* CONSULTA SQL PARA FORMULA VISUAL QUE VALIDA TIPO
DE MOVIMENTO 1.2.37
RETORNA O NUMERO DO CONTRATO NO RM SOLUM */

ATIVIDAD
ES

SE/SENAO

CONDIO
DECLARATIVA

(this.Tables[0].Rows[0].RowState == System.Data.DataRowState.Added ||
this.Tables[0].Rows[0].RowState ==
System.Data.DataRowState.Modified)
&&
(this.Tables["TMOVCOMPL"]["FATDIRETO"].AsString == "1" &&
(this.Tables["TMOV"]["CODTMV"].AsString == "1.2.37" &&
this.rmsConsSQLActivity1.Fields["NUMCNT"].AsString !=
this.Tables["TMOVCOMPL"]["NUMEROCONTRATO"].AsString))

GERAR
EXCEO

MENSAGEM DE ERRO

Texto da Atividade Expresso

EXPRESSES
EXPRESSO
VALOR CALCULADO
OBSERVA
O

'----------------------------------------------------------------------------' + NewLine +
'Favor preencher o campo NUMERO CONTRATO EMPREITEIRO (Pasta Informaes Adicionais >> Campos
Complementares), com o mesmo Nmero do Contrato associado no TOTVS OBRAS E PROJETOS (RM SOLUM).' +
NewLine +
NewLine +
'Nmero do Contrato no TOTVS OBRAS E PROJETOS: ' + rmsConsSQLActivity1.NUMCNT
+ NewLine +
NewLine +
'----------------------------------------------------------------------------'

Activity=rmsThrowActivity1, Path=Message

necessria a criao dos Campos Complementares no RM Nucleus e associar ao


Tipo de Movimento.

Analista: Felipe David Evangelista


Pgina 10 de 40

FRMU
LA
VISUAL
DESCRI
O
GATILHO

ATIVIDAD
ES

11.

VALIDAO DE INCLUSO DE NOVOS PRODUTOS

Frmula Visual que envia e-mail para Grupo de Emails responsvel pela administrao do Cadastro de
Produtos a cada novo produto incluso.
Tabela: TPRD
Campo Validado: IDPRD
Valor: novo registro

Cadastros >> Aps Salvar o Registro >> Estoque >> Produtos


SE/SENAO

CONDIO
DECLARATIVA

this.Tables[0].Rows[0].RowState ==
System.Data.DataRowState.Added
[TOTVS] Incluso de Novo Produto no Sistema TOTVS

ENVIO DE
EMAIL

ASSUNTO
DESTINATRIO
REMETENTE
TEXTO DO EMAIL

totvs@totvs.com.br
Company
Texto da Atividade Expresso

EXPRESSES

'----------------------------------------------------------------------------' +
NewLine + NewLine +
'Um novo Produto foi includo no sistema TOTVS.'
+ NewLine + NewLine +
'Cdigo do Produto: ' + RMSWorkflow.CODIGOPRD + NewLine +
'Cdigo da Coligada: ' + RMSWorkflow.CODCOLIGADA
+ NewLine
+ NewLine + NewLine +
'----------------------------------------------------------------------------'

VALOR CALCULADO

Activity=rmsSendEmailActivity1, Path=Body

EXPRESSO

OBSERVA
O

FRMU
LA
VISUAL
DESCRI
O
GATILHO

ATIVIDAD
ES

12.

ENVIO DE EMAIL NOVO USURIO

Este Workflow tem como objetivo enviar um e-mail automtico para o usurio do
sistema que tiver seu login includo no sistema, ou tiver sua senha resetada.
Campo a ser testado: "SENHA" da viso do cadastro de Usurios
(GUSUARIO.SENHA).
Cadastros >> Antes da Atualizao do Registro (Fim) >> Globais >> Usurios
CONDIO
SE/SENAO
this.Fields["SENHA"].IsModified
DECLARATIVA
[TOTVS] Login de acesso aos Sistemas TOTVS
ASSUNTO
ENVIO DE
EMAIL

EXPRESSO

Analista: Felipe David Evangelista


Pgina 11 de 40

DESTINATRIO
REMETENTE
TEXTO DO EMAIL

Activity=RMSWorkflow,
Path=Fields["EMAIL"].AsStringArray
Company
Texto da Atividade Expresso

EXPRESSES

'Prezado [' + RMSWorkflow.NOME + '],' + Newline + NewLine +


'Seu cadastro como usurio nos Sistemas TOTVS foi finalizado
com sucesso!' + Newline + Newline + 'Seu login de acesso :
' + RMSWorkflow.CODUSUARIO + Newline + 'Sua senha inicial:
123456' + Newline + NewLine + 'Agora voc est apto a
utilizar o sistema.' + Newline + NewLine + 'Bom Trabalho!'

VALOR CALCULADO

Activity=rmsSendEmailActivity1, Path=Body

OBSERVA
O

FRMU
LA
VISUAL

DESCRI
O

possvel indicar a senha que for informada no cadastro do usurio. O valor padro
123456 foi uma questo de segurana.

13.

ENVIO DE E-MAIL - ERRO NA ROTINA DE ENVIO DE E-MAIL


S AGENDADOS

Este Workflow tem como objetivo enviar um e-mail automtico para os usurioschave do sistema RM Agilis, caso ocorram erros durante a gerao da rotina de
Envio de E-mails Automticos (servio 'Executar Frmula a partir de Consulta
SQL'). Fazendo com que os usurios-chave tomem providncia.
Campo a ser testado: MENSAGEMSTATUS e DATAINIEXEC
Tabela: GJOBXEXECUCAO

GATILHO

Execuo Agendada: Acessar a opo Salvar e Executar dentro da edio da Frmula


Visual, e agendar a execuo
SELECT
CASE
WHEN (

CONSULTA
SQL

SELECT

COUNT(*) FROM GJOBXEXECUCAO (NOLOCK)


WHERE
CONVERT(VARCHAR(10),DATAINIEXEC,105) =

CONVERT(VARCHAR(10),GETDATE(),105)
AND

MENSAGEMSTATUS LIKE '%ERRO%UPDATE%GAUTOINC%') > 0 THEN 1

ELSE 0
END AS RETORNO
FROM GCOLIGADA (NOLOCK)
WHERE CODCOLIGADA = 1

SE/SENAO

ATIVIDAD
ES

ENVIO DE
EMAIL

CONDIO
DECLARATIVA

this.rmsConsSQLActivity1.Fields["RETORNO"].As
String == "1"

ASSUNTO

[TOTVS] Ateno: Ocorreu erro durante o envio de emails automticos


Informar o e-mail do responsvel pelos Sistemas
TOTVS na empresa
Company

DESTINATRIO
REMETENTE
TEXTO DO EMAIL

Texto da Atividade Expresso


'Ao Administrador dos Sistemas TOTVS: '
+ Newline + NewLine +

EXPRESSO

EXPRESSES

'Favor verificar se a rotina de envio de e-mails est funcionando corretamente' + NewLine +


'(conferncia pode ser realizada atravs do RM Agilis em | Menu Utilitrios | Histrico de E-mails
enviados)'
+ NewLine +
'Pois a rotina de envio de e-mail retornou o seguinte erro:'
+ NewLine +
'--------------------------' + NewLine +
'ERRO: Atendimento [xx-x-xxxx] - A frmula COLIGADA no pode ser executada! A frmula COLIGADA no pode
ser executada! --CRMMailServer UPDATE GAUTOINC SET VALAUTOINC = xxxx
WHERE CODCOLIGADA = 0 AND
CODSISTEMA = H AND CODAUTOINC = GMAILSEND
AND VALAUTOINC = xxxx '
+ NewLine +
'ExecuteNonQuery requires an open and available Connection. The connections current state is closed. Erro
ao atualizar GAUTOINC'
+ NewLine +
'--------------------------'
+ NewLine + NewLine +
'OBS: Verificar o servio "RM.Host.Service" no servidor onde o RM Agilis est instalado.' + NewLine

VALOR CALCULADO
OBSERVA
O

FRMU
LA
VISUAL

Activity=rmsSendEmailActivity1, Path=Body

Esta Frmula Visual s deve ser includa caso o servio agendado de Envio de Email esteja
sendo utilizado.

14.

ALTERA CAMPO DO CADASTRO DE EVENTO DO LABORE

Altera Campo do Cadastro de Evento do Labore


DESCRI
O

Campo: SEGUERATEIOSALCMP
Tabela: PEVENTO
Valor: 1

Analista: Felipe David Evangelista


Pgina 12 de 40

GATILHO

Cadastros >> Antes da Atualizao do Registro (Fim) >> Folha de Pagamento >>
Evento
EXPRESSES

VALOR CALCULADO

Activity=RMSWorkflow,
Path=Tables["PEVENTO"].Item["SEGUERATEIOSALCMP"]
.AsInteger

ATIVIDAD
ES

EXPRESSO

OBSERVA
O

Esta Frmula Visual altera o contedo do campo independente da condio do registro.

FRMU
LA
VISUAL
DESCRI
O
GATILHO

15.

TORNAR ATENDENTE INATIVO QUANDO FUNCIONRIO FOR


DEMITIDO

Este Workflow tem por objetivo tornar um Atendente Inativo caso o Funcionrio
seja Demitido no RM Labore.
Execuo Agendada: Acessar a opo Salvar e Executar dentro da edio da Frmula
Visual, e agendar a execuo
SELECT

CONSULTA
SQL

ATIVIDAD
ES

LER
REGISTRO
EXPRESSO
SALVAR
REGISTRO

IMAGEM

Analista: Felipe David Evangelista


Pgina 13 de 40

FROM
WHERE

CODATENDENTE,
CODCOLIGADA,
ATIVO
HATENDENTE
CODPESSOA =:CODPESSOA

NOME DO DATASERVER
CDIGO DO ATENDENTE
COLIGADA
EXPRESSES

CRMAtendenteData

VALOR CALCULADO

Activity=rmsReadRecordActivity1,
Path=Tables["HATENDENTE"].Item["ATIVO"].AsBoolean

FONTE DE DADOS
NOME DO DATASERVER

Activity=rmsReadRecordActivity1, Path=DataSet

Activity=RMSWorkflow, Path=Fields["CODATENDENTE"].AsInteger
Activity=RMSWorkflow, Path=Fields["CODCOLIGADA"].AsShort

CRMAtendenteData

FRMU
LA
VISUAL

16.

VALIDAO DO CAMPO CPF - CADASTRO DE


FUNCIONRIOS

DESCRI
O

Frmula Visual que valida se o CPF do funcionrio j existe na Base de Dados.

GATILHO

Cadastros >> Aps da Atualizao do Registro (Fim) >> Folha de Pagamento >>
Funcionrios

ATIVIDAD
ES

CONSULTA
SQL

SELECT CPF FROM PPESSOA


WHERE CPF =:CPF
AND CODIGO <>:CODIGO

SE/SENAO

CONDIO
DECLARATIVA

this.rmsConsSQLActivity1.DataSet.Tables[0].Rows.Cou
nt > 0

GERAR
EXCEO

MENSAGEM DE ERRO

CPF informado j existe na Base de Dados ! Favor


informar outro CPF.

OBSERVA
O

Analista: Felipe David Evangelista


Pgina 14 de 40

FRMU
LA
VISUAL
DESCRI
O

17.

VALIDAO DO CAMPO PIS - CADASTRO DE


FUNCIONRIOS

Frmula Visual que valida o preenchimento do Campo PIS do Cadastro de


Funcionrios.
Caso o campo PIS estiver em branco, e o campo "Tipo de Admisso" for diferente
de 'P' (1 Emprego), o Sistema ir barrar a incluso/alterao do registro.
Campo Verificado: PFUNC.PISPASEP e PFUNC.TIPOADMISSAO

GATILHO

ATIVIDAD
ES

Cadastros >> Antes da Atualizao do Registro (Fim) >> Folha de Pagamento >>
Funcionrios

SE/SENAO

CONDIO
DECLARATIVA

this.Tables["PFUNC"]["PISPASEP"].IsNull &&
System.Convert.ToString(this.Tables["PFUNC"]
["TIPOADMISSAO"].Value).ToUpper() != "P"

GERAR
EXCEO

MENSAGEM DE ERRO

Campo PIS obrigatrio, caso o Tipo de Admisso no


seja '1 Emprego'.

OBSERVA
O

Analista: Felipe David Evangelista


Pgina 15 de 40

FRMU
LA
VISUAL

18.

VALIDA PERFIL DE USURIO LOGADO

DESCRI
O

Esta Frmula Visual (Workflow) tem como objetivo validar a incluso e alterao
no cadastro de produtos com base no Perfil do Usurio logado.

GATILHO

Cadastro >> Antes de Salvar o Registro >> Estoque >> Produtos


IF
(
SELECT
FROM
WHERE
=:FRM_USUARIO AND

CONSULTA
SQL

COUNT(*)
GUSRPERFIL (NOLOCK)
GUSRPERFIL.CODUSUARIO

Activity=RMSWorkflow, Path=Context.CodColigada

GUSRPERFIL.CODCOLIGADA
=:FRM_COLCOR AND
GUSRPERFIL.CODSISTEMA = 'T' AND

Activity=RMSWorkflow, Path=Context.CodUsuario

ATIVIDAD
ES

GUSRPERFIL.CODPERFIL =
'IMPLANTACAO'
) > 0
BEGIN
SELECT 1 AS RESULTADO
END
ELSE
SELECT 0 AS RESULTADO

SE/SENAO

CONDIO DECLARATIVA

this.rmsConsSQLActivity1.Fields["RESULTADO"].AsInteg
er == 1

GERAR
EXCEO

MENSAGEM DE ERRO

Este Usurio est associado a um Perfil de


Usurio que no permite incluses/alteraes no
cadastro de Produtos. Favor contatar o
Administrador do Sistema.

OBSERVAO

necessrio informar o Perfil a ser validado dentro da Consulta SQL.

OBSERVAO
2

Dentro da Condio Declarativa, ou da Consulta SQL pode-se incluir demais


validaes que se fizerem necessrias.

FRMU
LA
VISUAL

19.

VALIDA APROPRIAO DE ATENDIMENTO

DESCRI
O

Esta Frmula Visual (Workflow) tem como objetivo validar a Apropriao de Novos
Atendimentos com base na quantidade de atendimentos pendentes para o
Atendente associado ao Usurio logado.

GATILHO

Processo >> Antes da Execuo >> Apropriar-se de um atendimento em uma fila

ATIVIDAD
ES

SELECT
FROM

CONSULTA
SQL

COUNT (H.CODATENDIMENTO) AS CONTADOR


HATENDIMENTOBASE H (NOLOCK)
INNER JOIN HATENDENTE HA

(NOLOCK)
ON HA.CODCOLIGADA =
H.CODCOLIGADARESP
AND HA.CODATENDENTE =

Activity=RMSWorkflow, Path=Context.CodUsuario

H.CODATENDENTERESP
WHERE

HA.CODUSUARIO =:CODUSUARIO
AND H.CODSTATUS IN ('A')

SE/SENAO

CONDIO DECLARATIVA

this.rmsConsSQLActivity1.Fields["CONTADOR"].AsIntege
r>4

GERAR
EXCEO

MENSAGEM DE ERRO

Voc j possui mais de 5 atendimentos


PENDENTES. Favor atuar sobre os atendimentos
sob sua responsabilidade antes de apropriar de

Analista: Felipe David Evangelista


Pgina 16 de 40

mais atendimentos.
OBSERVAO

A consulta SQL est considerando apenas o Status Pendente (A).

OBSERVAO
2

Dentro da Condio Declarativa, ou da Consulta SQL pode-se incluir demais


validaes que se fizerem necessrias.

FRMU
LA
VISUAL

20.

VALIDA INCLUSO DE REQUISIES DO VITAE FORA DO


PRAZO

DESCRI
O

Esta Frmula Visual (Workflow) tem como objetivo validar a incluso de


Requisies de Treinamento (RM Vitae) para que sejam inclusas considerando um
Prazo de 7 dias corridos para a Data Prevista.

GATILHO

Cadastros >> Antes de Salvar o Registro >> RhuReqTreinamentoData

ATIVIDAD
ES

SE/SENAO

CONDIO DECLARATIVA

this.Tables["VTREINAMENTOCOMPL"]
["TIPOTRE"].AsString == "01" &&
this.Tables["VREQTREINAMENTO"]
["DATAPREVISTA"].AsDateTime <=
System.DateTime.Today.AddDays(7)

GERAR
EXCEO

MENSAGEM DE ERRO

IMPRIME MENSAGEM DA ATIVIDADE EXPRESSO

EXPRESSES

'Prezado usurio, a solicitao de


treinamento do tipo "Promoo" somente
poder ser registrada com antecedncia de 7
dias corridos. Nesse caso somente no dia '+
String(DateTime(Today+7)) +'. Favor alterar
o prazo para que seja possvel gravar a
requisio.'

VALOR CALCULADO

Activity=rmsThrowActivity1, Path=Message

EXPRESSO

OBSERVAO
OBSERVAO
2

necessria a criao do campo complementar TIPOTRE, caso utilize a parte de


validao de classificao da requisio.
Dentro da Condio Declarativa, ou da Consulta SQL pode-se incluir demais
validaes que se fizerem necessrias.

Analista: Felipe David Evangelista


Pgina 17 de 40

FRMU
LA
VISUAL

21.

VALIDAR SE O CANDIDATO EST SENDO INSCRITO EM UM


CURSO MAIS DE 2 VEZES

DESCRI
O

Esta Frmula Visual (Workflow) tem como objetivo validar se o candidato est
sendo inscrito em um curso mais de 2 (duas) vezes.

GATILHO

Cadastros >> Antes da Atualizaes do Registro (Fim) >> RhuParticipantesData


SELECT COUNT(CODPESSOA) AS QTDEPARTICIPOU,
VTURMA.CODPESSOA,
VTURMAS.CODCURSO
FROM VTURMAS
INNER JOIN VTURMA (NOLOCK) ON
VTURMAS.CODTURMA = VTURMA.CODTURMA

CONSULTA
SQL

AND
VTURMAS.CODCOLIGADA = VTURMA.CODCOLIGADA
WHERE
VTURMA.CODPESSOA=:CODPESSOA
AND VTURMAS.CODCURSO='1000015'
AND VTURMA.DTDESISTENCIA IS NULL
GROUP BY VTURMA.CODPESSOA,
VTURMAS.CODCURSO, VTURMA.DTDESISTENCIA
HAVING COUNT(CODPESSOA)>=2

SELECT DISTINCT VTURMAS.CODCURSO


FROM VTURMAS
INNER JOIN VTURMA (NOLOCK) ON
VTURMAS.CODTURMA = VTURMA.CODTURMA

CONSULTA
SQL

ATIVIDAD
ES
CONSULTA
SQL

SE/SENAO

AND
VTURMAS.CODCOLIGADA =
VTURMA.CODCOLIGADA
WHERE
VTURMA.CODTURMA=:CODTURMA
AND VTURMA.CODCOLIGADA=:CODCOLIGADA

Activity=RMSWorkflow,
Path=Fields["CODCOLIGADA"].AsShort

Activity=RMSWorkflow,
Path=Tables["VTURMA"].Item["CODTURMA"].AsString

SELECT COUNT(CODUSUARIO) AS USU


FROM GUSRPERFIL (NOLOCK)
WHERE CODPERFIL = 'AUT_TREINAMENTO'
AND GUSRPERFIL.CODUSUARIO
=:CODUSUARIO

Activity=RMSWorkflow, Path=Context.CodUsuario

CONDIO DECLARATIVA

this.rmsConsSQLActivity1.Fields["CODCURSO"].AsString
== "1000015" && this.Tables["VTURMA"]
["DTDESISTENCIA"].IsNull && this.Tables["VTURMA"]
["CODPESSOA"].AsInteger ==
this.rmsConsSQLActivity1.Fields["CODPESSOA"].AsInteg
er && (this.Tables[0].Rows[0].RowState ==
System.Data.DataRowState.Added ||
this.Tables[0].Rows[0].RowState ==
System.Data.DataRowState.Modified)

EXPRESSES

'Prezado usurio, o colaborador selecionado excedeu o


limite de reciclagem aceito pela empresa. Favor
procurar a coordenao do treinamento. Requisio no
ser gravada.'

VALOR CALCULADO

Activity=rmsThrowActivity1, Path=Message

EXPRESSO

OBSERVAO
1

Activity=RMSWorkflow,
Path=Tables["VTURMA"].Item["CODPESSOA"].AsInteger

GERAR
IMPRIME MENSAGEM DA ATIVIDADE EXPRESSO
MENSAGEM DE ERRO
EXCEO
Dentro da Condio Declarativa, ou da Consulta SQL pode-se incluir demais
validaes que se fizerem necessrias.

Analista: Felipe David Evangelista


Pgina 18 de 40

Analista: Felipe David Evangelista


Pgina 19 de 40

FRMU
LA
VISUAL
DESCRI
O
GATILHO

22.

TRATAR EXCEO ENVIANDO EMAIL

Esta Frmula Visual (Workflow) tem como objetivo enviar um email para um
endereo eletrnico fixo quando o processo de envio de email da Frmula Visual
no encontrar o destinatrio, dentro do processo de incluso de Requisio de
Transferncia do RM Vitae.
Cadastros >> Antes da Atualizaes do Registro (Fim) >>
RhuReqTransferenciaData

ENVIO DE
EMAIL
ATIVIDAD
ES

ASSUNTO

Indicar o assunto do email que enviado em


condies normais.

DESTINATRIO

Indicar o email dos usurios que devem receber


o email da rotina.

REMETENTE

Company

TEXTO DO EMAIL

Texto do email que sempre enviado pelo


sistema

Acessar FAULT HANDLERS

SEQUNCIA

OBSERVAO
1
OBSERVAO
2

OBSERVAO
3

Associar uma
FAULTTY
Atividade TRATAR
PE
EXCEO
Associar uma Atividade ENVIO
DE EMAIL

System.Exception
Informar os campos da atividade para que um email
vlido seja avisado sobre a exceo.

Dentro da Condio Declarativa, ou da Consulta SQL pode-se incluir demais


validaes que se fizerem necessrias.
A primeira atividade ENVIO DE EMAIL ser inclusa dentro da atividade
SEQUENCIA, antes de acessar a configurao do Fault Handlers. A configurao
do Fault Handlers realizada clicando com o boto direito sobre a atividade
que ir tratar a Exceo.
A atividade SEQUENCIA permite encapsular a exceo que ser tratada. Neste
caso apenas um erro no envio de email da primeira atividade ENVIO DE EMAIL
ser tratada, enviando um outro email, porm para um endereo vlido.

Analista: Felipe David Evangelista


Pgina 20 de 40

FRMU
LA
VISUAL
DESCRI
O
GATILHO
ATIVIDAD
ES

23.

VALIDAR SE O CANDIDATO EST SENDO INSCRITO EM UM


CURSO MAIS DE 2 VEZES

Esta Frmula Visual (Workflow) tem como objetivo validar se existe vaga para a
Funo e Seo, baseado no Quadro de Lotao (RM Vitae | Menu Cadastros |
Cargos/Funes | Funes | Anexos: Quadro de Lotao).
Cadastros >> Antes da Atualizaes do Registro (Fim) >>
RhuReqTransferenciaData
CONSULTA
SQL
Activity=RMSWorkflow,
DECLARE @CODIGOSECAO VARCHAR(50),@CODIGOCHAPA VARCHAR(100)
SET @CODIGOSECAO =:CODSECAO
SET @CODIGOCHAPA =:CHAPA
SELECT
FROM

SUM (TAB.POTENCIAL) AS POTENCIAL


(

SELECT

SUM(NUMVAGAS) AS POTENCIAL

FROM

VREQAUMENTOQUADRO (NOLOCK)

WHERE

VREQAUMENTOQUADRO.CODSTATUS IN ('1','3','5','7')

Path=Tables["VREQTRANSFERENCIA"].Item["CHAPA"].As
String

AND VREQAUMENTOQUADRO.DATACANCELAMENTO IS NULL

AND VREQAUMENTOQUADRO.CODSECAO =@CODIGOSECAO

Activity=RMSWorkflow,
Path=Tables["VREQTRANSFERENCIA"].Item["CODSECAO"
].AsString

AND VREQAUMENTOQUADRO.CODFUNCAO IN ( SELECT CODFUNCAO

FROM PFUNC (NOLOCK)

WHERE PFUNC.CHAPA =@CODIGOCHAPA

)
UNION ALL
SELECT
COUNT(*) AS POTENCIAL

FROM

VREQSUBSTITUICAO (NOLOCK)

WHERE

VREQSUBSTITUICAO.CODSTATUS IN ('1','3','5','7')

AND VREQSUBSTITUICAO.CODSECAO =@CODIGOSECAO

AND VREQSUBSTITUICAO.CODFUNCAO IN ( SELECT CODFUNCAO

FROM PFUNC (NOLOCK)

WHERE PFUNC.CHAPA =@CODIGOCHAPA

)
UNION ALL

SELECT
FROM
WHERE

COUNT(*) AS POTENCIAL
PFUNC (NOLOCK)
CODSITUACAO

<> 'D'

AND CODTIPO

<> 'A'

AND

PFUNC.CODSECAO =@CODIGOSECAO
PFUNC.CODFUNCAO IN (

AND
SELECT

CODFUNCAO

FROM

PFUNC

WHERE

PFUNC.CHAPA

(NOLOCK)

=@CODIGOCHAPA

)
UNION ALL

SELECT (
(SELECT
FROM
WHERE

VLOTACAO.LIMITEVAGAS AS LIMITEVAGAS
VLOTACAO (NOLOCK)

SELECT

CODFUNCAO

VLOTACAO.CODSECAO =@CODIGOSECAO
VLOTACAO.CODFUNCAO IN (

AND

FROM
PFUNC (NOLOCK)

Analista: Felipe David Evangelista


Pgina 21 de 40

WHERE
PFUNC.CHAPA =@CODIGOCHAPA

)
) (SELECT
FROM
WHERE

COUNT(*) AS ALOCADOS
PFUNC (NOLOCK)
CODSITUACAO

<> 'D'

AND CODTIPO

<> 'A'

AND

PFUNC.CODSECAO =@CODIGOSECAO
PFUNC.CODFUNCAO IN (

SE/SENAO
CONSULTA
SQL

SELECT

AND

CODFUNCAO

CONDIO DECLARATIVA
SELECT
FROM

PPESSOA.NOME,PPESSOA.EMAIL
PFUNC (NOLOCK)
INNER JOIN PPESSOA
(NOLOCK) ON PFUNC.CODPESSOA = PPESSOA.CODIGO
WHERE
PFUNC.CHAPA =:CHAPA

this.rmsConsSQLActivity1.Fields["POTENCIAL"].AsIntege
r < 1 && (this.Tables[0].Rows[0].RowState ==
System.Data.DataRowState.Added ||
this.Tables[0].Rows[0].RowState ==
System.Data.DataRowState.Modified)
Activity=RMSWorkflow,
Path=Tables["VREQTRANSFERENCIA"].Item["CHAPA"].As
String

DECLARE @CODIGOSECAO VARCHAR(50)


SET @CODIGOSECAO =:CODSECAO
IF
@CODIGOSECAO LIKE '____.300' /* SECAO DE
LOJAS - SUPERVISORES */
(SELECT

TOP 1

FROM

PFUNC (NOLOCK)

PPESSOA.EMAIL,PFUNC.CHAPA

INNER JOIN PPESSOA (NOLOCK) ON PFUNC.CODPESSOA = PPESSOA.CODIGO

CONSULTA
SQL

INNER JOIN PSUBSTSUP (NOLOCK) ON PSUBSTSUP.CODCOLIGADA =


PFUNC.CODCOLIGADA AND PSUBSTSUP.CHAPASUBST = PFUNC.CHAPA
WHERE
PSUBSTSUP.CODSECAO =
@CODIGOSECAO)
ELSE
(SELECT

TOP 1

FROM

PFUNC (NOLOCK)

Activity=RMSWorkflow,
Path=Tables["VREQTRANSFERENCIA"].Item["CODSECAO"
].AsString

PPESSOA.EMAIL,PFUNC.CHAPA

INNER JOIN PPESSOA (NOLOCK) ON PFUNC.CODPESSOA = PPESSOA.CODIGO

INNER JOIN PSUBSTCHEFE (NOLOCK) ON PSUBSTCHEFE.CODCOLSUBST =


PFUNC.CODCOLIGADA AND PSUBSTCHEFE.CHAPASUBST = PFUNC.CHAPA
WHERE
PSUBSTCHEFE.CODSECAO =
@CODIGOSECAO)

EXPRESSES

'Prezado responsvel,'+
NewLine+
NewLine+
'Foi realizada uma tentativa de transferncia do colaborador '+
rmsConsSQLActivity2.NOME + ' para a sua rea, porm devido a falta de vaga essa requisio no foi concluda.'+
NewLine+
'Pedimos a gentileza de incluir uma requisio de Aumento de Quadro para que seja possvel realizar tal demanda.' +
NewLine+
NewLine+
'E-mail automtico do sistema TOTVS Gesto de Pessoas.'+
NewLine+
'Favor no responder este e-mail.'+
NewLine

VALOR CALCULADO

Activity=rmsSendEmailActivity1, Path=Body

MENSAGEM DE ERRO

IMPRIME MENSAGEM DA ATIVIDADE EXPRESSO

ASSUNTO

Indicar o assunto do email que enviado em


condies normais.
Indicar o email dos usurios que devem receber
o email da rotina.
Company
Texto do email que sempre enviado pelo
sistema

EXPRESSO

GERAR
EXCEO
ENVIO DE
EMAIL

DESTINATRIO
REMETENTE
TEXTO DO EMAIL

OBSERVAO
1
FRMULA
VISUAL

Dentro da Condio Declarativa, ou da Consulta SQL pode-se incluir demais


validaes que se fizerem necessrias.

24.

Analista: Felipe David Evangelista


Pgina 22 de 40

VALIDAR INCLUSO E EXCLUSO DE RESPONSVEL FINANCEIRO NO


EDUCACIONAL

DESCRIO

Workflow que tem por objetivo Validar a incluso/alterao do Responsvel


Financeiro do cadastro de Contrato do Aluno ( Menu Tesouraria | Contratos |
Pasta Responsvel Financeiro ).
O sistema ir exibir mensagem no caso de serem localizados lanamentos
financeiros que possuam Data de Vencimento menor que a Data Atual do sistema,
e o Status seja igual a "Em aberto".

GATILHO

Cadastros >> Antes de Salvar o Registro >> EduContratoData


LISTA DE
ITENS

Activity=RMSWorkflow, Path=Tables["SResponsavelContrato"].Rows

DECLARE @PERFIL VARCHAR(40)


SET
@PERFIL =
'MATINADIMPLENTE' /* INFORME AQUI O PERFIL QUE TEM
PERMISSO PARA INCLUIR RESPONSVEL FINANCEIRO
INADIMPLENTE NO CONTRATO */
IF
(
SELECT
COUNT(*)
FROM
GUSRPERFIL (NOLOCK)
WHERE
GUSRPERFIL.CODUSUARIO

Activity=rmsForEachActivity1,
Path=Fields["CODCFO"].AsString

=:USUARIO AND

Activity=RMSWorkflow, Path=Context.CodColigada
GUSRPERFIL.CODCOLIGADA
=:CODCOL AND

Atividad
e:
CONSULT
A SQL
ATIVIDAD
ES

PARA
CADA
ITERA
O

Activity=rmsForEachActivity1,
Path=Fields["CODCOLIGADA"].AsString
GUSRPERFIL.CODSISTEMA =

'S' AND

GUSRPERFIL.CODPERFIL =
@PERFIL
) > 0
BEGIN
END
ELSE

SELECT 0 AS CONTADOR

(SELECT
FROM
WHERE

COUNT(*) AS CONTADOR
FLAN (NOLOCK)
FLAN.CODCFO =:CODCFO AND

FLAN.CODCOLCFO
=:CODCOLIGADA AND

Atividade:
SEQUNCI
A

Activity=RMSWorkflow, Path=Context.CodUsuario

CONVERT(VARCHAR(10),FLAN.DATAVENCIMENTO,105) <
CONVERT(VARCHAR(10),GETDATE(),105) AND

FLAN.PAGREC = '1' AND

FLAN.STATUSLAN = '0')

Activity=rmsForEachActivity1,
Path=Fields["CODCFO"].AsString

SELECT

Atividad
e:
CONSULT
A SQL

CODCFO,NOMEFANTASIA
FROM
FCFO (NOLOCK)
WHERE
CODCFO
=:CODCFO AND

=:CODCOLIGADA

Atividad
e:
SE/SENA
O

Analista: Felipe David Evangelista


Pgina 23 de 40

Activity=rmsForEachActivity1,
Path=Fields["CODCOLIGADA"].AsString

CODCOLIGADA

CONDIO
DECLARATIV
A
Atividade:
EXPRESSO

(this.rmsForEachActivity1.Fields.IsDeleted ||
this.rmsForEachActivity1.Fields["CODCFO"].IsModifie
d) &&
this.rmsConsSQLActivity1.Fields["CONTADOR"].AsInt
eger != 0

EXPRESSE
S
VALOR
CALCULAD
O

NewLine +
'Responsvel Financeiro com Pendncia Financeira.' +
NewLine +
'Excluso/Incluso de Responsvel Financeiro no permitida. Favor acionar o Setor Financeiro, para que a Pendncia
Financeira seja analisada, e o registro atual possa ser gravado.' +
NewLine +
NewLine +
'Ateno ao Responsvel Financeiro com restrio: ' + rmsConsSQLActivity2.CODCFO + ' - ' +
rmsConsSQLActivity2.NOMEFANTASIA +
NewLine +
NewLine

Activity=rmsThrowActivity1,
Path=Message

Atividade:
GERAR
EXCEO

OBSERVAO
1

MENSAGEM
DE ERRO

'teste' +
Activity=rmsForEachActivity1,
Path=Fields["CODCFO"].AsString

Deve-se cadastrar um PERFIL sob cdigo MATINADIMPLENTE, e associar ao


cadastro do usurio que tenha permisso para associar Responsvel Financeiro
inadimplente ao Contrato.

Analista: Felipe David Evangelista


Pgina 24 de 40

FRMULA
VISUAL

25.PREENCHIMENTO DE CAMPO COMPLEMENTAR AUTOMATICAMENTE

DESCRIO

Workflow que tem por objetivo ( Menu Cadastros | Clientes/Fornecedores | Pasta


Campos Complementares ).
O sistema ir localizar o CNPJ informado na tabela FCFO, e caso exista ir
preencher o campo NOME automaticamente, com o valor do campo NOME
FANTASIA do registro localizado.

GATILHO

Cadastros >> Antes da Atualizao do Registro (Incio)>> FinCFODataBR

Atividad
e:
CONSULT
A SQL

DECLARE @CNPJ VARCHAR(20)


SET
@CNPJ = REPLACE(
REPLACE( REPLACE(:CODCNPJ, '.', ''), '/', ''), '-', '' )

Activity=RMSWorkflow,
Path=Tables["FCFOCOMPL"].Item["CODCNPJ"].AsStri
ng

SELECT
TOP 1 REPLACE( REPLACE( REPLACE(CGCCFO,
'.', ''), '/', ''), '-', '' ) AS CODCNPJ,
NOMEFANTASIA
FROM
FCFO (NOLOCK)
WHERE
REPLACE( REPLACE( REPLACE(CGCCFO, '.',
''), '/', ''), '-', '' ) = @CNPJ

CONDIO
DECLARATIV
A

this.rmsConsSQLActivity1.Fields["NOMEFANTASIA"].I
sNull && this.Tables["FCFOCOMPL"]
["CODCNPJ"].AsString != ""

Atividade:
EXPRESSO

EXPRESSE
S
VALOR
CALCULAD
O

CONDIO
DECLARATIV
A

!
this.rmsConsSQLActivity1.Fields["NOMEFANTASIA"].I
sNull && !this.Tables["FCFOCOMPL"]
["CODCNPJ"].IsNull

Atividade:
EXPRESSO

EXPRESSE
S
VALOR
CALCULAD
O

CONDIO
DECLARATIV
A

Nenhum

Iterao 1

ATIVIDAD
ES
Atividad
e:
SE/SEN
O

Iterao 2

Iterao 3
Atividade:
EXPRESSO

OBSERVAO
1

'*** EMPRESA NO LOCALIZADA


***'
Activity=RMSWorkflow,
Path=Tables["FCFOCOMPL"].Item["
NOMECFO"].AsString

rmsConsSQLActivity1.NOMEFANTA
SIA
Activity=RMSWorkflow,
Path=Tables["FCFOCOMPL"].Item["
NOMECFO"].AsString

EXPRESSE
S

''

VALOR
CALCULAD
O

Activity=RMSWorkflow,
Path=Tables["FCFOCOMPL"].Item["
NOMECFO"].AsString

necessrio que seja criados os campos complementares (Cliente/Fornecedor):


CODCNPJ e NOMECFO

Analista: Felipe David Evangelista


Pgina 25 de 40

FRMULA
VISUAL

26.VALIDAR DUPLICIDADE EM INCLUSO DE OCORRNCIAS PARA ALUNO

DESCRIO

Workflow que tem por objetivo validar ocorrncias semelhantes em um perodo


menor que 90 dias.

GATILHO

Cadastros >> Antes da Atualizao do Registro (Fim) >> EduOcorrenciaAlunoData

ATIVIDAD
ES

Atividad
e:
CONSULT
A SQL

DECLARE
SET

@DATAOCORRENCIA DATETIME;
@DATAOCORRENCIA =:DTOCORRENCIA;

SELECT
FROM
WHERE

COUNT(*) AS TOTAL
SOCORRENCIAALUNO (NOLOCK)
SOCORRENCIAALUNO.RA

Activity=RMSWorkflow,
Path=Fields["CODCOLIGADA"].AsShort
Activity=RMSWorkflow,
Path=Fields["CODOCORRENCIAGRUPO"].AsShort
Activity=RMSWorkflow,
Path=Fields["CODOCORRENCIATIPO"].AsInteger

=:RA
AND SOCORRENCIAALUNO.CODCOLIGADA
=:CODCOLIGADA
AND SOCORRENCIAALUNO.CODOCORRENCIAGRUPO
=:CODOCORRENCIAGRUPO
AND SOCORRENCIAALUNO.CODOCORRENCIATIPO
=:CODOCORRENCIATIPO
AND CONVERT( DATETIME, CONVERT ( VARCHAR(10),
SOCORRENCIAALUNO.DATAOCORRENCIA, 102 ))
BETWEEN
CONVERT( DATETIME,
CONVERT ( VARCHAR(10), @DATAOCORRENCIA-90, 102 ))
AND
CONVERT( DATETIME, CONVERT ( VARCHAR(10), @DATAOCORRENCIA+90, 102 ))

Atividad
e:
SE/SEN
O

FRMULA
VISUAL

this.rmsConsSQLActivity1.Fields["TOTAL"].AsInteger
>0

CONDIO DECLARATIVA
Atividade
:
GERAR
EXCEO

27.

Mensagem de
Erro

Activity=RMSWorkflow, Path=Fields["RA"].AsString

No permitida a incluso de ocorrncia duplicada de


Cobrana de Documentao em perodo inferior a 3 meses.

MOSTRAR CAMPO COMPLEMENTAR NA VISO DE ALUNOS

DESCRIO

Workflow que tem por objetivo disponibilizar na viso do cadastro de Alunos uma
Coluna com Campo Complementar criado pelo usurio.

GATILHO

Cadastros >> Aps Leitura da Viso >> EduAlunoData


SELECT
FROM

ATIVIDAD
ES

Atividad
e:
PARA
CADA
ITERA
O

Atividade:
CONSULTA
SQL
Atividade:
SEQUENCI
A

SALUNOCOMPL.PIS
SALUNO (NOLOCK),
SALUNOCOMPL

(NOLOCK)
WHERE
SALUNO.CODCOLIGADA =
SALUNOCOMPL.CODCOLIGADA AND
SALUNO.RA = SALUNOCOMPL.RA
AND SALUNO.RA
=:RACADEMICO
AND
SALUNO.CODCOLIGADA =1

Expresses
Atividade:
EXPRESSO
Lista de
Itens

Analista: Felipe David Evangelista


Pgina 26 de 40

Valor Calculado

Activity=rmsForEachAc
tivity1,
Path=Fields["RA"].AsS
tring
rmsConsSQLActivity1.
PIS
Activity=rmsForEachAc
tivity1,
Path=Fields["PIS"].AsS
tring

Activity=RMSWorkflow, Path=Tables[0].Rows

FRMULA
VISUAL

28.

ENVIAR EMAIL PARA ALUNO COM 3 OCORRNCIAS

DESCRIO

Workflow que tem por objetivo enviar email para aluno que possuir ocorrncias
semelhantes em um perodo menor que 90 dias.

GATILHO

Cadastros >> Aps Salvar o Registro >> EduOcorrenciaAlunoData


Atividad
e:
CONSULT
A SQL

DECLARE
SET

@DATAREFERENCIA DATETIME;
@DATAREFERENCIA = GETDATE();

SELECT
FROM
WHERE

COUNT(*) AS TOTAL
SOCORRENCIAALUNO (NOLOCK)
SOCORRENCIAALUNO.RA
=:CODCOLIGADA

=:CODOCORRENCIAGRUPO

=:RA
AND SOCORRENCIAALUNO.CODCOLIGADA
AND SOCORRENCIAALUNO.CODOCORRENCIAGRUPO

AND CONVERT( DATETIME, CONVERT ( VARCHAR(10),


SOCORRENCIAALUNO.DATAOCORRENCIA, 102 )) >
CONVERT( DATETIME, CONVERT
( VARCHAR(10), @DATAREFERENCIA-90, 102 ))

CONDIO DECLARATIVA

Atividade:
CONSULTA
SQL
ATIVIDAD
ES

Activity=RMSWorkflow,
Path=Fields["CODCOLIGADA"].AsShort
Activity=RMSWorkflow,
Path=Fields["CODOCORRENCIAGRUPO"].AsShort
Activity=RMSWorkflow, Path=Fields["RA"].AsString
this.rmsConsSQLActivity1.Fields["TOTAL"].AsInteger
> 1 && this.DataSet.Tables[0].Rows[0].RowState ==
System.Data.DataRowState.Added

SELECT
PPESSOA.EMAIL,PPESSOA.NOME
FROM
SALUNO
(NOLOCK),
PPESSOA

Activity=RMSWorkflow, Path=Fields["RA"].AsString

(NOLOCK)
WHERE
SALUNO.CODPESSOA =
PPESSOA.CODIGO
AND
SALUNO.RA =:REGISTROACADEMICO

Atividad
e:
SE/SEN
O

Atividade:
ENVIO DE
EMAIL

Assunto

[Informe Acadmico] Ocorrncias por Aluno

Destinatri
os

Activity=rmsConsSQLActivity2, Path=Fields["EMAIL"].AsStringArray
'Prezado Aluno "' + rmsConsSQLActivity2.NOME + '",' +
NewLine+
NewLine+

Atividade:
EXPRESS
O

Expresses

Valor
Calculado
OBSERVAO
1

Analista: Felipe David Evangelista


Pgina 27 de 40

'Foi registrada uma nova ocorrncia em seu Registro Acadmico, totalizando 3 (trs)
ocorrncias em um perodo de 3 (trs) meses.'+
NewLine+
NewLine+
'Solicitamos que entre em contato com a Secretaria para maiores esclarecimentos.'+
NewLine+
NewLine+
NewLine+
'Setor de Registro Acadmico do Colgio TOTVS'+
'Favor no responder este email.'
NewLine+
NewLine

Activity=rmsSendEmailActivity1, Path=Body

FRMULA
VISUAL
DESCRIO

GATILHO

29.GRAVAR INFORMAO DO PRODUTO NO HISTRICO DO ITEM DE


MOVIMENTO
Workflow que tem por objetivo gravar informaes do Anexo "Cliente/Fornecedor"
do cadastro do Produto no campo Histrico do Item de Movimento, ao salvar o
movimento.
Cadastros >> Antes da Atualizao do Registro (Incio) >> MovMovimentoAction
LISTA DE ITENS

Activity=RMSWorkflow,
Path=Tables["TITMMOV"].Rows

SELECT

ATIVIDAD
ES

PARA
CADA
ITERA
O

CONSULTA
SQL

EXPRESS
O

TPRDCFO.CODNOFORN,
TPRDCFO.CODCFO,
TPRD.CODIGOPRD,
TPRDCFO.CAMPOLIVRE
FROM
TPRDCFO (NOLOCK)
INNER JOIN TPRD (NOLOCK)
ON TPRDCFO.CODCOLIGADA = TPRD.CODCOLIGADA
AND TPRDCFO.IDPRD =
TPRD.IDPRD
WHERE
TPRDCFO.IDPRD =:ID_ITEM
AND TPRD.CODCOLIGADA
=:COLIGADA
AND TPRDCFO.CODCFO
=:CLIFOR

EXPRESSES

VALOR CALCULADO

Activity=RMSWorkflow,
Path=Tables["TMOV"].Item["CODCFO"].AsString
Activity=rmsForEachActivity1,
Path=Fields["CODCOLIGADA"].AsShort
Activity=rmsForEachActivity1,
Path=Fields["IDPRD"].AsInteger

'Histrico Anterior: ' +


rmsForEachActivity1.HISTORICOCURTO +
NewLine +
NewLine +
'CODNOFORN: ' +
rmsConsSQLActivity1.CODNOFORN +
NewLine +
'CAMPO LIVRE: ' +
rmsConsSQLActivity1.CAMPOLIVRE

Activity=rmsForEachActivity1,
Path=Fields["HISTORICOCURTO"].AsString

IMAGEM

OBSERVA
O1

O campo Histrico Curto deve estar habilitado/parametrizado no item de


movimento.

Analista: Felipe David Evangelista


Pgina 28 de 40

FRMULA
VISUAL

30.VALIDAR PREENCHIMENTO DE NOME DE FUNCIONRIO COM ACENTO

DESCRIO

Frmula Visual que tem por objetivo impedir que sejam cadastrados funcionrios
com nomes acentuados, ou com .

GATILHO

Cadastros >> Antes de Salvar o Registro >> FopFuncAction

ATIVIDAD
ES

Atividad
e:
SE/SEN
O

CONDIO DECLARATIVA
GERAR
EXCEO

Mensagem
de Erro

new System.Text.RegularExpressions.Regex("[---]").IsMatch(this.Tables["PFUNC"]
["NOME"].AsString)
No permitido utilizar acento no campo NOME do Funcionrio.

OBSERVAO
1
FRMULA
VISUAL

31.VALIDAR INFORMAO ORIGINAL DO CAMPO DESCRIO DA SEO

DESCRIO

Frmula Visual que tem por objetivo validar a informao original do campo
Descrio do cadastro de Seo.

GATILHO

Cadastros >> Antes de Salvar o Registro >> FopSecaoAction

ATIVIDAD
ES

Atividad
e:
SE/SEN
O

CONDIO DECLARATIVA
GERAR
EXCEO

Mensagem
de Erro

this.Tables[PSECAO][DESCRICAO].
OriginalValue.ToString().ToLower().Contains("rm
sistemas")
Cadastro INATIVO. No permitido alteraes em Sees RM
SISTEMAS.

OBSERVAO
1
FRMULA
VISUAL

32.VALIDAR INFORMAO DO CAMPO DESCRIO DA SEO

DESCRIO

Frmula Visual que tem por objetivo validar a informao do campo Descrio do
cadastro de Seo.

GATILHO

Cadastros >> Antes de Salvar o Registro >> FopSecaoAction

ATIVIDAD
ES

Atividad
e:
SE/SEN
O

CONDIO DECLARATIVA
GERAR
EXCEO

OBSERVAO
1

Analista: Felipe David Evangelista


Pgina 29 de 40

Mensagem
de Erro

this.Tables["PSECAO"]
["DESCRICAO"].AsString.ToLower().Contains("rm
sistemas")
No permitido utilizar Sees RM SISTEMAS.

FRMULA
VISUAL

33.ENVIAR EMAIL PELO VIA PROCESSO DO CADASTRO DE FUNCIONRIO

DESCRIO

Enviar Email via Processo do Cadastro de Funcionrios.

GATILHO

Processos de Frmula Visual >> FopFuncAction >> Tipo de Ligao: Viso com
registros selecionados
LISTA DE ITENS

ATIVIDAD
ES

PARA
CADA
ITERA
O

EXPRESSO
SEQUNCI
A

IMAGEM

OBSERVA
O1

Analista: Felipe David Evangelista


Pgina 30 de 40

ENVIO DE
EMAIL

Activity=RMSWorkflow, Path=Tables[0].Rows
EXPRESSES

rmsForEachActivity1.CHAPA

VALOR
CALCULADO

Activity=rmsSendEmailActivity1,
Path=Body

ASSUNTO

[TOTVS] Teste envio de email

DESTINATRIO
S

david@totvs.com.br

REMETENTE

GlobalCompany

TEXTO DO
EMAIL

Ser preenchido pela atividade Expresso

FRMULA
VISUAL
DESCRIO
GATILHO

34.VALIDAR PREENCHIMENTO DE CENTRO DE CUSTO (CAMPO COMPLEMENTAR)


POR INSUMO
Frmula Visual que tem por objetivo impedir que seja informado um Centro de
Custo invlido na Pasta Campos Complementares do Cadastro de Insumos.
Cadastros >> Antes de Salvar Registro >> PrjIsmData

CONSULT
A SQL

/*
Cliente:
Utilizao: Integrao com Frmula Visual para validao de incluso de Rateio de Centro de Custo por Atividade e Incluso de Insumos
Mdulo: TOTVS Obras e Projetos
Autor: Felipe David Evangelista
Data Criao: 06/06/2013
Data Alterao: 07/06/2013
*/
DECLARE @FILIALRM VARCHAR(10), @CENTROCUSTORM VARCHAR(50)
SET @FILIALRM = ( SELECT IDINTEGRACAO
FROM MPRJ (NOLOCK)
INNER JOIN GFILIAL (NOLOCK) ON MPRJ.CODCOLIGADA = GFILIAL.CODCOLIGADA AND MPRJ.CODFILIAL = GFILIAL.CODFILIAL
WHERE MPRJ.IDPRJ =:ID_PROJETO
AND MPRJ.CODCOLIGADA =:COLIGADA
)
SET @CENTROCUSTORM = ( SELECT CODREDUZIDO
FROM GCCUSTO (NOLOCK)
WHERE GCCUSTO.CODCCUSTO =:CODCUSTO
)
SELECT COUNT(*) CONTADOR
FROM VW_CTT020 (NOLOCK)
WHERE VW_CTT020.CTT_FILIAL = @FILIALRM
AND VW_CTT020.CTT_CUSTO = @CENTROCUSTORM
AND VW_CTT020.CTT_BLOQ = 2

/*
Legenda
CTT_BLOQ = 1 (bloqueado)
CTT_BLOQ = 2 (desbloqueado)

Ponto de Atencao
Eh necessario a criacao da VIEW 'VW_CTT020' no banco de dados CorporeRM,
visto o no funcionamento de consultas com relacionamento entre tabelas
utilizando o recurso 'Banco de dados externo', e Linked Server.
*/

Activity=RMSWorkflow, Path=Tables["MISMCOMPL"].Item["CC"].AsString
Activity=RMSWorkflow, Path=Tables["MIsm"].Item["CODCOLIGADA"].AsShort

Activity=RMSWorkflow, Path=Tables["MIsm"].Item["IDPRJ"].AsInteger

ATIVIDAD
ES

CONSULT
A SQL

/*
Cliente:
Utilizao: Integrao com Frmula Visual para validao de Incluso de Insumos
Mdulo: TOTVS Obras e Projetos
Autor: Felipe David Evangelista
Data Criao: 07/06/2013
Data Alterao: 07/06/2013
*/

SELECT MASCARACC FROM GCCUPAR (NOLOCK)


WHERE CODCOLIGADA =:COLIGADA

Activity=RMSWorkflow, Path=Tables["MIsm"].Item["CODCOLIGADA"].AsShort

CONDIO
DECLARATIVA
Atividad
e:
SE/SEN
O

EXPRESS
O

Expresso

Valor
Calculado

OBSERVAO
1

(this.DataSet.Tables[0].Rows[0].RowState == System.Data.DataRowState.Added
|| this.DataSet.Tables[0].Rows[0].RowState ==
System.Data.DataRowState.Modified) &&
this.rmsConsSQLActivity1.Fields["CONTADOR"].AsInteger < 1 && !
this.Tables["MISMCOMPL"]["CC"].IsNull
'Centro de Custo informado nos Campos Complementares invlido.' +
NewLine +
NewLine +
' Possveis causas: ' +
NewLine +
' - Cdigo informado fora da mscara (' + rmsConsSQLActivity2.MASCARACC + ');' +
NewLine +
' - Centro de Custo no localizado na Base de Dados do Protheus, ou bloqueado;' +
NewLine +
NewLine

Activity=rmsThrowActivity1, Path=Message

GERAR
Mensagem
teste
de Erro
EXCEO
Deve existir o campo complementar MISMCOMPL.CC cadastrado na base de
dados.

Analista: Felipe David Evangelista


Pgina 31 de 40

FRMULA
VISUAL

35.VALIDAR TAMANHO DO CAMPO CODIGO DE PROJETO

DESCRIO

Frmula Visual que tem por objetivo validar o tamanho do campo Cdigo do
Projeto no TOTVS Obras e Projetos (RM Solum).

GATILHO

Cadastros >> Antes de Salvar Registro >> PrjPrjData

ATIVIDAD
ES

Atividad
e:
SE/SEN
O

CONDIO
DECLARATIVA

this.Tables["MPRJ"]["CODPRJ"].AsString.Length > 10

GERAR
EXCEO

Tamanho do campo Cdigo do Projeto deve ser no mximo 10 dgitos.

OBSERVAO
1

Analista: Felipe David Evangelista


Pgina 32 de 40

Mensagem
de Erro

FRMULA
VISUAL

36.CANCELAR ATENDIMENTO RELACIONADO

DESCRI
O

Esta Frmula Visual tem o objetivo de CANCELAR o atendimento PAI relacionado a um


atendimento FILHO que tenha sido CANCELADO.

GATILHO

Processos >> Aps a Execuo >> Avanar Etapa


SELECT

CONSULTA
SQL

FROM

HATENDIMENTOSRELACIONADOS.CODCOLIGADA,
HATENDIMENTOSRELACIONADOS.CODLOCAL,
HATENDIMENTOSRELACIONADOS.CODATENDIMENTO,
H2.CODSTATUS,
HATENDIMENTOSRELACIONADOS.CODCOLIGADAFILHO,
HATENDIMENTOSRELACIONADOS.CODLOCALFILHO,
HATENDIMENTOSRELACIONADOS.CODATENDIMENTOFILHO,
HATENDIMENTOBASE.CODSTATUS CODSTATUSFILHO
HATENDIMENTOBASE
INNER JOIN HATENDIMENTOSRELACIONADOS
ON
HATENDIMENTOSRELACIONADOS.CODCOLIGADAFILHO
= HATENDIMENTOBASE.CODCOLIGADA
AND HATENDIMENTOSRELACIONADOS.CODLOCALFILHO
= HATENDIMENTOBASE.CODLOCAL
AND HATENDIMENTOSRELACIONADOS.CODATENDIMENTOFILHO = HATENDIMENTOBASE.CODATENDIMENTO
INNER JOIN HATENDIMENTOBASE H2
ON HATENDIMENTOSRELACIONADOS.CODCOLIGADA
= H2.CODCOLIGADA
AND HATENDIMENTOSRELACIONADOS.CODLOCAL
= H2.CODLOCAL
AND HATENDIMENTOSRELACIONADOS.CODATENDIMENTO = H2.CODATENDIMENTO

WHERE

HATENDIMENTOBASE.CODSTATUS = 'C'
AND HATENDIMENTOBASE.CODTIPOATENDIMENTO = '8'
AND H2.CODSTATUS <> 'C'

LISTA DE
ITENS

ATIVIDAD
ES

PARA CADA
ITERAO

SEQUENCIA

Activity=rmsConsSQLActivity1, Path=Tables["Resultado"].Rows

AVANCAR
ETAPA

Cdigo do
Atendimento
Coligada do
Atendimento
Localidade do
Atendimento
Cdigo da Coligada
Usurio
Motivo de Repasse
Prxima Etapa

Analista: Felipe David Evangelista


Pgina 33 de 40

Activity=rmsForEachActivity1,
Path=Fields["CODATENDIMENTO"].
AsInteger
Activity=rmsForEachActivity1,
Path=Fields["CODCOLIGADA"].AsI
nteger
Activity=rmsForEachActivity1,
Path=Fields["CODLOCAL"].AsInteg
er
Activity=rmsForEachActivity1,
Path=Fields["CODCOLIGADA"].AsI
nteger
mestre
5
47

IMAGEM

Analista: Felipe David Evangelista


Pgina 34 de 40

FRMULA
VISUAL
DESCRIO
GATILHO

37.HABILITAR CAMPO IMPRODUTIVO PARA RECURSOS DA COMPOSIO


Workflow que tem por objetivo habilitar o campo improdutivo para os Recursos
das Composies selecionadas na viso de Composies.
Processos de Frmula Visual >> PrjCmpAction >> Viso com registros
selecionados
LISTA DE
ITENS

Activity=RMSWorkflow, Path=Tables["MCmp"].Rows
SELECT

Activity=rmsForEachActivity1,
Path=Fields["CODCOLIGADA"].AsShort

MRECCMP.CODCOLIGADA,

MRECCMP.IDPRJ,

Activity=rmsForEachActivity1,
Path=Fields["IDCMP"].AsInteger

MRECCMP.IDREC,

Atividad
e:
CONSULT
A SQL

MRECCMP.IDPRJREC,

MRECCMP.IDISM,

MRECCMP.IDCMP
FROM

MRECCMP (NOLOCK),
MISM

(NOLOCK),
MCMP
(NOLOCK)
WHERE
MISM.CODCOLIGADA

MRECCMP.CODCOLIGADA =
AND

MRECCMP.IDPRJ = MISM.IDPRJ

Activity=rmsForEachActivity1,
Path=Fields["IDPRJ"].AsInteger

AND
MRECCMP.IDISM = MISM.IDISM
AND
MRECCMP.CODCOLIGADA = MCMP.CODCOLIGADA

ATIVIDAD
ES

Atividad
e:
PARA
CADA
ITERA
O

AND
MRECCMP.IDPRJ = MCMP.IDPRJ
AND
MRECCMP.IDCMP = MCMP.IDCMP
AND
MRECCMP.CODCOLIGADA =:COLIGADA
AND
MRECCMP.IDPRJ =:ID_PROJETO
AND
MRECCMP.IDCMP =:ID_COMPOSICAO
AND
SUBSTRING (MISM.CODISM,1,2) IN ('IP','IH','DE')
AND
SUBSTRING (MCMP.CODCMP,1,2) IN ('IE')

Atividade:
SEQUENCI
A

Atividad
e:
PARA
CADA
ITERA
O

IMAGEM

Analista: Felipe David Evangelista


Pgina 35 de 40

Atividade:
SEQUENCIA

Atividad
e:
SE/SEN
O

CONDIO
DECLARATI
VA

!
this.rmsForEachActivity2.
Fields["IDISM"].IsNull

Atividade:
LER
REGISTRO

Activity=rmsForEachActivity2,
Path=Fields["CODCOLIGADA"].AsSh
ort
Activity=rmsForEachActivity2,
Path=Fields["IDCMP"].AsInteger
Activity=rmsForEachActivity2,
Path=Fields["IDREC"].AsInteger
Activity=rmsForEachActivity2,
Path=Fields["IDPRJREC"].AsInteger
Activity=rmsForEachActivity2,
Path=Fields["IDISM"].AsInteger
1

Atividade:
EXPRESSAO

Express
o
Valor
Calculad
o

Atividade:
SALVAR
REGISTRO

rmsReadRecordActivit
y1

1
Activity=rmsReadRecordA
ctivity1,
Path=Fields["IMPRODUTIV
O"].AsInteger

OBSERVA
O1

Quais insumos sero alterados est definido na Consulta SQL.

Analista: Felipe David Evangelista


Pgina 36 de 40

FRMULA
VISUAL

38.ALTERAR STATUS DO LANAMENTO PARA CANCELAMENTO DE LANAMENTO


NO SGI

DESCRI
O

Esta Frmula Visual tem o objetivo de ALTERAR o Status do Lanamento Financeiro do


TOTVS Gesto Financeira ao Cancelar lanamento do TOTVS Gesto Imobiliria relacionado
ao lanamento financeiro.

GATILHO

Processos >> FinLanAction


EXECUTE UPDATE_STATUSFLAN :CODCOLIGADA, :IDLAN
SELECT GCOLIGADA.CODCOLIGADA
FROM GCOLIGADA(NOLOCK)
WHERE GCOLIGADA.CODCOLIGADA =:CODCOLIGADA

ATIVIDAD
ES

Atividad
e:
CONSULT
A SQL

CODCOLIGAD
A

Activity=RMSWorkflow, Path=Fields.Item["CODCOLIGADA"].AsInteger

IDLAN

Activity=RMSWorkflow, Path=Fields["IDLAN"].AsInteger

USE [CORPORERM_TESTE]
GO
/****** Object: StoredProcedure [dbo].[UPDATE_STATUSFLAN]
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[UPDATE_STATUSFLAN]
@CODCOLIGADA VARCHAR(2),
@IDLAN VARCHAR(10)
AS
BEGIN

Procedure

TRANSACTION
UPDATE
SET
FROM
WHERE

FLAN
FLAN.STATUSLAN = 2
FLAN(NOLOCK)
FLAN.CODCOLIGADA = @CODCOLIGADA AND
FLAN.IDLAN = @IDLAN AND
FLAN.STATUSLAN <> 1 AND
FLAN.CODAPLICACAO = 'X'

IF @@ERROR <> 0
ROLLBACK
ELSE
COMMIT

Analista: Felipe David Evangelista


Pgina 37 de 40

Script Date: 02/24/2014 14:48:27 ******/

FRMULA
VISUAL

39.SALTAR ATENDENTE QUE J APROVOU ATENDIMENTO

DESCRI
O

Esta Frmula Visual tem o objetivo de SALTAR o atendente de destino de um atendimento,


caso o atendimento j tenha passado pelo mesmo, durante o processo de aprovao.

GATILHO

Processos >> Aps a Execuo >> Avanar Etapa


DECLARE
@CODATENDIMENTO VARCHAR (20),
@COLIGADAATEND VARCHAR (10),
@CODLOCALATEND VARCHAR (10),
@RESULTADO VARCHAR (10),
@ETAPAATUAL VARCHAR (10),
@TIPOATENDIMENTO VARCHAR (10)
SET
SET
SET
SET

@CODATENDIMENTO =:FRM_ATEND001
@COLIGADAATEND
=:FRM_ATEND002
@CODLOCALATEND
=:FRM_ATEND003
@ETAPAATUAL
= (

SELECT
FROM
WHERE

CODTAREFA
HATENDIMENTOEXT (NOLOCK)
CODATENDIMENTO = @CODATENDIMENTO
AND CODCOLIGADA = @COLIGADAATEND
AND CODLOCAL = @CODLOCALATEND

)
SET @TIPOATENDIMENTO

= (

SELECT
FROM
WHERE

CODTIPOATENDIMENTO
HATENDIMENTOEXT (NOLOCK)
CODATENDIMENTO = @CODATENDIMENTO
AND CODCOLIGADA = @COLIGADAATEND
AND CODLOCAL = @CODLOCALATEND

Atividad
e:
CONSULT
A SQL

IF (
SELECT
COUNT(*)
HHISTORICOEXT (NOLOCK)
RIGHT JOIN HATENDIMENTOEXT (NOLOCK) ON

FROM

AND HATENDIMENTOEXT.CODLOCAL = HHISTORICOEXT.CODLOCAL

WHERE

ATIVIDAD
ES

HATENDIMENTOEXT.CODCOLIGADA =

HHISTORICOEXT.CODCOLIGADA

AND HATENDIMENTOEXT.CODATENDIMENTO = HHISTORICOEXT.CODATENDIMENTO


HHISTORICOEXT.CODATENDIMENTO = @CODATENDIMENTO
AND HHISTORICOEXT.CODCOLIGADA = @COLIGADAATEND
AND HHISTORICOEXT.CODLOCAL = @CODLOCALATEND
AND CODATENDPARA = HATENDIMENTOEXT.CODATENDENTERESP

) > 1
BEGIN SET @RESULTADO = 1 /* ATENDIMENTO ENVIADO MAIS DE UMA VEZ PARA ATENDENTE ATUAL */
END
ELSE
BEGIN SET @RESULTADO = 0
END
SELECT @RESULTADO AS RESULTADO, @ETAPAATUAL AS ETAPAATUAL, @TIPOATENDIMENTO AS TIPOATENDIMENTO

FRM_ATEND00
1
FRM_ATEND00
2
FRM_ATEND00
3
Condio
Declarativa
Atividad
e:
SE/SEN
O

Atividade:
AVANAR
ETAPA

Analista: Felipe David Evangelista


Pgina 38 de 40

Activity=RMSWorkflow, Path=Fields["CODATENDIMENTO"].AsInteger

Activity=RMSWorkflow, Path=Fields["CODCOLIGADA"].AsInteger

Activity=RMSWorkflow, Path=Fields["CODLOCAL"].AsInteger
this.rmsConsSQLActivity1.Fields["TIPOATENDIMENTO"].AsString == "12" &&
this.rmsConsSQLActivity1.Fields["RESULTADO"].AsString == "1" &&
(this.rmsConsSQLActivity1.Fields["ETAPAATUAL"].AsString == "53" ||
this.rmsConsSQLActivity1.Fields["ETAPAATUAL"].AsString == "55")
Cdigo do
Atendimento
Coligada do
Atendimento
Localidade do
Atendimento

Activity=RMSWorkflow, Path=Fields["CODATENDIMENTO"].AsInteger
Activity=RMSWorkflow, Path=Fields["CODCOLIGADA"].AsInteger
Activity=RMSWorkflow, Path=Fields["CODLOCAL"].AsInteger

Cdigo da Coligada

Activity=RMSWorkflow, Path=Fields["CODCOLIGADA"].AsInteger

Usurio

totvs.felipe

Motivo do Repasse

Prxima Etapa

56

Analista: Felipe David Evangelista


Pgina 39 de 40

40.

CONFIGURAO PARA A FRMULA VISUAL FUNCIONAR

i. Parar o servio RM.Host.Service;


ii. Localizar o arquivo RM.Host.Service.exe.config (geralmente localizado em
C:\totvs\CorporeRM\RM.Net);
1. Caso no exista a linha <add key="WorkflowEnabled" value="true" /> dentro do
arquivo, insira a linha seguindo o exemplo abaixo:
<appSettings>
...
<add
key="WorkflowEnabled"
value="true" />
...
</appSettings>

Observao:
- Caso a linha j exista no arquivo, deve-se verificar se o valor true est informado
logo aps a palavra value.
- Este procedimento dever ser realizado em todas as estaes onde a validao
atravs da Frmula Visual ser realizada (estaes dos usurios).
- Este procedimento no ser necessrio em verses superiores 11.82.

Analista: Felipe David Evangelista


Pgina 40 de 40

Das könnte Ihnen auch gefallen