<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: marlon-pinheiro</title>
    <description>The latest articles on DEV Community by marlon-pinheiro (@marlonpinheiro).</description>
    <link>https://dev.to/marlonpinheiro</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F813126%2F21167eed-a6c1-4c11-813e-901be3339405.jpeg</url>
      <title>DEV Community: marlon-pinheiro</title>
      <link>https://dev.to/marlonpinheiro</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/marlonpinheiro"/>
    <language>en</language>
    <item>
      <title>EPL LOGIX</title>
      <dc:creator>marlon-pinheiro</dc:creator>
      <pubDate>Wed, 05 Oct 2022 19:06:46 +0000</pubDate>
      <link>https://dev.to/marlonpinheiro/epl-logix-75</link>
      <guid>https://dev.to/marlonpinheiro/epl-logix-75</guid>
      <description>&lt;h1&gt;
  
  
  &lt;strong&gt;O que é EPL&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;A sigla EPL significa "&lt;strong&gt;Entry Point Logix&lt;/strong&gt;", através deste recurso é possível criar no Logix um ponto de entrada para a execução de uma rotina específica.&lt;/p&gt;

&lt;p&gt;Quando o cliente identifica a necessidade de &lt;strong&gt;customizar&lt;/strong&gt; um determinado ponto do sistema, ele deve entrar em contato com a &lt;strong&gt;Fábrica de Software&lt;/strong&gt; e solicitar a criação deste &lt;strong&gt;ponto de entrada&lt;/strong&gt; (mediando a realização de um orçamento).&lt;/p&gt;

&lt;p&gt;Após a aprovação, a Fábrica de Software irá alterar o programa Padrão do Logix e colocar a chamada da função especifica.&lt;/p&gt;

&lt;p&gt;Segue exemplo de como deve ser realizada a chamada da EPL no Logix.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;IF LOG_existe_epl("tst0003y_epl_teste") THEN
   CALL tst0003y_epl_teste()
END IF
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Uma vez criado o ponto de entrada no programa padrão, fica a cargo do cliente definir quem irá desenvolver o código específico, finalizado o desenvolvimento basta que o fonte seja compilado para que a rotina fique disponível no RPO do Logix.&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Tipos de fontes no Logix&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;As chamadas de funções EPLs podem estar presentes em qualquer fonte do sistema. No Logix podemos classificar os fontes como &lt;strong&gt;MAINSOURCE&lt;/strong&gt; ou &lt;strong&gt;SOURCE&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;MAINSOURCE&lt;/strong&gt; é o programa principal, aquele que esta cadastrado no menu do sistema.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SOURCE&lt;/strong&gt; são os fontes que possuem somente definições de funções.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Podemos pegar como exemplo o FIN10049 (MAINSOURCE) que internamente chama a função FIN85129 (SOURCE). &lt;/p&gt;

&lt;p&gt;Por padrão todas as chamadas de EPL estão &lt;strong&gt;ativadas&lt;/strong&gt; no sistema, para &lt;strong&gt;desativa-las&lt;/strong&gt; existem algumas chaves de &lt;strong&gt;profile&lt;/strong&gt; que precisam ser alteradas.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;⚠️ Para que os controles de ativação/desativação de EPLs sejam realizados, é necessário que no fonte LOGIX seja utiliza a função LOG_existe_epl&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Para exemplificar este cenário foram criados 3 fontes:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;tst0001.4gl é um programa principal (MAINSOURCE)&lt;/p&gt;

&lt;p&gt;tst0002.4gl é um fonte somente com definições de funções (SOURCE)&lt;/p&gt;

&lt;p&gt;tst0003.4gl fonte específico (EPL)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Desativando EPLS&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;Segue abaixo lista das chaves que podem ser incluídas no arquivo de profile do Logix para desativar a execução das EPLS&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LOGIX.EPL.ENABLE = 0&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Desabilita todas as chamas de EPL no sistema. Independente do fonte em que ela esteja sendo chamada&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;LOGIX.EPL.MAINSOURCE.tst0001.ENABLE = 0&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Desabilita todas as chamas de EPL identificas a partir da execução do programa principal&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;LOGIX.EPL.SOURCE.tst0001.ENABLE = 0&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LOGIX.EPL.SOURCE.tst0002.ENABLE = 0&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Desabilita todas as chamas de EPL somente do fonte que foi definido na chave.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;LOGIX.EPL.FUNCTION.tst0003y_epl_teste.ENABLE = 0&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Desabilita somente a função EPL que foi definida na chave&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Exemplos&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;Segue exemplo utilizando cada uma das chaves&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LOGIX.EPL.ENABLE = 1&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Todas as EPLS liberadas&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;| *** [FRAMEWORK] INICIO ***
|
| [FRAMEWORK] Entrou na funcao - tst0001_inicia_processamento
| [FRAMEWORK] Teste execucao EPL [MAINSOURCE]
| [EPL] Chamada função TST0003Y_EPL_TESTE() [source: TST0001.4GL line: 41 function: TST0001_INICIA_PROCESSAMENTO()]
|
| &amp;gt;&amp;gt;&amp;gt; [EPL][FRAMEWORK] Entrou na funcao - tst0003y_epl_teste &amp;lt;&amp;lt;&amp;lt;
|
| [FRAMEWORK] Entrou na funcao - tst0002_function_logix
| [FRAMEWORK] Teste execucao EPL [FUNCTION]
| [EPL] Chamada função TST0003Y_EPL_TESTE() [source: TST0002.4GL line: 21 function: TST0002_FUNCTION_LOGIX()]
|
| &amp;gt;&amp;gt;&amp;gt; [EPL][FRAMEWORK] Entrou na funcao - tst0003y_epl_teste &amp;lt;&amp;lt;&amp;lt;
|
| *** [FRAMEWORK] FIM ***
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;LOGIX.EPL.ENABLE = 0&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Todas as EPLS desabilitadas&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;| *** [FRAMEWORK] INICIO ***
|
| [FRAMEWORK] Entrou na funcao - tst0001_inicia_processamento
| [FRAMEWORK] Teste execucao EPL [MAINSOURCE]
| [EPL] Todas chamadas EPL desabilitadas. Função TST0003Y_EPL_TESTE() ignorada. [source: TST0001.4GL line: 40 function: TST0001_INICIA_PROCESSAMENTO()]
| [FRAMEWORK] Entrou na funcao - tst0002_function_logix
| [FRAMEWORK] Teste execucao EPL [FUNCTION]
| [EPL] Todas chamadas EPL desabilitadas. Função TST0003Y_EPL_TESTE() ignorada. [source: TST0002.4GL line: 21 function: TST0002_FUNCTION_LOGIX()]
| *** [FRAMEWORK] FIM ***
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;LOGIX.EPL.MAINSOURCE.tst0001.ENABLE = 0&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Todas as EPLS desativadas quando chamadas a partir do programa principal TST0001&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;| *** [FRAMEWORK] INICIO ***
|
| [FRAMEWORK] Entrou na funcao - tst0001_inicia_processamento
| [FRAMEWORK] Teste execucao EPL [MAINSOURCE]
| [EPL] Chamadas EPL desabilitadas para o programa principal TST0001. Função TST0003Y_EPL_TESTE() ignorada. [source: TST0001.4GL line: 40 function: TST0001_INICIA_PROCESSAMENTO()]
| [FRAMEWORK] Entrou na funcao - tst0002_function_logix
| [FRAMEWORK] Teste execucao EPL [FUNCTION]
| [EPL] Chamadas EPL desabilitadas para o programa principal TST0001. Função TST0003Y_EPL_TESTE() ignorada. [source: TST0002.4GL line: 21 function: TST0002_FUNCTION_LOGIX()]
| *** [FRAMEWORK] FIM ***
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;LOGIX.EPL.SOURCE.tst0001.ENABLE = 0&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;EPLS desativadas somente no fonte TST0001&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;| *** [FRAMEWORK] INICIO ***
|
| [FRAMEWORK] Entrou na funcao - tst0001_inicia_processamento
| [FRAMEWORK] Teste execucao EPL [MAINSOURCE]
| [EPL] Chamadas EPL desabilitadas para o fonte TST0001. Função TST0003Y_EPL_TESTE() ignorada. [source: TST0001.4GL line: 40 function: TST0001_INICIA_PROCESSAMENTO()]
| [FRAMEWORK] Entrou na funcao - tst0002_function_logix
| [FRAMEWORK] Teste execucao EPL [FUNCTION]
| [EPL] Chamada função TST0003Y_EPL_TESTE() [source: TST0002.4GL line: 21 function: TST0002_FUNCTION_LOGIX()]
|
| &amp;gt;&amp;gt;&amp;gt; [EPL][FRAMEWORK] Entrou na funcao - tst0003y_epl_teste &amp;lt;&amp;lt;&amp;lt;
|
| *** [FRAMEWORK] FIM ***
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;LOGIX.EPL.SOURCE.tst0002.ENABLE = 0&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;EPLS desativadas somente no fonte TST0002&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;| *** [FRAMEWORK] INICIO ***
|
| [FRAMEWORK] Entrou na funcao - tst0001_inicia_processamento
| [FRAMEWORK] Teste execucao EPL [MAINSOURCE]
| [EPL] Chamada função TST0003Y_EPL_TESTE() [source: TST0001.4GL line: 40 function: TST0001_INICIA_PROCESSAMENTO()]
|
| &amp;gt;&amp;gt;&amp;gt; [EPL][FRAMEWORK] Entrou na funcao - tst0003y_epl_teste &amp;lt;&amp;lt;&amp;lt;
|
| [FRAMEWORK] Entrou na funcao - tst0002_function_logix
| [FRAMEWORK] Teste execucao EPL [FUNCTION]
| [EPL] Chamadas EPL desabilitadas para o fonte TST0002. Função TST0003Y_EPL_TESTE() ignorada. [source: TST0002.4GL line: 21 function: TST0002_FUNCTION_LOGIX()]
| *** [FRAMEWORK] FIM ***
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;LOGIX.EPL.FUNCTION.tst0003y_epl_teste.ENABLE = 0&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Desativando a chamada da EPL pelo nome da função&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;| *** [FRAMEWORK] INICIO ***
|
| [FRAMEWORK] Entrou na funcao - tst0001_inicia_processamento
| [FRAMEWORK] Teste execucao EPL [MAINSOURCE]
| [EPL] Chamada EPL desabilitada para a função TST0003Y_EPL_TESTE(). Função ignorada. [source: TST0001.4GL line: 40 function: TST0001_INICIA_PROCESSAMENTO()]
| [FRAMEWORK] Entrou na funcao - tst0002_function_logix
| [FRAMEWORK] Teste execucao EPL [FUNCTION]
| [EPL] Chamada EPL desabilitada para a função TST0003Y_EPL_TESTE(). Função ignorada. [source: TST0002.4GL line: 21 function: TST0002_FUNCTION_LOGIX()]
| *** [FRAMEWORK] FIM ***
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>Logix como servidor REST</title>
      <dc:creator>marlon-pinheiro</dc:creator>
      <pubDate>Wed, 16 Feb 2022 01:41:25 +0000</pubDate>
      <link>https://dev.to/marlonpinheiro/logix-como-servidor-rest-4cae</link>
      <guid>https://dev.to/marlonpinheiro/logix-como-servidor-rest-4cae</guid>
      <description>&lt;p&gt;Olá pessoas, tudo bem?&lt;/p&gt;

