Versões comparadas

Chave

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

CONTEÚDO

  1. Visão Geral
  2. Exemplo de utilização

01. VISÃO GERAL


Indice 

       

Índice
exclude.*ndice:

Objetivo

       O objetivo deste documento é trazer uma visão da funcionalidade "Gerenciamento de Config". 

Introdução

       A funcionalidade "Gerenciamento de Config" tem por objetivo simplificar a maneira de administrar os arquivos de configurações das estações de trabalho, utilizando uma única interface. Com a unificação do arquivo de configuração podemos visualizar, incluir, excluir e alterar as configurações de qualquer estação mesmo estando desligada.

 

Instaladores

       Instruções:
       1. Acesse a Central de Download em www.totvs.com/suporte
       2. Faça o login, com seu Email e Senha.
       3. Na barra de menu superior, clique em DOWNLOAD.
       4. No boxe “Central de Downloads” coloque as informações nos campos abaixo:
 
       Pronto! Todos os instaladores correspondentes do filtro aplicado no passo 4 serão disponibilizados para download. Para iniciar o download do arquivo, clique na figura com uma seta para baixo localizada na primeira coluna da grid ou no link da versão selecionada.
       Escolha o método mais apropriado de download e salve o arquivo na pasta desejada.
    
Informações
Para facilitar na busca do arquivo, utiliza-se o campo “Filtro” da grid de download, digitando o nome do arquivo ou parte do mesmo para pesquisa/download.

    Requisitos:

  • Linha de Software: RM
  • Versão: 12.01.01 e posteriores
  • Data de Liberação: Outubro/2014
  • Observação: Para requisitos de software consulte nossa portabilidade: Portabilidade RM 12.01

 

Como configurar

       Para utilizar esta configuração é necessário o compartilhamento de uma pasta em rede contendo o arquivo "Configuracaorm.config". Neste arquivo constará o cadastro do aplicativo desejado, utilizando as configurações desejadas para o seu ambiente.                           

Arquivo Configuracaorm.configArquivo exemplo: RM.Host.exe.config
View file
nameConfiguracaorm.config
height150
View file
nameRM.Host.exe.config
height150


A partir da versão 12.1.27, será apresentado um modelo diferente de Config. Global, em JSON. Veja a documentação.


Aviso
titleAtenção

Observação

Para a execução de TLS 1.1 e 1.2 no Windows 7 é necessário adicionar os registros abaixo, visto que são os protocolos de comunicação ativos atualmente e que por padrão não são ativos na versão Windows7:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client]
"DisabledByDefault"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server]
"DisabledByDefault"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"DisabledByDefault"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"DisabledByDefault"=dword:00000000

Arquivo disponível para download: Arquivo.reg


02. EXEMPLO DE UTILIZAÇÃO

INSTALADORES


       Instruções:

       1. Acesse a Central de Download em www.totvs.com/suporte
       2. Faça o login, com seu Email e Senha.
       3. Na barra de menu superior, clique em DOWNLOAD.
       4. No boxe “Central de Downloads” pesquise pela versão da biblioteca RM.
 
       Pronto! Todos os instaladores correspondentes do filtro aplicado no passo 4 serão disponibilizados para download. Para iniciar o download do arquivo, clique na figura com uma seta para baixo localizada na primeira coluna da grid ou no link da versão selecionada.



       Escolha o método mais apropriado de download e salve o arquivo na pasta desejada.
    

Informações
Para facilitar na busca do arquivo, utiliza-se o campo “Filtro” da grid de download, digitando o nome do arquivo ou parte do mesmo para pesquisa/download.

    Requisitos:

  • Linha de Software: RM
  • Versão: 12.01.01 e posteriores
  • Data de Liberação: Outubro/2014
  • Observação: Para requisitos de software consulte nossa portabilidade: Portabilidade RM 12.01

 

COMO CONFIGURAR


       Para utilizar esta configuração é necessário o compartilhamento de uma pasta em rede contendo o arquivo "Configuracaorm.config". Neste arquivo constará o cadastro do aplicativo desejado, utilizando as configurações desejadas para o seu ambiente.                           

