Manual de Integração
ERP PRIMAVERA V8.10
Versão 1.0
março 2013
Índice
1. Introdução ... 4
2. Nomenclatura ... 5
2.1. Abreviatura da Aplicação ...5
2.2. Nome Lógico e Físico dos Componentes ...7
3. Componentes Necessários ... 7
3.1. Descrição dos Componentes ...7
3.2. Nomes dos Componentes ...7
3.3. Referências ...8
3.4. Compatibilidade Binária ...8
4. Windows Registry e Setups ... 8
4.1. SGE800 – Executive ...8 4.2. SGP800 – Professional ...9 4.3. Registo da Aplicação ...9 5. Audit ... 11 5.1. Classes Necessárias ... 11 5.2. cls<Apl>OperacoesAplicacao ... 12 5.3. cls<Apl>OperacoesLog ... 14 5.4. cls<Apl>BasesDados ... 15 5.5. Notas ... 16
5.5.1. Definição da Hierarquia das Operações ... 16
5.5.2. Aplicações sem Operações ... 17
5.5.3. Parâmetros dos Métodos ... 18
5.5.4. Aplicações sem Bases de Dados Integradas ... 19
5.5.5. Executável no Menu Sistema ou Utilitários ... 19
6. Forms ... 19 6.1. Classes Necessárias ... 19 6.2. cls<Apl>Images ... 20 6.3. cls<Apl>Parametrizacoes... 20 6.4. cls<Apl>Servicos ... 21 6.5. Notas ... 23
6.5.1. Aplicações sem Parâmetros ou Serviços ... 23
7. Funcionalidades da Plataforma... 25
7.1. Licenciamento ... 25
7.2. Criação de Empresas ... 25
7.3. Parâmetros por Aplicação ... 25
7.4. Parâmetros por Empresa ... 26
7.5. Serviços / Utilitários por Empresa ... 26
7.6. Permissões ... 26
7.7. Permissões Dinâmicas ... 26
7.8. Log ... 27
7.9. Executáveis no Menu Sistema ... 28
7.10.Bases de Dados Externas... 29
8. Protótipo ... 30 8.1. Aplicações ... 30 8.2. Empresas ... 31 8.3. Parâmetros e Serviços ... 31 8.4. Permissões ... 32 8.5. Log ... 33
8.6. Executáveis no Menu Sistema ou Utilitários ... 34
1. Introdução
O presente manual documenta a integração de aplicações externas – desenvolvidas por parceiros
PRIMAVERA – na solução PRIMAVERA versão 8.10 (Executive ou Professional), nomeadamente, no
Administrador.
Na presente versão da Plataforma PRIMAVERA não existem diferentes níveis de integração – por exemplo,
aplicações integradas no Administrador (ADM) sem suporte para parâmetros ou permissões. Significa isto
que determinada aplicação deverá implementar todas as normas para que a integração possa ser efetuada.
Em traços gerais, a aplicação a integrar deve observar normas em diferentes níveis:
Componentes – conjunto de componentes que obedecem a uma determinada nomenclatura e
disponibilizam um conjunto definido de funcionalidades necessárias para que a aplicação seja
considerada no Administrador;
Registry – conjunto de entradas no Windows Registry necessárias para que o ADM possa localizar
os componentes;
Classes, Propriedades e Métodos – funcionalidades mínimas necessárias para que o ADM
reconheça a aplicação.
Os exemplos apresentados ao longo do manual correspondem a uma implementação real de um protótipo
simples que exemplifica as implementações necessárias.
Todas as normas apresentadas aplicam-se da mesma forma a integrações realizadas ao nível da versão
Executive ou Professional. Qualquer exceção a este princípio é também documentada neste manual.
De modo a consultar a versão mais atualizada deste manual, sugere-se a sua consulta online na PRIMAVERA KnowledgeBase.
2. Nomenclatura
A integração de aplicações deve obedecer a um conjunto de normas de nomenclatura – da aplicação e dos
componentes disponibilizados. Essas normas são apresentadas de seguida.
2.1. Abreviatura da Aplicação
Todas as aplicações a integrar no Administrador devem ter uma abreviatura definida que deverá fazer parte
do nome dos seus componentes.
Essa abreviatura deve consistir de 3 carateres alfanuméricos (exemplos: XPR, XGO, etc.).
As seguintes abreviaturas estão reservadas a módulos PRIMAVERA já existentes:
Abreviatura
Módulo
ADM
Administrador
ANL
Analytics
ANW
Analytics Service
ATP
Assistências Técnicas
AUC
AutoUpdate Client
AUP
AutoUpdate
AWS
Windows Services
CBI
Cliente Business Intelligence
CBL
Contabilidade
COP
Construção Civil e Obras Públicas
CNO
Contabilidade não Organizada
CRM
CRM
CTP
Company Templates PRIMAVERA (“Configurações Base de Empresas”)
DBM
Data Base Management
DFP
Declarações Fiscais e Oficiais
ERP
ERP PRIMAVERA
EXP
EXPRESS
FIL
Filiais
FIN
Add-in Financeiro
GAB
Gabinetes
GBI
Gestor Business Intelligence
GCP
Logística e Tesouraria (L&T)
GPP
Gestão de Processos
GPR
Produção
GPS
Gestão de Pessoal
HYP
Hyperion
IMO
Imobilizado
PBI
Business Intelligence
PDA
PDA
PDS
PRIMAVERA DataSync (integrador PRIMAVERA Maintenance)
PEP
Enterprise Portals
PFR
Fiscal Reporting
PLT
Plataforma
PMS
Mobile Sales
PRM
Report Migrator
PSP
Standard Portals
PSR
School Reporting
PWS
Windows Scheduler
RHP
Recursos Humanos
RTL
Fashion Retail
STP
Smart Tags
TTE
Tecnologias de Transacções Electrónicas
2.2. Nome Lógico e Físico dos Componentes
Na definição do nome lógico e físico dos componentes necessários à integração recomendam-se as
seguintes boas práticas (não obrigatórias):
Incluir a abreviatura da aplicação no nome lógico e físico do componente (ex.: GppAudit800.dll);
Incluir a versão da aplicação no nome lógico e físico do componente (ex.: GppAudit800.dll) de forma
a permitir a convivência de várias versões da aplicação na mesma máquina.
3. Componentes Necessários
3.1. Descrição dos Componentes
Para que o ADM considere uma determinada aplicação será necessário que esta disponibilize os seguintes
componentes – na forma de ActiveX DLLs:
Componente
Descrição
Audit
Enumera as categorias de dados da aplicação (integração do Navegador), as
operações sobre as quais podem ser definidas permissões no ADM e as bases
de dados suportadas pela aplicação.
Forms
Publica e disponibiliza as parametrizações e utilitários da aplicação a
disponibilizar na aplicação.
3.2. Nomes dos Componentes
Ambos os componentes devem observar as recomendações apresentadas em 2. 2. No entanto, é possível
atribuir os nomes lógicos e físicos que se desejar desde que as entradas “Audit” e “Forms” do Registry (ver 4.
3.) estejam corretamente preenchidas com o nome lógico dos componentes. A recomendação PRIMAVERA
resultaria nos seguintes nomes lógicos e físicos dos componentes:
PrtAudit800 – PrtAudit800.dll;
3.3. Referências
Adicionalmente será necessário que cada um dos projetos correspondentes aos componentes referidos, para
disponibilizarem os objetos necessários, implemente as referências enumeradas de seguida.
Componente
Referências
AplAudit
Microsoft ActiveX Data Objects 2.8 Library
PRIMAVERA StdBE 8.00 – StdBE800.dll
PRIMAVERA StdClasses 8.00 – StdClasses800.dll
AplForms
PRIMAVERA StdBE 8.00 – StdBE800.dll
PRIMAVERA StdClasses 8.00 – StdClasses800.dll
3.4. Compatibilidade Binária
É recomendado que ambos os componentes de integração sejam desenvolvidos garantindo compatibilidade
binária entre versões.
4. Windows Registry e Setups
Para que seja possível ao Administrador reconhecer e registar uma aplicação é necessário incluir no Registry
do Windows um conjunto de entradas. Essas entradas dependem do produto.
4.1. SGE800 – Executive
As definições de todos os módulos PRIMAVERA versão Executive são disponibilizadas no Windows Registry
na chave HKEY_LOCAL_MACHINE\SOFTWARE\PRIMAVERA\SGE800.
Esta chave incluirá as entradas correspondentes a cada instância PRIMAVERA disponível na instalação em
causa. Cada uma dessas instâncias consistirá de um nó sob a entrada SGE800 (existirá sempre a instância
DEFAULT).
4.2. SGP800 – Professional
No caso da versão Professional aplica-se a mesma norma descrita no ponto anterior mas a chave principal
será HKEY_LOCAL_MACHINE\SOFTWARE\PRIMAVERA\SGP800.
4.3. Registo da Aplicação
Chave
Entrada
Descrição
<APL>
Audit
Nome lógico do componente de Audit.
<APL>
Forms
Nome lógico do componente de Forms.
<APL>
3rdParty
TRUE.
<APL>
Nome
Nome da aplicação.
<APL>
PercursoApl
Localização física do executável da aplicação.
<APL>
PercursoDados
Diretoria de dados.
<APL>
PercursoDadosC
omuns
Diretoria de dados comuns.
<APL>
PercursoMapas
Diretoria de mapas.
<APL>
Versao
Versão da aplicação.
<APL>
Exec
Nome físico do executável da aplicação (sem diretoria nem
extensão .EXE).
ADM\Apls
<APL>
Abreviatura da aplicação.
Todas as entradas devem existir e estar preenchidas com valores válidos.
A título de exemplo, se a aplicação a integrar tivesse a abreviatura PRT, seria necessário incluir as seguintes
entradas no Registry:
5. Audit
5.1. Classes Necessárias
O componente AplAudit deve implementar as seguintes classes para ser reconhecida pelo Administrador
PRIMAVERA.
Classe
Descrição
cls<Apl>OperacoesAplicacao
Esta classe enumera todas as permissões parametrizáveis pelo
utilizador.
cls<Apl>OperacoesLog
Esta classe enumera todas as entidades de log disponíveis.
cls<Apl>BasesDados
Esta classe enumera as bases de dados suportadas pela
aplicação (não é obrigatória).
A classe deve ser definida com as seguintes propriedades genéricas:
DataBindingBehaviour – 0 (vbNone);
DataSourceBehaviour – 0 (vbNone);
Instancing – 5 (MultiUse);
Persistable – 0 (NotPersistable).
5.2. cls<Apl>OperacoesAplicacao
A classe cls<Apl>OperacoesAplicacao define as operações fixas e/ou dinâmicas disponibilizadas pela
aplicação e sobre as quais o utilizador pode definir permissões dependentes dos perfis definidos no
Administrador. Esta classe deve:
Implementar a interface clsAplAudit (definido em StdClasses800);
Disponibilizar os seguintes métodos:
O código da classe deverá ser semelhante ao seguinte exemplo:
Option Explicit
Implements clsAplAudit
Private Property Get clsAplAudit_ArvOperacoes(objParametros As clsParamOpsAplicacao) As clsArvoreOperacoes
Dim objOps As clsArvoreOperacoes Dim objOp As clsOperacaoApl On Error GoTo Erro
Set objOps = New clsArvoreOperacoes 'Menu ficheiros
Set objOp = objOps.Add("mnuFicheiros", "Ficheiros", 0, "")
Set objOp = objOps.Add("mnuFicheirosOp1", "Operação 1", 0, "mnuFicheiros") Set objOp = objOps.Add("mnuFicheirosOp2", "Operação 2", 0, "mnuFicheiros") Set objOp = objOps.Add("mnuFicheirosOp3", "Operação 3", 0, "mnuFicheiros") 'Menu documentos
Set objOp = objOps.Add("mnuDocumentos", "Documentos", 0, "")
Set objOp = objOps.Add("mnuDocumentosOp1", "Documentos 1", 0, "mnuDocumentos") Set objOp = objOps.Add("mnuDocumentosOp2", "Documentos 2", 0, "mnuDocumentos") Set objOp = objOps.Add("mnuDocumentosOp3", "Documentos 3", 0, "mnuDocumentos") 'Menu exploração
Set objOp = objOps.Add("mnuExploracao", "Exploração", 0, "")
Set objOp = objOps.Add("mnuExploracaoOp1", "Exploração 1", 0, "mnuExploracao")
Método
Descrição
ArvOperacoes
Estrutura hierárquica das operações fixas (não dependentes da base de
dados/empresa em causa) sobre as quais o utilizador pode definir
permissões.
PermissoesDinamicas
Estrutura hierárquica de operações dinâmicas (dependentes da base de
dados/empresa em causa) sobre as quais o utilizador pode definir
permissões.
Set objOp = objOps.Add("mnuExploracaoOp2", "Exploração 2", 0, "mnuExploracao") Set objOp = objOps.Add("mnuExploracaoOp3", "Exploração 3", 0, "mnuExploracao") 'Sub menu Exploração 1
Set objOp = objOps.Add("mnuExploracaoOp31", "Exploração 31", 0, "mnuExploracaoOp3") Set objOp = objOps.Add("mnuExploracaoOp32", "Exploração 32", 0, "mnuExploracaoOp3") Set objOp = objOps.Add("mnuExploracaoOp33", "Exploração 33", 0, "mnuExploracaoOp3") 'Resultado
Set clsAplAudit_ArvOperacoes = objOps Set objOp = Nothing
Set objOps = Nothing Exit Property
Erro:
Set objOp = Nothing Set objOps = Nothing
Err.Raise Err.Number, Err.Source, Err.Description End Property
Private Property Get clsAplAudit_PermissoesDinamicas(objParametros As clsParamOpsAplicacao) As clsPermissoesVar
Dim objVars As clsPermissoesVar Dim objVar As clsPermissaoVar Dim objRs As ADODB.Recordset Dim strSQL As String
Dim strId As String Dim strEntidade As String Dim strEmpresa As String Dim strAtributo As String Dim strDescricao As String On Error GoTo Erro
Set objVars = New clsPermissoesVar 'Documentos
strSQL = "SELECT Documento, Descricao FROM DocumentosVenda ORDER BY Documento, Descricao"
Set objRs = objParametros.Conexao.Execute(strSQL) While (Not objRs.EOF)
strId = "Documentos Venda" strEntidade = strId
strEmpresa = objParametros.Empresa strAtributo = "" & objRs("Documento") strDescricao = "" & objRs("Descricao")
Set objVar = objVars.Add(strId, strEntidade, strAtributo, strDescricao, strEmpresa)
objVar.OperacoesPossiveis.Add "CRIAR", "Criar"
objVar.OperacoesPossiveis.Add "MODIFICAR", "Modificar" objVar.OperacoesPossiveis.Add "ANULAR", "Anular"
objVar.OperacoesPossiveis.Add "VISUALIZAR", "Visualizar" objRs.MoveNext
Wend
objRs.Close
Set objRs = Nothing
Set clsAplAudit_PermissoesDinamicas = objVars Set objVar = Nothing
Set objVars = Nothing Exit Property
Erro:
If (Not objRs Is Nothing) Then objRs.Close: Set objRs = Nothing Set objVar = Nothing
Set objVars = Nothing
Err.Raise Err.Number, Err.Source, Err.Description End Property
5.3. cls<Apl>OperacoesLog
A classe cls<Apl>OperacoesLog define as entidades de log disponibilizadas pela aplicação. Esta classe
deve:
Implementar a interface clsAplOperacoesLog (definido em StdClasses800);
Disponibilizar os seguintes métodos:
O código da classe deverá ser semelhante ao seguinte exemplo:
Option Explicit
Implements clsAplOperacoesLog
Private Property Get clsAplOperacoesLog_DaOperacoesLog(objParametros As clsParamOpsLog) As clsOperacoesLog
Dim objOpLog As clsOperacoesLog On Error GoTo Erro
Set objOpLog = New clsOperacoesLog With objOpLog
.Add "Clientes", "Clientes", "Cliente", vbString, 10
.Add LOG_Funcionarios, "Funcionários", "Funcionário", vbString, 10 .Add LOG_Parametros, "Parâmetros"
.Add LOG_Seccoes, "Secções de Venda", "Secção", vbString, 2 End With
Método
Descrição
Set clsAplOperacoesLog_DaOperacoesLog = objOpLog Set objOpLog = Nothing
Exit Property Erro:
Set objOpLog = Nothing
Err.Raise Err.Number, Err.Source, Err.Description End Property
5.4. cls<Apl>BasesDados
A classe cls<Apl>BasesDados define as bases de dados suportadas pela aplicação e existentes no servidor.
Trata-se de uma classe opcional que permite disponibilizar as seguintes operações do Administrador
PRIMAVERA sobre as bases de dados da aplicação:
Planos de Manutenção;
Cópias de Segurança;
Reposição de Cópias de Segurança;
Reorganização da Base de Dados;
Compatação da Base de Dados;
Propriedades da Base de Dados;
Dentro de Ficheiros.
Esta classe deve:
Implementar a interface clsAplBasesDados (definido em StdClasses800);
Disponibilizar os seguintes métodos:
O código da classe deverá ser semelhante ao seguinte exemplo:
Método
Descrição
Option Explicit
Implements clsAplBasesDados
Private Property Get clsAplBasesDados_DaBasesDados(objParametros As clsParamBaseDados) As clsBasesDados
Dim objListaBDs As clsBasesDados On Error GoTo Erro
Set objListaBDs = New clsBasesDados With objListaBDs
.Add "PRTBD01", "Base de Dados Protótipo 001" .Add "PRTBD02", "Base de Dados Protótipo 002" .Add "PRTBD03", "Base de Dados Protótipo 003" End With
Set clsAplBasesDados_DaBasesDados = objListaBDs Set objListaBDs = Nothing
Exit Property Erro:
Set objListaBDs = Nothing
Err.Raise Err.Number, "_clsPrtBasesDados.DaBasesDados", Err.Description End Property
5.5. Notas
5.5.1. Definição da Hierarquia das Operações
A hierarquia de operações fixas pode ter tantos níveis quanto necessários. Essa hierarquia é definida pelo
último parâmetro do método Ops.Add.
Exemplo:
'Menu exploração
Set objOp = objOps.Add("mnuExploracao", "Exploração", 0, "")
Set objOp = objOps.Add("mnuExploracaoOp1", "Exploração 1", 0, "mnuExploracao") Set objOp = objOps.Add("mnuExploracaoOp2", "Exploração 2", 0, "mnuExploracao") Set objOp = objOps.Add("mnuExploracaoOp3", "Exploração 3", 0, "mnuExploracao") 'Sub menu Exploração 1
Set objOp = objOps.Add("mnuExploracaoOp31", "Exploração 31", 0, "mnuExploracaoOp3") Set objOp = objOps.Add("mnuExploracaoOp32", "Exploração 32", 0, "mnuExploracaoOp3") Set objOp = objOps.Add("mnuExploracaoOp33", "Exploração 33", 0, "mnuExploracaoOp3")
No caso das permissões dinâmicas a hierarquia está limitada a 3 níveis (Entidade / Atributo / Permissão):
strSQL = "SELECT Documento, Descricao FROM DocumentosVenda ORDER BY Documento, Descricao"
Set objRs = objParametros.Conexao.Execute(strSQL) While (Not objRs.EOF)
strId = "Documentos Venda" strEntidade = strId
strEmpresa = objParametros.Empresa strAtributo = "" & objRs("Documento") strDescricao = "" & objRs("Descricao")
Set objVar = objVars.Add(strId, strEntidade, strAtributo, strDescricao, strEmpresa) objVar.OperacoesPossiveis.Add "Criar" objVar.OperacoesPossiveis.Add "Modificar" objVar.OperacoesPossiveis.Add "Anular" objVar.OperacoesPossiveis.Add "Visualizar" objRs.MoveNext Wend objRs.Close
Set objRs = Nothing
5.5.2. Aplicações sem Operações
Caso se pretenda integrar uma aplicação sem que seja necessário disponibilizar operações (fixas ou
dinâmicas) para as permissões, os métodos ArvOperacoes e PermissoesDinamicas devem ser definidos da
seguinte forma.
Option Explicit
Implements clsAplAudit
Private Property Get clsAplAudit_ArvOperacoes(objParametros As clsParamOpsAplicacao) As clsArvoreOperacoes
Dim objOps As clsArvoreOperacoes On Error GoTo Erro
Set objOps = New clsArvoreOperacoes Set clsAplAudit_ArvOperacoes = objOps Set objOp = Nothing
Set objOps = Nothing Exit Property
Erro:
Set objOp = Nothing Set objOps = Nothing
Err.Raise Err.Number, Err.Source, Err.Description End Property
Private Property Get clsAplAudit_PermissoesDinamicas(objParametros As clsParamOpsAplicacao) As clsPermissoesVar
Dim objVars As clsPermissoesVar On Error GoTo Erro
Set objVars = New clsPermissoesVar
Set clsAplAudit_PermissoesDinamicas = objVars Set objVars = Nothing
Exit Property Erro:
Set objVars = Nothing
Err.Raise Err.Number, Err.Source, Err.Description End Property
5.5.3. Parâmetros dos Métodos
clsAplAudit_ArvOperacoes
Parâmetro
Descrição
objParametros
Este objeto inclui todos os parâmetros principais do método:
AbvtApl – abreviatura da aplicação.
Categorias – coleção de categorias de informação (*).
Conexao – conexão para a base de dados da empresa ativa (*).
Cultura – idioma do utilizador ativo.
CulturaPorDefeito – idioma por defeito da instalação.
Empresa – empresa ativa (*).
Instancia – instância PRIMAVERA.
Licenca – licença PRIMAVERA.
LocalizacaoSede – localização da sede da empresa ativa (*).
ModuloActivo – uso interno.
Password – password do utilizador atual.
TipoPlataforma – tipo de plataforma.
Utilizador – identificador do utilizador ativo.
Os campos identificados com (*) são inicializados no método clsAplAudit_PermissoesDinamicas.
clsAplAudit_PermissoesDinamicas
Parâmetro
Descrição
objParametros
Ver ponto anterior.
clsAplAudit_DaBasesDados
Parâmetro
Descrição
objParametros
Este objeto inclui todos os parâmetros principais do método:
Cultura – idioma do utilizador ativo;
CulturaPorDefeito – idioma por defeito da instalação;
Licenca – licença PRIMAVERA;
TipoPlataforma – tipo de plataforma.
5.5.4. Aplicações sem Bases de Dados Integradas
A integração das bases de dados da aplicação no Administrador não é obrigatória.
No caso de não se pretender implementar esta funcionalidade, basta que o Audit da aplicação não
implemente a classe cls<Apl>BasesDados.
5.5.5. Executável no Menu Sistema ou Utilitários
Esta funcionalidade é automaticamente disponibilizada pela Plataforma. Para isso o executável definido pela
entrada “EXEC” no Registry da aplicação deve existir fisicamente na pasta definida pela entrada
“PERCURSOAPL”.
6. Forms
6.1. Classes Necessárias
O componente AplForms deve implementar as seguintes classes.
Classe
Descrição
cls<Apl>Images
Esta classe devolve o ícone associado à aplicação.
cls<Apl>Parametrizacoes
Esta classe enumera e implementa todos os formulários de
parametrização disponibilizados pela aplicação.
cls<Apl>Servicos
Esta classe enumera e implementa todos os formulários de
serviços/utilitários disponibilizados pela aplicação.
Cada uma das classes deve ser definida com as seguintes propriedades genéricas:
DataBindingBehaviour – 0 (vbNone);
DataSourceBehaviour – 0 (vbNone);
Instancing – 5 (MultiUse);
MTSTransactionMode – 0 (NotAnMTSObject);
6.2. cls<Apl>Images
O código da classe cls<Apl>Images (clsPrtImages) deve:
Implementar o interface clsAplImages (definido em StdClasses800);
Disponibilizar a propriedade clsAplImages_Icon.
Option Explicit
Implements clsAplImages 'Implementação do interface
Private Property Get clsAplImages_Icon(TipoPlataforma As EnumTipoPlataforma) As stdPicture
Set clsAplImages_Icon = LoadResPicture("PRTICON", vbResIcon) End Property
6.3. cls<Apl>Parametrizacoes
A classe cls<Apl>Parametrizacoes define e disponibiliza ao Administrador os formulários de parametrização
da aplicação disponibilizados. Deve:
Implementar o interface clsAplParametrizacoes (definido em StdClasses800);
Disponibilizar os seguintes métodos:
Método
Descrição
AtribuiUtilizador
Invocado pelo Administrador imediatamente antes da inicialização da
classe para permitir guardar as propriedades do utilizador ativo.
Inicializa
Invocado pelo Administrador para permitir a inicialização da classe.
Lista
Invocado pelo Administrador para obter a lista de parametrizações
publicadas pela aplicação.
Mostra
Invocado pelo Administrador sempre que o utilizador selecionar uma
das parametrizações publicadas.
O código da classe deverá ser semelhante ao seguinte exemplo:
Option Explicit
Implements clsAplParametrizacoes 'Variáveis privadas
Private m_strUtilizador As String Private m_strPassword As String 'Implementação do interface
Private Sub clsAplParametrizacoes_AtribuiUtilizador(strUtilizador As String, strPassword As String)
m_strUtilizador = strUtilizador m_strPassword = strPassword End Sub
Private Sub clsAplParametrizacoes_Inicializa(enuTipoPlataforma As EnumTipoPlataforma, strEmpresa As String, strInstalacao As String, objLic As clsLicenca)
End Sub
Private Sub clsAplParametrizacoes_Lista(objParametros As clsParamAplParams, strLista() As String, colLoc As Collection)
ReDim strLista(3)
strLista(1) = "Parâmetros 1" strLista(2) = "Parâmetros 2" strLista(3) = "Parâmetros 3" End Sub
Private Sub clsAplParametrizacoes_Mostra(intIndex As Integer, intModoOperacao As Integer, objOwnerForm As Object)
On Error GoTo Erro Select Case intIndex Case 1 'Parâmetros 1
Set frmParam1.Owner = objOwnerForm frmParam1.Show vbModeless, objOwnerForm Case 2 'Parâmetros 2
Set frmParam2.Owner = objOwnerForm frmParam2.Show vbModeless, objOwnerForm Case 3 'Parâmetros 3
Set frmParam3.Owner = objOwnerForm frmParam3.Show vbModeless, objOwnerForm End Select
objOwnerForm.ActivaInterface True Exit Sub
Erro:
objOwnerForm.ActivaInterface True
Err.Raise Err.Number, Err.Source, Err.Description End Sub
6.4. cls<Apl>Servicos
A classe cls<Apl>Servicos define e disponibiliza ao Administrador os formulários de serviços/utilitários da
aplicação disponibilizados. Deve:
Implementar a interface clsAplServicos (definido em StdClasses800);
O código da classe deverá ser semelhante ao seguinte exemplo:
Option Explicit
Implements clsAplServicos 'Variáveis privadas
Private m_strUtilizador As String Private m_strPassword As String 'Implementação do interface
Public Sub clsAplServicos_AtribuiUtilizador(strUtilizador As String, strPassword As String)
m_strUtilizador = strUtilizador m_strPassword = strPassword End Sub
Private Sub clsAplServicos_Inicializa(enuTipoPlataforma As EnumTipoPlataforma, strEmpresa As String, strInstalacao As String, objLic As clsLicenca)
End Sub
Public Sub clsAplServicos_Lista(objParametros As clsParamAplServicos, strLista() As String, colLoc As Collection)
ReDim strLista(3)
strLista(1) = "Serviço 1" strLista(2) = "Serviço 2" strLista(3) = "Serviço 3" End Sub
Public Sub clsAplServicos_Executa(intIndex As Integer) On Error GoTo Erro
Select Case intIndex Case 1 'Serviços 1 frmServ1.Show vbModal Case 2 'Serviços 2 frmServ2.Show vbModal Case 3 'Serviços 3 frmServ3.Show vbModal End Select Exit Sub Erro:
Método
Descrição
AtribuiUtilizador
Invocado pelo Administrador imediatamente antes da inicialização da
classe para permitir guardar as propriedades do utilizador ativo.
Inicializa
Invocado pelo Administrador para permitir a inicialização da classe.
Lista
Invocado pelo Administrador para obter a lista de serviços publicados
pela aplicação.
Executa
Invocado pelo Administrador sempre que o utilizador selecionar um dos
Err.Raise Err.Number, Err.Source, Err.Description End Sub
6.5. Notas
6.5.1. Aplicações sem Parâmetros ou Serviços
É também possível registar uma aplicação na solução PRIMAVERA sem que esta disponibilize qualquer
parametrização e/ou serviço.
Os exemplos seguintes demonstram a definição dos métodos clsAplParametrizacoes_Lista e
clsAplServicos_Lista de modo a registar uma aplicação sem parametrizações ou serviços.
Private Sub clsAplParametrizacoes_Lista(objParametros As clsParamAplParams, strLista() As String, colLoc As Collection)
'Este método deve devolver a lista de formulários de parametrização 'disponibilizados pela aplicação.
'Se não existir nenhum, o array deve ser dimensionado a 0. ReDim sLista(0)
End Sub
Public Sub clsAplServicos_Lista(objParametros As clsParamAplServicos, strLista() As String, colLoc As Collection)
'Este método deve devolver a lista de formulários de serviços 'disponibilizados pela aplicação.
'Se não existir nenhum, o array deve ser dimensionado a 0. ReDim sLista(0)
End Sub
Neste caso, a aplicação será apresentada no ADM sem parâmetros e/ou serviços.
6.5.2. Parâmetros dos Métodos
clsAplParametrizacoes_AtribuiUtilizador
Parâmetro
Descrição
strUtilizador
Identificador do utilizador ativo.
strPassword
Password do utilizador ativo.
clsAplParametrizacoes_Inicializa
Parâmetro
Descrição
strEmpresa
Código da empresa selecionada.
strInstalacao
Instância PRIMAVERA ativa.
objLic
Definição da licença PRIMAVERA da aplicação.
clsAplParametrizacoes_Lista
Parâmetro
Descrição
objParametros
Este objeto inclui todos os parâmetros principais do método:
Cultura – idioma do utilizador ativo;
CulturaPorDefeito – idioma por defeito da instalação;
Licenca – licença PRIMAVERA;
Localizacao – uso interno;
TipoPlataforma – tipo de plataforma.
strLista()
Array com a lista de parametrizações disponibilizados.
colLoc
Uso interno.
clsAplParametrizacoes_Mostra
Parâmetro
Descrição
intIndex
Índice da parametrização selecionada pelo utilizador.
intModoOperacao
Modo de operação (obsoleto).
objOwnerForm
Handler para a janela principal do Administrador.
clsAplServicos_AtribuiUtilizador
Parâmetro
Descrição
strUtilizador
Identificador do utilizador ativo.
strPassword
Password do utilizador ativo.
clsAplServicos_Inicializa
Parâmetro
Descrição
enuTipoPlataforma
Tipo de plataforma.
strInstalacao
Instância PRIMAVERA ativa.
objLic
Definição da licença PRIMAVERA da aplicação.
clsAplServicos_Lista
Parâmetro
Descrição
objParametros
Este objeto inclui todos os parâmetros principais do método:
Cultura – idioma do utilizador ativo;
CulturaPorDefeito – idioma por defeito da instalação;
Licenca – licença PRIMAVERA;
Localizacao – uso interno;
TipoPlataforma – tipo de plataforma.
strLista()
Array com a lista de serviços disponibilizados.
colLoc
Uso interno.
clsAplServicos_Executa
Parâmetro
Descrição
intIndex
Índice do serviço selecionado pelo utilizador.
7. Funcionalidades da Plataforma
7.1. Licenciamento
Não é suportado o licenciamento de aplicações externas no Administrador PRIMAVERA (a aplicação externa
não será listada no formulário de licenciamento do Administrador).
Todas as funcionalidades de licenciamento da aplicação devem ser implementadas em ferramenta
autónoma.
7.2. Criação de Empresas
Como acontece com os módulos PRIMAVERA, não são suportadas parametrizações por módulo. Todas as
parametrizações disponíveis no Administrador deverão ser dependentes da empresa.
Cada aplicação pode registar no Administrador tantas parametrizações por empresa quanto as necessárias.
Essa definição deverá ser realizada da componente Forms de acordo com o ponto 6.3.
7.4. Parâmetros por Empresa
Cada aplicação pode registar no Administrador tantas parametrizações por empresa quanto as necessárias.
Essa definição deverá ser realizada da componente Forms de acordo com o ponto 6.3.
7.5. Serviços / Utilitários por Empresa
Cada aplicação pode registar no Administrador tantos serviços/utilitários por empresa quantos necessários.
Essa definição deverá ser realizada da componente Forms de acordo com o ponto 6.4.
7.6. Permissões
A definição das permissões disponíveis por aplicação deve ser realizada de acordo com o ponto 5.2.
Para verificar se um determinado utilizador tem acesso a uma determinada opção dever-se-á utilizar o motor
do Administrador PRIMAVERA da forma seguinte:
Private Sub Form_Load()
Dim objCriador As clsCriaMotorAdm Dim objMotorADMLE As clsAdmMotor On Error GoTo Erro
Set objCriador = New clsCriaMotorAdm
Set objMotorADMLE = objCriador.CriaMotorADM(tpEmpresarial)
If (objMotorADMLE.Utilizadores.PodeExecutarOperacao("Manuel.Ribas", "DEMO", "PRT", "mnuFicheirosOp1")) Then
MsgBox "O utilizador tem acesso à operação." Else
MsgBox "O utilizador NÃO tem acesso à operação." End If
Set objMotorADMLE = Nothing Set objCriador = Nothing Exit Sub
Erro:
'Ignora todos os erros End Sub
O valor do parâmetro “Operacao” deve coincidir com a definição efetuada no Audit.
A definição das permissões dinâmicas disponíveis por aplicação deve ser realizada de acordo com o ponto
5.2.
Para verificar se um determinado utilizador tem acesso a uma determinada opção dever-se-á utilizar o motor
do Administrador PRIMAVERA da forma seguinte:
Private Sub Form_Load()
Dim objCriador As clsCriaMotorAdm Dim objMotorADMLE As clsAdmMotor On Error GoTo Erro
Set objCriador = New clsCriaMotorAdm
Set objMotorADMLE = objCriador.CriaMotorADM(tpEmpresarial)
If (objMotorADMLE.Utilizadores.PodeAcederAtributo("Manuel.Ribas”, "DEMO", "PRT", "Documentos Venda", "FA", "Criar")) Then
MsgBox "O utilizador tem acesso à criação de faturas." Else
MsgBox "O utilizador NÃO tem acesso à criação de faturas." End If
Set objMotorADMLE = Nothing Set objCriador = Nothing Exit Sub
Erro:
'Ignora todos os erros End Sub
O valor dos parâmetros “Entidade”, “Atributo” e “Operacao” devem coincidir com a definição efetuada no Audit.
7.8. Log
A configuração das entidades de log de cada aplicação depende das definições efetuadas no respetivo Audit
(5.2).
Na execução da aplicação é possível introduzir registos de log utilizando as funcionalidades da Plataforma
PRIMAVERA, do modo seguinte:
Private Const LOG_Clientes = "Clientes"
Private Const PWD_PLAT = "MCJSOO672HSDL233JBNMOOW223OTIWE" Private Sub Form_Load()
Dim objPlat As StdDS
Dim objTrs As StdBETransaccao Dim objConn As ADODB.Connetion On Error GoTo Erro
Set objTrs = New StdBETransaccao Set objPlat = New StdDS
Set objConn = objPlat.AbrePlatEmpresa("PLAT250", "PRT", "DEMO", "Manuel.Ribas", objTrs, tpEmpresarial, PWD_PLAT)
objPlat.Log.ActualizaLinha LOG_Clientes, toInserir, "Inserção de cliente.", "XPTO" objPlat.FechaPlatEmpresa
Set objPlat = Nothing Set objTrs = Nothing Exit Sub
Erro:
'Ignora todos os erros End Sub
NOTAS:
Para implementar este código são necessárias as seguintes referências: “PRIMAVERA StdDS 8.00”
“PRIMAVERA StdBE 8.00”
“Microsoft ActiveX Data Objects 2.8 Library”;
Na classe objPlat.Log só deve ser utilizado o método ActualizaLinha. Os restantes métodos pressupõem a estrutura dos componentes dos módulos PRIMAVERA e não funcionarão corretamente;
Não devem ser utilizadas quaisquer outras classes ou métodos do componente StdDS. A PRIMAVERA não disponibiliza suporte para este componente.
7.9. Executáveis no Menu Sistema
A Plataforma disponibiliza um mecanismo que permite integrar a aplicação externa no menu “Sistema”.
Para implementar este mecanismo é necessário que a aplicação:
Disponibilize a chave “EXEC” no Windows Registry.
A definição desta chave deve corresponder ao nome do executável da aplicação (sem diretoria ou extensão).
O mecanismo de integração tratará de incluir uma entrada no menu para a aplicação.
O executável aberto por esse comando será determinado usando os valores das entradas:
PercursoApl;
Exec.
da seguinte forma:
Executável = <PercursoApl> & <Exec> & “.EXE”.
Se, no exemplo anterior, os valores dessas entradas fossem:
Exec = “PrtApl”.
O executável aberto seria “C:\Program Files\Empresa\PrtApl.exe”.
Se o executável não existir fisicamente em disco, a entrada no menu não será criada.