Páginas filhas
  • 02 Consumo de licenças - LGX




01. INTRODUÇÃO


Saber QUAL licença uma aplicação do Logix consome, QUANDO deve consumir e COMO DEFINIR isso no desenvolvimento do produto Logix são algumas questões abordadas nos tópicos a seguir.

Antes de tudo é preciso entender uma questão técnica de desenvolvimento que justifica a estratégia e importância do como o consumo de licenças é realizado no sistema a partir de cada aplicação executada.

Pois então, a questão técnica principal envolvida no consumo de licenças do Logixs está na parte inicial do desenvolvimento das aplicações LOGIX onde é necessário o acionamento da função padrão LOG_initApp(<chaves_de_sistemas_licenciamento>) como primeira ação de qualquer programa.

A chamada desta função LOG_iniApp() atualmente garante as seguintes funcionalidades para as aplicações do produto:

Losango - ícones de formas grátis inicialização de variáveis globais padrões de acordo com o ambiente e a autenticação de usuário no menu;

Losango - ícones de formas grátis checagem de permissão de acesso do usuário ao programa;

Losango - ícones de formas grátis registro de LOG de acesso de usuário x programa;

Losango - ícones de formas grátis garantia de funcionamento correto do audit-trail;

Losango - ícones de formas grátis consumo de licença;

Losango - ícones de formas grátis carga de informações de alguns parâmetros repassados na chamada de um programa para outro que não são transferidos por parâmetros e sim via dados registrados em memória.


  A função log001_acessa_usuario() ainda é válida mas foi substituída pela função LOG_initApp(). Para saber mais detalhes acesse Funções Obsoletas - log001_acessa_usuario()


Agora que vimos a importância da chamada da função LOG_initApp() no início de todas aplicações do Logix, vamos detalhar o foco principal desta seção que é CONSUMO DE LICENÇA.



02. Regra geral de consumo de licença de uma aplicação LOGIX 


Atualmente o consumo de licença de um programa no Logix ocorre a partir do menu ocorre seguindo a seguinte ordem de verificação:


(seleção) O acesso ao menu do sistema NÃO CONSOME LICENÇA.

O consumo será realizado somente no acionamento do atalho de cada programa acionado a partir do menu do produto.

Existe uma lista de exceção de alguns programas que são considerados essenciais ao produto e são acessados com LICENÇA LIVRE, ou seja, não consomem licença alguma. Entre estes programas estão:

♦  Cadastro de Empresas (LOG00083)

♦  Cadastro de Logradouros (LOG00119)   Válido a partir do pacote 12.1.2301

♦  Central de Usuários (LOG05050)

♦  Central de parâmetros (LOG00086)   Válido a partir do pacote 12.1.2209

♦  Central do menu  (LOG00112)

♦  Diretórios de Relatórios  (LOG00098)   Válido a partir do pacote 12.1.2209

♦  Processamento de conversores de tabelas (LOG6000)

♦  Visualizador 4GL (LOG0290)

♦  Visualizador de Relatórios (LOGIXSPOOL)

♦  Extrator de versões (LOG00001)   Válido a partir do pacote 12.1.2301

♦  Configurador (CONFIGURATOR)   Válido a partir do pacote 12.1.2301

♦  Pesquisa Relacional (LOG00072)

♦  Sincronizador Metadados (LOG00074)

♦  Menus do produto (MEN1100, MEN3002, MENULOGIX)

♦  Consulta de versionamento de programas (LOG00111 → Antigo LOG1700)

♦  Cadastro de calendários (LOG70001, LOG00094)

♦  Orquestrador do Agendador de tarefas (JOB0001, JOB0002)

♦  Orquestrador do EAI

♦  Requisições API REST para atender a solicitações procedentes do TPD (TOTVS Privacidade de Dados)   Válido a partir do pacote 12.1.2301

  Esta lista de exceção de consumo de licença é controlada exclusivamente pela equipe de desenvolvimento Framework Logix.


(seleção) Identificação da chave de sistema do módulo do menu registrada para o atalho do programa no cadastro do menu. 

Esta chave de sistema é uma sigla que identifica um módulo do Logix e está associada a um SLOT de consumo do controle de licenciamento Totvs. 