Arquivo Configuracaorm.configArquivo exemplo: RM.Host.exe.config
View file
nameConfiguracaorm.config
height150
View file
nameRM.Host.exe.config
height150


       Disponibilizado o arquivo em rede torna-se necessário ajustar os arquivos de conexão (RM.Host.exe.config, RM.Host.Service.exe.config)        Disponibilizado o arquivo em rede torna-se necessário ajustar os arquivos de conexão (RM.Host.exe.config, RM.Host.Service.exe.config) e aplicações (RM.exe.Config, RMBis.exe.config, RMLabore.exe.config etc) em cada estação utilizada.       

       Dentro do arquivo de configuração, em cada estação, remova todo o contexto que esteja dentro de <appSettings> e substitua por tag <add key="configpath" value="\\PastaCompartilhadaNaRede" />. O tag ConfigPath deve ser preenchido com o diretório onde o arquivo "Configuracaorm.config" foi compartilhado.

       Abaixo um exemplo de como ficarão os arquivos de configurações em cada estação:

Máquina que não utiliza o Gerenciamento de configMáquina que utiliza o gerenciamento de config
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="JobServer3Camadas" value="false" />
    <add key="Port" value="8050" />
    <add key="Host" value="localhost" />
   <add key="LibPath" value="C:\totvs\CorporeRM\RM.Net" />
</appSettings>
</configuration>
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="CONFIGPATH" value="\\PastaCompartilhadaNaRede" />
</appSettings>
</configuration>


       Após realizar estas configurações o ambiente está preparado para utilizar o arquivo unificado de configuração.

Aviso
titleObservações:
Caso o arquivo de configuração possua somente permissão de leitura, não será possível inserir novas estações no configurador. Será utilizado então as configurações default do arquivo compartilhado.
Como Funciona

COMO FUNCIONA

       

HTML
<script type="text/javascript" language="javascript">
/* @license ! jQuery-mutate - v0.0.2 - 
* Licensed under the MIT license
* http://www.opensource.org/licenses/mit-license.php
* Date: 2015-04-19 */

!function(t){mutate_event_stack=[{name:"width",handler:function(a){var e=t(a);return e.data("mutate-width")||e.data("mutate-width",e.width()),e.data("mutate-width")&&e.width()!=e.data("mutate-width")?(e.data("mutate-width",e.width()),!0):!1}},{name:"height",handler:function(a){var e=t(a);return e.data("mutate-height")||e.data("mutate-height",e.height()),e.data("mutate-height")&&e.height()!=e.data("mutate-height")?(e.data("mutate-height",e.height()),!0):void 0}},{name:"top",handler:function(a){var e=t(a);return e.data("mutate-top")||e.data("mutate-top",e.css("top")),e.data("mutate-top")&&e.css("top")!=e.data("mutate-top")?(e.data("mutate-top",e.css("top")),!0):void 0}},{name:"bottom",handler:function(a){var e=t(a);return e.data("mutate-bottom")||e.data("mutate-bottom",e.css("bottom")),e.data("mutate-bottom")&&e.css("bottom")!=e.data("mutate-bottom")?(e.data("mutate-bottom",e.css("bottom")),!0):void 0}},{name:"right",handler:function(a){var e=t(a);return e.data("mutate-right")||e.data("mutate-right",e.css("right")),e.data("mutate-right")&&e.css("right")!=e.data("mutate-right")?(e.data("mutate-right",e.css("right")),!0):void 0}},{name:"left",handler:function(a){var e=t(a);return e.data("mutate-left")||e.data("mutate-left",e.css("left")),e.data("mutate-left")&&e.css("left")!=e.data("mutate-left")?(e.data("mutate-left",e.css("left")),!0):void 0}},{name:"hide",handler:function(a){var e=t(a),r=e.is(":hidden"),d=void 0==e.data("prev-hidden")?r:e.data("prev-hidden");return e.data("prev-hidden",r),r&&r!=d?!0:void 0}},{name:"show",handler:function(a){var e=t(a),r=e.is(":visible"),d=void 0==e.data("prev-visible")?r:e.data("prev-visible");return e.data("prev-visible",r),r&&r!=d?!0:void 0}},{name:"scrollHeight",handler:function(a){var e=t(a);return e.data("prev-scrollHeight")||e.data("prev-scrollHeight",e[0].scrollHeight),e.data("prev-scrollHeight")&&e[0].scrollHeight!=e.data("prev-scrollHeight")?(e.data("prev-scrollHeight",e[0].scrollHeight),!0):void 0}},{name:"scrollWidth",handler:function(a){var e=t(a);return e.data("prev-scrollWidth")||e.data("prev-scrollWidth",e[0].scrollWidth),e.data("prev-scrollWidth")&&e[0].scrollWidth!=e.data("prev-scrollWidth")?(e.data("prev-scrollWidth",e[0].scrollWidth),!0):void 0}},{name:"scrollTop",handler:function(a){var e=t(a);return e.data("prev-scrollTop")||e.data("prev-scrollTop",e[0].scrollTop()),e.data("prev-scrollTop")&&e[0].scrollTop()!=e.data("prev-scrollTop")?(e.data("prev-scrollTop",e[0].scrollTop()),!0):void 0}},{name:"scrollLeft",handler:function(a){var e=t(a);return e.data("prev-scrollLeft")||e.data("prev-scrollLeft",e[0].scrollLeft()),e.data("prev-scrollLeft")&&e[0].scrollLeft()!=e.data("prev-scrollLeft")?(e.data("prev-scrollLeft",e[0].scrollLeft()),!0):void 0}}]}(jQuery);
HTML
/* @license ! jQuery-mutate - v0.0.1 - 
* Licensed under the MIT license
* http://www.opensource.org/licenses/mit-license.php
* Date: 2015-04-19 */

!function(a){function b(){var c=mutate;"undefined"!=c.event_stack&&c.event_stack.length&&a.each(c.event_stack,function(a,b){mutate.add_event(b)}),c.event_stack=[],a.each(c.stack,function(b,d){a(d.selector).each(function(a,b){c.events[d.event_name](b)===!0?d.callback&&d.callback(b,d):d.false_callback&&d.false_callback(b,d)})}),setTimeout(b,mutate.speed)}mutate={speed:100,event_stack:mutate_event_stack,stack:[],events:{},add_event:function(a){mutate.events[a.name]=a.handler},add:function(a,b,c,d){mutate.stack[mutate.stack.length]={event_name:a,selector:b,callback:c,false_callback:d}}},b(),a.fn.extend({mutate:function(){var b=!1,c=arguments[1],d=this,e=arguments[2]?arguments[2]:function(){};return"extend"==arguments[0].toLowerCase()?(mutate.add_event(c),this):(a.each(a.trim(arguments[0]).split(" "),function(a,f){b=f,mutate.add(b,d,c,e)}),this)}})}(jQuery);
</script>
HTML
<style type="text/css">
.expand-container{
margin-top:5px !important;
font-weight: normal !important;
}

.expand-control{
margin-bottom: 5px !important;
}

pre{
white-space: inherit !important;
}

table tr:nth-child(odd), table tr:nth-child(odd) > *{
   background: transparent !important;
border: 0 !important;
}

.pdl .codeContent .gutter{
    border-right: 1px solid #ccc !important;
}

.wiki-content .innerCell {
    overflow-y: hidden;
}

.HiddenDiv .confluence-information-macro {
    width: calc(100% - 25px);
    background: #fff !important; 
    border: 0 !important;
    -moz-border-radius: 0px !important;
    -webkit-border-radius: 0px !important;
    border-radius: 0px !important;
    color: #333;
    margin: 10px 0 1em 0;
    min-height: 20px;
    padding: 10px;
    position: relative;
}

.HiddenDiv .confluence-information-macro .confluence-information-macro pre{
    display: none;
}
.HiddenDiv .wiki-content a:link, .HiddenDiv .wiki-content a, .HiddenDiv .tab-nav-link, .HiddenDiv .current{
     color: #000 !important; 
}

.wiki-content a:link {
    color: #000 !important;
}


.lastDiv + pre{
    font-family: inherit;
}


.white-container{
    -moz-box-shadow: 2px 2px 2px #aaa;
    -webkit-box-shadow: 2px 2px 2px #aaa;
    box-shadow: 2px 2px 2px #aaa;
}

</style>.confluence-embedded-file-wrapper .confluence-embedded-image{
    max-width: 100% !important;
    max-height: 100%;
}

</style>
HTML
<div 
HTML
<div style="border:1px solid #aab8c6;padding:5px;-moz-border-radius: 5px;-webkit-border-radius: 5px;border-radius: 5px;background: #f7f7f7">      
      <div style="background:#f7f7f7;width:calc(100% - 10px);height:30px;color: #000;font-weight:bold;font-size: 16px;padding:5px;border-bottom: 1px solid #aab8c6;margin-bottom:14px">
           <span style="float:left"><img style="width: 16px; height: 16px; margin-top:3px" src="/download/thumbnails/172295262/cogwheel-arrow.png?version=1&modificationDate=1510689248000&api=v2" /></span>
           <span style="float:left;font-size:inherit;padding-left:5px">Fluxo de Execução <b>(Gerenciador de .Config)</b></span>
     </div>
