Roteiro de Trabalho

Neste capítulo, se encontram as instruções referentes ao processo realizado durante o início de um caso até o seu encerramento e todas as etapas contidas neste intervalo.

Qual caso escolher?

Antes de iniciar este tópico, certifique-se de já ter configurado seu ambiente de trabalho.


Passos Iniciais 

Trello

Para iniciar o desenvolvimento de um caso, você deve "escolher" um caso. Você não vai literalmente escolher qual caso trabalhar, mas sim, seguir uma ordem pré-definida pela qualidade (ou outro departamento) através do Trello. 

Existem duas linhas principais de trabalho:

Caso você não saiba em qual está alocado, verifique com o líder ou gerente da sua equipe.

Após definida a linha de trabalho, você selecionará o primeiro caso da coluna e clique em ingressar, conforme exemplificado a seguir:

image-1611769035655.png

Após ingressar no cartão, arraste-o para a coluna "Em desenvolvimento":

image-1611769205751.png

Mantis

Após a seleção do caso no Trello, e o deslocamento dele para a coluna "Em desenvolvimento", acesse o Mantis e no canto superior direito, busque seu caso pelo número indicado no cartão do Trello, ou caso tenha o link no cartão é só clicar. 

Após localizar seu novo caso, será necessário atribuir a você mesmo, para que não ocorra o problema de outro desenvolvedor pegá-lo. No final do tópico "Ver Detalhes da Tarefa" você verá a opção de "Atribuir a:", se não estiver atribuído a ninguém, o próprio Mantis irá sugerir para atribuir para você (como mostrado a seguir), clique no botão para atribuir e pronto, o caso já estará sendo implementado por você.

image-1611772846405.png


Concluída essa etapa, avançaremos para a criação do seu Branch, para enfim começarmos a implementação do caso selecionado.

Localizando e configurando a base de dados

Configurando bases de dados FireBird

A extensão do arquivo da base de dados precisar ser .FDB para a IDE conseguir compilar sem erros.

Na maioria das vezes quando iniciamos um novo caso, será necessário configurar a base de dados, que nos possibilita reproduzir o problema relatado e que geralmente está anexada no Mantis ou no Transfer (\\SS\Transfer\SUPERSOFT_CLIENTES).

O processo é muito simples, basta fazer o Download ou uma cópia caso esteja no transfer para dentro da pasta SuperSoft localizada no seu diretório, possui uma pasta chamada Tabelas, é dentro dela que nossa IDE está configurada para buscar o arquivo com extensão .FDB. 

Dentro da pasta Tabelas, crie uma pasta com o nome do seu caso e cole a base dentro dela. Depois extraia a base para obter o arquivo .FDB, conforme demonstrado a seguir:

image-1611950233508.png

Pronto, sua base já está configurada para ser utilizada, dentro do Delphi compile seu código que a base já estará sendo utilizada no processo de compilação.

Configurando bases de dados SQL

Em alguns casos será necessário reproduzir o erro com bases SQL, ou seja, você precisará ter instalado na sua máquina o software "sqlncli" (de acordo com a arquitetura do Windows x32 ou x64), localizado em \\SS\transfer\FelipeB\App. 

Você também precisará do arquivo da configuração do Banco de Dados, chamado "ConfigConexaoDB", que geralmente estará localizada anexada no Mantis ou no Transfer com seu respectivo caminho relatado no Mantis. Basta copiar este arquivo e colar dentro da pasta SuperSoft, mas antes renomeie o arquivo de configuração já existente dentro da pasta para qualquer outro nome que você possa se lembrar depois para não perder as configurações usadas para uma base FireBird, conforme exemplo a seguir:

image-1611951263122.png

Pronto, depois basta compilar seu caso dentro do Delphi que a base estará pronta para ser utilizada.

Outra forma:

Requisito: Utilizar o Controle de Bases Firebird

O fato de usar o Controlador de Bases gera uma flexibilidade de onde ficará as bases de dados e até o nome. Assim poderá guardar por nome de cliente por exemplo, e também pode deixar na segunda partição/segundo disco caso tenha. Exemplo:

Bases_Clientes.png

 

Rotina de Desenvolvimento

Pré-Requisitos

Antes de começar a implementação referente ao caso propriamente, é necessário que as seguintes etapas já estejam concluídas por parte do desenvolvedor:

  1. Que já tenha ingressado no cartão do caso em questão, no Trello;
  2. Que já tenha lido e interpretado o caso no Mantis, além de estar atribuído ao caso;
  3. Que já tenha criado a respectiva pasta no seu diretório SVN;
  4. Que já tenha criado a respectiva pasta no seu diretório local;
  5. Que já tenha localizado e configurado a base de dados do caso.

Processos comuns no desenvolvimento

Dicas de IDE

