cancel
Showing results for 
Search instead for 
Did you mean: 

Variavel em consulta formatada

Former Member
0 Kudos

Tenho essa consulta formata retornando erro interno 3006, a duvida é como passar essa variavel sabendo que é o campo DocEntry da ORDR ?

SELECT

    STUFF((SELECT ', ' + b.FreeTxt AS "text()"

          FROM rdr1 b

         WHERE a.DocEntry = b.DocEntry

         FOR XML PATH('')), 1, 2, '') AS FreeTxt

FROM rdr1 AS a

where a.DocEntry=$[$4.0.0]

GROUP BY a.DocEntry

Accepted Solutions (1)

Accepted Solutions (1)

former_member186712
Active Contributor
0 Kudos

Bom dia,

No teu SQL na clausula where estás a comprar o docentry com $[$4.0.0].

Acontece que o $[$4.0.0]. é o codigo do cliente.

O docentry não o podes usar nas Consultas Formatadas.

O que desejas fazer com a Consulta Formatada?

Former Member
0 Kudos

Bom dia

Desculpe realmente coloquei aqui a variavel errada, alterei também a consulta para a tabela inv1 na tentativa de chegar a tabela OINV onde ficam as observações, nao deu certo.

A grande dificuldade esta nos formularios: observações iniciais e finais=60072 e os textos ficam no formulario 133.

SELECT

    STUFF((SELECT ', ' + b.FreeTxt AS "text()"

          FROM inv1 b

         WHERE a.DocEntry = b.DocEntry

         FOR XML PATH('')), 1, 2, '') AS FreeTxt

FROM inv1 AS a

where a.Docnum = $[$8.0.0]

GROUP BY a.DocEntry

former_member186712
Active Contributor
0 Kudos

Em que variavel estás a utilizar a Consulta formatada?

O que queres obter com a Consulta formatada?

Isso seria util para te podermos ajudar

Former Member
0 Kudos

Vamos lá.

A idéia é: preecher o campo Observações Iniciais e Finais (OINV.Footer) com os valores encontrados no campo Texto Livre (INV1.Freetxt) nas linhas dos itens.

Consegui ser claro ?

former_member186712
Active Contributor
0 Kudos

Conseguiste ser claro e tens uma missão nada facil!

Uma Consulta formatada para fazer o que pretendes, só pode ser executada depois de gravar o documento, o que é horrivel, porque imagino que quisesses a consulta formatada quando adicionasses o documento.

As consultas formatadas não conseguem evoluir nas linhas de uma matrix, isto é, se no cabeçalho de um documento quiseres percorrer todas as linhas e gravar qualquer coisa para uma variavel, isto é impossivel em modo de adição.

Exemplo: Se tiveres uma UDF quantidadetotaldoc e quiseres somar todas as qtds de um documento, com uma Consulta formatada é impossivel em modo de Adição. Em Update já funciona porque o documento já está gravado e podes fazer um query directamente à base de dados.

Resumindo, para fazeres o que pretendes o utilizador tem que gravar o documento, entrar novamento no documento, chamar as observações Iniciais/finais e executar a consulta formatada.

Como eu disse anteriormente esta solução é horrivel para o utilizador.

Para fazer o que queres em modo de adição só com o SDK.

Former Member
0 Kudos

Resta então colocar a mão na massa, obrigado pela ajuda Augusto.

former_member186712
Active Contributor
0 Kudos

Hamilton,

Não te esqueças de fechar esta "thread" e pontuares as respostas como "util" ou resposta "certa".

(Não sei se são estes os termos porque uso o SCN em Inglês)

Augusto

Former Member
0 Kudos

São esses Termos Sim Augusto.

Answers (1)

Answers (1)

Former Member
0 Kudos

Bom dia

Não tem como pegar o DocEntry nesse caso, pois as variaveis $[$..] se referem aos campos da Janela Ativa do SAP e o docEntry é campo interno, veja se a consulta da certo com o DocNum mesmo.

Former Member
0 Kudos

Bom dia

Ja agradeço a ajuda, alterei a para docnum e também não deu certo.

O que fiz também foi mudar a consulta para a tabela inv1, também não deu certo.

Ocorre que a consulta esta no formulario 60072 e as informações no formulario 133, se isto clarear mais...

SELECT

    STUFF((SELECT ', ' + b.FreeTxt AS "text()"

          FROM inv1 b

         WHERE a.DocEntry = b.DocEntry

         FOR XML PATH('')), 1, 2, '') AS FreeTxt

FROM inv1 AS a

where a.docentry = $[$8.0.0]

GROUP BY a.DocEntry