<div style="border: 1px solid #aab8c6">      
       <div style="background:#f7f7f7;width:calc(100% - 10px);height:30px;color: #000;font-weight:bold;font-size: 16px;padding:5px;border-bottom: 0px;">
           <span style="float:left;margin-top: 4px"><img style="width: 16px; height: 16px; margin-top:3px" src="/download/attachments/172295262/hierarchical-structure.png?version=1&modificationDate=1510689248000&api=v2" /></span>
           <span style="float:left;font-size:inherit;padding-left:5px;margin-top: 3px">Diagrama do Fluxo de Execução</span>
      </div>
      <div style="background:#f0f0f0;width:calc(100% - 10px);height:auto;min-height:30px;color: #000;font-weight:bold;font-size: 16px;padding:5px;border-bottom: 0px;">
           <div style="width:100%;height: 30px;border-bottom:1px solid #d0d0d0;padding-bottom:5px;"><span style="float:left;margin-top: 4px;font-weight:normal !important"><img style="width: 16px; height: 16px; margin-top:3px" src="/download/attachments/172295262/frame-landscape.png?version=1&modificationDate=1510689248000&api=v2" /></span>
           <span style="float:left;font-size:inherit;padding-left:5px;margin-top: 4px;font-weight:normal !important">Imagem</span><span style="float:right;margin-top: 4px;padding-right:5px;cursor:pointer" onclick="Show('hiddenDiv17', 'img17');"><img id="img17" name="img17" style="width: 16px; height: 16px; margin-top: 3px" src="/download/attachments/309398329/add.png?version=1&modificationDate=1509382756808&api=v2"></span></div>
<div style="background: #e2e2e2;">
<div id="hiddenDiv17" class="HiddenDiv" style="visibility:hidden;height: 0px; line-height: 30px; padding-left: 5px; background: #e2e2e2;font-weight:normal">
<b>Aplicativo:</b> RM.Host.ServiceManager.exe
<div style="background: #fff; padding:10px;text-align:center;width:calc(100% - 25px);margin:10px 0px;">

HTML
</div>
</div>
</div>
<div style="width:100%;height: 30px;padding-top:5px"><span style="float:left;margin-top: 4px;font-weight:normal !important"><img style="width: 16px; height: 16px; margin-top:3px" src="/download/attachments/172295262/tablet.png?version=1&modificationDate=1510691345360&api=v2" /></span>
           <span style="float:left;font-size:inherit;padding-left:5px;margin-top: 4px;font-weight:normal !important">Descrição do Diagrama</b></span><span style="float:right;margin-top: 4px;padding-right:5px;cursor:pointer" onclick="Show('hiddenDiv18', 'img18');"><img id="img18" name="img18" style="width: 16px; height: 16px; margin-top: 3px" src="/download/attachments/309398329/add.png?version=1&modificationDate=1509382756808&api=v2"></span></div>
<div style="background: #e2e2e2;">
<div id="hiddenDiv18" style="visibility:hidden;height: 0px; line-height: 30px; padding-left: 5px; background: #e2e2e2;font-weight:normal">
O fluxo abaixo refere-se à criação e a alteração dos registros no Configurador Global.
<div class="white-container" style="background: #fff; padding:10px;text-align:left;width:calc(100% - 25px);">

1) Inicio do Fluxo  CreateFile();

HTML
</div>
<div style="padding-bottom:7px"></div>
<div class="white-container" style="margin-left: 40px; background: #fff; padding:10px;text-align:left;width:calc(100% - 25px65px);">

Verifica o Registro → [Nome do Aplicativo] + [Domínio] + [Nome da Máquina]; EX: RM.EXE._BH01._TESTE.

HTML
</div>
<div style="padding-bottom:7px"></div>
<div class="white-container" style="margin-left: 80px; background: #fff; padding:10px;text-align:left;width:calc(100% - 25px105px);">

Caso o Registro exista 

  • Altera o registro com as modificações realizadas.
  • Save(); //Salva as alterações no registro.
HTML
</div>
<div style="padding-bottom:7px"></div>
<div class="white-container" style="background: #fff; padding:10px;text-align:left;width:calc(100% - 25px);">

Fim do Fluxo  SaveFluxo → Fim do CreateFile(); //Salva as alterações no registro.

HTML
</div>


HTML
<div class="white-container" style="background: #fff; padding:10px;text-align:left;width:calc(100% - 25px);">

2) Inicio do Fluxo → Verifica Fluxo → Verifica o Registro Registro [Nome do Aplicativo] + [Domínio] + "Default"; EX: RM.EXE._BH01._DEFAULT.