Quando estamos no desenvolvimento do caso, algumas dicas são fundamentais para facilitar nossa vida, a seguir será demonstrado algumas delas: 

Salvando o estado do projeto

Após fecharmos o a IDE, as units, breaking points e os bookmarks adicionados, serão todos perdidos. Entretanto existe uma opção que salva todas esses estados no qual você deixou ao longo da implementação.

Dentro da IDE o menu Tools -> Options, aba Environment Options, marcar as duas opção do retângulo Autosave Options, conforme a imagem a seguir:

image-1613667050380.png 

Debug

Para reproduzir um erro ou testar alguma implementação, você precisa debugar para verificar se tudo ocorreu como esperava. Neste processo temos 3 maneiras.

Debugando com a tecla "F9"

Você estará pulando de um Breaking point a outro, de forma que os métodos entre eles serão lidos pela IDE, mas não mostrados como a tecla "F8". 

image-1611944956170.png

Debugando com a tecla "F8"

A IDE irá ler linha a linha do código, tornando mais fácil analisar o que está sendo feito dentro de um método ou até mesmo alguma verificação. 

image-1611945328807.png

 Debugando com a tecla "F7"

Ao se deparar com um método, você pode utilizar a tecla "F7" para adentrar nele e ver tudo o que está sendo feito.

Por exemplo, na rotina de exportação do arquivo da Sefip, chama o método GeraValoresPASocAutNaValAnualBenefPA(), apertando a tecla "F7" na linha que chama este método, você será redirecionado para dentro dele sem a necessidade de ter um breaking. Como mostrado a seguir, 

image-1611945755392.png

Evaluate (Ctrl + F7)

Dento da IDE a tela de Evalute é de grande importância na hora que estamos Debugando, pois com ela podemos obter diversas informações a partir dela.

image-1611947931445.png

 Além de conseguir ver o conteúdo de uma variável passando o mouse por cima, pode ser visto com o Evalute.

Watch (CTRL + F5)

A ferramenta Watch disponível dentro do Evalute, nos possibilita ver o que está acontecendo com uma determinada variável ou campo de uma Query em tempo real, a cada passo no precesso de Debug, se o valor for alterado, imediatamente você consegue ver essa mudança.

image-1611948160431.png

New Value

A ferramenta New Value, localizada na parte inferior do Evaluate é utilizada quando precisamos alterar um determinado valor no processo de execução, por exemplo, você deseja verificar o que está acontecendo dentro de uma rotina, mas por não entrar nesta rotina devido a alguma verificação não obedecida, é possível alterar o valor nesta verificação "forçando" com que entre na rotina sem precisar alterar o código, compilar e depois debugar até o trecho desejado.

image-1611948375084.png

Veja que a variável "NomeCampo" está com o valor de "Pensao05", adicionando no New value o valor desejado e apertando enter, a variável irá receber o conteúdo escrito no campo.

As próximas duas são muito importantes e muito úteis.

MostraQuery

Constantemente trabalhamos com Querys, que são responsáveis por buscar informações do banco de dados. Podemos verificar o conteúdo dela com o comando MostraQuery("NomeDaQuery"), que irá mostrar todo os campos da query, mas deve ficar atendo pois em muitos casos ela estará em modo edição, então se alterar no MostraQuery o registro selecionado, estará mudando também na Query.

MostraParams

O comando MostraParams é bem parecido com o MostraQuery, porém ele irá mostrar a clausula responsável por buscar as informações do banco de dados. 

Indentação de Texto (Alt + Shift + C)

A ferramenta serve para facilitar a formatação de textos .

image-1613050114160.png

O texto selecionado será o único a ser alterado. Sendo que pode-se escolher o tipo de formatação desejada. A formatação mais comum para sentenças (strings) será a "Sentence case". 

Cuidado ao utilizar a "Title Case" em métodos, nesta formatação somente a primeira letra ficará em maiúsculo e as demais em minúsculo. Caso utilize, verificar se a formatação do método está correto.

Dicas de Trabalho

Commits periódicos das alterações 

Após finalizar a implementação de algum trecho e que ainda será necessário alterar outras partes do código, é recomendado fazer o commit dessas mudanças, para assegurar que as alterações ficarão salvas caso aconteça algum problema em sua máquina ao decorrer da implementação.

Merges periódicos com o Trunk

Ao decorrer de um caso, as implementações feitas podem não ter obtido os resultados esperados, que consequentemente será necessário novas implementações. Quando estiver tratando um caso grande, ou que já passou mais de uma semana desde a ultima liberação da versão, é importante o merge com o Trunk, fazendo com que o Branch do seu caso, receba todas as novas alterações que estejam no Trunk.

Solicitação de ajuda

Apesar de nos depararmos com inúmeras dificuldades ao decorrer de uma determinada implementação, caso não consiga mais avançar no tratamento do seu caso, peça ajuda à algum desenvolvedor para lhe orientar e mostrar algum possível caminho para a solução do seu problema.

 

