Forum
See question

Erro ao editar documento de compra pelo método EditaId   

53 views
0
0

Numa máquina em particular, com Primavera V10, ao invocar o método EditaId do módulo de Compras obtemos o seguinte erro:

Object reference not set to an instance of an object. (System.NullReferenceException)

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
at StdPlatBS100.StdBSCategorias.DaCategoriasAuditApl(String strAbvtApl, Boolean blnCarregaErp, clsCategorias& objRelEntidades)
at StdPlatBS100.StdBSCategorias.DaCategoriasAuditApl(String strAbvtApl)
at StdPlatBS100.StdBSCategorias.DaCategoriasAudit()
at StdPlatBS100.StdBSCategorias.InicializaCom_objBSO()
at StdPlatBS100.StdBSCategorias.set_BSO(StdPlatBS value)
at StdPlatBS100.StdPlatBS.get_Categorias()
at CmpBS100.CmpBSCompras.CalculaValoresTotais(CmpBEDocumentoCompra clsDocCompra, Boolean ValidaOrcamental)
at CmpBS100.CmpBSCompras.CalculaValoresTotais(CmpBEDocumentoCompra clsDocCompra)
at CmpBS100.CmpBSCompras.CalculaTotaisDocumento(CmpBEDocumentoCompra DocCompra)
at CmpBS100.CmpBSCompras.EditaID(String Id)
at Teste.Program.Test1.RunTest() in C:\Users\admin\source\repos\Teste\Test1.cs:line 105
at Teste.Program.Main(String[] args) in C:\Users\admin\source\repos\Teste\Program.cs:line 14

 

Foi criada uma app só para testar o método EditaId, que recebe um ID introduzido manualmente e que existe na tabela CabecCompras:

public static void RunTest()
{

    // ligar ao Primavera
    PriEngine.CreatContext(ConfigurationManager.AppSettings["databaseName"], ConfigurationManager.AppSettings["username"], ConfigurationManager.AppSettings["password"], (EnumTipoPlataforma)Convert.ToInt32(ConfigurationManager.AppSettings["platformType"]), "Default");

    if (PriEngine.EngineStatus)
    {
        Console.WriteLine("Company: " + PriEngine.Platform.Contexto.Empresa.CodEmp + " | ");
        Console.WriteLine("Company Name: " + PriEngine.Platform.Contexto.Empresa.IDNome + " | ");
        Console.WriteLine("Currency: " + PriEngine.Platform.Contexto.Empresa.MoedaBase);

        string context = "";
        try
        {
            context = "perguntar ID";
            Console.WriteLine("Digite o ID da compra a carregar");
            var input = Console.ReadLine();

            CmpBE100.CmpBEDocumentoCompra _documento = PriEngine.Engine.Compras.Documentos.EditaID(input);

            Console.WriteLine("Carregado com sucesso:");
            Console.WriteLine($"- Documento {_documento.Tipodoc} {_documento.Serie}/{_documento.NumDoc}");
            Console.WriteLine($"- Entidade ({_documento.TipoEntidade}) {_documento.Entidade} - {_documento.Nome}");

        }
        catch (Exception ex)
        {
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine($"** Erro ao {context} **");
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine($"{ex.Message} ({ex.GetType()})");
            if (ex.InnerException != null)
                Console.WriteLine($"InnerException:\r\n {ex.InnerException.Message} ({ex.InnerException.GetType()})");

            throw;
        }
    }
    else
    {
        Console.WriteLine("Cannot access Primavera. Check your configuration.");
    }

}

A versão instalada é:

Produto: 10.0010.4267, Plataforma: 10.0010.4292, Database Manager: 10.1110.4319

Integração
V10
Marked as spam
Created 2 months and 1 week ago albertosilva
a
albertosilva Iniciante
Comments
Foram testados os métodos EditaID dos módulos de Vendas e Internos e é devolvido o mesmo erro a partir do "at StdPlatBS100.StdPlatBS.get_Categorias()" no "stack".
2 months and 1 week ago
albertosilva
    1 answers
    0
    Private answer

    Foi encontrado o motivo erro, uma extensibilidade registada de uma terceira parte.

    Marked as spam
    Created 2 months and 1 week ago albertosilva
    a
    albertosilva Iniciante