Histórico da Página
Esse recurso permite que seja utilizado um repositório auxiliar , um chamado RPO customizado, com programas completos ou funções especificas, permitindo a rápida customização de um determinado ambiente com um "pacote" completo (RPO Customizado), sem precisar aplicar o pacote no repositório padrão (desde que o pacote seja para o RPO customizado).
Configuração
Até a versão 19.3.1.x do Appserver Lobo Guará:
Para que seja possível utilizar esse recurso, é necessário indicar o caminho do RPO customizado, alem além das chaves de RPO ja já existente no ambiente, indicar também o caminho do RPO customizado. Para isso coloque informe a chave: RPOCUSTOMIZATION=<<caminho completo do arquivo>> , como por exemplodo arquivo>> no arquivo de ini.
A partir da versão 20.3.0.x do Appserver Harpia:
No Appserver Harpia 20.3.0.x, esse recurso esta ativado por padrão. Sendo assim, qualquer programa que seja compilado no ambiente que seja diferente do padrão da TOTVS será compilado e salvo no RPO customizado. Esse arquivo passa a fazer parte do ambiente juntamente com os RPOs Default e TLPP e terá prioridade para buscas em funções do tipo USER FUNCTION, além de salvar também classes e outros artefatos compilados no ambiente. É possível informar um local especifico para esse arquivo através da chave: RPOCUSTOM=<<caminho completo do arquivo>> no arquivo de ini. Caso a chave não seja informada, o arquivo passa a ser criado por padrão na mesma pasta onde esta o executável do Appserver Harpia.
Veja um exemplo da configuração no ini:
Bloco de código | ||||
---|---|---|---|---|
| ||||
[LGEnvironment] SourcePath=D:\TOTVS\P64_X\apo RootPath=D:\Totvs\P64_X\pd_lg_db\ StartPath=\system_rbra\ RpoDb=top RpoLanguage=portuguese RegionalLanguage=BRA RpoVersion=120 LocalFiles=Ctree SQLiteServer=localhost SQLitePort=5056 specialkey=p12117_tst localdbextension=.dtc PictFormat=DEFAULT DateFormat=DEFAULT DBDATABASE=MSSQL DBSERVER=10.172.0.107 DBALIAS=P12_1217_NODIC RPOCUSTOMIZATIONRPOCUSTOM=D:\TOTVS\P64_X\apo\customlocal.rpo |
...
Nesse exemplo de ini, temos como exemplo um ambiente pronto para ser usado pelo usuário final na abertura do ERP com suas funções customizadas sendo carregadas (quando houver) do arquivo customlocal.rpo. Porem, para criar esse arquivo, é necessário que ele tenha sido criado em ambiente que tenha sido escrito da seguinte forma.
Compilação
Até a versão 19.3.1.x do Appserver Lobo Guará:
Para que seja possível compilar arquivos no RPO customizado, é necessário que seja criado um ambiente com as seguintes chaves:
Bloco de código | ||||
---|---|---|---|---|
| ||||
[LG_CUSTOM] RootPath=D:\Totvs\P64_X\pd_lg_db\ StartPath=\system_rbra\ RpoVersion=120 DBDATABASE=MSSQL DBSERVER=10.172.0.107 DBALIAS=P12_1217_NODIC RPOCUSTOMIZATION=D:\TOTVS\P64_X\apo\customlocal.rpo |
Ou seja: um RPO, para poder ser utilizado como um RPO customizado, deve ser criado dessa forma, em um ambiente isolado na sua compilação. Apesar desse RPO conviver no momento da execução com o RPO padrão, ele tem uma assinatura diferente, e não pode ser utilizado como um RPO padrão, apenas como um customizado.
Com isso, se temos uma função no RPO padrão, chamada User Function Cust() por exemplo, e no RPO customizado também tenha sido compilado uma função com mesmo nome, quando o usuário executar a chamada deste programa no ambiente LG, ele irá executar o programa do mesmo nome que exista no RPO customizado, não do RPO padrão. Alem disso, qualquer outra função que exista somente no RPO padrão, será executada normalmente deste.
Características
Um ambiente com um RPO customizado segue algumas características:
...
Quando se tenta compilar em um determinado ambiente onde exista as duas chaves, RPOCUSTOMIZATION e SOURCEPATH, a compilação nesse ambiente não será realizada, apresentado erro "Is not possible to compile objects to repository because this environment is using both CUSTOMIZATION RPO and DEFAULT" no console.log do Appserver. Para poder compilar ou aplicar patchs, configure ambientes distintos, onde cada um terá uma única chave ativa.
Apesar de solicitar usuario e senha no momento da IDE de compilação utilizada conectar no ambiente, as informações passadas são ignoradas e sempre irá conectar, sendo possível realizar sempre a compilação de user functions e static functions.
A partir da versão 20.3.0.
...
x do Appserver Harpia:
Toda compilação realizada no ambiente será armazenada automaticamente no RPO customizado, sem necessidade de ter um ambiente separado para isso.
Busca das funções
A busca por algum artefato, função ou classe segue a seguinte prioridade: busca primeiro no RPO default, depois procura no RPO TLPP, para então procurar no RPO customizado. Essa busca muda apenas em User Function, onde a busca ocorre primeiro no RPO Customizado.
Para exemplificar, se temos uma função no RPO padrão, chamada User Function Cust(), e no RPO customizado também tenha sido compilado uma função com mesmo nome, quando o usuário executar a chamada deste programa no ambiente, ele irá executar o programa do mesmo nome que exista no RPO customizado, não do RPO padrão. Na execução do programa, qualquer outra função chamada segue a mesma logica descrita anteriormente, buscando sempre nos 3 RPOs
...
.
Inspetores de Funções e Objetos no Visual Studio Code
Quando conectado em ambientes com múltiplos RPOs, as funcionalidades de inspetores de funções e objetos farão o merge dos dados nos múltiplos RPOS.
Para executar o merge dos dados, será implementada a seguinte ordem de prioridade:
- RPO default => menor prioridade
- RPO TLPP
- RPO custom => maior proridade
Bloqueio da conexão a RPO customizado renomeado como RPO padrão
A conexão a ambiente configurado para múltiplos RPOs ou somente para RPO padrão será bloqueada caso o RPO padrão em SourcePath seja na verdade um RPO customizado renomeado como padrão.
Além da mensagem de falha na conexão no VSCode, uma mensagem de erro será inserida no console.log, indicado a causa do bloqueio da conexão, o ambiente utilizado e o caminho para o arquivo do RPO customizado e renomeado como padrão:
Bloco de código | ||||
---|---|---|---|---|
| ||||
[ERROR][SERVER] [Thread 1234] Custom RPO renamed as default RPO - environment [LG] - SOURCEPATH [D:\TOTVS\P64_X\apo] |
Aviso | ||
---|---|---|
| ||
Recurso disponível a partir do build 17.3.0.14 do Appserver Lobo Guará |