A lista completa de chaves de sistemas está disponível na documentação da função LOG_initApp(), que é obrigatória no início do código fonte de programas Logix para garantir controle de permissões, bloqueios de usuários, registros de acessos, auditorias e identificação de usuários que estiverem utilizando o sistema.


No cadastro de Sistemas Logix (LOG00112 → Opção lateral "Sistemas Logix") existe uma informação identificada como CHAVE SISTEMA vinculada a cada Sistema Logix cadastrado no produto. Esta mesma informação também está disponível no cadastro de programas do menu (LOG00112 → Opção lateral "Sistemas Logix")

Caso o valor desta CHAVE_SISTEMA esteja com o valor "?" indica que o menu NÃO adotará nenhuma licença como sugestão de consumo para executar os programas que estiverem alocados abaixo deste módulo no menu e com isso os programas alocados abaixo desse Sistema Logix, OBRIGATORIAMENTE deverão fazer uso de uma chave de sistema válida na chamada da função  padrão inicial para executar programas no Logix LOG001_acessa_usuario() ou LOG_initApp(), caso contrário o sistema irá bloquear o acesso ao programa, informando que a chave de sistema informada não foi detectada no controle de licenças, pois não identificou licença válida tanto a partir do menu, pelo cadastro de Programas no Menu (LOG00112 → Opção lateral "Níveis de Processo") ou Sistemas Logix (LOG00112 → Opção lateral "Sistemas Logix"), quanto pela própria função inicial padrão para executar programas no Logix.



(seleção) Identificação da lista de chaves de sistemas previstos para o programa, definida nos parâmetros da chamada da LOG_initApp() que é de uso obrigatório no início de todos os programas do Logix.

Nessa lista de chaves de sistema da função LOG_initApp(), a primeira chave de sistema indicada é a CHAVE DE SISTEMA PADRÃO do programa.

Se por algum motivo a lista de chaves de sistema for inválida, o sistema irá eleger automaticamente uma chave de sistema padrão respeitando a sigla da aplicação (primeiras 3 letras do nome do programa), que está ligada a uma área de aplicação do produto.

               Exemplo:  MAN → Chave MANENG (Engenharia)

                                 VDP  VDPPED (Vendas - Pedidos)

                                 SUP  ESTOQ (Estoques).


(seleção) Caso não consiga identificar nenhuma chave de licença válida para o programa, o sistema irá automaticamente enviar para consumo a licença informada no atalho do menu.


SE chave de sistema do atalho do menu ESTÁ CONTIDA na lista de chaves de sistemas previstos para o programa

ENTÃO

        CONSUMIR LICENÇA pela chave de sistema indicada no atalho do menu

SENÃO

        CONSUMIR LICENÇA pela chave de sitema padrão padrão do programa

A lista de chaves de sistemas válidas para o controle de licenças LOGIX está descrita na página de documentação da função LOG_InitApp.


(interrogação)  Quando ocorre o abono de licenças?

A regra de abono de licenças não é definida nas aplicações do produto, pois ela orquestrada pelo servidor de licenças Totvs (License Server).

Mas apenas para registrar um conceito básico de como o abono de licenças pode ocorrer a partir de execuções de programas a partir do menu Logix, ele pode ocorrer na execução de mais de aba de programa a partir do menu e que tenha consumido o SLOT de licenças de um mesmo agrupador de licenças, ou seja, programas de agrupadores de licenças distintos, fazem consumo de novas licenças.

Esta regra de abono pode mudar de acordo com o tipo de contrato de licenciamento, então a sugestão é sempre confirmar a regra de consumo e abonos de licenças com a equipe de atendimento do License Server na unidade TOTVS SP (Framework).



03. Requisição do consumo de licença na função LOG_INITAPP()


É importante entender como o consumo de licenças é feito na função LOG_initApp() para poder definir a lista de chaves de sistema que cada programa deverá contemplar, então neste tópico as informações serão bem mais técnicas.


Como vimos anteriormente, o "consumo de licença" é processado com base em uma CHAVE DE SISTEMA, que nada mais é do que uma sigla de identificação de cada módulo do Logix.

Esta chave de sistema pode estar registrada nos seguintes locais do desenvolvimento do produto LOGIX:


  • Como parâmetro na chamada da função LOG_initApp() que é invocada na função principal de cada programa;

  • Vinculado ao cadastro de atalhos de programas do menu LOG00112 (Campo "Chave de sistema");

  • Vinculado ao cadastro do Sistema Logix (Campo "Chave de Sistema") onde o código do sistema Logix é registrado no cadastro de atalhos de programas do menu (LOG00112);

  • Registro de lista de programas por Chave de Sistema nos fontes SYSTEMKEY_<area>.4GL. Estes fontes estão liberados na pasta raiz de cada área na ferramenta de controle de fontes LOGIX na TOTVS, que são:

/adm_producao/systemkey_prd.4gl

/controladoria/systemkey_con.4gl

/financeiro/systemkey_fin.4gl

/logistica/systemkey_log.4gl

/relacoes_humanas/systemkey_rhu.4gl

/suprimentos/systemkey_sup.4gl

/vendas/systemkey_vdp.4gl

                                         Estes fontes são de responsabilidade de cada respectiva área de desenvolvimento da TOTVS.


EXEMPLO
#Lista de programas a serem inscritos para a licenças da chave de sistema ESTOQ (módulo Estoques)
CALL _ADVPL_SYSTEMKEY_setAppLicenseList("ESTOQ" ,"sup0051,sup0074,sup0076,sup0099")
 
#Lista de programas a serem inscritos para a licenças da chave de sistema SUPREC (módulo Recebimento de Materiais)
CALL _ADVPL_SYSTEMKEY_setAppLicenseList("SUPREC","suca0016,suca0019,suca0079,suca0087,suca0088,suca0091,suca1027,suca1029,suca1030,"||
                                                 "sup0001,sup0011,sup0041,sup0065,sup0072,sup0105,sup0212,sup0276,sup0294,sup0317,sup0331")


(interrogação)  Um programa pode ser previsto pra mais de uma chave de sistema de licenciamento? Como registrar isso?

      A resposta é SIM, um programa pode prever consumo de licença de mais de uma chave de sistema, de acordo com a funcionalidade proposta por cada programa que pode fazer parte da rotina diária de diversas áreas/departamentos de uma empresa.

      Isso indica que o programa poderá ser posicionado no menu do produto abaixo de outras áreas de aplicação e módulos e que o consumo de licença será realizado respeitando a licença indicada pelo módulo do menu onde o atalho do programa foi acionado.


Para registrar uma chave de sistema para o programa basta informar a chave de sistema válida como passagem de parâmetro para a função LOG_initApp(<chave_sistema>).

EXEMPLO
IF LOG_initApp("MANENG") = 0 THEN
   ... < instruções > ...
END IF


É simples, basta informar as demais chaves de sistemas válidas para o programa na mesma chamada de função LOG_initApp(), separando as chaves de sistema por "," (vírgula).

EXEMPLO
IF LOG_initApp("MANENG,ESTOQ,VDPPED,WMS") = 0 THEN
... < instruções > ...
END IF

A primeira chave de sistema informada no parâmetro da função LOG_initApp() é considerada como a chave de sistema padrão do programa, pois em caso de uma execução que não seja a partir do menu padrão Logix ou caso a chave de sistema indicada no atalho do menu Logix não seja válida entre as chaves indicadas na lista da função LOG_initApp(), o sistema irá sempre considerar para consumo a primeira chave de sistema dessa lista.

EXEMPLOS:

  • Se o atalho do programa MAN10021, for acionado do menu a partir de um atalho abaixo do sistema FRAMEWORK, que tem por padrão a chave de sistema "PADRAO", mas a função LOG_initApp() do MAN10021 estiver registrada com a lista de chaves de sistema com apenas a chave "MANENG", o sistema irá identificar que a chave de sistema PADRAO não está prevista entre as licenças válidas para o programa MAN10021 e irá realizar o consumo da primeira licença válida, que neste caso é MANENG.

  • Se o programa MAN10021 registra a licença para a chave de sistema MANENG na funcao LOG_initApp() e o fonte SYSTEMKEY_MAN.4GL não possui referências ao programa MAN10021 e em nenhum outro SYSTEMKEY_<area>.4GL não tiver nenhuma outra referência do MAN10021, somente a chave MANENG será considerada válida para o programa.

  • Nos demais fontes SYSTEMKEY_RHU.4GL, SYSTEMKEY_SUP.4GL, SYSTEMKEY_VDP.4GL, SYSTEMKEY_LOG.4GL, SYSTEMKEY_FIN.4GL, SYSTEMKEY_CON.4GL, se tiver registro do MAN10021, irá prever na lista a chave de sistema MANENG e agregar após esta chave as demais chaves previstas nestes fontes para o MAN10021, formando então uma lista final de todas as chaves de sistemas previstas para o programa. 

  • Caso o atalho do menu do MAN10021 solicitar licença diferente dessa lista, como mencionado anteriormente, a primeira chave de sistema da lista será usada para o consumo, sendo neste caso MANENG.


(interrogação)  Funcionamento da lista de chaves de sistemas registradas nos fontes SYSTEMKEY_<AREA>.4GL

      Quando um programa é informado no arquivo SYSTEMKEY_<area>.4GL da sua área principal, este irá prevalecer sobre a lista de chaves de sistema registrada no programa na chamada da função LOG_initApp().

      A partir do momento em que a chamada LOG_initApp() do programa já prevê toda lista de chaves de sistemas previstos no fonte SYSTEMKEY_<area>.4GL de sua área, pode-se eliminar este programa do fonte SYSTEMKEY_<area>.4GL.


O registro do programa no arquivo SYSTEMKEY_<area> de outras áreas NÃO afeta a lista de licenças padrões registradas na chamada LOG_initApp() de um programa, pois as licenças das demais áreas são incluídas ao final da lista padrão informada no programa.

EXEMPLO: 

Programa SUP3760 na sua execução inicial possui a seguinte instrução:

CALL log001_acessa_usuario("SUPRIMEN","LOGERP;LOGLQ2;LOGWMS") RETURNING p_status, p_cod_empresa, p_user 


Apesar de usar a antiga função log001_acessa_usuario(), está indicando a chave de sistema "SUPRIMEN", no entanto esta chave de sistema é inválida com base na lista de chaves de sistemas previstas para os módulos Logix.

Neste cenário, quando este programa for acionado a partir do menu Logix, o sistema adotará a seguinte ordem de verificações para identificar a licença a ser consumida para o programa:

1. Montar a lista com as chaves de sistemas do programa

    Montar a lista de chaves de sistemas para o programa SUP3760 existente no fonte SYSTEMKEY_SUP.4GL que é da área responsável por este programa e se esta lista for detectada com chaves válidas, esta será então utilizada em substituição a qualquer lista de chaves de sistemas enviada como parâmetro nas funções LOG_initApp() ou log001_acessa_usuario().

2. Definir lista de chaves de sistema padrão da área responsável pelo programa

    Se não encontrar lista de chaves de sistemas para o SUP3760 no fonte SYSTEMKEY_SUP.4GL, como a chave SUPRIMEN é inválida, o sistema irá adotar automaticamente um dos módulos da área de suprimentos como chave de sistema padrão, garantindo que o programa tenha pelo menos UMA chave de sistema da área de suprimentos como padrão.

3. Montar lista chaves de sistemas definida pelas demais áreas

    Montar a lista de chaves de sistemas para o programa SUP3760 existente em todos os demais fontes SYSTEMKEY_<área>.4GL para complementar a lista padrão já montada conforme cita os itens (1) e (2).

4. Validar licença a ser consumida com base na chave de sistema solicitada pelo menu

    Ao acionar o atalho do menu deste programa usando uma chave de sistema que não esteja entre as chaves de sistema da lista montada nos itens (1), (2) e (3), o sistema irá emitir um alerta no LOG do AppServer avisando que esta chave de sistema solicitada a partir do menu não é válida para a aplicação SUP3760 e automaticamente irá assumir a primeira chave de sistema da lista montada para ser consumida no License Server.


(interrogação)  Quando um programa acionar outro programa, ocorre mais um consumo de licença?

       Não, mas pode ocorrer a troca por outra licença, de acordo com a licença prevista para o programa acionado.


04. Identificando as licenças atuais previstas para um programa


Para identificar a lista de licenças atuais válidas para um programa é necessário:

1. Ativar a chave de DEBUG de licenças no profile:

Acessar o arquivo de profile do AppServer e ativar a chave logix.license.debug

logix.license.debug = 1


2. Executar o programa desejado e acompanhar no arquivo de LOG do Appserver algumas informações

