Define qual grupo receberá a ocorrência o atendimento 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 atendimento para um usuário específico CodColigada;Codatendente. Ex.: "1;215"
Conclui um Atendimento: 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 ATENDIMENTO ABERTA PELO QSW */ AVANCARETAPAATENDIMENTO(167) /* teste funcional */ SENAO SE TIPOATENDENTE ( CAMPOSATENDIMENTO ( 'CODATENDENTERESP' ) ) = 6 E (FOR("05.00032") = VERDADE) ENTAO /* QUALQUER OCORRENCIA ATENDIMENTO 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 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; [email protected]' , '' , '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('[email protected]' , 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 Atendimentos 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 , '' , '' )
Exemplos de fórmulas complexas de 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 |