HTML
</div>
<div style="padding-bottom:7px"></div>
<div class="white-container" style="margin-left: 40px; background: #fff; padding:10px;text-align:left;width:calc(100% - 25px65px);">

Caso o Registro exista → Verifica a tag CONFIGAUTOGENERATE.

HTML
</div>
<div style="padding-bottom:7px"></div>
<div class="white-container" style="margin-left: 80px; background: #fff; padding:10px;text-align:left;width:calc(100% - 25px105px);">

Se estiver com o valor true → Cria  

  • Cria o registro [Nome do Aplicativo] + [Domínio] + [Nome da Máquina] EX: RM.EXE
.
  • _BH01
.TESTE
  • _TESTE.
  • Save(); //Salva as alterações no registro.
HTML
</div>
<div style="padding-bottom:7px"></div>
<div class="white-container" style="margin-left: 80px; background: #fff; padding:10px;text-align:left;width:calc(100% - 25px105px);">

Se estiver com o valor false → Uma mensagem é enviada ao Usuário.

HTML
</div>
<div style="padding-bottom:7px"></div>
<div class="white-container" style="background: #fff; padding:10px;text-align:left;width:calc(100% - 25px);">

Fim do Fluxo → Fim do Fluxo → SaveCreateFile(); //Salva as alterações no registro

HTML
</div>
<p><strong><br/></strong></p>
HTML
<div class="white-container" style="background: #fff; padding:10px;text-align:left;width:calc(100% - 25px);">
HTML
</div>

3) Inicio do Fluxo → Verifica o Registro [Nome do Aplicativo - Principal (Sem múltiplos hosts)] + [Domínio] + "Default"; EX: RM.EXE._BH01._DEFAULT.

Caso o Registro exista → 

HTML
</div>
<div style="padding-bottom:7px"></div>
<div class="white-container" style="margin-left: 40px; background: #fff; padding:10px;text-align:left;width:calc(100% - 65px);">

