♥ 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 |