| ♥ 0 | Boas, estava a tentar testar os eventos de api mas não estou a conseguir, podem-me ajudar? Já adicionei a extensão ao ERP, executo a rotina de criação de documento na minha aplicação externa, o documento cria mas o campo Observações não é preenchido… O que estou a fazer mal? Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports System.Threading.Tasks
Imports Primavera.Extensibility.BusinessEntities
Imports Primavera.Extensibility.BusinessEntities.ExtensibilityService.EventArgs
Imports Primavera.Extensibility.Sales.Services
Imports VndBE100
Public Class SalesManager
Inherits VndBSVendas
Public Overrides Sub DepoisDeGravar(clsDocumentoVenda As VndBEDocumentoVenda, ByRef strAvisos As String, ByRef IdDocLiqRet As String, ByRef IdDocLiqRetGar As String, e As ExtensibilityEventArgs)
MyBase.DepoisDeGravar(clsDocumentoVenda, strAvisos, IdDocLiqRet, IdDocLiqRetGar, e)
Dim observacoes As New StringBuilder
observacoes.Append(clsDocumentoVenda.Observacoes)
observacoes.Append("DOCUMENTO alterado atraves da API")
clsDocumentoVenda.Observacoes = observacoes.ToString
End Sub
Obrigado Marcado como spam |
Comentários Em debug o código passa ai? Também estas a fazer isso no depois de gravar, nao será no antes de gravar? |
2 respostas
| Resposta privada Tens de garantir que o servico de integração está ativo, assim. if (Plataforma.Inicializada)
{
MotorLE.AbreEmpresaTrabalho(objTipoPlataforma, Company, User, Password, objStdTransac, "Default");
// Use this service to trigger the API events.
ExtensibilityService service = new ExtensibilityService();
// Suppress all message box events from the API.
// Plataforma.ExtensibilityLogger.AllowInteractivity = false;
service.Initialize(MotorLE);
// Check if service is operational
if (service.IsOperational)
{
// Inshore that all extensions are loaded.
service.LoadExtensions();
}
Platform = Plataforma;
Engine = MotorLE;
EngineStatus = true;
}Exemplo completo em ERP10Integration/Primavera.Sales/ Marcado como spam Comentários Editei a resposta e adicionei o caminho do exemplo. Olá Bruno, não estou a perceber. Se colocares a extensão no ERP com evento no VndBSVendas ele não executa, isto é. Subscrevo o evento DepoisDeGravar(), adicionas a extensão. O que estás a dizer é que isto não funciona? Mas é esse o cenário que tenho aqui montado, a aplicação que está no git de vendas e uma extensão no produto com um evento no antes de gravar e funciona....Algum detalhe mais? | |
| Resposta privada Bruno Adicionei este classe através da extensão do VS. namespace ExtensibilityProject7.Sales
{
public class ApiVndBSVendas : VndBSVendas
{
public override void AntesDeGravar(VndBEDocumentoVenda clsDocumentoVenda, ref string strAvisos, ref string IdDocLiqRet, ref string IdDocLiqRetGar, ExtensibilityEventArgs e)
{
clsDocumentoVenda.Observacoes = "API";
base.AntesDeGravar(clsDocumentoVenda, ref strAvisos, ref IdDocLiqRet, ref IdDocLiqRetGar, e);
}
}
}Coloquei o projeto Primavera Sale disponivél no GitHub a executar e funcionou bem. Marcado como spam |