Extensibilidade do Administrador
A integração com o administrador PRIMAVERA permite que as aplicações desenvolvidas por terceiros possam ser adicionadas ao administrador PRIMAVERA e, desta forma, possam aceder a um conjunto de funcionalidades disponibilizadas pela plataforma, entre as quais, funcionalidade ao nível da segurança, configuração, gestão de base dados e do log de operações. Para registar uma aplicação externa no administrador PRIMAVERA, é necessário definir um conjunto de componentes que implementam uma interface, obedecem a uma determinada nomenclatura e disponibilizam um conjunto definido de funcionalidades. Só assim a aplicação é considerada no administrador e nas Entradas no Registry, possibilitando ao administrador localizar os diferentes componentes. A seguir são apresentados os componentes e as respetivas classes necessárias para o registo de uma aplicação no administrador PRIMAVERA: A integração de aplicações deve obedecer a um conjunto de normas de nomenclatura da aplicação e dos componentes disponibilizados. Todas as aplicações a integrar no Administrador devem ter uma abreviatura definida que deverá fazer parte do nome dos seus componentes. Passo 1 - Criar o projeto Audit 1. Depois de abrir o Visual Studio, selecionar File > New > Project. 2. Na janela apresentada, na árvore à esquerda, escolher a linguagem de desenvolvimento (“C#” ou "VB"). 3. Selecionar o tipo de projeto Class Library (.NET Framework). 4. Atribuir um nome ao projeto “EXTAudit100“, e carregue em OK. Nota: A abreviatura da aplicação e deve ter sempre três caracteres, no exemplo “EXT”. 5. Adicionar as seguintes classes clsOperacoesAplicacao e clsOperacoesLog. 6. Adicionar referência à assembly StdClasses100. 7. A seguir ao nome da classe adicionar clsAplAudit. Este passo indica que a nossa classe passa a herdar da classe clsAplAudit todos os métodos, propriedades e atributos. 8. Adicionar o código seguinte à classe clsEXTOperacoesAplicacao: O método clsArvoreOperacoes GetArvOperacoes(clsParamOpsAplicacao objParametros) é utilizado para adicionar permissões de acesso às operações à aplicação terceira. Este mecanismo de extensibilidade é bastante útil para se validar o acesso às operações de opções que são adicionadas a Ribbon pelo mecanismo de extensibilidade. O método clsPermissoesVar GetPermissoesDinamicas(clsParamOpsAplicacao objParametros) é utilizado para adicionar permissões dinâmicas à aplicação. Este tipo de permissões pode ser preenchido com base numa query SQL (ex: tipos de documentos). 9. Adicionar o código seguinte à classe clsExtOperacoesLog: Passo 2 - Criar o projeto Forms 1. Depois de abrir o Visual Studio, selecionar File > New > Project. 2. Na janela apresentada, na árvore à esquerda, escolher a linguagem de desenvolvimento (“C#” ou "VB"). 3. Selecionar o tipo de projeto Class Library (.NET Framework). 4. Atribuir um nome ao projeto “EXTForms100“, e carregue em OK. Nota: A abreviatura da aplicação e deve ter sempre três caracteres, por exemplo, “EXT”. 5. Adicionar as classes seguintes clsParametrizacoe e clsServicos. 6. Adicionar referência à assemblies Primavera.Platform.Collections, StdClasses100 e StdBE100. 8. Em Toolbox > Containers, selecionar um “Panel” e arrastar para o form. 9. Adicionar o código seguinte à classe clsExtParametrizacoes. 14. Adicionar o código seguinte à classe clsExtServicos: Passo 3 - Registar a aplicação 1. Para registar a aplicação de extensibilidade no administrador é necessário adicionar uma nova entrada com a abreviatura da aplicação ao ficheiro runtime.config na pasta PRIMAVERA, por exemplo “EXT”. 2. Adicionar ao ficheiro as seguintes chaves. 3. Abrir o Administrador e verificar o registo da aplicação. 4. Aceder as propriedades de uma empresa. No separador “Parâmetros”, adicionar a aplicação criada, que no caso é “Exemplo Extensibilidade”. 5. Confirmar. Para obter mais informações, veja um exemplo sobre a tecnologia de extensibilidade do Administrador PRIMAVERA no GitHub.Componentes necessários
Essa abreviatura deve ser constituída por 3 carateres alfanuméricos (exemplos: ABC, D01, EF2 etc.). Ressalva-se que existem algumas abreviaturas que já estão reservadas a módulos PRIMAVERA (por exemplo: ADM -Administrador, DBM- Data Base Management, CBL - Contabilidade, entre outras).Registar aplicação externa
using StdClasses100;
namespace EXTAudit100
{
public class clsEXTOperacoesAplicacao : clsAplAudit
{
#region private properties
private string Instancia { get; set; }
private string Utilizador { get; set; }
private string PassWord { get; set; }
#endregion
#region _clsAplAudit Members
public clsArvoreOperacoes GetArvOperacoes(clsParamOpsAplicacao objParametros)
{
clsArvoreOperacoes objOps = new clsArvoreOperacoes();
clsOperacaoApl objOp;
objOp = objOps.Add("mnuOperacao", "Operações", 0, "");
objOp = objOps.Add("mnuOperacao1", "Operação 1", 0, "mnuOperacao");
objOp = objOps.Add("mnuOperacao2", "Operação 2", 0, "mnuOperacao");
return objOps;
}
public clsPermissoesVar GetPermissoesDinamicas(clsParamOpsAplicacao objParametros)
{
clsPermissoesVar objVars = new clsPermissoesVar();
clsPermissaoVar objVar;
objVar = objVars.Add("Documento", "Documento", "FA", "Fatura Externa.", objParametros.Empresa);
objVar.OperacoesPossiveis.Add("CRIAR", "Criar");
objVar.OperacoesPossiveis.Add("MODIFICAR", "Modificar");
objVar.OperacoesPossiveis.Add("ANULAR", "Anular");
objVar.OperacoesPossiveis.Add("VISUALIZAR", "Visualizar");
return objVars;
}
#endregion
}
}
using StdClasses100;
namespace EXTAudit100
{
public class clsExtOperacoesLog : clsAplOperacoesLog
{
#region _clsAplOperacoesLog Members
public clsOperacoesLog GetDaOperacoesLog(clsParamOpsLog objParametros)
{
clsOperacoesLog opLog;
return null;
}
#endregion
}
}
using ExtForms100.UI;
using Primavera.Platform.Collections;
using StdBE100;
using StdClasses100;
namespace ExtForms100
{
public class clsExtParametrizacoes : clsAplParametrizacoes
{
private string Utilizador { get; set; }
private string PassWord { get; set; }
#region _clsAplParametrizacoes Members
public void AtribuiUtilizador(string strUtilizador, string strPassword)
{
this.Utilizador = strUtilizador;
this.PassWord = strPassword;
}
public void Inicializa(StdBETipos.EnumTipoPlataforma enuTipoPlataforma, string strEmpresa, string strInstalacao, clsLicenca objLic)
{
}
public void Lista(clsParamAplParams objParametros, ref string[] strLista, PrimaveraOrderedDictionary colLoc)
{
string[] Parametros;
Parametros = new string[2];
Parametros[1] = "Parametros Gerais";
strLista = Parametros;
}
public bool ModuloDisponivelLocalizacao(StdBETipos.EnumLocalizacaoSede enuLocSede)
{
//Obrigatório estar definido como verdadeiro.
return true;
}
public void Mostra(int intIndex, int intModoOperacao, dynamic objOwnerForm)
{
// Aqui colocar o código para abrir os vários formulário de parâmetros.
}
public void Termina()
{
}
public void TiposExercicioSuportados(StdBETipos.EnumTipoPlataforma enuTipoPlataforma, ref StdBETipos.EnumTipoExercicio[] enuTiposExercicio)
{
}
#endregion
}
}
using Primavera.Platform.Collections;
using StdBE100;
using StdClasses100;
namespace ExtForms100
{
public class clsExtServicos : clsAplServicos
{
private string Utilizador { get; set; }
private string PassWord { get; set; }
#region _clsAplServicos Members
public void AtribuiUtilizador(string strUtilizador, string strPassword)
{
this.Utilizador = strUtilizador;
this.PassWord = strPassword;
}
public void Executa(int intIndex)
{
// Aqui colocar o código para chamar os vários serviços.
}
public void Inicializa(StdBETipos.EnumTipoPlataforma enuTipoPlataforma, string strEmpresa, string strInstalacao, clsLicenca objLic)
{
}
public void Lista(clsParamAplServicos objParametros, ref string[] strLista, PrimaveraOrderedDictionary colLoc)
{
string[] servicos;
servicos = new string[2];
servicos[1] = "Assistente de criação de utilizadores";
strLista = servicos;
}
public void Termina()
{
}
#endregion
}
}
<Module Name="Exemplo Extensibilidade" Abbreviation="EXT">
<ApplicationPath>C:\PRIMAVERA\SG100\Apl\</ApplicationPath>
<DataPath>C:\PRIMAVERA\SG100\LE\</DataPath>
<CommonDataPath>C:\PRIMAVERA\SG100\DADOS\</CommonDataPath>
<ReportsPath>C:\PRIMAVERA\SG100\MAPAS\LE\GCP\</ReportsPath>
<Version>100</Version>
<ERPLoadOrder>0</ERPLoadOrder>
<LoginPath />
<Post>0</Post>
<SAASLIC />
<ADMIntegration>1</ADMIntegration>
<ERPIntegration>0</ERPIntegration>
<Installed>1</Installed>
<ThirdParty>true</ThirdParty>
<Audit>Primavera.ExtAudit100</Audit>
<Forms>Primavera.ExtForms100</Forms>
<Exec>Ext3rdParty</Exec>
<Lic>false</Lic>
</Module>
login para deixar a sua opinião.