Fórum
Ver pergunta

Tempo de resposta excessivo do metodo Edita das Vendas.   

60 visualizações
0
0

Usando a API da versao 9.x, quando chamamos o método Edita, o código demora cerca de 1 minuto a passar para a linha seguinte

O cenário é tão simples quanto, corremos esta linha

GcpBECliente customerUpdate = PriEngine.Engine.Comercial.Clientes.Edita(account.IDERP);

E ele demora cerca de um minuto a passar para a linha de código seguinte.
Usando o profiler vemos que toda a parte de acesso a dados do primavera é rápida, mas depois há um conjunto de chamadas que são feitas pela API e que não conseguimos identificar a que correspondem
São estas chamadas que, todas somadas, chegam quase a um minuto de duração e que levam a que a atualização de cada cliente demore 1 mniuto

No anexo é possível ver parte do log do profiler.

Faça login para poder traduzir
Integração
Marcado como spam
Criado há 6 anos e 2 meses vitorsilva
vitorsilva Iniciante
1 respostas
0
Resposta privada

Vitor a questão é porque é que quer fazer edita de um objeto tão pesado como o documento de venda? Tem essa necessidade, isto é vai atualizar todo o objeto? quer mostrar todas as propriedades em algum interface?

Se não, recomendo como boa pratica de acesso a dados a utilização do DaValorAtributos(), pois o Edita() é em termos de base dados é um SELECT * FROM CabcDoc INNER JOIN LinhasDoc com todo o peso que isso tem, em contrapartida o outro é um SELECT <atributos> FROM.

Por fim e só para saber, isso é com que tipo de base dados? Demo ou Cliente?

Faça login para poder traduzir
Marcado como spam
Criado há 6 anos e 2 meses sergiosereno
sergiosereno Most Valuable Professional
    Comentários
    Obrigado pela resposta Sergio, Isto faz parte de um processo de integração em que acedemos a um outro sistema e vamos buscar dados que queremos copiar para o primavera. Num dos casos a nivel do Cliente, no outro a nivel de Documentos. Ou seja, admito que o DaValorAtributos() possa ser mais rapido a obter os dados, mas o que nós pretendemos é atualizar campos e é nesse processo que demora bastante tempo. (estamos a usar uma base de dados de cliente)
    6 anos e 2 meses
    vitorsilva