EXEMPLO:

           Execução MAN10021 a partir do menu em um atalho localizado abaixo do sistema WMS (Slot 5087)


LOG DE PROCESSAMENTO DA ABERTURA DO PROGRAMA MAN10021

[Thread 13576] [LOGIX] [LICENSE] [SYSTEMKEY] Carregando licenças SUP 12:53:05
[Thread 13576] [LOGIX] [LICENSE] [SYSTEMKEY] Carregando licenças FIN 12:53:05
[Thread 13576] [LOGIX] [LICENSE] [SYSTEMKEY] Carregando licenças CON 12:53:05
[Thread 13576] [LOGIX] [LICENSE] [SYSTEMKEY] Carregando licenças RHU 12:53:05
[Thread 13576] [LOGIX] [LICENSE] [SYSTEMKEY] Carregando licenças PRD 12:53:05
[Thread 13576] [LOGIX] [LICENSE] [SYSTEMKEY] Carregando licenças VDP 12:53:05
[Thread 13576] [LOGIX] [LICENSE] [SYSTEMKEY] Carregando licenças LOG 12:53:05
[Thread 13576] [LOGIX] [LICENSE] [SYSTEMKEY] Licenças carregadas 12:53:05
[Thread 13576] [LOGIX] [LICENSE] [SYSTEMKEY] Aplicação MAN10021 - licenças Área padrão PRD =
[Thread 13576] [LOGIX] [LICENSE] [SYSTEMKEY] Aplicação MAN10021 - licenças da aplicação = MANENG,SUPPLA,VDPPED
[Thread 13576] [LOGIX] [LICENSE] [SYSTEMKEY] Aplicação MAN10021 - licenças Área SUP = ESTOQ,SUPCON
[Thread 13576] [LOGIX] [LICENSE] [SYSTEMKEY] Aplicação MAN10021 - licenças Área VDP = VDPPED
[Thread 13576] [LOGIX] [LICENSE] [SYSTEMKEY] Aplicação MAN10021 - licenças Área LOG = WMS
[Thread 13576] [LOGIX] [LICENSE] [SYSTEMKEY] Aplicação MAN10021 - licenças FINAL = MANENG,SUPPLA,VDPPED,ESTOQ,SUPCON,VDPPED,WMS
[Thread 13576] [LOGIX] [LICENSE] [LICENSE] INICIO - Checando consumo de licença...
[Thread 13576] [LOGIX] [LICENSE] [LICENSE] Licença atual em uso = 0
[Thread 13576] [LOGIX] [VERSION] Aplicação: LICLOGIX Versão: 12.1.26.55 Liberação: 26/01/16 18:00 Ult. Modificação: 2018-10-25 16:26:27
[Thread 13576] [LOGIX] [LICENSE] Licença não é corporativa.
[Thread 13576] [LOGIX] [LICENSE] [GETMENUKEY] Licenþa menu = WMS
[Thread 13576] [LOGIX] [LICENSE] Busca de informação (Tipo: fullDeterminado): {"method":"getInfo","information":"fullDeterminado"}
[Thread 13576] [LOGIX] [LICENSE] Busca de informação (Retorno) :  {"method":"getInfo","information":"fullDeterminado","value":"false"}
[Thread 13576] [LOGIX] [LICENSE] Consumo de licença: {"method": "getLicense","version": "1.0","federalId": "53113791000122","userId": "cle","moduleId": "5087","routine":  "man10021", "ownerThread":21612, "ownerClientIP":"192.168.99.1", "ownerClientPort":7085, "ownerServerIP":"192.168.99.1", "fullDeterminado":false}
[Thread 13576] [LOGIX] [LICENSE] Consumo de licença (Retorno) :  {"method":"getLicense","slotId":"5087","sucessful":true,"uniqueId":"MTYyODA=", "pendent":[]}
[Thread 13576] [LOGIX] [LICENSE] [LICENSE][THREADID 13576] Obtendo licença Cloud (5087) STATUS = 0  (ThreadID 21612 User cle Programa: man10021 IP 192.168.99.1 Port 7085 FederalID 53113791000122 Full Determinado false)
[Thread 13576] [LOGIX] [LICENSE] [LICENSESETACTUALSLOT] Slot atual em uso 5087


