Fórum
Ver pergunta

Erro no AbrePlataformaEmpresa   

247 visualizações
-1
0

Bom dia,

Quando tento abrir a Plataforma Empresa dá-me o seguinte erro Primavera.Platform.Exceptions.ExpectedException: ‘A referência de objecto não foi definida como uma instância de um objecto.’.

public ErpBS AbreEmpresa()
{
            StdBSConfApl objAplConf = new StdBSConfApl();
            StdPlatBS Plataforma = new StdPlatBS();
            ErpBS MotorLE = new ErpBS();

            StdBETipos.EnumTipoPlataforma TipoPlat = (StdBETipos.EnumTipoPlataforma)this.PRIPlataforma;
            string Empresa = this.PRIEmpresa;
            string Instancia = this.PRIInstancia;
            string Utilizador = this.PRIUtilizador;
            string Senha = this.PRISenha;

            objAplConf.Instancia = "DEFAULT";
            objAplConf.AbvtApl = "ERP";
            objAplConf.PwdUtilizador = "1qa2ws3ed";
            objAplConf.Utilizador = "TECNICO";
            objAplConf.LicVersaoMinima = "10.00";

            StdBETransaccao objStdTransac = new StdBETransaccao();

            try
            {                
                Plataforma.AbrePlataformaEmpresa(Empresa, objStdTransac, objAplConf, TipoPlat);
            }
            catch (Exception ex)
            {
                throw (ex);
            }

            if (Plataforma.Inicializada)
            {
                MotorLE.AbreEmpresaTrabalho(TipoPlat, Empresa, Utilizador, Senha, objStdTransac, "Default");


                ExtensibilityService service = new ExtensibilityService();

                service.Initialize(MotorLE);

                if (service.IsOperational)
                {
                    service.LoadExtensions();
                }

                Platform = Plataforma;
                Engine = MotorLE;

            }

            return MotorLE;
}

 

Faça login para poder traduzir
V10
Marcado como spam
Criado há 5 anos e 9 meses buildcode
b
buildcode Iniciante
Comentários
@buildcode A tua aplicação está a ser excutada em que pasta? Na APL ou outra?
5 anos e 9 meses
sergiosereno
    @sereno O primavera está no APL o protejo está numa pasta especifica.
    5 anos e 9 meses
    buildcode
      @buildcode esse é o problema, não está a encontrar os binarios da primavera. Necessitas do assembly resolver. Tens artigos a explicar isso.
      5 anos e 9 meses
      sergiosereno
        1 respostas
        1
        Resposta privada

        @sereno mesmo com o assembly resolver o erro persiste ao executar a função AbreEmpresa()... poderá ser de mais algum fator ou com o assembly devia funcionar?

         

         static System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
                {
                    string assemblyFullName;
        
                    System.Reflection.AssemblyName assemblyName;
        
                    const string PRIMAVERA_FOLDER = "PRIMAVERA\SG100\Apl";  //pasta dos ficheiros comuns especifica da versão do ERP PRIMAVERA utilizada.
        
                    assemblyName = new System.Reflection.AssemblyName(args.Name);
                    assemblyFullName = System.IO.Path.Combine(System.IO.Path.Combine(System.Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), PRIMAVERA_FOLDER), assemblyName.Name + ".dll");
        
                    if (System.IO.File.Exists(assemblyFullName))
                        return System.Reflection.Assembly.LoadFile(assemblyFullName);
                    else
                        return null;
                }
        
        public ErpBS AbreEmpresa()
                {
        
                    AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(Geral.Interops.CurrentDomain_AssemblyResolve);
        
                    ErpBS bso = new ErpBS();
                    StdBETipos.EnumTipoPlataforma TipoPlat = (StdBETipos.EnumTipoPlataforma)this.PRIPlataforma;
                    string Empresa = this.PRIEmpresa;
                    string Instancia = this.PRIInstancia;
                    string Utilizador = this.PRIUtilizador;
                    string Senha = this.PRISenha;
                    StdBETransaccao Trans = null;
                    bool ModoPrimario = true;
        
                    StdBSExtensibility extensibility = new StdBSExtensibility();
        
                    bso.AbreEmpresaTrabalho(TipoPlat, Empresa, Utilizador, Senha, Trans, Instancia, ModoPrimario);
        
                    bso.CacheActiva = false;
        
                    return bso;
        
                }
        

         

        Faça login para poder traduzir
        Marcado como spam
        Criado há 5 anos e 9 meses buildcode
        b
        buildcode Iniciante
          Comentários
          @buildcode estou exactamente com o mesmo problema. Conseguir resolver o problema?
          5 anos e 7 meses
          smartglobebusinesssolutions