FAQs - Suporte técnico

Cross Segmentos - TOTVS Aprovações e Atendimento - Atendimento - Funções de fórmulas disponíveis para os atendimentos

Ocorrência
Quais as funções de fórmulas disponíveis para os atendimentos?

Ambiente
Cross Segmento - TOTVS Aprovações e Atendimentos - Todas as versões

Solução
Abaixo segue as Funções de Fórmulas disponíveis para o módulo TAA.
Estas fórmulas são compostas por funções e podem ser vinculadas nas etapas, para executar processos nos atendimentos, como por exemplo, alterar valor de um campo, avançar etapas, repassar atendimento, entre outros. As funções são as ações que serão executadas nas fórmulas, e podem conter um ou mais parâmetros para execução.

Funções
ABS
Retorna Valor Absoluto Máximo.
• ABS(VALOR)

ALTERARCLIENTEATENDIMENTO
Altera o cliente do atendimento
PAR. 1 - Coligada do cliente [Inteiro]
PAR. 2 - Código do cliente [String]
PAR. 3 - Tipo do cliente podendo ser 'P' para Pessoa, 'C' para Cliente, 'T' para Prospect, 'A' para
Aluno ou 'R' para Professor [string]

ALTERARCAMPOREQUISICAO
Altera qualquer campo de qualquer requisição.

PAR. 1 - Nome da tabela da qual sera modificada [string]
PAR. 2 - Coligada da requisição a ser alterada [inteiro]
PAR. 3 - Código da requisição a ser alterada [inteiro]
PAR. 4 - Lista de campos e valores a serem alterados na requisição [string]

Formato: Sem espaços e aspas para campos texto.
Pares de valor: CAMPO1=VALOR1;CAMPO2=VALOR2;PARAMETRO1.<nome do parametro>=VALORPAR1; CAMPO3=VALOR3;PARAMETRO2.<nome do parametro>=VALOR4;...)

ARRED
Retorna Valor Arredondado.

• ARRED (VALOR)

ARREDVALOR
Calcula o múltiplo maior e mais próximo do Valor_A de acordo com o que foi passado no Valor_B.
• ARREDVALOR(VALOR_A, VALOR_B)
• Exemplo: Um funcionário tem que receber R$4,55, porém só temos notas de R$2,00 no caixa, então ARREDVALOR (4.55, 2) = 6.
Se só tivéssemos notas de R$1,00 o resultado seria ARREDVALOR (4.55, 1) = 5.

AVANCARETAPAATENDIMENTO
Avança/Posiciona o atendimento para a etapa informada como parâmetro.
• AVANCARETAPAATENDIMENTO (VALOR)

ALTERARCAMPOATENDIMENTO
Altera um ou mais campos ou parâmetros (segundo o tipo de atendimento) do atendimento. Sem espaços e aspas para campos texto.
Pares de valor: CAMPO1=VALOR1; CAMPO2=VALOR2;PARAMETRO1.<nome doparametro>=VALORPAR1; CAMPO3=VALOR3;PARAMETRO2.<nome do parametro>=VALOR4;...

• Exemplo: ALTERARCAMPOATENDIMENTO('CODCATEGORIAGERAL=9;PARAMETRO.Nome Atendente = Vivian')

AGENDARARESPONDER
Altera o status de um atendimento para Agendado a responder.
• AGENDARARESPONDER(STRING, STRING, VALOR, STRING)

Exemplo: AGENDARARESPONDER("10/10/2006", "20/10/2006", -1 , '' )

PAR. 0 - Data de despertamento [data];
PAR. 1 - Prazo limite [data];
PAR. 2 - Motivo do repasse [inteiro];
PAR. 3 - Justificativa [texto]

AGENDADORESPONDIDO
Altera o status de um atendimento para Agendado Respondido.

ALTERARPARAMETROATENDIMENTO
Altera o valor de um parâmetro de um atendimento (de acordo com o tipo de atendimento). Deve ser informado o nome do parâmetro e o seu valor.

ADICIONARSOLICITACAO
Atualiza o campo solicitação do atendimento(do contexto) com o texto informado como parâmetro, adicionando novo texto.
PAR. 0 - Novo texto a ser gravado/adicionado [texto].

ADICIONARDISCUSSAO
Atualiza o campo discussão do atendimento(do contexto) com o texto informado como parâmetro, adicionando novo texto.
PAR. 0 - Novo texto a ser gravado/adicionado [texto].

ADICIONARSOLUCAO
Atualiza o campo solução do atendimento(do contexto) com o texto informado como parâmetro, adicionando novo texto.
PAR. 0 - Novo texto a ser gravado/adicionado [texto].

APROVARENTENDIMENTO
Para o atendimento do contexto, aprova o entendimento mais recente que esteja não aprovado ou aguardando aprovação/desaprovação. Retorna 1 (um) caso efetue a aprovação com sucesso ou 0 (zero) gere algum erro ou não encontre um entendimento a ser aprovado.

ALTERARPARAMETROATENDIMENTO
Altera o valor de um parâmetro de um atendimento (de acordo com o tipo de atendimento). Deve ser informado o nome do parâmetro e o seu valor.


• ALTERARPARAMETROATENDIMENTO (STRING, STRING)

ASCII
Retorna o código ASCII do primeiro caractere do string
• ASCII(STRING)

