Árvore de páginas

Versões comparadas

Chave

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


Section
bordertrue

Objetivo

A Ferramenta por linha de comando embutida no

Inclusão de trecho
tecen:Application Server
tecen:Application Server
nopaneltrue
permite diversas operações relacionadas a manipulação do RPO e execução de rotinas em batch. A ferramenta pode ser utilizada em processos de automação com a plataforma TOTVSTEC.

Principais características

  • Não tem comunicação cliente/server TCP, os comandos são executados diretamente no AppServer.
  • Ambiente simples que necessita apenas do appre, binário do appserver e arquivo de configuração "appserver.ini".
  • Compilação mais rápida.
  • Suporte a atual chave de compilação utilizada pelo TDS e TDSCli.
  • Chave de compilação para Linux utilizando criptografia AES 256bits.
  • Compatível com Sistemas Operacionais Windows e Linux.

Funcionalidades

  • Compilação de fontes e resources
  • Geração e aplicação de patches
  • Inspetor de Objetos
  • Execução de rotinas, sem interface



Section
bordertrue

Geral

Parâmetros

Parâmetros de linha do

Inclusão de trecho
tecen:Application Server
tecen:Application Server
nopaneltrue
.


Parâmetro de LinhaSistema OperacionalDescriçãoObservações

-console

ou

-debug

Windows
Executa o
Inclusão de trecho
Application Server
Application Server
nopaneltrue
em modo console.

-daemon

ou

daemon

Linux

Executa o

Inclusão de trecho
tecen:Application Server
tecen:Application Server
nopaneltrue
como um daemon no Linux.

  1. Ambas as formas, com ou sem o hífen, são aceitas para este parâmetro, obtendo o mesmo resultado final.
-versionLinux / Windows

Exibe a versão do

Inclusão de trecho
tecen:Application Server
tecen:Application Server
nopaneltrue
.

  1. Disponível a partir da versão 17.0.0.1.
-fullversionLinux / WindowsExibe informações mais completas sobre a versão do Application Server. tais como: Build Version, Profile (Debug, Release ou Release com Debug), Arquitetura, Plataforma, data de geração e demais informações.
  1. Disponível a partir da versão 20.3.2.8.

-ini=<config_file.ini>

ou

-ini <config_file.ini>

Linux / Windows

Define um arquivo de configuração alternativo ao padrão do

Inclusão de trecho
tecen:Application Server
tecen:Application Server
nopaneltrue
.

  1. Pode ser usado em conjunto com um dos parâmetros -daemon, ou daemon, ou -console, ou -debug, ou -install, conforme o sistema operacional.
  2. Deve ser usado ou com '=' sem espaços entre o parâmetro e o nome do arquivo, ou com apenas um espaço entre o parâmetro e o nome do arquivo.
  3. O arquivo de configuração alternativo <config_file.ini> deverá ter as mesmas características do arquivo padrão:
    1. estar no mesmo diretório do arquivo de configuração padrão;
    2. nome contendo apenas letras minúsculas, sem espaços, caracteres especiais, caminho do arquivo, etc.
    3. exemplos:
      1. -ini=newconfig.ini
      2. -ini alternative_file.ini
  4. Disponível a partir da versão 131227A NG 2.2.0.
-installWindows

Instalar o

Inclusão de trecho
tecen:Application Server
tecen:Application Server
nopaneltrue
como um serviço do Windows.


-removeWindows

Remover o serviço do Windows do

Inclusão de trecho
tecen:Application Server
tecen:Application Server
nopaneltrue
.


-compileWindows / LinuxOperações relacionadas ao acesso e alteração do repositório (RPO)Opção de linha do comando para operações de alteração e manutenção do RPO. Detalhes do comando disponível em: AppServer Command Line - Compilação por linha de comando
-runWindows / Linux

Operações relacionadas a execução de rotinas diretamente no

Inclusão de trecho
tecen:Application Server
tecen:Application Server
nopaneltrue
.

Opção de linha do comando para operações de execução de rotinas RPO. Detalhes do comando disponível em: AppServer Command Line - Execução por linha de comando
-helpWindows / Linux

Exibe no console uma ajuda com as opções disponíveis no

Inclusão de trecho
tecen:Application Server
tecen:Application Server
nopaneltrue
Command Line



Section
bordertrue

Opção Compile

Estado
colourGreen
titleDisponível a partir da versão 17.3.0.9

Compilação

Parâmetros

NomeDescriçãoObrigatórioObservações
-compileNecessário para inicialização da ferramentaSim
-files

Informa quais fontes serão compilados podendo ser informado das seguintes formas:

  • Arquivo Lst 
  • Pastas (Diretórios e sub-diretórios). Obs: O que não é programa será compilado como resource.
  • Arquivo único (fonte ou resource).
Sim
-includesInforma o diretório de includes usado durante a o pré-processamento dos fontes.Sim
-envInforma o ambiente que deverá ser acessado para compilação.Sim
-nodelfilesUtilizado para debug, caso informado, não deleta os arquivos gerados durante o pré-processamento e também mantem os arquivos temporários .Lst gerados durante o processo.


Não


-authorizationInforma a chave de compilação no formato de arquivo .aut, padrão TDS / TDSCli ou, o token de compilação no formato de arquivo .token, no padrão JWT.Não

Estado
colourBlue
titleA partir da versão 20.3.2.0, não será mais utilizada a autorização da chave de compilação.

-outreportGera os arquivos compile_sucess.log, que contem a lista de fontes compilados com sucesso no formato do arquivo .lst, e compile_errors.log, que contem a lista de fontes não compilados e os erros de compilação. A partir da versão 17.3.0.19, também é possível definir o diretório de saída para esses arquivos.Não

Estado
colourGreen
titleDisponível a partir da versão 17.3.0.15

-exclude=<regex>Define um padrão regex para exclusão de arquivos no processo de compilação. Os arquivos que satisfizerem o regex indicado serão ignorados. O regex deve ser informado no padrão da bilbioteca RE2, a syntax pode ser encontrada aqui.Não


-ignoresubdirsQuando essa opção as subpastas dos caminhos de compilação serão ignorados.


Arquivo .Lst

Tipo de arquivo com extensão .lst que pode conter uma lista de fontes e resources no formato de path absoluto, ou diretórios para compilação. Quando houverem diretórios, um novo arquivo .lst temporário com prefixo _generated será gerado para a extração dos arquivos contidos no diretório informado, compondo assim uma nova lista de arquivos a serem compilados. Por meio do parâmetro nodelfiles, é possível manter também esses arquivos temporários para análise.

O conteúdo do arquivo deverá respeitar as seguintes regras:

  • Usar separador ' ; '
  • Todos caminhos de arquivos ou diretórios devem ser inseridos em uma única linha com separador no final.


Veja o exemplo de arquivo anexado: exemplo.lst

Informações
titleExemplos:

appserver.exe -compile -files=D:\totvs\lobo-guara\cmdline\teste.prw -includes=C:\totvs\lobo-guara\Include -src=D:\totvs\lobo-guara\cmdline -env=environment

appserver.exe -compile -files=D:\totvs\lobo-guara\cmdline -includes=C:\totvs\lobo-guara\Include -src=D:\totvs\lobo-guara\cmdline-env=environment

appserver.exe -compile -files=D:\totvs\lobo-guara\cmdline\lista.lst -includes=C:\totvs\lobo-guara\Include -src=D:\totvs\lobo-guara\cmdline -env=environment

Chave de compilação

Informações
titleObservação:

A partir da versão 20.3.2.0, os recursos de geração e de autenticação por meio de uma chave de compilação foram descontinuados. Será utilizado somente o token de compilação. Caso haja alguma tentativa de utilização destes parâmetros sejam será exibo um aviso informativo, "The Compilation key feature is no longer supported and the compilation token must be used from now on".

Compatível com a chave de compilação gerada e utilizada no TDS e TDSCli. Para a utilização da ferramenta Compile, é preciso exportar as informações de uma nova ou já existente chave criando um arquivo com extensão .aut. No Linux, é utilizado o mesmo padrão de criação de chave realizando o controle pelo UUID do disco porem, a chave é criada e criptografada utilizando algoritmo AES 256bits.

Exemplos:

Windows

Bloco de código
languagexml
[AUTHORIZATION]
ID=FA15-EB7C
GENERATION=12/02/2019
VALIDATION=13/05/2019
PERMISSION=1
KEY=042MQC032QYIQ74A1E7671302

Baixar exemplo.

Linux

Bloco de código
languagexml
[AUTHORIZATION]
ID=d40f3aa2-d5ae-4a0b-a0f5-a44e29bcd344
GENERATION=20/02/2019
VALIDATION=21/05/2019
PERMISSION=1
KEY=gjvqs3U7vInn/VcX9Hl0Av2is+mLrr4j/BxHMdyR7uPaOcQC7OVtTIWhIMU0/5AkfipUxQukozs121WVNafNyQ==

Para criação de uma nova chave no Linux, será necessário a coleta do UUID onde a ferramenta está instalada e posteriormente entrar em contato com a Tecnologia - AppServer

Comando para obtenção do UUID no linux:

Bloco de código
languagebash
./appsrvlinux -compile -uuid

Section
bordertrue

Geração de Patch

Recurso para geração de path. Por default, os patchs serão gerados na pasta "cmdgenpatch" dentro do Environment.

Parâmetros

NomeDescriçãoObrigatórioObservações
-compileNecessário para inicialização da ferramentaSim
-genpatchIndica geração de PatchSim
-files

Informa os arquivos que irão compor o patch da seguinte forma:

  • Arquivo .lst contendo os fontes que deverão compor o Patch. Neste arquivo, apenas os nomes dos fontes respeitando:
    • Usar separador ' ; '
    • Todos nomes de fontes devem ser inseridos em uma unica linha com separador no final.
  • Um único nome de fonte ou mais, separados por ";"
Sim
-deletefilesInforma quais arquivos irão ser deletados ao aplicar o patch.
  • Arquivo .lst contendo os fontes que deverão compor o Patch. Neste arquivo, apenas os nomes dos programas respeitando:
    • Usar separador ' ; '
    • Todos nomes de fontes devem ser inseridos em uma unica linha com separador no final.
  • Um único nome de fontes ou mais, separados por ";"
Não

Estado
colourGreen
titleDisponível a partir da versão 20.3.2.15

-envInforma o ambiente que deverá ser acessado para compilação.Sim
-patchtypeExtensão de patch: ptm, upd ou pak.  Por default, é gerado com extensão ptm.Não
-npatchtypeMesmo que o parametro "patchtype" mas recebe valor numerico onde 1: UDP, 2: PAK, 3: PTMNão

-outgenpatchPermite a definição de um diretório de output.Não

Estado
colourGreen
titleDisponível a partir da versão 17.3.0.19

Informações
titleExemplos:

appserver.exe -compile -genpatch -files=mainfunc.prw -env=environment -patchtype=ptm

appserver.exe -compile -genpatch -files=mainfunc.prw;teste.prw -env=environment -patchtype=ptm

appserver.exe -compile -genpatch -files=D:\totvs\lobo-guara\patch.lst -env=environment -patchtype=ptm

appserver.exe -compile -genpatch -files=D:\totvs\lobo-guara\patch.lst -env=environment -patchtype=ptm -outgenpatch=d:\patchs\teste1


Validação de Patch


Estado
colourGreen
titleDisponível a partir da versão 17.3.0.20

Este recurso permite ao desenvolvedor adicionar uma etapa de verificação do Patch antes de aplicá-lo. O resultado dessa verificação pode ser armazenado em um arquivo Log e analisado posteriormente.

Parâmetros

NomeDescriçãoObrigatórioObservações
-compileNecessário para inicialização da ferramentaSim
-validatePatchIndica Validação de PatchSim
-files

Informa o patch a ser aplicado com extensão  ("PTM", "UPD" E "PAK").

Sim
-envInforma o ambiente que deverá ser acessado para compilação.Sim
-outreportGera o arquivo patch_errors.log contendo o resultado da verificação de patch. Também é possível definir o diretório de saída para esse arquivo.Não
Informações
titleExemplo:

appserver.exe -compile -validatepatch -files=D:\totvs\patch\tttp120.ptm -env=advplc -outreport


Aplicação de Patch

Recurso para aplicação de Patch.

Parâmetros

NomeDescriçãoObrigatórioObservações
-compileNecessário para inicialização da ferramentaSim
-applypatchIndica aplicação de PatchSim
-files

Informa o patch a ser aplicado com extensão  ("PTM", "UPD" E "PAK").

Sim
-envInforma o ambiente que deverá ser acessado para compilação.Sim
-applyoldprogramInforma que serão aceitos fontes mais antigos que o RPO. Por default, aceita somente os fontes mais novos.Não
-cbfilesInterno. Não é possível utilizar sem o token interno da TOTVS.Não

Estado
colourGreen
titleDisponível a partir da versão 20.3.1.3

Informações
titleExemplo:

appserver.exe -compile -applypatch -files=D:\totvs\patch\tttp120.ptm -env=advplc -applyoldprogram


Section
bordertrue

Conversão de RPO

Estado
colourGreen
titleDisponível a partir da versão 24.3.0.1

Recurso ConvertRPO para converter o RPO para nova versão de criptografia. Esse recurso só pode ser usado para converter o RPO Custom, o RPO Default não pode ser convertido.

Parâmetros

NomeDescriçãoObrigatórioObservações
-compileInicialização da ferramenta.Sim
-convertrpoInforma que será realizado a função que converte o RPO para nova versão de criptografia.Sim
-envInforma o ambiente que deverá ser desfragmentado.Sim
Informações
titleExemplo:

appserver.exe -compile -convertrpo -env=advplc



Desfragmentação de RPO

Recurso DefragRPO para desfragmentação de RPO.

Parâmetros

NomeDescriçãoObrigatórioObservações
-compileInicialização da ferramenta.Sim
-defragrpoIndica desfragmentação de RPO.Sim
-envInforma o ambiente que deverá ser desfragmentado.Sim
Informações
titleExemplo:

appserver.exe  -compile -defragrpo -env=advplc



Revalidação do RPO

Recurso para verificar a integridade o RPO e definir o status do RPO como produtivo (production). Este recurso é de uso exclusivo da TOTVS pois é necessário um token de compilação com status produtivo.

Parâmetros

NomeDescriçãoObrigatórioObservações
-compileInicialização da ferramenta.Sim
-revalidateRPOIndica revalidação doe RPO.Sim
-envInforma o ambiente que deverá ser revalidado.Sim
-authorizationToken com status produtivo para revalidação do RPO

Sim


Informações
titleExemplo:

appserver.exe  -compile -revalidateRPO -env=advplc -authorization=prod.token


Section
bordertrue

Inspetor de Objetos

Estado
colourGreen
titleDisponível a partir da versão 20.3.0.0

Realiza a inspeção de objetos (Fontes e recursos) no RPO de acordo com as regras de acesso: com token de autorização faz a inspeção no RPO default e sem token, faz a inspeção no RPO Custom. Por padrão, serão retornadas informações sobre "Resources" e "Sources", mas também é possível aplicar filtros para selecionar as informações desejadas. 

O resultado será gravado no arquivo "inspector_objects.txt" contendo as informações: Data e hora de geração do arquivo, número total de objetos encontrados, filtros aplicados, ambiente, nome do objeto, data e hora, status do objeto e o tipo do RPO.

Informações

Caso não seja encontrado nenhum objeto no RPO, o arquivo de resultados será gerado sem o conteúdo listado e também será registrado uma mensagem no arquivo de log "inspectorobjects_errors.log".

Informações
titleImportante
Source StatusDescrição
0No Status (No Authorization)
1Production
2Development
Informações
titleImportante
RpoTypeDescrição
1Padrão
2TLPP
3Custom
4Auxiliar

Parâmetros

NomeDescriçãoObrigatórioObservações
-compileInicialização da ferramenta.Sim
-inspectorobjectsinspetor de ObjetosSim
-envInforma o ambienteSim


-applyField

Indica se a pesquisa deverá ser feita considerando apenas "Resources" ou "Sources". Por exemplo -applyField=sources.

Por padrão retornará Sources e Resources.


Não


-authorization

Indica o token de compilação que irá selecionar o RPO a ser inspecionado. Caso não seja informado, o RPO Custom será selecionado por padrão.

Não


-outputdir

Define o diretório de saída para o arquivo no formato txt que contêm as informações coletadas. O diretório padrão é a pasta cmdoutpudir dentro do RoothPath.

Também é possível alterar o diretório de saída para esse arquivo informando outro diretório.

Por exemplo: -outputdir=c:\totvs\outrodir


Não


-outreport

Gera o arquivo inspectorobjects_erros.log. Por padrão, o diretório de saída do arquivo é na pasta cmdreport dentro do RootPath.

Também é possível alterar o path de saída do arquivo indicando outro diretório.

Por exemplo: -outreport=c:\totvs\report.


Não


Informações
titleExemplo:

./appserver -compile -inspectorobjects -env=test -outputdir=c:\tmp\inspector -outreport=c:\tmp\inspector\logs

Informações
titleExemplo listando apenas Resources:

./appserver -compile -inspectorobjects -env=test -applyField=resources -outputdir=c:\tmp\inspector -outreport=c:\tmp\inspector\logs

Informações
titleExemplo listando apenas Sources:

./appserver -compile -inspectorobjects -env=test  -applyField=sources -outputdir=c:\tmp\inspector -outreport=c:\tmp\inspector\logs

Informações
titleExemplo listando fontes e recursos com token de compilação

./appserver -compile -inspectorobjects -env=test  -outputdir=c:\tmp\inspector -outreport=c:\tmp\inspector\logs -authorization=c:\tmp\development.token


Inspetor de Funções

Estado
colourGreen
titleDisponível a partir da versão 20.3.0.0

Realiza a inspeção de Funções (Funções, Classes e Métodos) no RPO de acordo com as regras de acesso: com token de autorização faz a inspeção no RPO default e sem token, faz a inspeção no RPO Custom. Por padrão, serão retornadas informações sobre "Funções", "Classes" e "Métodos", mas também é possível aplicar filtros para selecionar as informações desejadas.

O resultado será gravado no arquivo "inspector_functions.txt" contendo as informações: Data e hora de geração do arquivo, número total de funções, classes e métodos encontrados, filtros aplicados, ambiente, nome da função, nome do objeto, número da linha, status do fonte e o tipo do RPO.

Informações

Caso não seja encontrado nenhuma função, Classe ou Método no RPO, o arquivo de resultados será gerado sem o conteúdo listado e também será registrado uma mensagem no arquivo de log "inspectorfunctions_errors.log".

Aviso

Registros onde o nome da função é #NONE, significa que o fonte está vazio e não tem nenhuma função.

Informações
titleImportante
Source StatusDescrição
0No Status (No Authorization)
1Production
2Development
Informações
titleImportante
RpoTypeDescrição
1Padrão
2TLPP
3Custom
4Auxiliar

Parâmetros

NomeDescriçãoObrigatórioObservações
-compileInicialização da ferramenta.Sim
-inspectorfunctionsinspetor de FunçõesSim
-envInforma o ambienteSim


-applyField

Indica se a pesquisa deverá ser feita considerando apenas "Functions" ou "ClassMethods". Por exemplo -applyField=functions.

Por padrão retornará Functions, Class e Methods.


Não


-authorization

Indica o token de compilação que irá selecionar o RPO a ser inspecionado. Caso não seja informado, o RPO Custom será selecionado por padrão.

Não


-outputdir

Define o diretório de saída para o arquivo no formato txt que contêm as informações coletadas. O diretório padrão é a pasta cmdoutpudir dentro do RoothPath.

Também é possível alterar o diretório de saída para esse arquivo informando outro diretório.

Por exemplo: -outputdir=c:\totvs\outrodir


Não


-outreport

Gera o arquivo inspectorfunctions_erros.log. Por padrão, o diretório de saída do arquivo é na pasta cmdreport dentro do RootPath.

Também é possível alterar o path de saída do arquivo indicando outro diretório.

Por exemplo: -outreport=c:\totvs\report.


Não


Informações
titleExemplo:

./appserver -compile -inspectorfunctions -env=test -outputdir=c:\tmp\inspector -outreport=c:\tmp\inspector\logs

Informações
titleExemplo listando apenas Functions:

./appserver -compile -inspectorfunctions -env=test -applyField=functions -outputdir=c:\tmp\inspector -outreport=c:\tmp\inspector\logs

Informações
titleExemplo listando apenas Classes e Metódos:

./appserver -compile -inspectorfunctions -env=test  -applyField=classmethods -outputdir=c:\tmp\inspector -outreport=c:\tmp\inspector\logs

Informações
titleExemplo listando funções, classes e métodos com token de compilação

./appserver -compile -inspectorfunctions -env=test  -outputdir=c:\tmp\inspector -outreport=c:\tmp\inspector\logs -authorization=c:\tmp\development.token


Section
bordertrue

Opção Run

Estado
colourGreen
titleDisponível a partir da versão 17.3.0.9

Com este recurso, é possível executar programas TLPP, ADVPL e 4GL que não tenham interface gráfica utilizando apenas o

Inclusão de trecho
tecen:Application Server
tecen:Application Server
nopaneltrue
. Lembrando que é possível somente a execução de Main e User Function.

O retorno da função ADVPL executada deverá ser inteiro. Esse retorno será o código de saída do processo.

Parâmetros

NomeDescriçãoObrigatórioObservações
-runNecessário para inicialização da ferramenta. Informa a função que será executada.Sim
-env

Necessário para informar o ambiente que deverá ser acessado para execução.

Sim
-consolelog

Indica se deve forçar a gravação no console.log. Por padrão algumas informações já são gravadas no console.log, entretanto, caso esse parâmetro seja definido mais informações serão gravadas.

Não
Parâmetros extras da função a ser executada

Informa os parâmetros extras da função que será executada. Não é preciso indica-los com nenhum operador, basta separa-los por espaço.

Importante: o programa ADVPL/TLPP irá receber todos os parâmetros presentes na chamada do appserver.exe e não somente os parâmetros extras.

Não
Informações
titleExemplo estrutura genérica

Windows: appserver.exe -run=<nomeDaFuncao> -env=<nomeDoEnvironment> <quaisquer outros parâmetros para a função>

Linux: ./appsrvlinux -run=<nomeDaFuncao> -env=<nomeDoEnvironment> <quaisquer outros parâmetros para a função>

Informações
titleExemplo estrutura prática

Exemplo de função, execução e saída esperada com passagem de parâmetros:

Bloco de código
languagecpp
titlefuncRunAdvpl.tlpp
linenumberstrue
Main Function FuncRunAdvpl(parm As Variadic)
	Local i
	Conout(parm:vCount)
	For i := 1 To parm:vCount
     Conout(parm:vArgs[i])
   Next

Return 1
Informações
titleComando de execução:

appserver.exe -run=funcRunAdvpl -env=chg teste lalala

Aviso

O recurso Variadic está disponível apenas para a linguagem TLPP.

Documentação: Variadic

Informações
titleExemplo de função, execução e saída esperada utilizando entrada padrão

Exemplo de função, execução e saída esperada com passagem de parâmetros:

Bloco de código
languagecpp
titlefuncRunAdvpl.tlpp
linenumberstrue
Main Function Soma()
	Local n1
	Local n2
	Conout("Digite o primeiro valor:")
	n1 := Val(conin()) 
	Conout("Digite o segundo valor:")
	n2 := Val(conin())
	Conout("Soma:" + cValToChar(n1+n2))
Return 0
Informações
titleComando de execução:

appserver.exe -run=soma -env=chg


Exemplo de programa 4GL:

Bloco de código
languagecpp
titleteste4GL.4GL
linenumberstrue
MAIN
    CALL Conout("Teste 4GL")
END MAIN
Informações
titleComando de execução:

appserver.exe -run=teste4GL.4GL -env=p1212410sql

Informações
titleVeja também

Índice
printablefalse





HTML
<style>.toc-macro {position: fixed; float: right}</style>