Árvore de páginas

Versões comparadas

Chave

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

Índice
minLevel3

Objetivo

O intuito deste programa é gerar CRUDs simples para as tabelas disponíveis dos bancos selecionados

O projeto está disponível aqui:totvs-codegen.zip

Acesso

O gerador pode ser acessado através da url http://cxs-squad-tools:9301/url do ambiente configurado

No momento, não existe necessidade de um login, então basta acessar o endereço e utilizar.

Obs: existe um bug no framework (po-ui) que aleatoriamente Pode acontecer de a página não é ser exibida completamente. Se isso acontecer, apenas recarregue a página.

...

  • Progress (API e BO)
    API no padrão T-Talk, e BO com consulta dinâmica usando GpsQuery
  • Frontend PO-UI 2/3 16 Simplificado (Angular9Angular16)
    Tela padrão de CRUD com codificação simplificada, utilizando po-ui@2 + angular9, ou po-ui@3 + angular10ui@16 + angular16

Alguns artefatos possuem dependências específicas a serem adicionadas no projeto.
Para verificar as dependências , acessa a página de dependências.do projeto, acessa a sessão de dependências do projeto.

Dependências para a casca do projeto frontend

  • node: 16.20.0
  • totvs-gps-controls: ^15.0.17
  • totvs-gps-crud: ^5.0.7
  • totvs-gps-services: ^15.0.0
  • totvs-gps-utils: ^5.0.7
  • totvs-gps-custom: ^5.0.3

     Obs.: As dependências totvs-gps-controls, totvs-gps-crud, totvs-gps-services e totvs-gps-utils e totvs-gps-custom serão disponibilizadas em um .tgz na casca disponibilizada na sessão de template do frontend


Dependências do projeto

  • node: 14.20.1
  • typescript: 3.8.3
  • angular: 9.1.6
  • progress: 12/11


Instalação do projeto

Necessário ter o node 14.20.1, angular 9.1.6 e progress 12/11 instalado na máquina.

Para instalação do node, basta acessar este link 

Para instalação do angular, com o node instalado, basta executar o comando npm install -g @angular/[email protected]

Se o ambiente for windows, execute o comando get-executionpolicy em seu powershell, se o resultado for diferente de RemoteSigned, execute o seguinte comando: Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Com o projeto baixado, na pasta raiz do projeto é necessário executar o comando npm install, para instalação das dependências do projeto

Para sincronização dos dados basta acessar a sessão de sincronia de dados

Após isso, basta rodar o comando npm run prod

Obs.: Caso o ambiente do Codegen seja o mesmo ambiente que vai ser gerado os artefatos, terá que versionar o node, utilizando o NVM, podendo baixar no link aqui

Utilização

Na tela inicial, podem ser pesquisadas as aplicações que já estão cadastradas, incluir uma nova, editar uma já existente, excluir e gerar os artefatos da aplicação.

...

  • Tabela: nome da tabela do banco de dados. As tabelas são atualizadas todos os dias, após aplicação do dicionário de dados. Para mais informações de como realizar consulte a etapa de sincronia de dados
  • Nome do componente: é o nome da aplicação que será gerada
  • Descrição: titulo da aplicação
  • Módulo: módulo, dentro do padrão de APIs. Ex: "hcg", "hfp"
  • Versão: versão, dentro do padrão de APIs. Ex: "v1", "v2"
  • Time responsável: nome do time responsável. Ex: "contratos", "financas"

...

Ao confirmar a execução, serão gerados os artefatos em um caminho de rede, ao qual irá aparecer no rodapé da tela. Também terá um link para copiar o caminho para a área de transferência.

...

Sincronização de dados

Para que as tabelas aparecem apareçam é necessário com o progress 12 ou 11 instalado na máquina, executar o arquivo com tais parâmetros abaixo:

...