&lt;p&gt;Hoje vamos configurar o Logix para ser um servidor REST, desta forma podemos fazer com que aplicativos externos busquem informações no Logix.&lt;/p&gt;




&lt;h2&gt;
  
  
  Criando um appserver REST
&lt;/h2&gt;

&lt;p&gt;A primeira coisa a ser feita é criar um novo appserver que será utilizado exclusivamente para responder as requisições que serão realizadas.&lt;/p&gt;

&lt;p&gt;Para facilitar a identificação e uma futura manutenção, nomeie o appserver de forma clara para que qualquer pessoa que for acessar o servidor saiba qual a finalidade daquele appserver. Nossa sugestão é criar um appserver com o nome appserver_web ou appserver_rest&lt;/p&gt;

&lt;p&gt;Para criar o appserver sugerimos a leitura do seguinte &lt;a href="https://dev.to/marlonpinheiro/criando-um-novo-appserver-no-logix-1gep"&gt;artigo&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Configurando o appserver REST
&lt;/h2&gt;

&lt;p&gt;Feita a criação do appserver, agora vamos realizar as configurações necessárias.&lt;/p&gt;

&lt;p&gt;Segue abaixo todas as configurações que precisam ser realizadas no arquivo totvsappserver.ini&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[ONSTART]
REFRESHRATE=30
JOBS=HTTPJOB

[HTTPJOB]
MAIN=HTTP_START
ENVIRONMENT=DBOracle-34

[HTTPV11]
ENABLE=1
SOCKETS=HTTPREST
TIMEOUT=600

[HTTPREST]
PORT=9070
URIS=RESTMAIN
SECURITY=1
SSL2=0
SSL3=1
TLS1=3
TSL1_0=1
TSL1_1=1
TSL1_2=1

