♥ 0 | É suposto ser possível usarmos os motores da V10 vba do Excel? Marcado como spam |
1 respostas
Resposta privada Olá, provavelmente não estás a fazer o assembly resolver para a pasta onde se encontram as assemblies do ERP, pasta ProgramFilesSG100Apl. Vê neste artigo como o fazer: https://developers.ila.cegid.com/?s=assembly&post=4734 Marcado como spam Comentários Olá, Qual o sitio onde colocar este assembly resolver no vba do Excel? Se calhar é melhor mostrares o código para eu ver como estás a fazer. Provavelmente, no excel, deves estar a instanciar uma assembly em .net que, por sua vez, instancia a API do ERP abrindo a plataforma e a empresa. É nesse projeto que deves fazer o assemby resolver. Não esquecer que essa dll deve estar na mesma versão da framework que o ERP, 4.7.1. Aqui vai.
Public Sub teste()
Dim MotorERP As Object, artigo As Object
Set MotorERP = CreateObject(”ErpBS100.ErpBS”)
MotorERP.AbreEmpresaTrabalho 0, ”DEMO”, ”utilizador”, ”palavrapasse”
MsgBox MotorERP.Contexto.CodEmp
If MotorERP.Base.Artigos.Existe(”A0001”) Then
’este código dá erro
’Unable to find assembly ’BasBE100, Version=10.0.0.0, Culture=neutral, PublicKeyToken=11cd844aca152173’.
Set artigo = MotorERP.Base.Artigos.Edita(”A0001”)
Else
’este código funciona
Set artigo = CreateObject(”BasBE100.BasBEArtigo”)
’…
’MotorERP.Base.Artigos.Actualiza artigo
End If
MotorERP.FechaEmpresaTrabalho
End Sub A V10 está totalmente em .NET, não existem mais os objetos COM que existiam na V9. As assemblies do ERP devem ser referenciadas num projeto em .NET igualmente. O que deves fazer é criar um projeto em .NET com visibilidade COM, para que o possas instanciar no VBA do excel. Neste projeto adicionas as referências para as assemblies do ERP e a partir daí já vais conseguir trabalhar com a API. A framework deve ser a a 4.7.1. Podes ver exemplos de projetos que fazem integração no ERP neste reposítório: https://github.com/PrimaverabssDeveloper/ERP10Integration |