Histórico da Página
Índice | ||
---|---|---|
|
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.
...
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 | ||
---|---|---|
| ||
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\cxs-squad-tools\c$\TOTVS\dict-pumpsrc-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.: datasrcadger, 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:
Exclua os arquivos gerados no /data/tables e tente novamente.
Em `Em seguida, deve-se executar o comando devnpm run build:dataOLD data contido no package.json para 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
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 basta pasta data/template.
- Usando como base um dos dois templates existentes (backend/frontend), basta copiar e colar na mesma pasta e fazer as devidas alterações
...
- Para o template de frontend, na pasta [nome_do_template]/$Datasul/src, terá o angular.json da funcinonalidade gerada que será colocado no projeto e
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
- 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
...
- Dentro da pasta [nome_do_template]/$Datasul/src/bootstrap conterá o arquivo de estilização que será colocado dentro da pasta do projeto
- 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
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.
- 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
- Para o template de backend, na pasta [nome_do_template]/$GP/[nome_do_componente], terá a pasta api, bosau, dbo e rtp
- 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: