Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|
Especificação | |||
Produto | PIMS CS | Módulo | GUTILIT |
Segmento Executor | Agroindústria | ||
Projeto1 | IRM1 | ||
Requisito1 | Subtarefa1 | ||
Chamado2 |
| ||
Release de Entrega Planejada |
| Réplica |
|
País | ( X ) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( ) Outro _____________. | ||
Outros | <Caso necessário informe outras referências que sejam pertinentes a esta especificação. Exemplo: links de outros documentos ou subtarefas relacionadas>. |
Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos).
Realizar a interação dos aplicativos PIMS C/S como o TOTVS|License Server. O TOTVS|License Server é um recurso computacional da TOTVS que têm como objetivo realizar o controle das licenças de uso dos softwares e aplicações TOTVS. Através deste recurso é possível prover de forma eficiente e segura as licenças e liberações de utilização de módulos e/ou funcionalidades das aplicações TOTVS em conformidade com o contrato firmado entre o cliente e a TOTVS. Cada instancia do TOTVS|License Server identifica uma instalação física vinculada ao contrato de licenciamento do cliente. Para maximizar o uso do licenciamento TOTVS, recomenda-se a utilização de uma única instancia do TOTVS|License Server, independentemente do ambiente de operação (Produção, Homologação e Teste). Caso opte-se por mais de uma instalação física do TOTVS|License Server, será necessário o registro da divisão das licenças do contrato entre as instalações físicas.
Método de inicialização da comunicação com o TOTVS|License Server. Este método deve ser executado para cada uma das threads de processamento da linha de software.
EXPORTIT int SLC_HANDLE SLC_init (const char *serverIp, const int serverPort, const char *clientIp)
Parâmetros de entrada:
Retorno:
Método utilizado para identificar a thread ou contexto onde será realizado o consumo de licença, esta informação é utilizada na regra de abono de licença.
EXPORTIT int SLC_HANDLE SLC_setThreaID ( SLC_HANDLE slc, const int threadid)
Parâmetros de entrada:
Retorno:
Método utilizado para identificar a porta da aplicação a qual fará conexão com o servidor de licenças, esta informação é utilizada na regra de abono de licença.
EXPORTIT int SLC_HANDLE SLC_setClientPort ( SLC_HANDLE slc, const int clientPort)
Parâmetros de entrada:
Retorno:
Método de encerramento da comunicação com o TOTVS|License Server. Este método deve ser executado para cada uma das threads de processamento da linha de software. Realizar a chamada deste método em um destrutor de Classe para evitar que a conexão fique presa se houver uma queda da aplicação por não-conformidade.
EXPORTIT void SLC_cleanup (SLC_HANDLE slc)
Parâmetros de entrada:
Retorno:
Método de recuperação do número serial do TOTVS|License Server do ThreadId da conexão com o TOTVS|License Server. Quando não há um hardlock presente na instalação este método retorna a versão do TOTVS|License Server. Este método deve ser utilizado para verificar se trata-se da versão 2014 do TOTVS|License Server, neste caso o retorno será 2014.
EXPORTIT int SLC_ getId (SLC_HANDLE slc)
Parâmetros de entrada:
Retorno:
Método para execução de funções ou comandos.
EXPORTIT int SLC_callinternal (SLC_HANDLE slc, const int code, const char *par1, char *par2)
Parâmetros de entrada:
Retorno:
Método para controlar manualmente o pulso de renovação para que a conexão fique ativa.
EXPORTIT void SLC_ renewpulse (SLC_HANDLE slc)
Parâmetros de entrada:
Retorno:
Implementar um método para analisar se o TOTVS|License Server está configurado e aguardando uma mensagem.
int LSIsOnLine()
Procedimento:
I. Realizar a conexão com o TOTVS|License Server (SLC_init) conforme parâmetros de conexão configurados. Caso os parâmetros não estejam preenchidos, retorne -1.
II. Caso o TOTVS|License Server retorne um erro, somar -1000 ao erro e retornar o valor.
III. Armazenar o Handle da conexão em uma variável de escopo Privado para reutilização futura, caso não tenha sido feito anteriormente e retornar 1.
Parâmetros:
Retorno:
Implementar um método para analisar se a versão do TOTVS|License Server configurada é igual ou superior a 2014.
int LSIs2014()
Procedimento:
I. Verificar se o retorno do método LSIsOnLine é positivo, caso contrário retornar 0.
II. Utilizar o método SLC_getId e verificar se o retorno é maior ou igual 2014 e menor que 9999. Em caso positivo retornar 1.
III. Qualquer outra condição, retornar 0.
Parâmetros:
Retorno:
Implementar um método para o consumo do licenciamento TOTVS. O consumo de licenciamento TOTVS está preparado para realizar a identificação do tipo de licença solicitada e a natureza do controle, bem como identificar se a solicitação de licenciamento refere-se ao licenciamento tradicional ou corporativo. A única preocupação do desenvolvedor é transmitir corretamente os dados solicitados na mensagem e realizar o tratamento correto do retorno da mensagem.
string LSgetLicense(string cJson)
Procedimento:
I. Verificar se o retorno do método LSIsOnLine é positivo, caso contrário retornar vazio.
II. Verificar se a versão do TOTVS|License Server é igual ou superior a 2014, caso contrário retornar uma exceção.
III. Montar o pacote Json
IV. Concatenar ao pacote Json a seguinte expressão: Json = “TOTVSLICENSESERVER_GETLICENSE|”+Json
V. Invocar o metodo SLC_callinternal passando no parâmetro code o valor 10003 e o novo valor do Json no parâmetro par1.
VI. Em caso de sucesso será retornado um Json com os procedimentos que devem ser desenvolvidos no parâmetro par2.
Parâmetros:
Retorno:
Dados de solicitação de licenciamento | |||||||
Atributo | Tipo do Atributo | Ocorrência | Pai | Tipo | Tamanho | Decimal | Descrição |
method | Singular | 1 | - | Character | - | - | Informar o valor - "getLicense" |
version | Singular | 1 | - | Character | 3 | 0 | Informar o valor - "1.0" |
federalId | Singular | 1 | - | Character | 36 | 0 | FederalId ( CNPJ ) da empresa no país de origem |
userId | Singular | 1 | - | Character | 36 | 0 | Identificação do usuário no ERP |
moduleId | Singular | 1 | - | Inteiro | 4 | 0 | Identificação do módulo TOTVS ( Id do Slot ) |
routine | Singular | 1 | - | Character | 36 | 0 | Nome do programa/action de menu |
ownerThread | Singular | 1 | - | Inteiro | 5 | 0 | Thread de controle do abono de licenciamento das interfaces MDI |
ownerClientIP | Singular | 1 | - | Character | 16 | 0 | IP da conexão cliente do ERP - WorkStation |
ownerClientPort | Singular | 1 | - | Inteiro | 5 | 0 | Porta da conexão IP cliente ERP - WorkStation |
ownerServerIP | Singular | 1 | - | Character | 16 | 0 | IP da conexão com o Server Application |
fullDeterminado | Singular | 1 | - | Lógico | 0 | 0 | Indica se o consumo será fulldeterminado |
a) Estrutura de retorno em caso de aviso de necessidade de renovação manual do LS. Esta mensagem será retornada quando ocorrer algum problema na atualização do TOTVS|License Server que necessite uma intervenção manual do Administrador do sistema. É recomendado que seja utilizado a mensagem padrão fornecida pelo TOTVS|License Server. Esta mensagem deverá ser transmitida para todos os usuários do sistema (opção default ) ou somente ao usuários administradores ( opção configurada ), a cada solicitação de licenciamento. A mensagem contém o prazo de expiração da autorização de uso.
Retorno de licenciamento - Expiração | |||||||
Atributo | Tipo do Atributo | Ocorrência | Pai | Tipo | Tamanho | Decimal | Descrição |
code | Singular | 1 | - | Character | 6 | 0 | LS000 |
description | Singular | 1 | - | Character | 3 | - | Mensagem de necessidade de renovação manual do LS |
message | Multi-valued | 1 | - | - | - | - | Estrutura da mensagem de retorno |
pt | Singular | 1 | message | Character | 255 | - | Aviso de expiração em português |
es | Singular | 1 | message | Character | 255 | - | Aviso de expiração em espanhol |
en | Singular | 1 | message | Character | 255 | - | Aviso de expiração em inglês |
b) Estrutura de retorno em caso de necessidade de atualização (sincronização) dos dados do usuário. Esta mensagem é gerada mensalmente para sincronização com os dados do usuário que aparece no monitor de licenciamento. Mais abaixo é descrito um método que deverá ser invocado para atualização destes dados.
Retorno de licenciamento - Solicitação de detalhamento do Usuário | |||||||
Atributo | Tipo do Atributo | Ocorrência | Pai | Tipo | Tamanho | Decimal | Descrição |
code | Singular | 1 | - | Character | 6 | 0 | LS001 |
description | Singular | 1 | - | Character | 255 | 0 | Enviar os dados do usuário |
info | Singular | 1 | - | Character | 36 | 0 | Id do usuário que necessita atualizar os dados |
c) Estrutura de retorno em caso de necessidade de atualização (sincronização) dos dados da empresa. Esta mensagem é gerada mensalmente para sincronização com dos dados da empresa que aparece no monitor de licenciamento. Mais abaixo é descrito um método que deverá ser invocado para atualização dos dados.
Retorno de licenciamento - Solicitação de detalhamento da Empresa | |||||||
Atributo | Tipo do Atributo | Ocorrência | Pai | Tipo | Tamanho | Decimal | Descrição |
code | Singular | 1 | - | Character | 6 | 0 | LS002 |
description | Singular | 1 | - | Character | 255 | 0 | Enviar os dados da empresa |
info | Singular | 1 | - | Character | 36 | 0 | Id da empresa que necessita atualizar os dados |
d) Estrutura de retorno em caso de necessidade de atualização dos dados de suporte técnico. Esta mensagem é gerada mensalmente para sincronização com dos dados que aparece no monitor de licenciamento. Mais abaixo é descrito um método que deverá ser invocado para atualização dos dados.
Retorno de licenciamento - Solicitação de detalhamento da instalação da linha de produto | |||||||
Atributo | Tipo do Atributo | Ocorrência | Pai | Tipo | Tamanho | Decimal | Descrição |
code | Singular | 1 | - | Character | 6 | 0 | LS003 |
description | Singular | 1 | - | Character | 255 | 0 | Enviar os dados de suporte técnico |
e) Estrutura de retorno em caso de sucesso ou erro na operação. Note que no Objeto pendent, os dados descritos acima e “a” até “d” são retornados.
a)
Dados de retorno de licenciamento - Sucesso ou falha | |||||||
Atributo | Tipo do Atributo | Ocorrência | Pai | Tipo | Tamanho | Decimal | Descrição |
uniqueId | Singular | 1 |
| Character | 36 | 0 | Id de autorização de uso retornado pelo LS |
method | Singular | 1 | - | Character | 255 | 0 | Informar o valor - "getLicense" |
slotId | Singular | 1 | - | Character | 4 | 0 | Identificação do agrupador de negócio TOTVS |
sucessful | Singular | 1 | - | Lógico | 1 | 0 | true ou false, indicado o sucesso da operação |
errorCode | Singular | 0-1 | - | Character | 6 | 0 | Código de Erro |
pendent | Multi-valued | 0-N | - | - | - | - |
|
Implementar um método para verificar se determinado componente acessório do produto pode ser habilitado na linha de produto – Licenciamento de natureza Habilitação.
int LSCanUseCA(Int slotId)
Procedimento:
I. Verificar se o retorno do método LSIsOnLine é positivo, caso contrário retornar vazio.
II. Verificar se a versão do TOTVS|License Server é igual ou superior a 2014, caso contrário retornar uma exceção.
III. Montar o pacote JSon
IV. Concatenar ao pacote Json a seguinte expressão: Json = “TOTVSLICENSESERVER_DEFAULT|”+Json
V. Invocar o metodo SLC_callinternal passando no parâmetro code o valor 10003 e o novo valor do Json no parâmetro par1.
VI. Analisar o Json retornado para identificar o correto retorno do método.
Parâmetros:
Retorno:
Dados de envio de habilitação | |||||||
Atributo | Tipo do Atributo | Ocorrência | Pai | Tipo | Tamanho | Decimal | Descrição |
method | Singular | 1 | - | Character | 255 | 0 | Informar o valor - "getTotal" |
slotId | Singular | 1 | - | Character | 4 | 0 | Identificação do agrupador de negócio TOTVS |
Retorno de habilitação - Sucesso ou falha | |||||||
Atributo | Tipo do Atributo | Ocorrência | Pai | Tipo | Tamanho | Decimal | Descrição |
method | Singular | 1 | - | Character | 255 | 0 | Informar o valor - "getTotal" |
slotId | Singular | 1 | - | Character | 4 | 0 | Identificação do agrupador de negócio TOTVS |
total | Singular | 1 | - | Inteiro | 16 | 0 | inteiro positivo em caso de sucesso, zero em caso de falha |
Implementar um método para verificar a necessidade de bloqueio no licenciamento de natureza OnDemand. Estes método irá retornar o limite contrato do licenciamento.
int LSgetOnDemand(Int moduleId)
Procedimento:
I. Verificar se o retorno do método LSIsOnLine é positivo, caso contrário retornar vazio.
II. Verificar se a versão do TOTVS|License Server é igual ou superior a 2014, caso contrário retornar uma exceção.
III. Montar o pacote JSon
IV. Concatenar ao pacote Json a seguinte expressão: Json = “TOTVSLICENSESERVER_GETONDEMAND|”+Json
V. Invocar o metodo SLC_callinternal passando no parâmetro code o valor 10003 e o novo valor do Json no parâmetro par1.
VI. Analisar o Json retornada para identificar o correto retorno do método.
Parâmetros:
Retorno:
Dados de envio de OnDemand | |||||||
Atributo | Tipo do Atributo | Ocorrência | Pai | Tipo | Tamanho | Decimal | Descrição |
method | Singular | 1 | - | Character | 255 | 0 | Informar o valor - "getOnDemand" |
moduleId | Singular | 1 | - | Character | 4 | 0 | Identificação do agrupador de negócio TOTVS |
required | Singular | 1 | - | Inteiro | 16 | 0 | Informar a contagem da capacidade conforme a regra da licença |
Retorno de OnDemand - Sucesso ou falha | |||||||
Atributo | Tipo do Atributo | Ocorrência | Pai | Tipo | Tamanho | Decimal | Descrição |
method | Singular | 1 | - | Character | 255 | 0 | Informar o valor - "getOnDemand" |
moduleId | Singular | 1 | - | Character | 4 | 0 | Identificação do agrupador de negócio TOTVS |
qty | Singular | 1 | - | Inteiro | 16 | 0 | inteiro positivo em caso de sucesso com a capacidade maxíma admitida, zero em caso de falha |
Implementar um método para verificar algumas informações do servidor, tais como Série e Segmento.
string LSgetInfo(char * information)
Procedimento:
I. Verificar se o retorno do método LSIsOnLine é positivo, caso contrário retornar vazio.
II. Verificar se a versão do TOTVS|License Server é igual ou superior a 2014, caso contrário retornar uma exceção.
III. Montar o pacote JSon conforme o parâmetro informado
IV. Concatenar ao pacote Json a seguinte expressão: Json = “TOTVSLICENSESERVER_GETINFO|”+Json
V. Invocar o metodo SLC_callinternal passando no parâmetro code o valor 10003 e o novo valor do Json no parâmetro par1.
VI. Analisar o Json retornada para identificar o correto retorno do método.
Parâmetros:
Retorno:
Dados de envio de GetInfo | |||||||
Atributo | Tipo do Atributo | Ocorrência | Pai | Tipo | Tamanho | Decimal | Descrição |
method | Singular | 1 | - | Character | 255 | 0 | Informar o valor - "getInfo" |
information | Singular | 1 | - | Character | 255 | 0 | "segment" - Para segmento; |
Retorno de GetInfo - Sucesso ou falha | |||||||
Atributo | Tipo do Atributo | Ocorrência | Pai | Tipo | Tamanho | Decimal | Descrição |
method | Singular | 1 | - | Character | 255 | 0 | Informar o valor - "getInfo" |
information | Singular | 1 | - | Character | 255 | 0 | "segment" - Para segmento; |
value | Singular | 1 | - | Character | 255 | 0 | valor da solicitação |
Implementar um método para enviar informações adicionais ao servidor.
void LSsetInfo(string information)
Procedimento:
I. Verificar se o retorno d método LSIsOnLine é positivo, caso contrário retornar vazio.
II. Verificar se a versão do TOTVS|License Server é igual ou superior a 2014, caso contrário retornar uma exceção.
III. Montar o pacote JSon conforme o parâmetro informado
IV. Concatenar ao pacote Json a seguinte expressão: Json = “TOTVSLICENSESERVER_DEFAULT|”+Json
V. Invocar o metodo SLC_callinternal passando no parâmetro code o valor 10003 e o novo valor do Json no parâmetro par1.
Parâmetros:
Retorno:
a) O Json abaixo deve ser enviado quando houver uma solicitação de complemento de informação LS001.
Envio da Solicitação de detalhamento do usuário | |||||||
Atributo | Tipo do Atributo | Ocorrência | Pai | Tipo | Tamanho | Decimal | Descrição |
method | Singular | 1 | - | Character | 255 | 0 | Informar o valor - "setInfo" |
code | Singular | 1 | - | Character | 6 | 0 | LS001 |
User | Multi-valued | 1 | - | - | - | - |
|
id | Singular | 1 | User | Character | 36 | 0 | Id do usuário |
name | Singular | 1 | User | Character | 80 | 0 | Nome do usuário |
b) O Json abaixo deve ser enviado quando houver uma solicitação de complemento de informação LS002.
Envio da Solicitação de detalhamento da empresa | |||||||
Atributo | Tipo do Atributo | Ocorrência | Pai | Tipo | Tamanho | Decimal | Descrição |
method | Singular | 1 | - | Character | 255 | 0 | Informar o valor - "setInfo" |
code | Singular | 1 | - | Character | 6 | 0 | LS002 |
Company | Multi-valued | 1 | - | - | - | - |
|
id | Singular | 1 | Company | Character | 36 | 0 | Id da empresa/estabelecimento/filial |
federalid | Singular | 1 | Company | Character | 36 | 0 | Federal Id sem mascara - Exemplo: CNPJ |
name | Singular | 1 | Company | Character | 80 | 0 | Nome da empresa - Razão Social |
alias | Singular | 1 | Company | Character | 40 | 0 | Nome fantasia da empresa |
cnae | Singular | 1 | Company | Character | 10 | 0 | cnae da empresa |
c) O Json abaixo deve ser enviado quando houver uma solicitação de complemento de informação LS003.
Envio da Solicitação de detalhamento da instalação da linha de produto | |||||||
Atributo | Tipo do Atributo | Ocorrência | Pai | Tipo | Tamanho | Decimal | Descrição |
method | Singular | 1 | - | Character | 255 | 0 | Informar o valor - "setInfo" |
ProductLine | Singular | 1 | - | Character | 2 | 0 | Código da linha de produto. Exemplo: 01 - Logix, 02 - Microsiga, 03 - RM, 04 - First, 05 - Vitrine, 06 - Datasul, 07 - Personal Med,08 - Proxima |
code | Singular | 1 | - | Character | 6 | 0 | LS003 |
ApplicationServer | Multi-valued | 1 | - | - | - | - | Estrutura do application Server |
OperationSystem | Singular | 1 | ApplicationServer | Character | 255 | 0 | Descrição do sistema operacional |
Memory | Singular | 1 | ApplicationServer | Inteiro | 12 | 2 | Memoria fisica em Mbytes |
Processor | Singular | 0-1 | ApplicationServer | Inteiro | 12 | 2 | Numero de processadores |
Core | Singular | 0-1 | ApplicationServer | Inteiro | 12 | 2 | Numero de núcleos |
Clock | Singular | 0-1 | ApplicationServer | Inteiro | 12 | 2 | Mhz do processador |
Idioma | Singular | 0-1 | ApplicationServer | Character | 5 | 0 | Id de identificação do idioma do sistema operacional. Exemplo: 'pt-br' |
ProcessorModel | Singular | 0-1 | ApplicationServer | Character | 255 | 0 | Descrição com o modelo do processado |
IPAddress | Singular | 1 | ApplicationServer | Character | 16 | 0 | endereço IP do aplication server |
DBMS | Multi-valued | 0-1 | - | - | - | - | Estrutura do SGBD |
OperationSystem | Singular | 0-1 | DMS | Character | 255 | 0 | Descrição do sistema operacional |
Memory | Singular | 0-1 | DMS | Inteiro | 12 | 2 | Memoria fisica em Mbytes |
Processor | Singular | 0-1 | DMS | Inteiro | 12 | 2 | Numero de processadores |
Core | Singular | 0-1 | DMS | Inteiro | 12 | 2 | Numero de núcleos |
Clock | Singular | 0-1 | DMS | Inteiro | 12 | 2 | Mhz do processador |
ProcessorModel | Singular | 0-1 | DMS | Character | 255 | 0 | Descrição com o modelo do processado |
IPAddress | Singular | 0-1 | DMS | Character | 16 | 0 | endereço IP do aplication server |
Database | Singular | 1 | DMS | Character | 255 | 0 | Descrição do banco de dados |
Version | Singular | 0-1 | DMS | Character | 255 | 0 | Versão do banco de dados |
WorkStation | Multi-valued | 0-1 | - | - | - | - | Estrutura da estaçäo de trabalho |
OperationSystem | Singular | 1 | WorkStation | Character | 255 | 0 | Descrição do sistema operacional |
Memory | Singular | 1 | WorkStation | Inteiro | 12 | 2 | Memoria fisica em Mbytes |
Processor | Singular | 0-1 | WorkStation | Inteiro | 12 | 2 | Numero de processadores |
Core | Singular | 0-1 | WorkStation | Inteiro | 12 | 2 | Numero de núcleos |
Clock | Singular | 0-1 | WorkStation | Inteiro | 12 | 2 | Mhz do processador |
Idioma | Singular | 0-1 | WorkStation | Character | 5 | 0 | Id de identificação do idioma do sistema operacional. Exemplo: 'pt-br' |
Browse | Singular | 0-1 | WorkStation | Character | 255 | 0 | Idenficação do vendor do Browse. IE,CHROME,FIREFOX, SAFARI, etc... |
BrowseVersion | Singular | 0-1 | WorkStation | Character | 255 | 0 | Versão do Browse Instalado |
ProcessorModel | Singular | 0-1 | WorkStation | Character | 255 | 0 | Descrição com o modelo do processado |
IPAddress | Singular | 1 | WorkStation | Character | 16 | 0 | Endereço IP do aplication server |
ProductLine | Multi-valued | 1 | - | - | - | - | Estrutura da linha de produto |
DbScriptVersion | Singular | 0-1 | ProductLIne | Character | 255 | 0 | Versão da estrutura de dados do produto |
BOVersion | Singular | 0-1 | ProductLIne | Character | 255 | 0 | Identificação da versão da linha de produto |
AppSrvVersion | Singular | 0-1 | ProductLIne | Character | 255 | 0 | Identificação da versão do Application Server |
FWVersion | Singular | 0-1 | ProductLIne | Character | 255 | 0 | Identificação da versão do Framework utilizado |
Sempre retorna vazio.
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|