Caso o Registro exista → 

  • Cria o registro [Nome do Aplicativo] + [Cria o registro [Nome do Aplicativo] + [Domínio] + "Default"; EX EX: RM RM.EXE._BH01._DEFAULT.Verifica a tag CONFIGAUTOGENERATE.
  • Save(); //Salva as alterações no registro.
  • Verifica a tag CONFIGAUTOGENERATE.
HTML
</div>
<div style="padding-bottom:7px"></div>
<div class="white-container" style="margin-left: 80px; background: #fff; padding:10px;text-align:left;width:calc(100% - 105px);">

Se estiver com o valor true → Cria o registro [Nome do Aplicativo] + [Domínio] + [Nome da Máquina] EX: RM.EXE._BH01._TESTE.

HTML
</div>
<div style="padding-bottom:7px"></div>
<div class="white-container" style="background: #fff; padding:10px;text-align:left;width:calc(100% - 25px);">

Fim do Fluxo → Fim do CreateFile();

HTML
</div>
</div>
</div>
</div><p><strong><br/></strong></p>
HTML
<script<div typeclass="text/javascriptwhite-container" languagestyle="javascript">

Show = function(divName, imgName){
window["currentElement"] = divName;
if(typeof divName === "string"){
	if(document.getElementById(divName).offsetHeight < 2){
     $("#" + divName).animate({height: $("#" + divName).get(0).scrollHeight + 7});
     $("#" + divName).css("visibility", "visible")
     $("#" + imgName).attr('src', '/download/attachments/309398329/remove.png?version=1&modificationDate=1509386912062&api=v2');  
     $(".HiddenDiv .tab-nav-link").on("click", function(){
          window["currentElement"] = $(this).parents().find(".HiddenDiv").attr("id");
     });  
	 $(".HiddenDiv .confluence-information-macro").mutate('height',function (element,info){
          this.selector.each(function(index, element){
             if($(this).parent().attr("id") == window["currentElement"])
             $(this).parent().height($(this).outerHeight() + 61);
          });		
     });
    }
    else{
     $("#" + divName).animate({height: "0px"});
     $("#" + divName).css("visibility", "hidden")
     $("#" + imgName).attr('src', '/download/attachments/309398329/add.png?version=1&modificationDate=1509382756808&api=v2');
    }
}
}
</script>

O arquivo "Configuracaorm.config" armazenará as configurações de cada aplicativo. Para cada primeiro acesso, será inserido um novo registro com as configurações padrões referente à aplicação acessada.

Informações
iconfalse
Deck of Cards
idRegistros
Card
idRegistro Padrão
labelRegistro Padrão
titleRegistro Padrão

       É necessário que o arquivo "Configuracaorm.config" possua um registro padrão contendo as configurações desejadas, para cada aplicativo a ser utilizado.

        Exemplo:

     Para o aplicativo RM.exe, executado no domínio BH01, será respeitada a seguinte identificação:

     RM.exe_BH01_DEFAULT onde default será o padrão de configuração para todos os novos registros de aplicativos RM.exe que estiverem do domínio BH01, respeitando a nomenclatura da opção Novo Registro.

     Exemplo de Registro Padrão:

Bloco de código
languagexml
<RM.EXE_BH01_DEFAULT>
   <appSettings>
     <add key="JOBSERVER3CAMADAS" value="True" />
     <add key="PORT" value="8050" />
     <add key="HOST" value="localhost" />
     <add key="LibPath" value="C:\RM.Net_Atual\Bin" /> 
     <add key="CONFIGAUTOGENERATE" value="True" /> 
  </appSettings>
</RM.EXE_BH01_DEFAULT>
Aviso
titleObservações:
Se não for necessário criar novos registros para cada estação basta alterar o valor da tag <add key="CONFIGAUTOGENERATE" value="True" />, de: "True" para: "False" no Registro padrão.
Aviso
titleObservações:

Lembrando que o CONFIGAUTOGENERATE cria um novo registro baseado nas estações de trabalho, outros registros podem ser criados independente da tag estar "true" ou "false", como um exemplo, o registro RM.EXE.BH01.DEFAULT.

Alterar o valor do CONFIGAUTOGENERATE, aplica-se apenas aos registros baseados nas estações de trabalho. Por exemplo, alterando o valor de "true" para "false" fará com que apenas os registros das estações de trabalho não sejam criados.

Card
idNovo Registro
labelNovo Registro
titleNovo Registro

    novo registro será inserido levando em consideração as configurações do Registro Padrão e respeitando a seguinte identificação:

                     Nome do aplicativo + _ + Domínio do usuário + _ + Nome da máquina        

    Exemplo

  • Nome do aplicativo: RM.EXE
  • Domínio do usuário: BH01
  • Nome da máquina: Teste

     Como ficará o novo registro no arquivo:

Bloco de código
languagexml
<RM.EXE_BH01_Teste>
   <appSettings>
      <add key="JOBSERVER3CAMADAS" value="True" />
      <add key="PORT" value="8050" />
        <add key="HOST" value="localhost" />
      <add key="LibPath" value="C:\RM.Net_Atual\Bin" /> 
        <add key="CONFIGAUTOGENERATE" value="True" /> 
   </appSettings>
</RM.EXE_BH01_Teste>
Aviso
titleObservações:
Caso o arquivo de configuração possua permissão de somente leitura, não será possível inserir novas estações no configurador, sendo utilizado as configurações existentes no arquivo.

Como Utilizar

     Para utilizar esta funcionalidade o usuário precisa ter permissão no item "Gerenciamento de .Config" em um perfil do módulo Serviços Globais.
Image Removed

     Com as devidas permissões de acesso o usuário deve acessar o menu: Serviços Globais, aba Segurança, botão Gerenciamento de .config. Após abrir a visão clique no botão Incluir para que seja criado um novo config.

     No exemplo abaixo foi cadastrado o config da aplicação RM.EXE para máquina BHD0002477 que está no domínio BH01.Image Removed     Para incluir novas tag's no config basta clicar no ícone Image Removed e escolher qual deseja adicionar. Para maiores informações sobre tag's de configuração acesse: Parâmetros de Configuração. Para excluir uma das tag's basta selecionar a desejada e clicar no Ícone Image Removed.

Aviso
titleObservações:
Depois de realizar qualquer alteração em um app, torna-se necessário reiniciá-lo, para que as alterações entrem em vigor.

Se não for necessário criar novos registros para cada estação basta alterar o valor da tag <add key="CONFIGAUTOGENERATE" value="True" />, de: "True" para: "False" no Registro padrão.

Informações
iconfalse
background: #fff; padding:10px;text-align:left;width:calc(100% - 25px);">

4) Inicio do Fluxo → Verifica o Registro [Nome do Aplicativo] + "Todos" + "Default"; EX: RM.EXE_TODOS_DEFAULT.

HTML
</div>
<div style="padding-bottom:7px"></div>
<div class="white-container" style="margin-left: 40px; background: #fff; padding:10px;text-align:left;width:calc(100% - 65px);">