CAMPOSATENDIMENTO
Retorna qualquer campo ou parâmetro (segundo o tipo de atendimento) de um atendimento. Para buscar o valor de um parâmetro deve-se usar o campo no formato PARAMETRO.<nome do parametro>.
• Retornar campo: CAMPOSATENDIMENTO('CODSTATUS')
• Retornar parâmetro: CAMPOSATENDIMENTO('PARAMETRO.Nome Campo)

CAMPOSATENDENTE
Retorna qualquer campo do atendente informado como parâmetro.

CAMPOSATENDENTE( VALOR , STRING )
PAR. 1 - Código do atendente [inteiro];
PAR. 2 - campo cujo valor deseja-se retornar [texto];

CALLWEBSERVICE
Chama um webService de acordo com os parâmetros usados.

PAR. 1 - Endereço de acesso do webService [string] (Ex. http://abc.defgh/webService.asmx)
PAR. 2 - {+}NameSpace+ da action/metodo do webService que erá utilizado [string]
(Ex.http://namespace.com)
PAR. 3 - Nome da Action/Método [string]
PAR. 4 - Parametro [string]

CANCELAR
Executa a função de Cancelar um atendimento.
CHR
Retorna o caráter cujo código ASCII foi passado como parâmetro.
• CHR(VALOR)

CODATENDENTERESPONSAVEL
Retorna o código do atendente responsável pelo atendimento.
• CODATENDENTERESPONSAVEL

CODIGOCLIENTE
Retorna o código do cliente.
• CODIGOCLIENTE

CODIGOREPRESENTANTE
Retorna o código do representante.
• CODIGOREPRESENTANTE

CODIGOPRODUTO
Retorna o código do produto.
• CODIGOPRODUTO

CODIGODETALHEPRODUTO
Retorna o código do detalhe do produto.
• CODIGODETALHEPRODUTO

CODIGOPRODUTOPAI
Retorna o código do produto pai (no RMNucleus).
• CODIGOPRODUTOPAI

CODATENDENTECONTATOCOMCLIENTE
Retorna o código do atendente responsável pelo contato com o cliente.
• CODATENDENTECONTATOCOMCLIENTE

COLOCAREMANDAMENTO
Altera o status de um atendimento colocando-o Em Andamento.
• COLOCAREMANDAMENTO

CHEFEIMEDIATORESPATENDIMENTO
Retorna a coligada e código do atendente (no formato valor;valor) do chefe imediato do atual atendente responsável pelo atendimento.
• CHEFEIMEDIATORESPATENDIMENTO

CHEFEIMEDIATOATENDENTE
Retorna a coligada e código do atendente (no formato valor;valor) do chefe imediato do atendente informado como parâmetro (coligada do atendente, código do atendente).
• CHEFEIMEDIATOATENDENTE(VALOR, VALOR)

CONCATENA
Concatena dois valores (parâmetros um e três) usando um separador (parâmetro dois).
• CONCATENA("1",CODATENDENTECONTATOCOMCLIENTE,";")

CRIARNOVOATENDIMENTO
Cria um atendimento em branco para o atendente responsável pelo atendimento do contexto e preenche o assunto e a solicitação deste novo atendimento como sendo o texto informado nos parâmetro (nesta ordem, assunto e solicitação)! Retorna o número do atendimento criado.
• CRIARNOVOATENDIMENTO(STRING, STRING)

CRIARCOPIAATENDIMENTO
Cria cópia de um atendimento para o atendente responsável pelo atendimento original. O atendimento original deve ser informado via parâmetro, se não informado, o atendimento original será o atendimento do contexto. Retorna o código do atendimento gerado.

CRIARCOPIAATENDIMENTO(VALOR, VALOR, VALOR, STRING, VALOR)

PAR. 0 - Localidade do atendimento a se copiar [inteiro];
PAR. 1 - Coligada do atendimento a se copiar [inteiro];
PAR. 2 - Código do atendimento a se copiar [inteiro];
PAR. 3 - Lista de campos e valores a serem alterados no atendimento criado [texto].
Formato: Sem espaços e aspas para campos texto.
Pares de valor: (CAMPO1=VALOR1; CAMPO2=VALOR2;PARAMETRO1.<nome do parametro>=VALORPAR1; CAMPO3=VALOR3;PARAMETRO2.<nome do parametro>=VALOR4;...);
PAR. 4 - Indicativo se é para relacionar o novo atendimento com o original [inteiro] (0=Não Relacionar, 1=Relacionar);

CODATENDENTERESPONSAVEL
Retorna o código do atendente responsável pelo atendimento.

CODIGOCLIENTE
Retorna o código do cliente.

CODIGOREPRESENTANTE
Retorna o código do representante.

CODIGOPRODUTO
Retorna o código do produto.

COS
Retorna Cosseno.

• COS (VALOR)

CONCAT
Concatena duas strings.
• CONCAT(string1, string2)

COTACAOMOEDA
Cotação da moeda.
• COTACAOMOEDA

CONCLUIDOCONFIRMADO
Executa a função de Concluído confirmado para um atendimento.
• CONCLUIDOCONFIRMADO

CONCLUIRARESPONDER
Executa a função de Conluir a Responder para um atendimento.
• CONCLUIRARESPONDER

CONCLUIDORESPONDIDO
Executa a função de Conluído Respondido para um atendimento.
• CONCLUIDORESPONDIDO

COTAN
Retorna Cotangente.
• COTAN (VALOR)

DATANULA
Retorna uma data zerada.
• DATANULA

DECANO
Retorna ano apos decrementar n meses.
• DECANO

DECMES
Decrementa mês.
• DECMES

DESCRICAODETALHEPRODUTO
Retorna a descrição do detalhe do produto.
• DESCRICAODETALHEPRODUTO

DESCRICAOPRODUTOPAI
Retorna o nome do produto pai (no RMNucleus).
• DESCRICAOPRODUTOPAI

DEFINECONTAOCLIENTE
Define o atendente contato com o cliente como sendo o atendente informado como parâmetro.
• DEFINECONTAOCLIENTE (VALOR)

DATAALARME
Calcula a data de alarme de um atendimento. Os parâmetros indicam de qual atendimento será calculado a data de alarme, se informados valores menores que zero será calculado a data de alarme do atendimento do contexto. Retorna a data formatada como texto (dd/mm/yyyy)!

DATAALARME(VALOR, VALOR, VALOR)

PAR. 0 - Localidade do atendimento a se copiar [inteiro];
PAR. 1 - Coligada do atendimento a se copiar [inteiro];
PAR. 2 - Código do atendimento a se copiar [inteiro];

DESAPROVARENTENDIMENTO
Para o atendimento do contexto, desaprova o entendimento mais recente que esteja aprovado. Retorna 1 (um) caso efetue a desaprovação com sucesso ou 0 (zero) gere algum erro ou não encontre um entendimento a ser desaprovado.

INSERIRAPONTAMENTO
Cria um novo apontamento para o atendimento do contexto.
PAR. 0 - Data de início da atividade[data];
PAR. 1 - Hora de início da atividade[texto no formato 00:00 ou 0,00 ou 0.00];
PAR. 2 - Número de horas gastas na atividade[texto no formato 00:00 ou 0,00 ou 0.00];
PAR. 3 - Data de término da atividade[data];
PAR. 4 - Hora de término da atividade[texto no formato 00:00 ou 0,00 ou 0.00];
PAR. 5 - Percentual de completude da atividade[inteiro]
PAR. 6 - Comentário sobre o apontamento[texto]
PAR. 7 - Código do atendente do qual o apontamento será gerado[inteiro]

DIADT
Dia de uma data.

•DIADT

DATAALARMEDT
Calcula a data de alarme de um atendimento. Os parâmetros indicam de qual atendimento será calculado a data de alarme, se informados valores menores que zero será calculado a data de alarme do atendimento do contexto. Retorna a data.

PAR. 1 - Localidade do atendimento a se copiar [inteiro]
PAR. 2 - Coligada do atendimento a se copiar [inteiro]
PAR. 3 - Código do atendimento a se copiar [inteiro]

ENVIAEMAIL
Permite enviar e-mail quando a fórmula é executada e registra* na discussão do atendimento a mensagem enviada.
*registra = No campo discussão serão apresentadas as informações: De (From), Para (To), Cópia (CC), Data, Assunto, Mensagem.

Caso o email for do tipo HTML e tiver a palavra chave [ACOESDOATENDIMENTO] em seu corpo, serão incluídos links cada uma das possíveis ações do atendimento no contexto da tarefa atual.

 • ENVIAEMAIL ( STRING,STRING,STRING,STRING,STRING,BOOLEANO )
• ENVIAEMAIL('teste@teste.com.br','teste@teste.com.br','teste@teste.com.br','Assunto Teste',A função permite enviar o e-mail e registra a mensagem na discussão do atendimento para maior controle das informações. Até Breve!',True)

PAR. 0 - Informar o endereço de e-mail do remetente [String].
PAR. 1 - Informar o endereço de e-mail do destinatário [String].
PAR. 2 - Informar o endereço de e-mail que receberá uma cópia do e-mail [String].
PAR. 3 - Informar o assunto do e-mail [String].
PAR. 4 - Informar o corpo do e-mail [String].
PAR. 5 - Informar o formato do e-mail (True caso for HTML e false caso for Texto) [Bool].
EXECSQL
Execução de SQL.

• EXECSQL(STRING)
• Exemplo: Retorna o gerente da seção destino para aprovar transferência

DECL codSecaoDestino;
SETVAR(codSecaoDestino, "");
SE EXECSQL('_codSecaoTranfer' ) = VERDADE ENTAO
SETVAR(codSecaoDestino, RESULTSQL('_codSecaoTranfer', 'CODSECAO'))
FIMSE;

EXECUTARRELATORIOENVIAREMAIL

Executa o relatório no contexto do atendimento e envia para o(s) e-mail(s) passados como parâmetro.
• EXECUTARRELATORIOENVIAREMAIL ( VALOR,VALOR,STRING,STRING,STRING,STRING,STRING )
•EXECUTARRELATORIOENVIAREMAIL(1,5,'Teste da Função de Fórmula','teste@teste.com.br','teste@teste.com.br','teste@teste.com.br','teste@teste.com.br')
PAR. 1 - Coligada do Relatório [Inteiro]
PAR. 2 - Id do Relatório [Inteiro]
PAR. 3 - Assunto do E-mail [String]
PAR. 4 - Endereço de E-mail do Destinatário [String]
PAR. 5 - Endereço de E-mail do ReplyTo [String]
PAR. 6 - Endereço de E-mail ao qual será enviada uma cópia do e-mail [String]
PAR.7 - Endereço de E-mail ao qual será enviada uma cópia oculta do e-mail [String]


EXP
Retorna Exponencial.


• EXP (VALOR)

FOR
Retorna resultado de uma fórmula.

FRAC
Retorna Parte Fracionária.
• FRAC (VALOR)

GETIDDAREQUISICAO
Retorna o ID da requisição baseado nos dados do atendimento.

GETIDDAREQUISICAO
Retorna o ID da requisição baseado nos dados do atendimento.

GRUPOATENDENTECAMPOCOMPLEMENTAR
Retorna qualquer campo complementar do grupo de atendente informando os parâmetros.
•GRUPOATENDENTECAMPOCOMPLEMENTAR(VALOR, STRING)

PAR. 1 - Código do grupo de atendente [inteiro];
PAR. 2 - Campo complementar cujo valor deseja-se retornar [string]. Esta função permite operações de soma.

HOJE
Retorna data atual do sistema.

INCANO
Retorna ano apos incrementar n meses.
• INCANO

INCMES
Incrementa mês.
• INCMES

INT
Retorna Parte Inteira.
• INT (VALOR)

INTERROMPE
Interrompe o processamento da fórmula
• INTERROMPE('Favor cadastrar o campo X!')

LN
Retorna Logaritmo Neperiano.
• LN (VALOR)

LOG
Retorna Logaritmo Decimal.
• LOG (VALOR)

MAX
Retorna Máximo de Dois Valores.
• MAX (VALOR, VALOR)

MEMORIA
Recupera valor de memória.
• MEMORIA

MESDT
Mês de uma data.
• MESDT

MTDATA
Monta data.
• MTDATA

MIN
Retorna Mínimo de Dois Valores.
• MIN (VALOR, VALOR)

NOMEATENDENTERESPONSAVEL
Retorna o nome do atendente responsável pelo atendimento.
• NOMEATENDENTERESPONSAVEL

NOMECONTATOCLIRPR
Retorna o nome do contato do cliente ou representante (nesta ordem).
• NOMECONTATOCLIRPR

NOMECLIENTE
Retorna o nome do cliente.
• NOMECLIENTE

NOMECONTATOCLIENTE
Retorna o nome do contato do cliente.
• NOMECONTATOCLIENTE

NOMEREPRESENTANTE
Retorna o nome do representante.
• NOMEREPRESENTANTE

NOMECONTATOREPRESENTANTE
Retorna o nome do contato do representante.
• NOMECONTATOREPRESENTANTE

NOMEPRODUTO
Retorna o nome do produto.

PARMQRY
Valor de um campo da query do relatório.
• PARMQRY

PARAMETROSATENDIMENTO
Busca o valor de um parâmetro de um atendimento (de acordo com o tipo de atendimento). Deve ser informado o código do parâmetro.
• PARAMETROSATENDIMENTO (VALOR)

PAR
Retorna Formula. Parâmetro (que pode ser preenchido pelo aplicativo em alguns processos).
• PAR

POTENCIA
Retorna uma Potenciação.

PRODUTOCAMPOCOMPLEMENTAR
'Retorna qualquer campo complementar do produto informando os parâmetros 'PAR. 1 - Código do produto [inteiro]; '+'PAR. 2 - Campo complementar cujo valor deseja-se retornar [string]. Esta operação permite operações de soma.

• PRODUTOCAMPOCOMPLEMENTAR(VALOR, STRING)

PROXREGSQL
Avança para o próximo registro da consulta SQL.
• PROXREGSQL

RAIZ
Retorna Raiz Quadrada.
• RAIZ (VALOR)

 

Referente a função REPASSARATENDIMENTO a mesma possui uma particularidade onde somente poderá ser utilizada quando for utilizar o recurso de movimentar atendimentos via Fórmula.

REPASSARATENDIMENTO
Repassar o atendimento a outro Atendente/Grupo.

•REPASSARATENDIMENTO(VALOR, STRING, VALOR, STRING, QUALQUER)

PAR. 1 - Código do atendente [inteiro];
PAR. 2 - EMailRepasse [texto];
PAR. 3 - Motivo do repasse [inteiro];
PAR. 4 - Discussão [texto];
PAR. 5 - EMailCopia [texto]

Para que um atendimento seja repassado para um outro atendente via fórmula será necessário utilizar a seguinte sintaxe: Exemplo:

DECL ATEND;

SETVAR (ATEND, CONCATENA (1,11,';'));

ATEND;

OBS: O 1 significa o COD da coligada e o 11 refere-se ao COD do atendente que receberá o atendimento de repasse. O ponto e vírgula ( ; ) é o separador, a intenção é que na variável ATEND fique o texto '1;11'


RESULTSQL
Retorna valor de um campo da consulta SQL.


• RESULTSQL

RETPROXIMOCHEFESECAOLABORE
Retorna o código do atendente do chefe pelo atendente responsável pelo atendimento utilizando a hierarquia de seções do RMLabore.
PAR. 0 - Nível - Número de níveis de chefia a ser verificado em relação ao atendente responsável pela abertura do atendimento.

RETORNAPROXIMOCHEFESECAOLABORE
Retorna o código do atendente do chefe pelo atendente responsável pelo atendimento utilizando a hierarquia de seções do RMLabore.
PAR. 0 - CodSecao - Código da Seção em que o funcionário deve ser chefe.
PAR. 1 - CodFuncao - Código da Função que este funcionário deve ter.

RETIRACARACTEREES
Retira caracteres de uma String.
• RETIRACARACTEREES

RetNAOREPASSA
Retorno não repassa o atendimento, NÃO atualiza histórico, NÃO atualiza etapa no atendimento, NÃO executa fórmula do fluxo.
• RetNAOREPASSA

RetNAOREPASSAATULIZARESTANTE
Retorno não repassa o atendimento, atualiza histórico, atualiza etapa no atendimento, executa fórmula do fluxo.
• RetNAOREPASSAATULIZARESTANTE

RETPROXIMOCHEFESECAOLABORE
Retorna o código do atendente do chefe pelo atendente responsável pelo atendimento utilizando a hierarquia de seções do RMLabore.
PAR. 0 - Nível - Número de níveis de chefia a ser verificado em relação ao atendente responsável pela abertura do atendimento.

RETPROXIMOCHEFESECAOLABORE
Retorna código do atendente do próximo chefe (do labore) do responsável atual pelo atendimento, até um número de nível superior.
subir na hierarquia de chefes quantos níveis
codcoligada e o codatendente para quem o atendimento será repassado

RETORNAPROXIMOCHEFESECAOLABORE
Retorna código do atendente do que seja chefe na seção e que tenha a função.
Código da Seção em que o funcionário deve ser chefe
Código da Função que este funcionário deve ter
codcoligada e o codatendente para quem o atendimento será repassado

SEN
Retorna Seno.
• SEN (VALOR)

STATUSCONCLUSAOETAPA
Retorna o status (texto) de conclusão da etapa. Só funciona se usada em uma fórmula dentro da etapa.
•STATUSCONCLUSAOETAPA

SECAOORIGEMREQUISICAO
Retorna o código de seção de origem da requisição.

PAR. 1 - Código da coligada da requisição [inteiro]
PAR. 2 - Identificador (ID) da requisição [inteiro]

SECAOPAI
Busca a seção pai a partir de uma seção de referência em uma quantidade de níveis solicitado.

PAR. 1 - Código da coligada da seção [inteiro]
PAR. 2 - Código da seção de referência [string]
PAR. 3 - Nível para bucar a seção pai [inteiro]

STR
Formata um número segundo a máscara passada, retornando um string.

• STR(VALOR, STRING)

STRLEFT
Retorna "n" caracteres da string à partir da direita para a esquerda.
• STRLEFT

STRRIGHT
Retorna "n" caracteres da string à partir da esquerda para a direita.
• STRRIGHT

SUBSTR
Retorna pedaço de uma string.
• SUBSTR

TABCOLIG
Retorna o valor de uma coluna da coligada corrente.
• TABCOLIG(STRING)

TAMSTR
Retorna tamanho de uma string.
• TAMSTR

TAN
Retorna Tangente.
• TAN (VALOR)

TETO
Retorna Teto.
• TETO (Número)

TIPOATENDENTE
Retorna o tipo do atendente que foi informado como parâmetro.
• TIPOATENDENTE

TIPOCLIENTE
Retorna o tipo do cliente do atendimento. Os possíveis tipos de retorno são:'P', 'C', 'T', 'A' ou 'R' para respectivamente Pessoa, Cliente, Prospect, Aluno ou Professor.

USUARIOCORRENTE
Usuário logado no sistema.
• USUARIOCORRENTE

VAL
Converte string para número.
• VAL

VERSAO
Retorna versão do aplicativo (para relatórios, por exemplo).
• VERSAO

FÓRMULAS DIVERSAS

• Define qual grupo receberá a ocorrência dependendo de um parâmetro do atendimento

SE CAMPOSATENDIMENTO ( 'PARAMETRO.Tipo de Requisito' ) = "Delphi Win32" ENTAO
215
SENAO
193
FIMSE

• Executa uma SQL

Decl Texto;
SE EXECSQL('03.000047') = VERDADE ENTAO
SETVAR(b,RESULTSQL ( '03.000047' , 'Texto'))
FIMSE;


• Envia a ocorrência para um usuário específico

CodColigada;Codatendente.
Ex.: "1;215"


• Conclui uma ocorrência:

SE CAMPOSATENDIMENTO ( 'CODSTATUS' ) <> 'R' ENTAO
CONCLUIRARESPONDER
FIMSE;

CONCLUIDORESPONDIDO


• Repassar atendimento para atendente anterior

REPASSARDEVOLTA ( 10 )


• Definir Etapa do atendimento na abertura do mesmo

SE TIPOATENDENTE ( CODATENDENTERESPONSAVEL ) = 4 ENTAO
AVANCARETAPAATENDIMENTO(1); /* STE */
SENAO
AVANCARETAPAATENDIMENTO(2); /* PDE */
FIMSE;
RetNAOREPASSA
Repassa para a etapa anterior
AVANCARETAPAATENDIMENTO ( CAMPOSATENDIMENTO ( 'CODTAREFAANTERIOR' ) )


• Etapa Abertura

FOR('06.00015'); /* ATUALIZAÇÃO DE CAMPOS DEFAULT */

SE (CAMPOSATENDIMENTO('CODCLASSIFICACAO')= "00017") ENTAO /* TEC-DOCUMENTAÇÃO */
AVANCARETAPAATENDIMENTO(167) /* teste funcional */
SENAO
SE TIPOATENDENTE ( CODATENDENTERESPONSAVEL ) = 14 ENTAO /* EQUIPE DO MSCRM */
AVANCARETAPAATENDIMENTO ( 164 ) /Etapa de Entendimento PDE/
SENAO
SE (CAMPOSATENDIMENTO ( 'PARAMETRO.Tipo de Requisito' ) = "WebForms.NET" OU CAMPOSATENDIMENTO ( 'PARAMETRO.Tipo de Requisito' ) = "WinForms.NET") E
(CAMPOSATENDIMENTO('CODCLASSIFICACAO')= "00002" OU CAMPOSATENDIMENTO('CODCLASSIFICACAO')= "00047" OU CAMPOSATENDIMENTO('CODCLASSIFICACAO')= "00048" OU CAMPOSATENDIMENTO('CODCLASSIFICACAO')= "00049" OU CAMPOSATENDIMENTO('CODCLASSIFICACAO')= "00025" ) ENTAO
AVANCARETAPAATENDIMENTO ( 164 ) /Etapa de Entendimento PDE/
SENAO /* SE FOR PORTUGAL E MELHORIA OU IMPLEMENTAÇÃO */
SE (CAMPOSATENDIMENTO('CODCLASSIFICACAO')= "00002" OU CAMPOSATENDIMENTO('CODCLASSIFICACAO')= "00047" OU CAMPOSATENDIMENTO('CODCLASSIFICACAO')= "00048" OU CAMPOSATENDIMENTO('CODCLASSIFICACAO')= "00049" OU CAMPOSATENDIMENTO('CODCLASSIFICACAO')= "00025" ) E FOR("W.T.29") = "Sim" ENTAO
AVANCARETAPAATENDIMENTO ( 164 ) /Etapa de Entendimento PDE/
SENAO
SE TIPOATENDENTE ( CAMPOSATENDIMENTO ( 'CODATENDENTERESP' ) ) = 6 E (FOR("05.00031") = VERDADE ) ENTAO /* QUALQUER OCORRENCIA ABERTA PELO QSW */
AVANCARETAPAATENDIMENTO(167) /* teste funcional */
SENAO
SE TIPOATENDENTE ( CAMPOSATENDIMENTO ( 'CODATENDENTERESP' ) ) = 6 E (FOR("05.00032") = VERDADE) ENTAO /* QUALQUER OCORRENCIA ABERTA PELO QSW */
AVANCARETAPAATENDIMENTO(356) /* HELP */
SENAO
SE CAMPOSATENDIMENTO ( 'CODCLASSIFICACAO' ) = "00044" ENTAO /* Caso de Teste */
AVANCARETAPAATENDIMENTO(223) /* Caso de Teste */
SENAO
AVANCARETAPAATENDIMENTO ( 161 ) /Etapa de Entendimento STE/
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE;

SE (TIPOATENDENTE ( CAMPOSATENDIMENTO ( 'CODATENDENTERESP' ) ) = 4) OU (TIPOATENDENTE ( CAMPOSATENDIMENTO ( 'CODATENDENTERESP' ) ) = 5) OU (CAMPOSATENDIMENTO ( 'CODATENDENTERESP' ) = 2738 ) OU /* USUARIO AGILIS */ (TIPOATENDENTE ( CAMPOSATENDIMENTO ( 'CODATENDENTERESP' ) ) = 18) ENTAO
DEFINECONTAOCLIENTE ( CODATENDENTERESPONSAVEL )
FIMSE;

RetNAOREPASSA


• Etapa Implementação

for("06.00050"); /* verifica se a classificacao está ativa */
for("07.00104"); /* Campos defaults do First */
for("05.00008"); /* Exige preenchimento do percentual de conclusão */
for("06.00007"); /* Não permite o repasse de oc TEC-HOMOLOGAÇÃO */
for("06.00022"); /* Valida preenchimento de campos */
for("06.00026"); /* Valida o prazo limite com o prazo da versão */
for("05.00007"); /* Cria ocorrência de caso de teste */
for("06.00046"); /* Caso não seja bug, valida campos */
for("03.00806"); /* Atribui a e espec. necess como sim, caso seja oc de .net */
for("07.00106"); /* Valida se a ocorrência é de melhoria futura */

/* Avança etapa da ocorrência filha para a mesma etapa da oc PAI */
SE for("06.00042") = VERDADE ENTAO
RetNAOREPASSA
SENAO
SE ((CAMPOSATENDIMENTO ( 'PARAMETRO.Tipo de Requisito' ) = "WebForms.NET" OU CAMPOSATENDIMENTO ( 'PARAMETRO.Tipo de Requisito' ) = "WinForms.NET" OU CAMPOSATENDIMENTO ( 'PARAMETRO.Tipo de Requisito' ) = "Delphi Win32") E
CAMPOSATENDIMENTO ( 'CODTAREFA' ) <> 242 e CAMPOSATENDIMENTO ( 'CODTAREFA' ) <> 173 E CAMPOSATENDIMENTO ( 'CODTAREFA' ) <> 174) E CAMPOSATENDIMENTO ( 'Parametro.Especificação Necessária') = "Sim" ENTAO
AVANCARETAPAATENDIMENTO ( 173 ) /*ETAPA DE ESPECIFICAÇÃO */
SENAO
SE EXECSQL ( '03.000054' ) <> VERDADE E CAMPOSATENDIMENTO ( 'Parametro.Script') = "Sim" ENTAO
INTERROMPE ( 'Favor cadastrar uma ocorrência de criação de script vinculada a esta!' )
SENAO /* SE O REQUISITO IMPACTAR EM LOCALIZAÇÃO ENTAO ENVIA PARA ETAPA DE PROP. LOCALIZAÇÃO */
SE FOR("06.00025") = VERDADE E CAMPOSATENDIMENTO ( 'CODTAREFA' ) <> 242 ENTAO
AVANCARETAPAATENDIMENTO ( 242 )
SENAO /* caso já exista alguém definido na aba parametro, a preferência é dele */
SE concatena(CAMPOSATENDIMENTO ( 'PARAMETRO.Responsável pela Implementação'),'','') <> '' ENTAO
CONCATENA('1',CAMPOSATENDIMENTO ( 'PARAMETRO.Responsável pela Implementação'),';')
SENAO
"" /*ATENDENTE CORRENTE */
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE


• Admissão

o Etapa Inicial
Decl a, b, c, d;

SETVAR ( a, '' );
SETVAR ( b, '' );
SETVAR ( c, '' );
SETVAR ( d, 'Relações Humanas - Workflow Admissão ' );

SE EXECSQL ( '03.000150' ) = VERDADE
ENTAO SETVAR ( a, RESULTSQL ( '03.000150' , 'email' ) )
FIMSE;
SE EXECSQL ( '03.000151' ) = VERDADE
ENTAO SETVAR ( b, RESULTSQL ( '03.000151' , 'mensagem' ) )
FIMSE;
SE EXECSQL ( '03.000152' ) = VERDADE
ENTAO SETVAR ( c, RESULTSQL ( '03.000152' , 'funcionario' ) )
FIMSE;
ENVIAEMAIL ( 'rh@rm.com.br' , a , '' , concat ( d, c ), b , 1 );
"1307"

DECL USUARIO;

CONCLUIRARESPONDER;

SE EXECSQL('03.000154') = VERDADE ENTAO
SETVAR(USUARIO,RESULTSQL ( '03.000154' , 'CodAtendente' ));
REPASSARATENDIMENTO ( USUARIO, '' , 10 , '' , '' )
FIMSE;

RetNAOREPASSAATULIZARESTANTE

ALTERARCAMPOATENDIMENTO ( "CODCOLIGPRD=1;CODPRODUTO=140" );
decl a, b;

setvar ( a, '' );
setvar ( b, '' )

Decl a, b, c, d;

SETVAR ( a, '' );
SETVAR ( b, '' );
SETVAR ( c, '' );
SETVAR ( d, 'Relações Humanas - Workflow Admissão ' );

SE EXECSQL ( '03.000150' ) = VERDADE
ENTAO SETVAR ( a, RESULTSQL ( '03.000150' , 'email' ) )
FIMSE;
SE EXECSQL ( '03.000151' ) = VERDADE
ENTAO SETVAR ( b, RESULTSQL ( '03.000151' , 'mensagem' ) )
FIMSE;
SE EXECSQL ( '03.000152' ) = VERDADE
ENTAO SETVAR ( c, RESULTSQL ( '03.000152' , 'funcionario' ) )
FIMSE;
ENVIAEMAIL ( 'rh@rm.com.br' , a , '' , concat ( d, c ), b , 1 );

Decl x;
SETVAR(x, '');
SE EXECSQL('03.000155') = VERDADE ENTAO
SETVAR(x,RESULTSQL ( '03.000155' , 'mensagem'))
FIMSE;

ENVIAEMAIL ( 'rh@rm.com.br' , 'patricia.almeida@totvs.com.br; juliane.paula@totvs.com.br' , '' , 'WorkFlow Admissão - Dados do Novo Usuário' , x , 1)



• Etapa Cria atendimento de documentação

DECL H, A, P, V, R;
SETVAR(A,0);
SETVAR(P, 357);
SETVAR(V, CONCATENA(';PARAMETRO.Versão de liberação=', CAMPOSATENDIMENTO ( 'PARAMETRO.Versão de liberação'),''));
SETVAR(R, CONCATENA(';PARAMETRO.Requisito=', CAMPOSATENDIMENTO ( 'PARAMETRO.Requisito'),''));
SE CONCATENA(CAMPOSATENDIMENTO ( 'PARAMETRO.Responsável pela Homologação' ),'','') <> '' ENTAO
SETVAR(A, CAMPOSATENDIMENTO ( 'PARAMETRO.Responsável pela Homologação' ) )
FIMSE;

/* BUSCA O ATENDENTE DO GRUPO PARA REPASSAR OCORRÊNCIA */
SE EXECSQL('03.000298') = VERDADE E A < 1 ENTAO
SETVAR(A, RESULTSQL('03.000298', 'CODATENDENTEFIXO'))
FIMSE;

SE A = 0 ENTAO
SETVAR(A,CODATENDENTERESPONSAVEL)
FIMSE;

SETVAR(H,CONCATENA('CODTIPOATENDIMENTO=62;CODCLASSIFICACAO=00050;CODCFO=007622;IDCONTATO=;CODTAREFAANTERIOR=;CODATENDENTERESP=',A,''));
SETVAR(H,CONCATENA(H, P, ';CODTAREFA='));
SETVAR(H,CONCATENA(H, V, ''));
/*Concatenando o código do Requisito */
SETVAR(H,CONCATENA(H, R, ''));

/*cria uma cópia do atendimento do contexto se não tiver outra criada */
SE EXECSQL('03.000299') = FALSO ENTAO
CRIARCOPIAATENDIMENTO ( CAMPOSATENDIMENTO ( 'CODCOLIGADA' ), CAMPOSATENDIMENTO ( 'CODLOCAL' ) , CAMPOSATENDIMENTO ( 'CODATENDIMENTO' ), H, 1)
FIMSE;
""


• Etapa Solucionado com Versão Específica

Decl a, b, t;

/* Impede a continuidade da ocorrênica se a classificação for igual TEC-A CLASSIFICAR */
SE CAMPOSATENDIMENTO ( 'CODCLASSIFICACAO' ) = "00000" ENTAO
INTERROMPE ("Favor alterar a classificação da ocorrência!" )
FIMSE;

SETVAR(a, '');
SETVAR(b, '');
SETVAR(t, Concatena('Sr. Analista, favor criar nova ocorrência baseada na de número ', CAMPOSATENDIMENTO ( 'CODATENDIMENTO' ), '' ) );

SE EXECSQL('03.000069') = VERDADE ENTAO
SETVAR(a, RESULTSQL ( '03.000069' , 'email'))
FIMSE;

SE EXECSQL('03.000070') = VERDADE ENTAO
SETVAR(b, RESULTSQL ( '03.000070' , 'email'))
FIMSE;

AVANCARETAPAATENDIMENTO ( 177 ) ;

ENVIAEMAIL('suporte.rm@totvs.com.br' , CONCATENA(a,b,',') , '' , 'Finalização de ocorrência Solucionada com Versão Específica' ,t , 1) ;

""


• Etapa Apresentar Proposta de Entendimento

/* VERIFICA SE O CAMPO ENTENDIMENTO ESTÁ PREENCHIDO */
SE EXECSQL("03.000090") = VERDADE E RESULTSQL("03.000090", "QTD") = 0 ENTAO
INTERROMPE("Favor preencher o entendimento!")
FIMSE;

CONCATENA ( 1 , CODATENDENTECONTATOCOMCLIENTE , ';' )


• Etapa Não aceitar Agendamento e voltar etapa

COLOCAREMANDAMENTO;
/*devido a problemas no .net, não pode usar avançaretapa */
ALTERARCAMPOATENDIMENTO
( concatena('CODTAREFA=',CAMPOSATENDIMENTO ( 'PARAMETRO.CODTAREFAANTERIOR' ),'' ) );
REPASSARATENDIMENTO ( CAMPOSATENDIMENTO ( 'PARAMETRO.CODATENDENTEANTERIOR' ) , '' , 20 , '' , '' );

RetNAOREPASSA


• Retorna Superior Imediato

CHEFEIMEDIATORESPATENDIMENTO


• Retorna Grupo PDE

DECL N;

SE (CAMPOSATENDIMENTO ("CODCLASSIFICACAO") = "00005") ENTAO /* INT - INSTALACAO DO APLICATIVO */
SETVAR(N,"253") /* GROSSI */
SENAO
SE (CAMPOSATENDIMENTO ( 'CODITEMPRD' ) = "EduPS.11" OU CAMPOSATENDIMENTO ( 'CODITEMPRD' ) = "EduPS.9" OU CAMPOSATENDIMENTO ( 'CODITEMPRD' ) = "EduWf.Sel" OU CAMPOSATENDIMENTO ( 'CODITEMPRD' ) = "EduEb.Sel") ENTAO
SETVAR(N,"221") /* EDUARDO BELO / / PROCESSO SELETIVO*/
SENAO
SE (CAMPOSATENDIMENTO ( 'CODITEMPRD' ) = "EduEB.014" ou CAMPOSATENDIMENTO ( 'CODITEMPRD' ) = "Edu.013" ou CAMPOSATENDIMENTO ( 'CODITEMPRD' ) = "EduES.014") E (CAMPOSATENDIMENTO ( 'CODCLASSIFICACAO' ) = "00000" OU CAMPOSATENDIMENTO ( 'CODCLASSIFICACAO' ) = "00001" OU CAMPOSATENDIMENTO ( 'CODCLASSIFICACAO' ) = "00003") ENTAO
SETVAR(N,"235") /* Luiz Antonio */
SENAO
SE (CAMPOSATENDIMENTO ( 'CODPRODUTO' ) = 39 OU CAMPOSATENDIMENTO ( 'CODPRODUTO' ) = 43) E CAMPOSATENDIMENTO ( 'CODITEMPRD' ) <> "EduEb.014" E CAMPOSATENDIMENTO ( 'CODITEMPRD' ) <> "EduEs.014" E (CAMPOSATENDIMENTO ( 'CODCLASSIFICACAO' ) = "00000" OU CAMPOSATENDIMENTO ( 'CODCLASSIFICACAO' ) = "00001" OU CAMPOSATENDIMENTO ( 'CODCLASSIFICACAO' ) = "00003") ENTAO
SETVAR(N,"35") /* SADE */
SENAO
SE (CAMPOSATENDIMENTO ( 'CODPRODUTO' ) = 39 OU CAMPOSATENDIMENTO ( 'CODPRODUTO' ) = 43 OU CAMPOSATENDIMENTO ( 'CODPRODUTO' ) = 50) ENTAO
SETVAR(N,"36") /* RAFAEL */
SENAO
SE CAMPOSATENDIMENTO ( 'CODITEMPRD' ) = "Fop.1.4.1.91" ENTAO
SETVAR(N,"258") /* Eliane */
SENAO
SE CAMPOSATENDIMENTO ( 'CODITEMPRD' ) = "Fop.1.4.1.92" ENTAO
SETVAR(N,"312") /* Guilherme */
SENAO
SETVAR(N, FOR("05.00028"))
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE;

SE N = '0' ENTAO
SETVAR(N,"")
FIMSE;

N


• Agenda Atendimento

DECL Motivo;

SETVAR(Motivo, FOR("06.00005") ); /Motivo de Repasse/

SE CONCATENA(CAMPOSATENDIMENTO ( 'AGENDADOPARA' ),'','') = '12:00:00 AM' E (CAMPOSATENDIMENTO ( "PARAMETRO.Tipo de Lib. de Versão" ) = "Específica" ou CAMPOSATENDIMENTO ( "PARAMETRO.Tipo de Lib. de Versão" ) = "Patch") ENTAO
AGENDARARESPONDER (CONCATENA(CAMPOSATENDIMENTO ( 'PARAMETRO.Data para Despertar' ),'',''), CONCATENA(CAMPOSATENDIMENTO ( 'PARAMETRO.Data Prazo Limite'),'',''), Motivo , CONCATENA(CAMPOSATENDIMENTO ( 'PARAMETRO.Motivo de Agendamento'),CAMPOSATENDIMENTO ( "PARAMETRO.Tipo de Lib. de Versão" ),'-' ) )
SENAO
SE CONCATENA(CAMPOSATENDIMENTO ( 'AGENDADOPARA' ),'','') = '' ou CONCATENA(CAMPOSATENDIMENTO ( 'AGENDADOPARA' ),'','') = '12:00:00 AM' ENTAO
AGENDARARESPONDER (CONCATENA(CAMPOSATENDIMENTO ( 'PARAMETRO.Data para Despertar' ),'',''), CONCATENA(FOR("06.00004"),'',''), Motivo , CONCATENA(CAMPOSATENDIMENTO ( 'PARAMETRO.Motivo de Agendamento'),'Normal','-') )
FIMSE
FIMSE;
""


• Etapa Confirmar Agendamento e enviar para Etapa Anterior

for("06.00049"); /* agenda o atendimento, caso não tenha sido feito ainda */

SE CAMPOSATENDIMENTO ( 'CODSTATUS' ) = 'G' ENTAO
AGENDADORESPONDIDO
FIMSE;

SE CONCATENA(CAMPOSATENDIMENTO ( 'AGENDADOPARA' ),'','') = '' ENTAO
COLOCAREMANDAMENTO;
INTERROMPE('Favor cadastrar a data de despertamento')
FIMSE;

SE CONCATENA(CAMPOSATENDIMENTO ( 'PARAMETRO.CODTAREFAANTERIOR' ),'','') = '215' OU CONCATENA(CAMPOSATENDIMENTO ( 'PARAMETRO.CODTAREFAANTERIOR' ),'','') = '172' ENTAO
COLOCAREMANDAMENTO;
INTERROMPE('Erro de agendamento, favor procurar o Juliano!')
FIMSE;

ALTERARCAMPOATENDIMENTO ( 'CODSTATUS=A' );
ALTERARCAMPOATENDIMENTO ( concatena('CODTAREFA=', CAMPOSATENDIMENTO ( 'PARAMETRO.CODTAREFAANTERIOR' ), '') );
SE (CONCATENA( CAMPOSATENDIMENTO ( 'PARAMETRO.CODATENDENTEANTERIOR' ),'','') <> '') ENTAO
REPASSARATENDIMENTO ( CAMPOSATENDIMENTO ( 'PARAMETRO.CODATENDENTEANTERIOR' ) , '' , -1 , '' , '' )
FIMSE;

ALTERARCAMPOATENDIMENTO ( 'CODSTATUS=E' ); /* devido a falha no .net, obraga-se */

RetNAOREPASSA


• Obriga o preenchimento do campo percentual

/* verifica se na etapa atual foi apontado 100 % de conclusão */
DECL T, Q, B, ETAPA;
SETVAR(T, 0);
/* retorna % de completude */
SE EXECSQL( '03.000057' ) = VERDADE ENTAO
SETVAR(T, RESULTSQL ( '03.000057' , 'VALOR' ) )
FIMSE;

/* retorna o total apontado*/
SE EXECSQL( '03.000073' ) = VERDADE ENTAO
SETVAR(Q, RESULTSQL ( '03.000073' , 'VALOR' ) )
FIMSE;

/* retorna o total apontado nas etapas de entedimnto, implementação, especifcação e planejamento*/
SE EXECSQL( '03.000107' ) = VERDADE ENTAO
SETVAR(B, RESULTSQL ( '03.000107' , 'VALOR' ) )
FIMSE;

SETVAR(ETAPA, "NAO");
/* Impede a continuidade da ocorrênica se a classificação for igual TEC-A CLASSIFICAR */
SE CAMPOSATENDIMENTO ( 'CODCLASSIFICACAO' ) = "00000" ENTAO
INTERROMPE ("Favor alterar a classificação da ocorrência!" )
FIMSE;

/* Verifica se a etapa atual necessidade de apontamento na tabela dinâmica e não é bug(Retirado por Juliano o teste se é Bug*/
SE T < 100 E EXECSQL('03.000063') = VERDADE E ETAPA <> "SIM" ENTAO
INTERROMPE ("Para avançar de etapa é necessário apontar 100% de conclusão da mesma!" )
FIMSE;

/* Verifica se a etapa atual necessidade de apontamento na tabela dinâmica */
SE /CAMPOSATENDIMENTO ( 'CODCLASSIFICACAO' ) <> '00001' Juliano e/ Q <= 0 E EXECSQL('03.000063') = VERDADE ENTAO
INTERROMPE ("Favor apontar a quantidade de horas gastas na ocorrência (não pode ser 0)!" )
FIMSE;

/* Verifica na saída da implementação, se ocorreu algum apontamento nas etapas de especf., impl., planejamento e entendimento*/
SE CAMPOSATENDIMENTO ( 'CODCLASSIFICACAO' ) = '00001' e B <= 0 E CAMPOSATENDIMENTO ( 'CODTAREFA' ) = 166 ENTAO
INTERROMPE ("Favor apontar a quantidade de horas gastas na ocorrência (não pode ser 0)!" )
FIMSE;

""


• Retorna analista do campo Responsável pela Implementação

DECL A;
SETVAR(A, "");

/* caso já exista alguém definido na aba parametro, a preferência é dele */
SE concatena(CAMPOSATENDIMENTO ( 'PARAMETRO.Responsável pela Implementação'),'','') <> '' ENTAO
SETVAR(A, CONCATENA('1',CAMPOSATENDIMENTO ( 'PARAMETRO.Responsável pela Implementação'),';'))
SENAO
SETVAR(A, FOR("05.00002") )
FIMSE;

A


• Retorna Próximo Chefe

DECL CODPROXCHEFE;

SETVAR(CODPROXCHEFE, RETPROXIMOCHEFESECAOLABORE ( 1 ));
SE CODPROXCHEFE = '-1' ENTAO
AVANCARETAPAATENDIMENTO ( 303 )
SENAO
CODPROXCHEFE
FIMSE


• Repassar chefe seção destino

DECL PRIMEIRAETAPA;

SETVAR (PRIMEIRAETAPA, CAMPOSATENDIMENTO('CODTAREFA'));
SE PRIMEIRAETAPA = 0 ENTAO
DECL CODSECAO;
EXECSQL ('VISQL01' );
SETVAR(CODSECAO,resultsql('VISQL01','CODSECAO'));
RETORNAPROXIMOCHEFESECAOLABORE ( CODSECAO ,'-1' )
SENAO
DECL CODPROXCHEFE;
SETVAR(CODPROXCHEFE,
RETPROXIMOCHEFESECAOLABORE ( 1 ));
SE CODPROXCHEFE = '-1' ENTAO
AVANCARETAPAATENDIMENTO ( 348 )
SENAO
CODPROXCHEFE
FIMSE
FIMSE


• Conclusão

FOR("03.00507");

SE EXECSQL ( '03.000052' ) <> VERDADE ENTAO
INTERROMPE ( 'Preencha o campo Solução!' )
FIMSE;

SE CAMPOSATENDIMENTO ( 'CAIXAPOSTAL' ) > 0 ENTAO
INTERROMPE ( 'Ainda existem mensagens na sua caixa postal de voz. Caso já as tenha ouvido, zere o valor do campo Caixa Postal.' )
FIMSE;

ALTERARCAMPOATENDIMENTO ( 'CODSTATUS=R' ) ;

CONCLUIDORESPONDIDO


• Solucionar Ocorrência

FOR("03.00507");
SE CAMPOSATENDIMENTO ( 'CODTIPOATENDIMENTO' ) <> 29 e CAMPOSATENDIMENTO ( 'CODTIPOATENDIMENTO' ) <> 23 E CAMPOSATENDIMENTO ( 'CODCLASSIFICACAO' ) = "00000" ENTAO
INTERROMPE ( 'Não é possível concluir atendimento com a classificação: "A Classificar"' )
SENAO
CONCLUIRARESPONDER
FIMSE


• Repassar para o Contato com o Cliente

REPASSARATENDIMENTO (CODATENDENTECONTATOCOMCLIENTE , '' , 9 , '' , '' )


Ø REPASSE

Etapas:
(Código - descrição - para quem esta repassando)

32 - Enviar para RH --> grupo
33 - Enviar para Chefe Imediato ou solicitante --> formula tstAume2
34 - concluir --> formula VIFRM02
35 - reprovar --> formula VIFRM02
36 - chefe imediato --> formula tstAumen
56 - solicitante --> formula tstSolic


Fluxos:
Enviar para RH --> Em Análise --> Enviar para RH
Enviar para RH --> Recusada --> Enviar para Chefe Imediato ou solicitante
Enviar para RH --> Cancelada --> Reprovar
Enviar para RH --> Aprovar --> Chefe Imediato
Chefe Imediato --> Aprovar --> Chefe Imediato
Chefe Imediato --> Reprovar --> Reprovar
Enviar para Chefe Imediato ou solicitante --> Aprovar --> Chefe Imediato
Enviar para Chefe Imediato ou solicitante --> Reprovar --> Reprovar
Concluir --> Concluir em definitivo --> Concluir
Solicitante --> Aprovar --> Enviar para Chefe Imediato ou solicitante
Reprovar --> Reprovar --> Reprovar

Fórmulas utilizadas nas etapas:

• tstAume2:
se execsql('AumentoQuadro3') = verdade entao
/interrompe(resultsql('AumentoQuadro3','ATENDENT'));/
REPASSARATENDIMENTO ( resultsql('AumentoQuadro3','ATENDENT') , '' , 3 , '' , '' )
senao
execsql('AumentoQuadro1');
RETORNAPROXIMOCHEFESECAOLABORE (resultsql('AumentoQuadro1','CODSECAO'), '-1')
fimse


• tstAumen:
se execsql('AumetoQuadro2') = verdade entao
AVANCARETAPAATENDIMENTO ( 34 )
senao
execsql('AumentoQuadro1');
RETORNAPROXIMOCHEFESECAOLABORE (resultsql('AumentoQuadro1','CODSECAO'), '-1')
fimse


• VIFRM02:
DECL CODATENDCONTATOCLIENTE;
SETVAR(CODATENDCONTATOCLIENTE, CODATENDENTECONTATOCOMCLIENTE);

DECL COLIGADAATENDENTE;
SETVAR(COLIGADAATENDENTE, CAMPOSATENDENTE(CODATENDCONTATOCLIENTE, 'CODCOLIGADA' ));

DECL TXTUPDCOLIGADA;
SETVAR(TXTUPDCOLIGADA, CONCATENA('CODCOLIGADARESP=', COLIGADAATENDENTE, ''));

DECL TXTUPDCODATENDENTE;
SETVAR(TXTUPDCODATENDENTE, CONCATENA('CODATENDENTERESP=', CODATENDENTECONTATOCOMCLIENTE, ''));

ALTERARCAMPOATENDIMENTO ( CONCATENA(TXTUPDCOLIGADA, TXTUPDCODATENDENTE, ';') );

CONCLUIDORESPONDIDO

• tstSolic:
DECL CODATENDCONTATOCLIENTE;
SETVAR(CODATENDCONTATOCLIENTE, CODATENDENTECONTATOCOMCLIENTE);

DECL COLIGADAATENDENTE;
SETVAR(COLIGADAATENDENTE, CAMPOSATENDENTE(CODATENDCONTATOCLIENTE, 'CODCOLIGADA' ));

DECL TXTUPDCOLIGADA;
SETVAR(TXTUPDCOLIGADA, CONCATENA('CODCOLIGADARESP=', COLIGADAATENDENTE, ''));

DECL TXTUPDCODATENDENTE;
SETVAR(TXTUPDCODATENDENTE, CONCATENA('CODATENDENTERESP=', CODATENDENTECONTATOCOMCLIENTE, ''));

ALTERARCAMPOATENDIMENTO ( CONCATENA(TXTUPDCOLIGADA, TXTUPDCODATENDENTE, ';') )


SQLs - AumentoQuadro3, AumentoQuadro1, AumetoQuadro2

• AumentoQuadro3:
--> Verifica se o atendente é ponto de aprovação.
SELECT HATENDENTE.CODATENDENTE AS ATENDENT
FROM VREQAUMENTOQUADRO
LEFT JOIN PFUNC ON (VREQAUMENTOQUADRO.CODCOLREQUISICAO = PFUNC.CODCOLIGADA AND VREQAUMENTOQUADRO.CHAPAREQUISITANTE = PFUNC.CHAPA)
LEFT JOIN HATENDENTE ON (PFUNC.CODCOLIGADA = HATENDENTE.CODCOLIGADA AND PFUNC.CODPESSOA = HATENDENTE.CODPESSOA)
LEFT JOIN PFCOMPL ON (VREQAUMENTOQUADRO.CODCOLREQUISICAO = PFCOMPL.CODCOLIGADA AND VREQAUMENTOQUADRO.CHAPAREQUISITANTE = PFCOMPL.CHAPA)
WHERE PFCOMPL.SIMNAO = '01'
AND VREQAUMENTOQUADRO.IDREQ = :FRM_VIFRM04


• AumentoQuadro1:
--> retorna o chefe imediato
SELECT PSUBSTCHEFE.CODSECAO
FROM VREQAUMENTOQUADRO, PSUBSTCHEFE
WHERE VREQAUMENTOQUADRO.IDREQ = :FRM_VIFRM04
AND VREQAUMENTOQUADRO.CODCOLREQUISICAO = PSUBSTCHEFE.CODCOLIGADA
AND PSUBSTCHEFE.CODSECAO <> VREQAUMENTOQUADRO.CODSECAO
AND PSUBSTCHEFE.CODSECAO NOT IN (SELECT CODSECAO FROM PSUBSTCHEFE WHERE CHAPASUBST = VREQAUMENTOQUADRO.CHAPAREQUISITANTE)
AND SUBSTRRING(VREQAUMENTOQUADRO.CODSECAO,1,LEN(PSUBSTCHEFE.CODSECAO)) = PSUBSTCHEFE.CODSECAO
AND PSUBSTCHEFE.CHAPASUBST NOT IN (SELECT PFUNC.CHAPA
FROM PFUNC
LEFT JOIN HATENDENTE ON (PFUNC.CODPESSOA = HATENDENTE.CODPESSOA AND PFUNC.CODCOLIGADA = HATENDENTE.CODCOLIGADA)
WHERE HATENDENTE.CODATENDENTE = :FRM_tstAtend)
ORDER BY LEN(PSUBSTCHEFE.CODSECAO) DESC


• AumetoQuadro2:
-->
select 1 as pontoaprovacao:
from VREQAUMENTOQUADRO A
join HATENDIMENTOEXT B on (B.CODCOLIGADA = A.CODCOLREQUISICAO and B.CODATENDIMENTO = A.CODATENDIMENTO)
join HATENDENTE C on (C.CODCOLIGADA = B.CODCOLIGADA and C.CODATENDENTE = B.CODATENDENTERESP)
join PFUNC D on (D.CODCOLIGADA = C.CODCOLIGADA and D.CODPESSOA = C.CODPESSOA)
join PFCOMPL E on (E.CODCOLIGADA = D.CODCOLIGADA and E.CHAPA = D.CHAPA)
where
IDREQ = :FRM_VIFRM04
AND C.CODATENDENTE = :FRM_tstAtend
AND E.SIMNAO = '01'

:FRM_VIFRM04 --> GETIDDAREQUISICAO
:FRM_tstAtend --> CODATENDENTERESPONSAVEL

Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0

0 Comentários

Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _