Fórum
Ver pergunta

Evento API não funciona   

58 visualizações
1
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

Faça login para poder traduzir
Integração
V10
Marcado como spam
Criado há 4 anos e 3 meses brunogomes
brunogomes Responsiveness Member
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?
4 anos e 3 meses
sergiosereno
    2 respostas
    0
    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/

    Faça login para poder traduzir
    Marcado como spam
    Criado há 4 anos e 3 meses sergiosereno
    sergiosereno Most Valuable Professional
      Comentários
      Editei a resposta e adicionei o caminho do exemplo.
      4 anos e 3 meses
      sergiosereno
        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?
        4 anos e 3 meses
        sergiosereno
          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?
          4 anos e 3 meses
          sergiosereno
            1
            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.

            Faça login para poder traduzir
            Marcado como spam
            Criado há 4 anos e 3 meses sergiosereno
            sergiosereno Most Valuable Professional