Caso o Registro exista → 

  • Cria o registro [Nome do Aplicativo] + [Domínio] + "Default"; EX: RM.EXE_BH01_DEFAULT.
  • Save(); //Salva as alterações no registro.
  • Verifica a tag CONFIGAUTOGENERATE.
HTML
</div>
<div style="padding-bottom:7px"></div>
<div class="white-container" style="margin-left: 80px; background: #fff; padding:10px;text-align:left;width:calc(100% - 105px);">

Se estiver com o valor true → Cria o registro [Nome do Aplicativo] + [Domínio] + [Nome da Máquina] EX: RM.EXE_BH01_TESTE.

HTML
</div>
<div style="padding-bottom:7px"></div>
<div class="white-container" style="background: #fff; padding:10px;text-align:left;width:calc(100% - 25px);">

Fim do Fluxo → Fim do CreateFile();

HTML
</div>
<p><strong><br/></strong></p>
HTML
<div class="white-container" style="background: #fff; padding:10px;text-align:left;width:calc(100% - 25px);">

5) Inicio do Fluxo → Verifica o Registro [Nome do Aplicativo - Principal (Sem múltiplos hosts)] + "Todos" + "Default"; EX: RM.EXE_TODOS_DEFAULT.

HTML
</div>
<div style="padding-bottom:7px"></div>
<div class="white-container" style="margin-left: 40px; background: #fff; padding:10px;text-align:left;width:calc(100% - 65px);">

Caso o Registro exista → 

  • Cria o registro [Nome do Aplicativo] + [Domínio] + "Default"; EX: RM.EXE_BH01_DEFAULT.
  • Save(); //Salva as alterações no registro.
  • Verifica a tag CONFIGAUTOGENERATE.
HTML
</div>
<div style="padding-bottom:7px"></div>
<div class="white-container" style="margin-left: 80px; background: #fff; padding:10px;text-align:left;width:calc(100% - 105px);">

Se estiver com o valor true → Cria o registro [Nome do Aplicativo] + [Domínio] + [Nome da Máquina] EX: RM.EXE_BH01_TESTE.

HTML
</div>
<div style="padding-bottom:7px"></div>
<div class="white-container" style="background: #fff; padding:10px;text-align:left;width:calc(100% - 25px);">

Fim do Fluxo → Fim do CreateFile();

HTML
</div>
<p><strong><br/></strong></p>
HTML
<div class="white-container" style="background: #fff; padding:10px;text-align:left;width:calc(100% - 25px);">

6) Inicio do Fluxo → Verifica o Registro "RM" + "Todos" + "Default"; EX: RM_TODOS_DEFAULT.

HTML
</div>
<div style="padding-bottom:7px"></div>
<div class="white-container" style="margin-left: 40px; background: #fff; padding:10px;text-align:left;width:calc(100% - 65px);">

Caso o Registro exista → 

  • Cria o registro [Nome do Aplicativo] + [Domínio] + "Default"; EX: RM.EXE_BH01_DEFAULT.
  • Save(); //Salva as alterações no registro.
  • Verifica a tag CONFIGAUTOGENERATE.
HTML
</div>
<div style="padding-bottom:7px"></div>
<div class="white-container" style="margin-left: 80px; background: #fff; padding:10px;text-align:left;width:calc(100% - 105px);">

Se estiver com o valor true → Cria o registro [Nome do Aplicativo] + [Domínio] + [Nome da Máquina] EX: RM.EXE_BH01_TESTE.

HTML
</div>
<div style="padding-bottom:7px"></div>
<div class="white-container" style="margin-left: 80px; background: #fff; padding:10px;text-align:left;width:calc(100% - 105px);">

Se estiver com o valor false → Levanta uma exceção ao Usuário (REGISTERNOTFOUND).

HTML
</div>
<div style="padding-bottom:7px"></div>
<div class="white-container" style="background: #fff; padding:10px;text-align:left;width:calc(100% - 25px);">

Fim do Fluxo → Fim do CreateFile();

HTML
</div>
</div>
</div>
</div>
</div>
</div>
HTML
<script type="text/javascript" language="javascript">

