Fórum
Ver pergunta

Método “IntegraDocumentoLogCBL” não recalcula movimentos na CBL V9.15   

95 visualizações
0
0

Viva,

Através de motores estou a adicionar Centros de Custo às linhas de um documento de compra. Este documento está já em rascunho na contabilidade. Após de fazer as alterações necessários, chamo o método IntegraDocumentoLogCBL, no entanto, o mesmo não actualiza os Centros de Custo adicionados por linhas na CBL.

 

Alguma sugestão?

 

Obrigado.

Faça login para poder traduzir
Geral
Marcado como spam
Criado há 5 anos e 2 meses nunogonalves
nunogonalves Responsiveness Member
1 respostas
0
Resposta privada

Bom dia,

Não sei se será grande ajuda mas cá vai.

Ja viste se é algum parâmetro da forma como o documento é integrado? No Administrador tem um separador com parâmetros e um deles é o refresca automaticamente. Talvez possa ser isso.

Já tentaste salvar o documento directo na contabilidade? Pode ser que não perca a ligação com o outro modulo.

Já agora, tu consegues integrar bem os documentos de compra. Eu consigo mas o tempo que demora é excessivo. Eu segui uma outra abordagem para criar o documento exactamente porque queria ter os centros de custo e a conta da contabilidade defenida na linha do editor de compras.

Cmpts

 

Faça login para poder traduzir
Marcado como spam
Criado há 5 anos e 2 meses nunodomingues
nunodomingues Iniciante
    Comentários
    Obrigado pelo teu comentário @nunodomingues! Efetivamente não há parâmetro algum para tal. Optei por remover o rascunho e lançar o documento por completo novamente. Demora mais uns segundos após a gravação do documento na logística, mas nada de excecional. Já agora, podes partilhar a tua abordagem para gravação direta? Utilizas as ligações à CBL definidas no Administrador? Obrigado.
    5 anos e 2 meses
    nunogonalves
      Bom dia A abordagem que fiz é var cabecDocCompra = new GcpBEDocumentoCompra(); var NewLinDocCompra = new GcpBELinhaDocumentoCompra(); var NewLinhasDocCompra = new GcpBELinhasDocumentoCompra(); Linhas de código omitidas que preenchiam os campos do objecto cabecDocCompra PriEngine.Engine.Comercial.Compras.PreencheDadosRelacionados(cabecDocCompra) – se algum dado ficou por preencher; Linhas de código omitidas que preenchiam os campos do objecto NewLinDocCompra (o código é um loop mas nos testes que fiz apenas testei para uma linha porque queria resolver a questão de performance primeiro) NewLinhasDocCompra.Insere(NewLinDocCompra); cabecDocCompra.set_Linhas(NewLinhasDocCompra); PriEngine.Engine.Comercial.Compras.Actualiza(cabecDocCompra, ref strAvisos) Esta abordagem é a que é mais semelhante ao VBA. No VBA temos uma função que vai adicionado linhas ao CabecDoc. Basicamente eu crio uma linha, adiciono essa linha a uma colecção de linhas e associo a colecção de linhas ao documento. O parâmetro que te estava a dizer é utilizando o ERP ADM, ou seja, dentro do programa do Administrador tens na Logística a funcionalidade de ligação à contabilidade. Cada documento tem uma configuração para a integração e é nessa configuração que tem o refresca automaticamente. Achei que podia ser isso. Eu uso as ligações à CBL definidas no ADM mas não defino por artigo. Ou seja, eu não tenho um artigo para cada conta, tenho apenas alguns artigos de serviços e a conta e o centro é definido na linha do editor de compras. O que me fez seguir esse caminho era ter de criar montes de artigos e sempre que criasse uma conta tinha de criar um novo artigo. Assim prefiro na linha do editor de compras, colocar visível o campo da conta e dos centros de custo e classificar directamente na linha qual a conta e o centro de custo que pretendo. Depois na configuração da ligação, basta dizer que é para utilizar a conta e o centro que está definido na linha do editor de compras. No entanto eu para gravar um documento da logística demoro quase 3 minutos. Não consigo perceber porque demora tanto tempo. Começo a achar que pode ser um problema de rede pois eu estou a lançar um documento a partir do meu computador e não a partir do servidor. Para referencia eu tenho uma aplicação em .Net Core 3.1 e criei uma API que funciona isoladamente em .Net 4.7.1 que tem as referencias ao Iterop e que recebe comandos da minha aplicação, faz os movimentos no primavera e depois retorna uma mensagem para a aplicação. Não consegui ter tudo a funcionar no mesmo local. Eu só uso os iterops para alterar o Primavera, para mostrar dados faço comandos de sql na base de dados. Fica com o meu email se quiseres me enviar um mail [email protected]. Espero que ajude.
      5 anos e 2 meses
      nunodomingues
        Nuno, se quiseres, envias-me o projecto (ou módulo vba) para [email protected], e procedo aos testes de performance localmente. Por este lado também uso ligações à CBL, assim julgo que teremos um cenário de testes semelhante.
        5 anos e 2 meses
        nunogonalves