Fórum
Ver pergunta

Docs Venda – possível anomalia funções ActualizaValorAtributosID e ActualizaValorAtributos   

Fechada
110 visualizações
0
0
Fechada.

This question was closed because it isn't clear or needs more details. To improve it, please check our FAQs.

Na integração v10 estou a obter duas anomalias nas funções de alteração simultânea de atributos de documentos de venda (ActualizaValorAtributosID e ActualizaValorAtributos).

Admitindo que já se iniciou o motor Primavera  e que se construiu o objecto “CDUS” da seguinte forma:

StdBECampos CDUS = new StdBECampos();

CDUS.Insere(new StdBECampo() { Nome = "CDU_CabVar1", Valor = "Teste1" });

CDUS.Insere(new StdBECampo() { Nome = "CDU_CabVar2", Valor = "Teste2" });

» Função “ActualizaValorAtributosID”:

PriEngine.Engine.Vendas.Documentos.ActualizaValorAtributosID("c6675c5b-c132-11ea-8182-14dae99ac10f", CDUS);

Embora edite os campos solicitados o código bloqueia com um loop interminável repetindo estas duas instruções detectáveis pelo SQL Profiler:

SELECT Assinatura FROM CabecDoc  WITH (NOLOCK)  WHERE [ID] = 'c6675c5b-c132-11ea-8182-14dae99ac10f'
UPDATE CabecDoc SET [CDU_CabVar1] = 'Teste1', [CDU_CabVar2] = 'Teste2' WHERE [ID] = 'c6675c5b-c132-11ea-8182-14dae99ac10f'

» Função “ActualizaValorAtributos”:

PriEngine.Engine.Vendas.Documentos.ActualizaValorAtributos("000", "FS", "A", 1, CDUS);

Origina o erro:  “Invalid column name ‘1’.\r\nInvalid column name ‘2’.”

E detectam-se estas duas instruções pelo SQL Profiler (sendo claramente a segunda responsável pelo erro):

SELECT TOP 1 [Assinatura] FROM [CabecDoc]  WITH (NOLOCK)  WHERE [Filial] = '000' AND [TipoDoc] = 'FS' AND [Serie] = 'A' AND [NumDoc] = 1
UPDATE CabecDoc SET [CDU_CabVar1] = 'Teste1', [CDU_CabVar2] = 'Teste2', [1] = NULL, [2] = NULL WHERE [Filial] = '000' AND [TipoDoc] = 'FS' AND [Serie] = 'A' AND [NumDoc] = 1

Dados adicionais:

  • Se utilizarmos duas chamadas individuais à função “ActualizaValorAtributoID” funciona:
PriEngine.Engine.Vendas.Documentos.ActualizaValorAtributoID("c6675c5b-c132-11ea-8182-14dae99ac10f", "CDU_CabVar1", "Teste1");
PriEngine.Engine.Vendas.Documentos.ActualizaValorAtributoID("c6675c5b-c132-11ea-8182-14dae99ac10f", "CDU_CabVar2", "Teste2");
  • Se utilizarmos duas chamadas individuais à função “ActualizaValorAtributo” também funciona:
PriEngine.Engine.Vendas.Documentos.ActualizaValorAtributo("000", "FS", "A", 1, "CDU_CabVar1", "Teste1");
PriEngine.Engine.Vendas.Documentos.ActualizaValorAtributo("000", "FS", "A", 1, "CDU_CabVar2", "Teste2");
  • Nos motores “Compras.Documentos”, “Internos.Documentos”, “Inventario.Composicoes”  e “Inventario.Transferencias”  a função “ActualizaValorAtributoID” funciona.

Alguém já teve este comportamento?

Obrigado.

Faça login para poder traduzir
V10
Marcado como spam
Criado há 5 anos e 9 meses miguelganilhosantos
Comentários
@mganilho A sua questão foi fechada porque se trata de uma possivel anomalia, não uma duvida, logo local correcto é o suporte.
5 anos e 9 meses
sergiosereno