Versões comparadas

Chave

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

Índice 


       

Í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


       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


       

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;
}

</style>
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" 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="lastDiv" style="background: #fff; padding:10px;text-align:left;width:calc(100% - 25px);">

1) Inicio do Fluxo → CreateFile();

HTML
<div style="border-bottom: 1px dashed #ccc; width: calc(100% - 25px);height:1px;"></div>

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

HTML
<div style="border-bottom: 1px dashed #ccc; width: 100%;height:1px;"></div>

Caso o Registro exista → Altera o registro com as modificações realizadas.

HTML
<div style="border-bottom: 1px dashed #ccc; width: 100%;height:1px;"></div>

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


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

Caso o Registro exista → Altera o registro com as modificações realizadas.

Cria o registro → [Nome do Aplicativo] + [Domínio] + [Nome da Máquina] EX: RM.EXE.BH01.TESTE.

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

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.


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.

     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.     Para incluir novas tag's no config basta clicar no ícone 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 .

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
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