O TOTVS CodeAnalysis é uma ferramenta desenvolvida para permitir aos clientes efetuarem uma verificação em seus fontes customizados, afim de certificar a qualidade dos mesmos. Através de regras pré-determinadas, a ferramenta possibilita que os requisitos indicados sejam corrigidos evitando um maior impacto em atualizações.

Uma das recomendações da ferramenta é para a validação da utilização do ambiente do cliente com Dicionário de Dados no Banco de Dados.

O serviço consiste no cadastro de um projeto no site do CodeAnalysis, envio de um arquivo compactado com os fontes a serem analisados, e agendamento da análise desses fontes. Ao final, é exibida uma tela com o resultado da análise, apontando o que precisa ser corrigido ou melhorado nos fontes.

Abaixo iremos detalhar os passos para efetuar essa validação.



- Acesse o site https://codeanalysis.totvs.com.br e clique em Entrar



- No primeiro acesso, é necessário criar uma nova conta. Clique em Novo cliente



- Preencha os dados conforme exemplo abaixo e clique em Cadastrar:



Obs.: é necessário inserir o Totvs ID utilizado no License Server Virtual do Cliente.

- Será exibida na tela um aviso de que a senha temporária foi enviada por e-mail



- Acesse o e-mail, copie a senha temporária enviada, e na tela de login do CodeAnalysis, digite o e-mail que foi cadastrado, insira a senha temporária enviada e clique em Entrar



- Insira a senha temporária atual, e então cadastre uma nova senha



- Será exibida uma mensagem de senha alterada com sucesso, e voltará para a tela de login. Digite então novamente o e-mail cadastrado e entre com a nova senha

- Será exibida uma tela para a inclusão de Projetos, que é o local onde iremos agendar o envio dos fonts e análise dos mesmos. Clique em +Projeto



- Na tela seguinte, preencha os dados conforme exemplo abaixo, e clique em Confirmar



Nome do projeto: Defina o nome que será utilizado neste projeto

Descrição do projeto: Descrição deste projeto

Tipo de acesso dos arquivos: define como os fonts serão enviados para análise. Para o nosso exemplo, utilizaremos a opção Upload

Usuários: Selecione os usuários que terão acesso a este projeto. Por padrão o usuário inicial já está criado e pode ser selecionado. Se quiser adicionar outros usuários, utilize o menu lateral Usuários

ADVPL Include: Se o projeto tiver includes adicionais aos padrões do Protheus, a pasta dele deve ser indicada neste campo. O formato de digitação da pasta é baseado nas pastas que devem conter no arquivo compactado. Obrigatoriamente o arquivo compactado deve conter uma pasta chamada src, que conterá os fonts, e se tiver includes, uma pasta para eles. No nosso exemplo, o arquivo compactado contém a pasta my_include e a pasta src dentro de uma pasta principal chamada projeto_exemplo, conforme imagem abaixo:



- Após preencher as informações, clique em Confirmar

- Será exibida uma mensagem informando que o projeto foi cadastrado com sucesso, e a página mostrará o projeto criado. Se precisar alterar alguma informação, clique em Manutenção. Caso esteja OK, clique em Agendar



- Será exibida uma janela para o carregamento do arquivo compactado. Clique em Selecionar arquivo, selecione o seu arquivo compactado, e clique em Iniciar envio



- Após aparecer o sinal de verificado, conforme imagem abaixo, clique em Agendar



- Será exibida uma mensagem de Agendamento efetuado, confirmando o envio dos fonts



- Ao enviar o seu Projeto para a análise, ele entrará em uma fila de execução, e assim que verificado, será exibida a informação de Status de Executado. Para verificar, no menu lateral, clique em Agendamentos



- Na tabela dos agendamentos, na coluna Link SonarQube, será exibido o link com as informações da análise feita pela Totvs referentes ao seu projeto. Clique sobre o link para abrir o projeto no SonarQube



- Nesta tela serão exibidas as informações analisadas. Para verificar as regras da Totvs, clique no menu Rules e use o filtro ADVPL


Para dúvidas e comentários referentes a ferramenta, favor consultar o Dev Fórum:

https://devforum.totvs.com.br

<script type="text/javascript">
AJS.toInit(function(){
AJS.$('#comments-section').hide();
});
 for (var i=0; i<nr_li; i++) {
    // if the element has the class fom 'clasa' parameter
    if(tags_li[i].getAttribute('class') == 'innerCell'){
         tags_li[i].style.overflow = 'visible';
            //tags_li[i].style.overflow-y= 'visible';
    }   
  }
</script>