Liberando para testes

Ao finalizar a implementação do caso e possíveis correções referentes à revisão de código colaborativa, o caso avança para os testes. Onde o tratamento será validado pela equipe da qualidade.


Equipe ERP:

Ao liberar para testes montamos um informativo com a estrutura parecida com:

  1. Marcar a(s) pessoa(s) da Qualidade ou que irão testar o caso (como Projetos em alguns casos).
  2. Motivo do não funcionamento correto (caso haja).
  3. Resumo das alterações feitas.
  4. Informar Units Alteradas/Incluídas/Deletadas

Exemplos:


@AlineC, segue alteração realizada para testes iniciais.

Alteração

- Alteração realizada de forma que o sistema calcule pis e cofins ao importar xml

- Com a customização as alíquotas utilizadas devem ser buscadas dos parâmetros da empresa.(Dados Principais).

- Apenas os cálculos referente a pis e cofins devem ser reprocessados.

- Caso necessário o recálculo "automático", utilizar o "Recalcular valores da Notificação" nos itens.

- Verificar se os valores são calculados conforme necessidade do cliente ao importar o xml.

- Realizar testes sem a customização.

Unit Alterada

- FuncsCC.pas

*Criada CustomCCNefab

Qualquer dúvida estou a disposição.
Obrigado.

----------------

@AlineC Caso disponível para testes.

Alterações:
- Ao Gravar a nota, foi melhorado a rotina que limpava sujeira das tabelas filhas da NFModel1, agora também é feito a mesma rotina para tabelas filhas da ItensNF.
- Como mesmo aparecendo a mensagem "Já existe movimentação no SSEstoq..." ele gravava (pois a gravação da mesma na NFModel1 é feita antes destas validações) a nota gerando sujeira, agora apresenta mensagem que não foi gerado movimentação no SSEstoq mas continua com a rotina correta da gravação da Nota, assim não gera sujeira nessa situação.
- Adicionado barra de progresso ao fazer nota simultânea.

Units alteradas:
/SSVendas/NFMod12.pas
/SSvendas/FuncsNF.pas

Att.:
Vinicius Machado

----------------

@AlineC, segue alteração realizada para testes iniciais.

Alteração

1 - A regra para atualização da classificação de clientes foi alterada seguindo os seguintes critérios.

1.1 - Ao iniciar o sistema, o procedimento deve ser iniciado, rodando automaticamente apenas uma vez ao dia.

2 - Caso entre pelo menu Utilitários > Customização > Movimentação > Classificação de clientes, o mesmo deve sempre ser acionado.

Unit Alterada

- DllSource.pas

*Alteração realizada diretamente na customização.

Qualquer dúvida estou a disposição.
Obrigado.

Colocamos esse informativo como anotação no Mantis.

Alteramos o Status do caso para Aguardando Testes.


Equipe FISCO:

Para a equipe FISCO, o processo é praticamente o mesmo da equipe ERP, a única diferença é que o desenvolvedor é responsável pela geração dos executáveis que serão testados. Caso você não saiba como fazer isso, acesse: Geração de Executáveis

Subindo um caso para o branch de versões

Somente fazer esse procedimento após o pedido vindo da Qualidade.

Pelo lembrete recebido, terá o branch da versão que subirá seu caso, como exemplo abaixo é o Branch 04316.png

Verifique na sua pasta local de Branchs se há o Branch em questão já baixado, caso não tenha, fazer o Checkout da atual conforma imagem de exemplo, atente-se ao departamento se é ERP ou Fisco 

17.png

ERP

18.png

Fisco

Após o Checkout, verificar se tanto o branch da versão quanto a pasta do seu caso estão atualizadas com o Trunk, caso não esteja poderá fazer Merge diminuindo as diferenças entre as pastas.

Você terá algumas formas de passar o seu tratamento para o branch da versão, as duas apresentadas a seguir usarão a ferramenta  Beyond Compare, caso não saiba utilizar poderá ver Clicando Aqui.

  1. Comparar as duas pastas inteiras uma com a outra, e passar suas alterações para branch da versão localizando as Units alteradas.
  2. Comparar Unit por Unit que saiba que alterou, e passar suas alterações para branch da versão.

Cuidado para não retirar o tratamento de outro Dev ao passar o seu para o Branch da versão.

Após passar suas alterações para a pasta referente ao Branch da versão, irá fazer um Commit seguindo as mensagens de Versionamento.

Ir no caso no Mantis e enviar um lembrete para Qualidade avisando que o caso está disponível para reteste no branch da versão indicado por eles,

Alterar o status para Aguardando revisão de testes

26.png

No Trello estará na coluna Testado (por caso), mova para a coluna Vinculados/Em testes (Branch versão).

27.png