| ♥ 0 | Viva! Estou a desenvolver uma aplicação cujo objetivo é recolher informação do Primavera V10 e sincronizar com a base de dados de outra plataforma. No entanto, estou a ter erros nos métodos: “AbrePRIEMPRE” e “AbreEmpresaTrabalho”. Todas as referências estão devidamente importadas com copy local a True visto que é uma console application e não uma “simples DLL” a ser importada no Primavera.
Reforço que utilizo estes métodos recorrentemente em DLL’s que são importadas no programa e não tenho problemas.
Deixo abaixo 2 prints dos erros que estou a ter:
Exemplo de código: AdmBS motorAdm = new AdmBS(); motorAdm.AbrePRIEMPRE(plataform, Properties.Settings.Default.UserPrimavera, Properties.Settings.Default.PwdPrimavera, null, Properties.Settings.Default.Instancia);
erpBS.AbreEmpresaTrabalho(plataform, nomeEmp, userPrimavera, pwdPrimavera, null, “DEFAULT”);
Alguém já teve um problema semelhante? Consegue-me ajudar? Obrigado desde já =D Marcado como spam |
| Resposta privada Para executar o método numa console app é necessário ter em consideração o seguinte: - As referências ao ERP Primavera têm de estar com a propriedade "Copy Local" = false Em baixo exemplo completo de uma console app funcional. Alterar as credenciais de acesso de acordo com os dados de login no ERP e a variável de ambiente "PERCURSOSGE100" ou PERCURSOSGP100 de acordo com o tipo de plataforma. using AdmBS100; namespace ConsoleApp3 Teste(); } private static void Teste() AdmBS motorAdm = new AdmBS(); motorAdm.AbrePRIEMPRE(plataform, Properties.Settings.Default.UserPrimavera, Properties.Settings.Default.PwdPrimavera, null, Properties.Settings.Default.Instancia);
erpBS.AbreEmpresaTrabalho(plataform, nomeEmp, userPrimavera, pwdPrimavera, null, “DEFAULT”); /// System.Reflection.AssemblyName assemblyName; assemblyName = new System.Reflection.AssemblyName(args.Name); if (System.IO.File.Exists(assemblyFullName) && !assemblyName.Name.Contains("Newtonsoft.Json")) }
Marcado como spam Comentários @vitorhugosilva , testei o código que deixou na sua resposta. Ao executar o programa há uma exceção com a descrição "It was not possible to load the application configuration data. Please check if the file 'runtime.config' exists and is correctly formated.'"
Fiz uma pesquisa aqui no forum e aparentemente é preciso adicionar a referência à DLL "plataforma.runtimeconfig.dll". O problema é que não encontro essa DLL. Alguma ajuda que me possa dar? @jorgeoliveira verifique se tem as seguintes referências adicionadas ao projeto:
AdmBS100
AdmDS100
StdBE100
StdPlatDS100 @jorgeoliveira tem que ir buscar o runtime.config à pasta APL, copia-o para a pasta debug e já lhe passa o erro @ivolopes , acredito que depois de adicionar a referências acima mencionadas não seja necessário o runtime.config à pasta da console app, pois testei sem esse ficheiro e funcionou. De qualquer forma essa seria a sugestão que iria fazer caso persistisse o erro.
Ter em conta que sendo necessário o runtime.config, sempre que haja uma atualização do ERP é necessário sobrepor esse ficheiro pelo novo runtime.config da pasta .\Primavera\SG100\Apl @vitorhugosilva , @ivolopes , O erro que estava a ter relativamente ao runtime.config devia-se ao facto de ter algumas das referências erradamente com o ”Copy Local” = True. Depois de corrigir isso começou a dar um erro indicando que não conseguia carregar o ”Newtonsoft.Json”. Fiz algumas pesquisas aqui no forum e fui ter ao GitHub aqui: https://github.com/PrimaverabssDeveloper/ERP10Integration/issues/10 . Adicionei a entrada que é indicada ao ficheiro exe.config. O erro mantinha-se. Copiei o ficheiro Newtonsoft.Json.DLL para a pasta da aplicação e consegui correr o código sem erros. Obrigado |

