Páginas filhas
  • DFKLOGIX-1373 DT LOG00001 Melhorias no extrator de versões de fontes Logix

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.


01. DADOS GERAIS

Produto:

Solucoes_totvs
Solucao TOTVS Framework

Solucoes_totvs_cross
SolucaoCross

Solucoes_totvs_parceiros
SolucaoParceiros

Solucoes_totvs_parceirosexptotvs
SolucaoParcsExpsTOTVS

Linha de Produto:

Linhas_totvs
LinhaLinha Logix

Segmento:

Segmentos_totvs
SegmentoTecnologia

Módulo:

Modulos_cross_segmentos

Modulos_framework
ModulosFrameworkFramework (Linha Logix) - Administração Logix

Modulos_totvs_construcao

Modulos_totvs_juridico

Modulos_totvs_logistica

Modulos_totvs_manufatura

Modulos_totvs_rh

Modulos_totvs_saude

Modulos_totvs_prestadores_de_servicos

Função:Extrator de Versão - LOG00001
País:Brasil
Ticket:
Requisito/Story/Issue (informe o requisito relacionado) :DFWKLOGIX-1373


02. SITUAÇÃO/REQUISITO

Criar nova opção no programa Extrator de Versões de Fontes (LOG00001), para exportar uma lista de fontes identificados em um diretório do disco local, considerando apenas as extensões de arquivos que tenham controle de versionamento no produto Logix (4GL, PRW, PRG, PRX, APL, TLPP). Essa lista não deverá contemplar versionamento de fontes, pois terá como propósito permitir realizar extração de versionamento de uma lista específica de fontes de um RPO (Repositório de Objetos).

Uma aplicação bem comum desta necessidade é agrupar em um diretório uma lista de fontes do produto que façam parte de um projeto ou então de um processo/rotina do produto, como por exemplo:

    • Fechamento de custos
    • Fechamento de estoque
    • Fechamento contábil
    • Todos os fontes de um determinado módulo Logix
    • Todos os fontes liberados em um determinado pacote Logix

Essa lista de fontes também poderá vir a ser montada de forma manual se desejar, sendo que o requisito é que o arquivo seja no formato texto e em cada linha do arquivo contemple o nome de um arquivo fonte com sua respectiva extensão, lembrando que apenas as extensões de arquivos que façam parte do RPO do produto Logix e que tenham controle de versionamento serão considerados durante o processamento.

03. SOLUÇÃO

  • Foi implementada uma nova opção na tela inicial do programa Extrator de Versões de Fontes (LOG0001) para exportar uma lista com apenas o nome de alguns arquivos fontes com controle de versionamento localizados em um diretório local informado em tela. Essa lista pode ser utilizada em um novo processamento do Extrator de Versões, a partir de outro ambiente de execução do produto Logix, com objetivo de gerar um extrato de versões dessa lista de arquivos fontes contidos no RPO deste outro ambiente.

    Veja abaixo a comparação das opções disponíveis na versão anterior e atual da tela Extrator de Versões Logix:
Image Removed

Image Added

   

Image Removed

 

Image Removed

Veja que na nova versão da tela as opções tiveram seus textos penas reformulados para deixar mais claro o propósito de cada ação disponível, mas agora surgiram duas novas opções sendo:


Image Modified

      Quando utilizar esta opção?

Você fará uso desta opção, quando tiver ou receber um lista de fontes com o propósito de gerar um extrato de versão com base nessa lista.

Esta opção será mais comum ser solicitada por um analista de atendimento da TOTVS em que existe a necessidade dele identificar as versões atuais em uso no produto Logix de uma determinada lista de fontes, pois o extrato de versão emitido através desta opção pode ser posteriormente utilizado para processar a opção a partir de um outro ambiente com outra versão de RPO. Mas esta opção pode também ser util em ambientes internos de desenvolvimento onde também exista a mesma necessidade de realizar a comparação de versões com o extrato de versão de um outro RPO.


      Quando utilizar esta opção?

Quando você precisa avaliar o versionamento atual de uma lista de fontes do produto Logix que estão em uso no RPO do produto, no entanto se torna um pouco inviável informá-los um a um em tela no campo de filtro (Opção 1 da tela) quando essa lista envolver uma quantidade grande de fontes. Essa lista de fontes pode ter relação com um projeto, módulo do produto, processo de negócio, fontes customizados ou até mesmo fontes relacionados a uma liberação de uma melhoria ou retrabalho que tanto a TOTVS como o próprio time de desenvolvimento do cliente TOTVS poderá ter a necessidade de identificar de uma forma mais rápida a versão atual disponivel no produto para essa relação de fontes.

