TECNOLOGIA - Proprietária - Como monitorar a utilização de licenças pelos usuários de sistemas de Tecnologia G5/G6
Dúvida
Como monitorar a utilização de licenças pelos usuários de sistemas de Tecnologia G5/G6?
Solução
Importante
- A solução descrita neste artigo foi definida levando em conta conceitos do sistema Gestão Empresarial | ERP;
- A solução descreve utilização de recursos personalizados (regra e relatório). Caso você não tenha conhecimento necessário para realizar essas personalizações, você poderá contratar um Consultor da Senior para fazer essas personalizações para você;
- Caso você precise de apoio para implantar qualquer parte deste processo no seu ambiente (regras, relatórios, criação/edição da Planilha Excel, ...), bem como efetuar a análise de informações, você poderá contratar horas de um Consultor Senior. A existência deste artigo na base de conhecimento do Suporte da Senior não é uma evidência de que o Suporte prestará qualquer apoio adicional na implantação deste processo personalizado, acompanhará a implantação ou prestará atendimento sobre dúvidas adicionais sobre o mesmo. Este artigo está disponível em nossa base de conhecimento para exemplificar como é possível atender a necessidade específica através de recursos personalizados.
Para criar um monitoramento com relação a utilização das licenças do sistema, execute os passos indicados abaixo:
1. Conforme descrito no artigo TECNOLOGIA - Proprietária - Onde ficam armazenadas as informações que são exibidas pelas ferramentas SeniorMonitorCenter e SGU relacionadas as conexões dos usuários na base de dados, os dados de utilização de licença do sistema são armazenados nas tabelas R911SEC e R911MOD. Desta forma, você precisa criar uma personalização que armazene de tempo em tempos os dados dessa tabela (como se fosse uma Foto de como essas tabelas estão definidas a cada intervalo de tempo);
1.1. Para essa personalização, você pode criar uma regra personalizada que busque os dados das tabelas R911SEC e R911MOD e armazene essas informações em uma tabela de usuário auxiliar. Ao final deste artigo você encontrará um exemplo de regra que pode ser utilizada para este fim. A regra que você criar poderá ser vinculada a um processo agendado para que realize a captura dos dados conforme a sua necessidade, de forma automática;
2. Após a coleta das informações e inserção ema tabelas/campos de usuário, você poderá criar um relatório personalizado para extrair essas informações e posteriormente exportá-las para um arquivo .CSV ou arquivo do Excel (.xls, xlsx);
3. Na planilha do Excel você poderá efetuar configurações de forma que haja a sumarização da utilização das licenças conforme a sua necessidade. Lembrando que a planilha de Excel deverá ter uma verificação para que os conceitos de utilização de licenças do sistema sejam respeitados. Exemplo: cada sessão de usuário armazenada na tabela R911SEC poderá consumir várias licenças (registros de licenças armazenados na tabela R911MOD), sendo que alguns usuários podem estar logados no sistema mais do que uma vez, possuindo então mais sessões registradas na tabela R911SEC.
3.1. Em anexo a este artigo você encontrará uma planilha de exemplo para análise de dados. Essa planilha conta com uma tabela dinâmica que tem por objetivo mostrar o pico de utilização de cada licença utilizado por hora (por pico, entenda o número máximo de conexões simultâneas de cada módulo coletado a cada hora). Com essa informação você poderá validar a necessidade de aumento ou diminuição de licenças contratadas pela sua empresa.
Lembre-se de que essa planilha é apenas um exemplo de possibilidade de análise. O Suporte da Senior não atenderá solicitações sobre como ela foi criada ou dúvidas de como adequá-la a sua realidade. Para tal tipo de apoio, verifique a contratação de um Consultor Senior com experiência em personalizações e Planilhas Excel.
Abaixo segue um exemplo de uma regra que poderá ser utilizada para armazenar informações em tabelas de usuário (conforme descrito no decorrer deste artigo).
Importante
A regra possui vínculo com tabelas e campos de usuário. Ela não será compilada na sua base de dados sem que seja adaptada conforme a sua realidade. Utilize essa regra como exemplo e como base para criar a sua personalização.
Definir Cursor C_R911SEC;
Definir Cursor C_USU_R911SEC;
Definir Alfa VsComNam;
Definir Alfa VsUsrNam;
Definir Alfa VsAppNam;
Definir Alfa VsAppUsr;
Definir Alfa VsModNam;
Definir Alfa Mod;
Definir Alfa VsUSU_Modnam;
Definir Alfa VsUSU_AppUsr;
@ -- VARIAVEIS MANIPULAR ARQUIVO -- @
Definir alfa aCamArq; /* Caminho dos Aquivos */
Definir alfa aNomArq; /* Nome arquivo */
Definir alfa aExtArq; /* Extenção arquivo */
Definir alfa aSepLin; /* Separador colunas */
Definir alfa aLinArq; /* Linhas do Arquivo */
Definir Data dDateSis; /* Data Sistema */
Definir alfa aDateSis; /* Data Sistema */
Definir Alfa aMSG;
VsCodemp=CodEmp;
VsCodFil=Codfil;
VsUSU_HorGerN=0;
C_R911SEC.sql "select R911MOD.ModNam,R911SEC.NumSec,R911SEC.DatTim,R911SEC.ComNam,R911SEC.UsrNam,R911SEC.AppNam,R911SEC.AppUsr,R911SEC.IDInst,R911SEC.AdmMsg,R911SEC.AppKnd from R911SEC,R911MOD\
WHERE R911SEC.NUMSEC=R911MOD.NUMSEC";
C_R911SEC.AbrirCursor();
Enquanto(C_R911SEC.Achou)
{
VsHorsis=Horsis;
VsNumSec = C_R911SEC.NumSec;
VsDatTim = C_R911SEC.DatTim;
VsComNam = C_R911SEC.ComNam;
VsUsrNam = C_R911SEC.UsrNam;
VsAppNam = C_R911SEC.AppNam;
VsAppUsr = C_R911SEC.AppUsr;
VsIDInst = C_R911SEC.IDInst;
VsAdmMsg = C_R911SEC.AdmMsg;
VsAppKnd = C_R911SEC.AppKnd;
VsModNam = C_R911SEC.ModNam;
C_USU_R911SEC.sql "select USU_TR911SEC.USU_AppUsr,USU_Modnam,USU_TR911SEC.USU_HorGer,USU_TR911SEC.USU_NumSec,USU_TR911SEC.USU_Seq from USU_TR911SEC\
Order By USU_TR911SEC.USU_Seq Desc";
C_USU_R911SEC.AbrirCursor();
Se(C_USU_R911SEC.Achou)
{
VsUSU_Seq = C_USU_R911SEC.USU_Seq;
VSUSU_NumSec = C_USU_R911SEC.USU_NumSec;
VsUSU_HorGer = C_USU_R911SEC.USU_HorGer;
VsUSU_Modnam = C_USU_R911SEC.USU_Modnam;
VsUSU_AppUsr = C_USU_R911SEC.USU_AppUsr;
C_USU_R911SEC.FecharCursor();
}
@Siglas@
Se(VsModNam="All")
{
Mod="BackOffice";
}
Se(VsModNam="M")
{
Mod="Manufatura";
}
Se(VsModNam="U")
{
Mod="Custo";
}
Se(VsModNam="V")
{
Mod="Serviços";
}
Se(VsModNam="EMDC")
{
Mod="Integrações";
}
Se(VsModNam="WWEB")
{
Mod="Web 5.0";
}
Seq=VsUSU_Seq+1;
@========Se Já Exiete==@
Definir Cursor C_USU_R911SEC1;
C_USU_R911SEC1.sql "select USU_TR911SEC.USU_HorGer from USU_TR911SEC\
Where USU_HorGer=:VsHorsis\
And USU_Modnam=:VsModNam\
And USU_AppUsr=:VsAppUsr";
C_USU_R911SEC1.AbrirCursor();
Se(C_USU_R911SEC1.Achou)
{
VsUSU_HorGerN = C_USU_R911SEC1.USU_HorGer;
C_USU_R911SEC1.FecharCursor();
}
@=====fim JA Existe===@
Se(VsUSU_HorGerN=0)
{
ExecSql "INSERT INTO USU_TR911SEC (USU_NumSec,USU_DatTim,USU_ComNam,USU_UsrNam,USU_AppNam, USU_AppUsr, USU_IDInst, USU_AdmMsg,USU_AppKnd, USU_Seq, USU_Codemp, \
USU_CodFil,USU_ModNam,USU_NomMod,USU_HorGer) \
VALUES (:VsNumSec,:VsDatTim,:VsComNam,:VsUsrNam,:VsAppNam,:VsAppUsr,:VsIDInst,:VsAdmMsg,:VsAppKnd,:Seq,:VsCodEmp,:VsCodFil,:VsModNam,:Mod,:VsHorsis)";
}
C_R911SEC.Proximo();
}
C_R911SEC.FecharCursor();