Checklist Programação

De UniWiki
Ir para: navegação, pesquisa

ATENÇÃO! ESTÁ PÁGINA FOI MIGRADA PARA A WIKI NOVA E NÃO VAI SER MAIS ATUALIZADA AQUI, PARA CONFERIR: http://wiki.uniware.net.br/pt-br/Desenvolvimento/checklist-programacao

Tópico desatualizado

Transferido para o checklist da tarefa no Uniprojetos

Tab order
está salvando no banco o que é informado (inclusão e alteração)?
Está funcionando inclusão/alteração/exclusão e consulta?
maxlength correto para campos texto?
Está obrigando o preenchimento dos campos corretos?
O usuário tem direito de executar. (F5 e F6 de seeker e botões)
campos novos estão na inclusão com cópia (se aplicável)
código fonte está no padrão da empresa
os campos e tabelas criados estão no padrão de nomenclatura da empresa
É necessário corrigir dados do cliente na atualização?
Incluir algum item no checklist para evitar o erro?
Fez JOIN? - Confere se todos os campos da PK compõe o join
Deixou de criar uma FK? - Tem que criar o índice, criou?
analisar o contexto onde ele está inserido e se outras partes do sistema podem estar com o mesmo bug.
Os forms que estão com Position=poDesktopCenter alterar para poMainFormCenter (se for tela cheia, poDesign)
Quando for gravar data/hora em um campo, avaliar se é o caso de usar Só data (date) só hora (time) ou data e hora (datetime)

Dependências/Impacto

Group by a coluna referenciada tem que constar como resultado da SQL. Senão o MySQL retorna resultados imprevisíveis.
Quando usar uma das funções ao lado usar na ordem
  1. - retistrastatus
  2. - StatusRPedido
  3. - MarcaPedidoParaEnvioINet
  4. - TransmissaoPedido ou AtualizaTransInfo


Permitiu ao posto de coleta alterar campo da expr. Na transmissão da expr do posto para a central tem que colocar um tratamento específico senão a informação não será transmitida.
Novo campo na LBVPEDI Criar o campo também na LBVPEDI_NAO_COLETADOS
Criação de nova tabela Verificar possíveis alterações em:
  • ufExcluaDados
  • ufExcluaDadosFinanceiro
  • ufPreparaMov
  • ufManutencao.btRecalculaClick
  • ufManutencao.btPrepBaseCopiadaClick
  • uTransmissao
  • UAuxGlobal(setTabelasComoTransmitidas - CTRANSTRAN)
  • uTraduzirExcecao
  • Dicionário de dados
Criação de chave Estrangeira Afim de evitar erros nos bancos MySQL hospedados em Linux, deve-se criar separadamente a tabela, a chave e a chave estrangeira. Exemplo:
CREATE TABLE LB_TESTE...
ALTER TABLE LB_TESTE
   ADD KEY FK_TESTE_CODI (CCODITESTE)
ALTER TABLE LB_TESTE
   ADD CONSTRAINT FK_TESTE_CODI FOREIGN KEY (CCODITESTE)
REFERENCES LB_OUTRO (CCODIOUTRO) 

Caso a chave estrangeira for relacionada com a tabela de exames, verificar TFExamRename.Processar.

Criar Campo na LB_EXAM Ao adicionar um novo campo na tabela:
  • Na tabela ULIBMETA criar um registro com o nome e definição do campo. (TFExamRelHistAlter depende desta tabela pra funcionar)
  • Verificar se para amostra adicional é necessário copiar o valor do campo do pai para os filhos: CADAntesCommit e CCODIPAIEXAMValidar
  • Ao Criar novos campos na LB_EXAM deve verificar as rotinas UFExamExporta e UFExamImporta para ver se o campo criado pode influenciar na rotina.
  • Verificar as rotinas de gravação do log de alteração do cadastro de exames (UFExamRelHistAlter) E seu respectivo relatório E se alteração implica na alteração da vigência do exame.
  • verificar a necessidade de incluir o novo campo no relatório do manual de exames (UFExamRelListaPApoiado).
  • Os campos devem ser replicados na função: VerificaAmostrasAdicionaisU2U. Esta função faz um insert no banco para incluir novas amostras adicionais, ou seja, insert na LB_EXAM.
Criar campo no configurador na CFEX Incluir carga do conteúdo do campo nos relatórios de lista de exames - UFResuRelLista, UFResuRelListaPaci

Para qualquer novo campo do configurador, incluir UCfgTab.TTabTipo. E tratar erro na carga do conteúdo das variáveis.

Alterar/Criar relatório de fatura Refletir alterações na exportação da fatura p/ excel
Criar nova Unit Verificar se precisa incluir também nos projetos: Unilabw, Unilab_BETA, Unilaudos e unilabSRV

Remover do delphi o autocreate que ele gera automaticamente para o form

Incluir Campo no TISS
  1. Incluir em todas as versões;
  2. Na impressão parcial/full;
  3. no configurador da guia full
Gravar datahora da coleta Rotinas que gravam coleta:
  • PediCad;
  • UfColeta;
  • UFDesfazColeta;
  • UFRecoleta;
  • UUnilabExpr;
  • PediImp (imprime mapa de não coletado ele põe a data de coleta auto);
  • TercLabCad (qdo inclui no lote um não coletado coleta auto);
Gravar datahora da triagem Rotinas que gravam triagem:
  • UFPedicad
  • UAuxGlobal
  • UFColeta
  • UFTriagem
  • UFRecoleta
  • UnilabExpr
  • UFTercLabCad