Informações
titleEXEMPLO

Tenho uma pasta de fontes de um módulo customizado onde armazeno fontes com diversas extensões sendo .per, .4gl, .prw, .txt, .json, .png, entre outras. Quero gerar uma lista com todos os fontes com controle de versão dessa pasta e subspastas existentes, para poder gerar um extrato de versão a partir do LOGIX.

Neste caso você pode utilizar esta opção Image Modifiedpara gerar uma lista simples apenas com o nome dos arquivos de fontes localizados na pasta informada, mas também poderá optar em usar a opção Image Modifiedpara gerar um extrato de versão dos fontes localizados nessa pasta, sendo que para isso, o processamento acessa cada um dos arquivos fontes que contém a função de controle de versionamento Logix e captura os respectivos valores do número da revisão e a data/hora da revisão.

      Mas o que fazer com a lista de fontes gerada por esta opção?

Você poderá utilizar essa lista para usar na opção Image Modified

Esta opção normalmente é mais utilizada por equipes de desenvolvimento e poderá ser também utlilizada pelos times de atendimento da TOTVS para gerar uma lista de fontes que será enviada aos clientes Logix pra que possam gerar a extração de versão dessa lista e enviá-la novamente para TOTVS para análise de versões de fontes, com propósito de identificar necessidade de alguma atualização.


   PADRÃO DE DESENVOLVIMENTO DA FUNÇÃO DE CONTROLE DE VERSÃO NOS FONTES LOGIX

Os fontes do produto LOGIX que atualmente devem conter uma função interna para garantirem o controle de versionamento são os fontes com as seguintes extensões: .4gl, .prw, .tlpp, .prg, .prx, .apl, sendo as extensões prw, prg, prx e apl desenvolvidas na linguagem ADVPL.

Se você optar em fazer uso do mesmo controle de versionamento de fontes do produto LOGIX, deverá definir no código fonte uma FUNCTION com um determinado padrão de nome e conteúdo conforme exemplificado a seguir.


       Nome do fonte:
ESP00001.4GL    (Desenvolvido na linguagem 4GL)

Bloco de código
languageruby
themeConfluence
#-------------------------------------------------------#
FUNCTION esp00001_version_info()
#-------------------------------------------------------#
RETURN "$Archive: esp00001.4gl $|$Revision: 1 $|$Date: 11/07/24 17:19 $|$Modtime: 11/07/24 17:19 $|$BranchId: DFWKLOGIX-1373 $" // Informações do controle de versão de fontes Logix - Não remover esta linha (FRAMEWORK)
END FUNCTION


       Nome do fonte:
ESP00001.PRW ou ESP00001.TLPP   (Desenvolvido na linguagem ADVPL ou TLPP)

Bloco de código
languageruby
themeConfluence
#-------------------------------------------------------#
FUNCTION esp00001_version_info()
#-------------------------------------------------------#
RETURN "$Archive: esp00001.prw $|$Revision: 3 $|$Date: 12/07/24 21:19 $|$Modtime: 12/07/24 21:19 $|$BranchId: DFWKLOGIX-1373 $" // Informações do controle de versão de fontes Logix - Não remover esta linha (FRAMEWORK)
END FUNCTION


Veja que o nome da função precisa respeitar o seguinte padrão:

     <NOME DO FONTE SEM EXTENSÃO>_version_info()

     O sufixo _version_info() é sempre fixo desta forma sem definir parâmetros. 