Bloco de código
languagebash
C:\[versao[caminho_instalacao_progress_12_ou_11 (ex.: dlc122)]/bin/prowin32.exe -b  -pfcpterm "\cxs-squad-sus01.jv01.local\Datasul-4THF\instance-8580\scripts\completo_120.pf" -ininame "\cxs-squad-tools\c$\TOTVS\dict-pump\DIFlex.iniiso8859-1 -cpstream ibm850 -basekey "ini" -ininame "arquivo.ini" -pf "\arquivo.pf" -p  "caminho_instalacao_codegen\cxssrc-squad-tools\c$\TOTVS\dict-pump\abl\dict-dump.p" -param \cxs-squad-tools\c$\TOTVS\nodejs\caminho_instalacao_codegen\data[bases_de_dados_que_serao_utilizadas_separados_por_vírgula (ex.: srcadger, gp)]
  • arquivo.pf: O .pf é o arquivo que contém as configurações da conexão do progress com o banco. Nele vai estar alguns parâmetros da sessão, bem como apontamentos de conexões com bancos de dados
  • arquivo.ini: O .ini é para configuração para telas GUI (Graphical User Interface) 

Caso apareça uma mensagem semelhante a essa:Image Added

Exclua os arquivos gerados no /data

...

/tables e tente novamente.

Em seguida, deve-se executar o comando npm run build:data contido no package.json para atualizar os dados


Criação de template

Template Frontend

O Codegen gera apenas a aplicação para ser inserido dentro de um projeto Angular

Aqui fica disponibilizado a "casca" de um projeto Angular

Casca_do_projeto.7z

Para verificar as dependências da casca do projeto frontend, clique aqui

Para instalar as dependências da casca do projeto frontend, basta rodar o comando npm install --legacy-peer-deps na pasta thf2

Para o build do artefato, na basta thf2, após o artefato e suas dependências estarem nos devidos lugar, basta executar o comando ng build nome-do-artefato --watch --output-path=diretorio-tomcat\webapps\nome-do-projeto\nome-do-artefato --configuration=production

Após isso, se tudo ocorrer bem, o projeto poderá ser acessado no http://localhost:porta-configurada/nome-do-projeto/nome-do-artefato

Caso seja gerado um novo template, após a compilação do projeto, já irá aparecer na tela para seleção desse template

  • Para criar um novo template é necessário criar na pasta data/template.

Image Added

  • Usando como base um dos dois templates existentes (backend/frontend), basta copiar e colar na mesma pasta e fazer as devidas alterações

     Obs.: Pode-se ainda alterar os templates existentes

  • O nome da pasta será o título que ficará ao tentar gerar o artefato

Image Added

  • Para o template de frontend, na pasta [nome_do_template]/$Datasul/src, terá o angular.json da funcinonalidade gerada que será colocado no projeto

      Obs.: É possível fazer a geração de arquivos necessário para integração contínua, como por exemplo o pom.xml, que é utilizado com a ferramenta maven

Image Added

  •  Dentro da pasta [nome_do_template]/$Datasul/src/app/programs terá a pasta cuja seja o nome do componente na criação do mesmo, dentro dela conterá todo o conteúdo de um CRUD simples

Image Added

  • Dentro da pasta [nome_do_template]/$Datasul/src/bootstrap conterá o arquivo de estilização que será colocado dentro da pasta do projeto

Image Added

  • Na casca do projeto disponibilizado contém o arquivo app.component.spec.ts é apenas um modelo para testes que pode ser implementado ou não

Image Added

Template Backend

O Codegen gera apenas a aplicação para ser inserido dentro de projeto progress

As includes ut-api, ut-api-notfound, ut-api-utils, ut-api-action já são expedidadas no produto padrão

  • Para criar um novo template é necessário criar na basta data/template.

Image Added

  • Usando como base um dos dois templates existentes (backend/frontend), basta copiar e colar na mesma pasta e fazer as devidas alterações

      Obs.: Pode-se ainda alterar os templates existentes

  • O nome da pasta será o título que ficará ao tentar gerar o artefato

Image Added

  • Para o template de backend, na pasta [nome_do_template]/$GP/[nome_do_componente], terá a pasta api, bosau, dbo e rtp

Image Added

  • Dentro da pasta api/v1, irá conter o arquivo cuja vai fazer comunicação com a bosau e realizar a comunicação com o frontend, contendo os endpoints
  • Dentro da pasta bosau, irá conter dois arquivos, o .i, onde ficará a include da tabela temporária, e no ponto .p conterá o fluxo de CRUD com a conexão da tabela selecionada
  • Dentro da pasta dbo/utils, irá conter o arquivo .i, onde faz as tratativas de erros http que são recebidas pela rowerror.i do rtp
  • Dentro da pasta rtp, irá conter o arquivo .i, onde pode se chamar para gerar erros de campos e de regras, como no exemplo abaixo:

Image Added`