ANÁLISE DO PROCESSAMENTO

Todas as licenças previstas para o programa são: MANENG,SUPPLA,VDPPED,ESTOQ,SUPCON,VDPPED,WMS

Mas o menu solicitou consumo da licença da chave de sistema: WMS

O sistema consumiu a licença WMS pois é uma licença válida: Obtendo licença Cloud (5087)


05. Licenças para coletores de dados


O acesso ao Logix hoje para coletores de dados se dá a partir de um menu especificamente criado para acesso via coletores de dados chamado MEN3002.

As regras de desenvolvimento de programas para coletores de dados permanecem exatamente as mesmas, seja em relação ao uso da função LOG_initApp() ou a lista de chaves de sistema definidas para cada programa disponibilizado no coletor de dados.

(interrogação)   Mas o coletor de dados não deveria consumir a licença tipo TOTVS T? 

Sim, ele consome sempre a licença tipo TOTVS T, mas isso não é definido pelo programa ou pelo desenvolvedor, pois a função LOG_iniApp() detecta automaticamente o ambiente de execução do produto e faz este ajuste no consumo de licença de forma automática.


(interrogação)   Quando o consumo de licenças é realizado a partir do Menu do Coletores MEN3002? 

O consumo ocorre no mesmo momento em que ocorre para o menu padrão do sistema, ou seja, no ato em que o atalho de um dos programas disponíveis no menu é acionado.


06. Pontos do sistema onde o consumo de licença é realizado


Atualmente o consumo de licenças no produto LOGIX ocorre nos seguintes pontos:


Losango - ícones de formas grátis MENU PADRÃO

A partir do acionamento de programas a partir do MENU padrão do produto (MENULOGIX ou MEN1100)

O Menu em si não realiza consumo de licença, apenas os programas acionados a partir dele consomem Licenças por Slot do Módulo registrado para cada programa acionado.


Losango - ícones de formas grátis COLETOR DE DADOS

A partir do acionamento de programas a partir do MENU para coletores de dados (MEN3002).

No caso de coletor de dados a execução é com protocolo TELNET e o consumo de licenças será realizado para a Licença Tipo T (TELNET).


Losango - ícones de formas grátis INTEGRAÇÕES EAI

Todas as integrações EAI externas (recebimento de mensagens) estão isentas de consumo de licenças. Já o envio de mensagens via EAI não realiza atualmente nenhum consumo de licença pois a a aplicação em uso que está invocando esta integração do EAI já realiza consumo de licença conforme seu respectivo módulo indicado no ato da sua execução.


Losango - ícones de formas grátis PORTAIS WEB

O consumo de licenças quando realizado será para Licença do Tipo I (Internet / Portais Web).

Válido a partir do pacote 12.1.29.


Losango - ícones de formas grátis REQUISIÇÕES REST

O consumo de licenças quando realizado será para Licença do Tipo I (Internet / Portais Web). 

Em caso de uso de algum APP móbile ou portal que seja executado a partir da plataforma Mingle, o consumo será para o código de licença do APP indicado no cadastro do APP no Mingle e caso não detecte este código de licença APP, o sistema assumirá automaticamente a licença tipo I.

Válido a partir do pacote 12.1.29.

  Veja possíveis exceções de APIs REST no tópico 02. REGRA GERAL DE CONSUMO DE LICENÇA DE UMA APLICAÇÃO LOGIX


Losango - ícones de formas grátis CONSUMO WEBSERVICES (SOAP)

O consumo de licenças quando realizado será para Licença do Tipo I (Internet / Portais Web).

Válido a partir do pacote 12.1.29.


Losango - ícones de formas grátis AGENDADOR DE TAREFAS 

Toda execução de gatilho via agendador de tarefas inicia com consumo da chave de sistema PADRAO e na medida em que cada tarefa do gatilho é executada pode ocorrer troca da licença consumida, de acordo com a CHAVE DE SISTEMA pertinente a cada uma das tarefas acionadas durante a execução do gatilho.

O consumo de licenças é realizada para Licença por Slot do Módulo correspondente para a tarefa do gatilho em execução.

  Apenas o Orquestadror de Gatilhos do Agendador de Tarefas NÃO consome licença, mas os gatilhos por ele executados SIM.


07. DEMAIS INFORMAÇÕES