V10 RecursosGuias
RecursosGuias
Guias
Voltar | Lista de artigos

Extensibilidade do Administrador

Última alteração a 15/10/2021

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.

Componentes necessários

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:

  • Audit: componente que permite adicionar ao sistema de segurança, as permissões das aplicações e base de dados suportadas.
    • clsOperaçõesAplicação: classe, de implementação obrigatória, que disponibiliza as permissões da aplicação.
    • clsOperaçõesLog: classe, de implementação obrigatória, que disponibiliza um conjunto de entidades da aplicação que estará disponível para log.
    • clsBaseDados: classe que disponibiliza um conjunto de base de dados suportado pela aplicação.
  • Forms: componente onde são configurados parâmetros por defeito e serviços das aplicações desenvolvidas por terceiros.
    • clsImagens: ícone associado à aplicação.
    • clsParametrizacoes: classe, de implementação obrigatória, que disponibiliza um conjunto de formulários com as parametrizações base da aplicação.
    • clsServicos: classe, de implementação obrigatória, que disponibiliza um conjunto de serviços utilitários da aplicação.
    • clsLoginsAssociados: classe que permite efetuar o mapeamento de utilizadores entre a aplicação terceira e um utilizador 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.
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

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 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:

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
    }
}

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:

using StdClasses100;

namespace EXTAudit100
{
    public class clsExtOperacoesLog : clsAplOperacoesLog
    {
        #region _clsAplOperacoesLog Members
            public clsOperacoesLog GetDaOperacoesLog(clsParamOpsLog objParametros)
            {
                clsOperacoesLog opLog;

                return null;
            }
        #endregion
    }
}

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 clsServicos.

6. Adicionar referência à assemblies Primavera.Platform.Collections, StdClasses100 StdBE100.

8. Em Toolbox > Containers, selecionar um “Panel” e arrastar para o form.

9. Adicionar o código seguinte à classe clsExtParametrizacoes. 

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
    }
}

14. Adicionar o código seguinte à classe clsExtServicos:

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
    }
}

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.

<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>

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.

Adicionar aos favoritos ou partilhar este artigo
Esta página foi útil?
Obrigado pelo seu voto.

login para deixar a sua opinião.

Obrigado pelo seu feedback. Iremos analisá-lo para continuarmos a melhorar!
Artigos Relacionados
Começar a Usar Como criar um projeto de integração com Visual Studio? Como criar um projeto de extensibilidade de interface (PEX) com Visual Studio? Como criar um projeto de extensibilidade de API (Motor) com Visual Studio? Como criar separadores do utilizador com Visual Studio?