| ♥ 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;
}
Marcado como spam |
Comentários @buildcode A tua aplicação está a ser excutada em que pasta? Na APL ou outra? @sereno O primavera está no APL o protejo está numa pasta especifica. @buildcode esse é o problema, não está a encontrar os binarios da primavera. Necessitas do assembly resolver. Tens artigos a explicar isso. |
1 respostas
| 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;
}
Marcado como spam Comentários @buildcode estou exactamente com o mesmo problema. Conseguir resolver o problema? |