# *** Certificado 01
#CERTIFICATE=D:\TOTVS\LOGIX\bin\4372_appserver_rest_https\certificates\cert.pem
#KEY=D:\TOTVS\LOGIX\bin\4372_appserver_rest_https\certificates\key.pem

# *** Certificado 02
# CERTIFICATE=D:\TOTVS\LOGIX\bin\4371_appserver_https\certificates\JVD60103166.cer
# KEY=D:\TOTVS\LOGIX\bin\4371_appserver_https\certificates\JVD60103166.key

# *** Certificado 03
CERTIFICATE=D:\TOTVS\LOGIX\bin\4372_appserver_rest_https\certificates\totvs_certificate.crt
KEY=D:\TOTVS\LOGIX\bin\4372_appserver_rest_https\certificates\totvs_certificate_key.pem

[RESTMAIN]
URL=/rest
INSTANCES=3,10
ONSTART=LOGIXRESTSTART
ONCONNECT=LOGIXRESTCONNECT
ONEXIT=LOGIXRESTEXIT

# *** REST FIM

[WEBSERVICES]
userid=admlog

[HTTP]
enable=1
port=80
path=D:\TOTVS\LOGIX\bin\4372_appserver_rest_https\web

[HTTPS]
enable=1
port=443
path=D:\TOTVS\LOGIX\bin\4372_appserver_rest_https\web

[SSL]
TYPE=TCPIP
PORT=26011
SecureConnection=1

[SSLCONFIGURE]
SSL2    = 0
SSL3    = 1
TLS1_0  = 1
TLS1_1  = 1
TLS1_2  = 1
HSM=0
BUGS=1
STATE=1
VERBOSE=1
tryprotocols=1

# *** Certificado 01
#CERTIFICATESERVER=D:\TOTVS\LOGIX\bin\4372_appserver_rest_https\certificates\cert.pem
#KEYSERVER=D:\TOTVS\LOGIX\bin\4372_appserver_rest_https\certificates\key.pem

# *** Certificado 02
# CERTIFICATESERVER=D:\TOTVS\LOGIX\bin\4371_appserver_https\certificates\JVD60103166.cer
# KEYSERVER=D:\TOTVS\LOGIX\bin\4371_appserver_https\certificates\JVD60103166.key

# *** Certificado 03
CERTIFICATESERVER=D:\TOTVS\LOGIX\bin\4372_appserver_rest_https\certificates\totvs_certificate.crt
KEYSERVER=D:\TOTVS\LOGIX\bin\4372_appserver_rest_https\certificates\totvs_certificate_key.pem
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note que estamos realizando o apontamento para alguns certificados. &lt;br&gt;
Neste &lt;a href="https://dev.to/marlonpinheiro/totvs-certificate-knl"&gt;artigo&lt;/a&gt; explicamos como fazer a criação destes certificados.&lt;/p&gt;




&lt;h2&gt;
  
  
  Inicializando o appserver REST
&lt;/h2&gt;

&lt;p&gt;Com tudo configurado você já pode fazer a inicialização do appserver.&lt;/p&gt;

</description>
      <category>logix</category>
      <category>totvstec</category>
      <category>rest</category>
      <category>https</category>
    </item>
    <item>
      <title>Criando um novo appserver no Logix</title>
      <dc:creator>marlon-pinheiro</dc:creator>
      <pubDate>Wed, 16 Feb 2022 01:38:18 +0000</pubDate>
      <link>https://dev.to/marlonpinheiro/criando-um-novo-appserver-no-logix-1gep</link>
      <guid>https://dev.to/marlonpinheiro/criando-um-novo-appserver-no-logix-1gep</guid>
      <description>&lt;p&gt;Olá pessoas, tudo bem?&lt;/p&gt;

&lt;p&gt;Preciso criar um novo appserver para o Logix e agora o que eu faço? &lt;br&gt;
Vamos aqui demonstrar de forma pratica como cria-lo, o que precisa ser alterado e como acessa-lo.&lt;/p&gt;


&lt;h2&gt;
  
  
  Criando um novo appserver
&lt;/h2&gt;

&lt;p&gt;A forma mais fácil de criar um novo appserver é você acessar o seu servidor de aplicação, localizar o diretório dos appservers já existentes, pegar um appserver como modelo e fazer um Ctrl+C / Ctrl+V&lt;/p&gt;

&lt;p&gt;Finalizada a cópia da pasta é necessário editar o arquivo totvsappserver.ini e alterar a porta de comunicação na sessão [TCP]&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[TCP]
TYPE=TCPIP
PORT=4320
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Caso essa informação não seja alterada será apresentado um erro no momento da inicialização do appserver.&lt;/p&gt;