Show = function(divName, imgName){
window["currentElement"] = divName;
if(typeof divName === "string"){
	if(document.getElementById(divName).offsetHeight < 2){
     $("#" + divName).animate({height: $("#" + divName).get(0).scrollHeight + 7});
     $("#" + divName).css("visibility", "visible")
     $("#" + imgName).attr('src', '/download/attachments/309398329/remove.png?version=1&modificationDate=1509386912062&api=v2');  
     $(".HiddenDiv .tab-nav-link").on("click", function(){
          window["currentElement"] = $(this).parents().find(".HiddenDiv").attr("id");
     });  
	 $(".HiddenDiv .confluence-information-macro").mutate('height',function (element,info){
          this.selector.each(function(index, element){
             if($(this).parent().attr("id") == window["currentElement"])
             $(this).parent().height($(this).outerHeight() + 61);
          });		
     });
    }
    else{
     $("#" + divName).animate({height: "0px"});
     $("#" + divName).css("visibility", "hidden")
     $("#" + imgName).attr('src', '/download/attachments/309398329/add.png?version=1&modificationDate=1509382756808&api=v2');
    }
}
}
</script>


O arquivo "Configuracaorm.config" armazenará as configurações de cada aplicativo. Para cada primeiro acesso, será inserido um novo registro com as configurações padrões referente à aplicação acessada.

Informações
iconfalse
Deck of Cards
idRegistros
Card
idRegistro Padrão
labelRegistro Padrão
titleRegistro Padrão

       É necessário que o arquivo "Configuracaorm.config" possua um registro padrão contendo as configurações desejadas, para cada aplicativo a ser utilizado.

        Exemplo:

     Para o aplicativo RM.exe, executado no domínio BH01, será respeitada a seguinte identificação:

     RM.exe_BH01_DEFAULT onde default será o padrão de configuração para todos os novos registros de aplicativos RM.exe que estiverem do domínio BH01, respeitando a nomenclatura da opção Novo Registro.

     Exemplo de Registro Padrão:

Bloco de código
languagexml
<RM.EXE_BH01_DEFAULT>
   <appSettings>
     <add key="JOBSERVER3CAMADAS" value="True" />
     <add key="PORT" value="8050" />
     <add key="HOST" value="localhost" />
     <add key="LibPath" value="C:\RM.Net_Atual\Bin" /> 
     <add key="CONFIGAUTOGENERATE" value="True" /> 
  </appSettings>
</RM.EXE_BH01_DEFAULT>
Aviso
titleObservações:
Se não for necessário criar novos registros para cada estação basta alterar o valor da tag <add key="CONFIGAUTOGENERATE" value="True" />, de: "True" para: "False" no Registro padrão.
Aviso
titleObservações:

Lembrando que o CONFIGAUTOGENERATE cria um novo registro baseado nas estações de trabalho, outros registros podem ser criados independente da tag estar "true" ou "false", como um exemplo, o registro RM.EXE.BH01.DEFAULT.

Alterar o valor do CONFIGAUTOGENERATE, aplica-se apenas aos registros baseados nas estações de trabalho. Por exemplo, alterando o valor de "true" para "false" fará com que apenas os registros das estações de trabalho não sejam criados.

Card
idNovo Registro
labelNovo Registro
titleNovo Registro

    novo registro será inserido levando em consideração as configurações do Registro Padrão e respeitando a seguinte identificação:

                     Nome do aplicativo + _ + Domínio do usuário + _ + Nome da máquina        

    Exemplo

  • Nome do aplicativo: RM.EXE
  • Domínio do usuário: BH01
  • Nome da máquina: Teste

     Como ficará o novo registro no arquivo:

Bloco de código
languagexml
<RM.EXE_BH01_Teste>
   <appSettings>
      <add key="JOBSERVER3CAMADAS" value="True" />
      <add key="PORT" value="8050" />
        <add key="HOST" value="localhost" />
      <add key="LibPath" value="C:\RM.Net_Atual\Bin" /> 
        <add key="CONFIGAUTOGENERATE" value="True" /> 
   </appSettings>
</RM.EXE_BH01_Teste>
Aviso
titleObservações:
Caso o arquivo de configuração possua permissão de somente leitura, não será possível inserir novas estações no configurador, sendo utilizado as configurações existentes no arquivo.

 

Informações
iconfalse
Produto: Framework

Informações
iconfalse

Versão: 12.01.XX

Informações
iconfalse

Processo: Parametrização / Configuração do Gerenciamento de Config

Informações
iconfalse
Informações
iconfalse

Status: Finalizado

Informações
iconfalse

Data: 09/09/2016

Informações
iconfalse

Autores:

Douglas Maxwell de Oliveira

Fábio Augusto Amaral Melo Nunes

Karina Dos Santos Costa

Stella Gleyse Macedo Vilaca

Wesley Avelino De Carvalho