Fórum
Ver pergunta

Como resolver o erro de timeOut ao fazer integração de documento de compra via motor?   

96 visualizações
0
0

Estou a receber a seguinte mensagem de erro ao fazer a integração de documentos de compra:

“Occoreu um erro Tempo Limite de Execução Expirado. O período de tempo de espera decorreu antes da conclusão da operação ou o servidor não está a responder.\r\nThe statement has been terminated.”

A fazer o debug, notei que este erro ocorre no metódo BSO.Compras.Documentos.Actualiza(documento) a execução demora muito tempo nesta linha, mais de 2 minutos. Abaixo está o meu código em c#

 

public string Post(DocumentoDeCompras documentoDeCompras)
        {
           var BSO = AssemblyResolveve.AbrirEmpresaERPV10();

            try
            {

                CmpBEDocumentoCompra documento = new CmpBEDocumentoCompra();

                documento.Tipodoc = documentoDeCompras.Tipodoc;
                documento.TipoEntidade = documentoDeCompras.TipoEntidade;
                documento.Moeda = documentoDeCompras.Moeda;
                documento.Entidade = documentoDeCompras.Entidade;

                BSO.Compras.Documentos.PreencheDadosRelacionados(documento);

                documento.NumDocExterno = documentoDeCompras.NumDocExterno;
                documento.DataDoc = DateTime.Now;
                documento.Serie = BSO.Base.Series.DaSerieDefeito("C", documento.Tipodoc, documento.DataDoc);
                documento.CamposUtil["CDU_Processo"].Valor = documentoDeCompras.CDU_Processo;

                foreach (var linhaDocumento in documentoDeCompras.Linhas)
                {

                    double Quantidade = linhaDocumento.Quantidade;

                    string Armazem = "A";

                    BSO.Compras.Documentos.AdicionaLinha(documento, linhaDocumento.Artigo, ref Quantidade, ref Armazem, ref Armazem, linhaDocumento.Preco, 0);

                }

                if (documento.Linhas.NumItens > 0)
                {
                    BSO.Compras.Documentos.CalculaValoresTotais(documento);
                    BSO.Compras.Documentos.Actualiza(documento);
                }

                BSO.FechaEmpresaTrabalho();
                return "Documento criado...";
            }
            catch (Exception e)
            {
                BSO.FechaEmpresaTrabalho();
                return "Occoreu um erro " + e.Message;
            }

        }

 

Faça login para poder traduzir
V10
Marcado como spam
Criado há 5 anos e 10 meses valdanio
v
valdanio Iniciante
Comentários
@valdanio estive a olhar ao teu código e re-escrevi aqui numa rotina e gravou sem problema. Não existe nada ai que esteja a bloquer a transação o que leva a essa demora?
5 anos e 10 meses
sergiosereno
    Obrigado pela iniciativa @sereno ! Tive de instalar novas actuliazações do RP e aumentar o tempo execução e só assim funcionou.
    5 anos e 10 meses
    valdanio
      @valdanio aumetar o tempo de timeout do SQL? Isso não bate, a menos que o documento seja enorme..
      5 anos e 10 meses
      sergiosereno