O conteúdo da função tem um retorno no formato texto pré-definido com alguns identificadores que precisam ser respeitados para a correta interpretação do controle de versão composto por:

    $Archive: <NOME DO FONTE COM SUA EXTENSÃO>
    Informe o nome do arquivo com sua extensão, ficando opcional informar ou não o caminho de localização do fonte, em caso de armazenamento em ferramentas de repositório de fontes.

    $Revision: <NÚMERO SEQUENCIAL DA REVISÃO DO FONTE> $
    Número sequencial incremental, que deve ser incrementado a cada nova modificação e liberação do fonte, caso venha a manter um histórico de todas as versões alteradas do código fonte em alguma ferramenta de repositório de fontes, como por exemplo Github, SourceSafe, GitLab, Git-Azure, entre outras.

    $Date: <DATA E HORA DA REVISÃO DO FONTE NO FORMATO DD/MM/AA HH:MM>
    Data e hora de liberação da respectiva revisão do fonte no formato dd/mm/aa hh:mm sendo dia (dd), mês (mm), ano (aa), hora (hh) e minutos (mm), sempre usando 2 dígitos numéricos para cada uma das informações de forma a garantir a correta interpretação pelas funções de captura de versionamento de fontes do produto Logix.

    $Modtime: <INFORMAÇÃO DESCONTINUADA MAS PODE SER PREENCHIDA COM O MESMO CONTEÚDO DA DATA E HORA DE REVISÃO DO FONTE> $
    Esta informação foi descontinuada, mas precisou ser mantida devido a questões de legado do produto Logix. O formato é o mesmo da data e hora de revisão do fonte.

    $BranchId: <USO RESERVADO TOTVS PARA INFORMAR NÚMERO DE ISSUE DE LIBERAÇÃO DA REVISÃO DO FONTE> $
    A TOTVS preenche atualmente este identificador com o número da ISSUE de desenvolvimento que é, inclusive, documentada nas notas de release dos pacotes LOGIX registrados no portal TDN. Este identificador poderá ser usado por clientes para identificar um código qualquer de controle para identificar a origem da necessidade de alteração do fonte que gerou esta revisão, como por exemplo, o número de uma ordem de serviço, número de ticket ou outro código de controle interno. Se não houver interesse em utilizar esta informação, pode deixar seu conteúdo em branco, pois não irá impactar no produto.


   OUTROS AJUSTES IMPLEMENTADOS NO CONTROLE DE VERSÕES LOGIX

  • As extensões de arquivos PRG, PRX, APL e TLPP passarram a ser previstas nas funções de extração de versionamento de fontes.

  • O campo de filtro informado em tela passa a permitir que o usuário informe filtros com as extensões dos arquivos desejados. Veja alguns exemplos de filtros permitidos:
Informações
iconfalse
    • log00*.4gl;lbrowse*.prw
    • *.4gl
    • log*;men*;wms*

Veja que nos exemplos acima é permitido informar mais de um filtro desde que, entre um filtro e outro, seja informado um ponto e vírgula ( ; ).

Também é possível não informar nenhum filtro, de modo que a lista será criada com base em todos os objetos que tiverem controle de versão, mas isso poderá demorar um pouco para processar e neste caso será apresentado um aviso ao usuário e obterá a confirmação do usuário para continuar o processamento.

  • O tamanho dos campos reservados para informar filtro, nome de arquivo e diretório foram ampliados.


04. DEMAIS INFORMAÇÕES

  • A função ADVPL strToDynArrayByToken(), que permite a carga de uma variável 4GL ARRAY de tipo simples (CHAR, INTEGER, DATE, VARCHAR, etc), passou a prever elementos com valores nulos, onde no conteúdo texto repassado como parâmetro encontrar o delimitador com dois ou mais ocorrências subsequentes, sem a existência de conteúdo entre um delimitador e outro, caracterizando assim um conteúdo nulo (NULL) em um dos elementos.
  • Alguns fontes do Framework estavam apresentando problema na extração de versão devido ao formato ou nome da função de versionamento <fonte>_version_info() estar com conteúdo incorreto.
  • A ação de exportação de dados pra Excel a partir do clique do botão direito do mouse sobre o GRID que contém a lista de fontes com resultado de processamento das opções de extração de versão ou comparação de versões, não estava respeitando corretamente o valor da legenda da primeira coluna que indica os valores "Versão OK", "Versão Divergente" ou "Função/Versão inexistentes". Apenas quando a versão era igual a legenda "Versão OK" era apresentada e nos demais casos eram apresentados valores numéricos ao invés de apresentar como "Versão Divergente" ou "Função/Versão inexistentes".


Card documentos
InformacaoDisponível a partir do pacote oficial 12.1.2411 ou Framework Fix 12.1.2407(fix01)
TituloIMPORTANTE!

05. ASSUNTOS RELACIONADOS

  • Não se aplica.



Templatedocumentos