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
0 Comentários