Incluída tabela na transmissão Constante: Versao_do_sistema_de_querypack - Incrementar quando tiver alteração nas funções queryPack e QueryUnPack

Versão do executável: em Project > Options > Version Info: Incrementar em qualquer nova versão

Versão do Unilab: A versão do Unilab do componente Sys da UFMain não é considerada pelo programa de transmissão. Mas a versão do executável é. Precisa recompilar o servidor de transmissão sempre que mudar a versão do Unilab.

Update na expr Sempre que fizer um update na expr incrementar a ulibrela
Novo Interfaceamento com Apoio/Equipamento
  • Recalcula Numero de amostra ufManutencao
  • cadastrar na tabela de recursos (UnilabWeb uw_recursos IDs 100 a 199).
  • Na Unit UControleUniware.pas, deve ser adicionada na procedure PublicarInformaoes a linha correspondente ao novo laboratório (procurar por #TAG_LABO).
  • Se a interface requer autorização implementar a geração da chave no ADM; na função Function InterfaceAutorizada() da Unit UFAutorizaInterface;
Campo chave tipo varchar Sempre ativar a propriedade UsaTrim do TUEdit Quando puder informar o valor do campo na mão
Alertas Sempre que fizer alguma modificação nos alertas dos exames:
  • Eles podem ser informados no cadastro de exame e cadastro de tabela de preços (UFExamValo e UFTabeCad).
  • Eles são exibidos no cadastro de pedidos e no orçamento.
Novo campo etiqueta
Inclusão de campos no configurador de etiquetas:
  • UFModEtiqCad (tela do novo configurador) - CarregaCampos: alterar constantes para listar campos disponíveis
  • UAuxModEtiq - TranslateNomeCampo & TranslateExemplo - descrição do campo no configurador e exemplo no visual da etiqueta
  • Para modelos etiq. carteirinha:
  • UFPaciEtiCart - PrintEtiquetas: Carrega os valores do banco ao imprimir a etiqueta
  • Para demais modelos:
  • UEtiqPrint - EtiquetasLoad: Carrega os valores do banco ao imprimir a etiqueta
Atualização com interação do usuário

Quando for executar uma rotina na UFAtualiza que precisa de alguma informação de usuário, chamar o procedimento na função TFAtualiza.Atualiza: assim a pergunta cai só no final da atualização. Assim agente pode 'deixar rodando' a atualização

Executar o UNILAB CONSULTA

Project -> Options -> directories/Conditionals -> Conditionals: incluir: xxxxxxxx " ;Ver_Print_Only "

Alterações na Estrutura do Banco de dados Atualizar o dicionário de dados: D:\CVS\light\documentacao\Dicionário de Dados Unilab (v.2.0.2).mwb
Ao criar CPOSTOTRAN ou uma nova tabela com esse campo Em UFPreparaMov tem uma função que marca esse campo com O, adicionar a tabela na lista também.
Criar serviço Serviços deverão ter junto ao nome do serviço concatenado o nome da base gra service para ser instalado no datacenter teve que ser alterado de ultima hora pois ia ser instalado para o lida e ja estava para ourinhos
Incluir campo em tela Cad ou Sel No campo da query, atributo Título:
  • Tela CAD: deve ter o mesmo label do campo
  • Tela Sel: deve ter um descrição para o Filtra (se for um enumerado especificá-los, ex: Sexo do paciente [M]asculino, [F]eminino, [I]gnorado)
  • Em tempo de execução se alterar a SQL não esquecer de setar o título também.
XML
  • Não usar mais XMLParser, utilizar o comando obj := NewXML;
  • Sempre utilizar CDATA nos nossos XMLS quando um campo pode receber um & ou < ou >
Criar recurso na biblioteca As units usada ou criadas devem ser incluidas na biblioteca afim de evitar de a biblioteca não compilar e evitar de criar referências cíclicas entre pacotes.
Updates em mais do que uma tabela Respeitar a mesma ordem das tabelas da transmissão. Afim de evitar Deadlock entre rotinas.
PosSeek Toda vez q um procedimento usar DE.PosSeek, lembrar de PosSave/PosLoad (c/try)
TUnilabPedido Ao utilizar campos da classe TUnilabPedido, verificar no método TUnilabPedido.Carrega se o campo está sendo carregado (ImportaPedido Unilab x Unilab)
É versão de letra? Fazer o merge para o trunk!
Revisão Final 1 - Hints e Warnings Conferir os Hints e warnings gerados pelo Delphi e eliminá-los corrigindo os possíveis erros que eles podem estar indicando.
Revisão Final 2 - Teste de breakpoint Olhar no diff e colocar um breakpoint em cada bloco alterado e rodar o programa debugando e conferindo o resultado da execução, se o programa fez o que era esperado.

Cada breakpoint que ele passar e fizer o que é esperado, tirar o breakpoint até que todos os breakpoints sejam removidos.

O objetivo é testar todas as possibilidades englobadas pela alteração. Caso a implementação seja grande demais tornando esta etapa do checklist muito demorada, vamos conversar com o Cláudio e decidir se queremos dedicar tanto tempo conferindo aquela alteração.

Compilar todos os projetos Unilab_BETA, Unilabw, Unilaudos, UnilabSRV_BETA,UnilabSRV, Unilab Consulta.
Documentação do Ticket (UniSuite) Não esquecer de colocar no Ticket a Analise, Notas de Teste e Notas da Versão (Copiar do Pivotal).