&lt;p&gt;Exemplo&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;[WARN ][SERVER] [Thread 25272] Trying acquire port 4320 (Bind error #10048:Address already in use.)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Em caso de sucesso, será apresentada a seguinte informação&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;[INFO ][SERVER] [Thread 8440] Application Server started on port 4320&lt;br&gt;
TotvsTec Server started.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Pronto, agora já temos um novo appserver, simples né?&lt;/p&gt;




&lt;h2&gt;
  
  
  Acessando o novo appserver
&lt;/h2&gt;

&lt;p&gt;Quando criamos um appserver ele pode fazer parte do seu conjunto já existente de Master/Slaves ou ter uma função especifica como por exemplo, ser um appserver exclusivo para a geração de debug.&lt;/p&gt;

&lt;p&gt;Vamos exemplificar as duas situação.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Meu novo appserver será utilizado como um SLAVE.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Neste caso você precisa acessar o seu appserver &lt;strong&gt;MASTER&lt;/strong&gt;, editar o arquivo &lt;strong&gt;totvsappserver.ini&lt;/strong&gt; e incluir uma nova sessão para que o appserver_master consiga identificar o novo appserver.&lt;br&gt;
No exemplo abaixo estou dizendo que o meu novo appserver é o &lt;strong&gt;[SLAVE03]&lt;/strong&gt;&lt;br&gt;
O seu appserver Master deve ter uma estrutura semelhante ao exemplo abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[SERVERNETWORK]
Masterconnection=0
Servers=SLAVE01,SLAVE02,SLAVE03

[SLAVE01]
type=TCPIP
server=localhost
port=4311
connections=10

[SLAVE02]
type=TCPIP
server=localhost
port=4312
connections=10

[SLAVE03]
type=TCPIP
server=localhost
port=4320
connections=10
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finalizada essas alterações é necessário reiniciar o appserver_master para que o novo appserver seja identificado.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;Meu novo appserver será utilizado para geração de debug.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Digamos que você queira criar um appserver de uso exclusivo para geração de debug. Neste caso você precisa somente inicializar o appserver e fazer com que o seu &lt;strong&gt;smartclient ** se comunique com o appserver.&lt;br&gt;
Para que o smartclient consiga localizar o appserver, voce vai precisar editar o arquivo **totvssmarclient.ini&lt;/strong&gt; e criar uma nova sessão de comunicação. No meu exemplo estou criando a sessão &lt;strong&gt;[TCP_DEBUG]&lt;/strong&gt;, mas você poderia informar qualquer outro nome aqui, exemplo: ( [DEBUG_LOGIX] )&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[TCP_DEBUG]
SERVER=localhost
PORT=4320
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No momento da execução do &lt;strong&gt;totvssmartclient.exe&lt;/strong&gt;, basta informar o nome da sessão criada no campo &lt;strong&gt;Comunicação no Cliente&lt;/strong&gt; conforme exemplo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx6mxq9sqzwt2hnmbexcm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx6mxq9sqzwt2hnmbexcm.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Pronto agora já estamos com acesso direto ao novo appserver.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqb1ykw1c10b6gqv6m63v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqb1ykw1c10b6gqv6m63v.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>logix</category>
      <category>totvstec</category>
      <category>appserver</category>
    </item>
    <item>
      <title>TOTVS CERTIFICATE</title>
      <dc:creator>marlon-pinheiro</dc:creator>
      <pubDate>Mon, 14 Feb 2022 22:44:58 +0000</pubDate>
      <link>https://dev.to/marlonpinheiro/totvs-certificate-knl</link>
      <guid>https://dev.to/marlonpinheiro/totvs-certificate-knl</guid>
      <description>&lt;p&gt;Olá pessoas, tudo bem? &lt;/p&gt;

&lt;p&gt;Neste artigo quero demonstrar para vocês como é fácil realizar a criação e instalação do certificado TOTVS em seu ambiente.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preparando o Ambiente
&lt;/h2&gt;

&lt;p&gt;Para deixar tudo bem organizado, vamos criar uma pasta chamada &lt;strong&gt;certificados&lt;/strong&gt; logo abaixo do diretório configurado como ROOTPATH do seu sistema.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Se o &lt;strong&gt;ROOTPATH&lt;/strong&gt; for &lt;strong&gt;c:\totvs\logix&lt;/strong&gt;, vamos criar uma pasta &lt;strong&gt;certificados&lt;/strong&gt; abaixo de &lt;strong&gt;logix&lt;/strong&gt;, ficando da seguinte forma, &lt;strong&gt;c:\totvs\logix\certificados&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Agora faça &lt;strong&gt;&lt;a href="https://api.onedrive.com/v1.0/shares/u!aHR0cHM6Ly8xZHJ2Lm1zL3UvcyFBaUJFS3Qwek1XTVNtTGRVMFFyNDFCZ1hicVpTbXc_ZT1zV3o1Y3g/root/content" rel="noopener noreferrer"&gt;download&lt;/a&gt;&lt;/strong&gt; dos seguintes arquivos e coloque dentro da pasta &lt;strong&gt;certificados&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Criando o certificado
&lt;/h2&gt;

&lt;p&gt;Finalizada a preparação do ambiente, vamos para a parte de criação do seu certificado. Abra o &lt;strong&gt;prompt&lt;/strong&gt; de comando e entre no diretório &lt;strong&gt;certificados&lt;/strong&gt;, nele teremos o arquivo &lt;strong&gt;totvs_certificates.exe&lt;/strong&gt;. Vamos dar um RUN neste executavel, segue abaixo a lista de parâmetros possíveis de ser utilizada.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-cert: Nome do arquivo de certificado. 
(padrão: totvs_certificate.crt) (*1)

-key: Nome do arquivo de chave de certificado. 
(padrão: totvs_certificate_key.pem) (*1)

-passwd: Palavra chave do certificado (senha)

-issuer: Nome do emissor do certificado. (*2)

-host: Permite o registro de 'N' nomes ou IPs
 para o servidor no certificado (*3)

*1 - Quando não definido assume o nome padrão

*2 - Se o emissor não for definido será usado 
o primeiro nome de máquina fornecido, senão 
usará o primeiro IP, como nome do emissor.

*3 - se não for definido nenhum "HostName", 
serão incluídos de forma automática o nome padrão 
da máquina (host name), e também acrescido dos 
sufixos de Domínio (DNS Suffix), assim como 
também serão incluídos os endereços 
(HostName) de acesso local (localhost e 127.0.0.1)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O comando final deve ficar semelhante ao exemplo abaixo:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;totvs_certificates.exe -cert totvs_certificate.crt -key totvs_certificate_key.pem -passwd Totvs@123 -issuer marlon.pinheiro@totvs.com.br -host nome_maquina&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Pronto agora será criado 2 novos arquivos dentro do diretório ( totvs_certificate.crt e totvs_certificate_key.pem )&lt;/p&gt;




&lt;h2&gt;
  
  
  Instalando os certificados
&lt;/h2&gt;

&lt;p&gt;Agora vamos para a parte final do processo, a instalação dos certificados. O processo de instalação também é simples, basta dar dois cliques no arquivo .crt e será aberto um configurador do Windows para realizar a instalação do certificado.&lt;/p&gt;

&lt;p&gt;Execute primeiramente o arquivo &lt;strong&gt;totvs_certificate_CA.crt&lt;/strong&gt; e depois faça o mesmo processo para o arquivo que você criou &lt;strong&gt;totvs_certificate.crt&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fivhr7vfg3f4am03hf8hi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fivhr7vfg3f4am03hf8hi.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4gkbl4uaatj9hm061tam.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4gkbl4uaatj9hm061tam.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finalizada a criação, ao visualizar as propriedades do certificado teremos a seguinte estrutura:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp14lqrajhj1ii4q3bv7i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp14lqrajhj1ii4q3bv7i.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Tarefa concluída com sucesso !!!
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc3hcnveecb0vud5734i7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc3hcnveecb0vud5734i7.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Fontes utilizadas para criação deste artigo:&lt;br&gt;
&lt;a href="https://tdn.totvs.com/pages/viewpage.action?pageId=548376390" rel="noopener noreferrer"&gt;https://tdn.totvs.com/pages/viewpage.action?pageId=548376390&lt;/a&gt;&lt;br&gt;
&lt;a href="https://tdn.totvs.com/pages/viewpage.action?pageId=539526365" rel="noopener noreferrer"&gt;https://tdn.totvs.com/pages/viewpage.action?pageId=539526365&lt;/a&gt;&lt;/p&gt;

</description>
      <category>logix</category>
      <category>totvstec</category>
      <category>https</category>
      <category>certificado</category>
    </item>
  </channel>
</rss>
