top of page

SAP Business One - como customizar o parâmetro da consulta no gerente de consultas (HANA)

Foto do escritor: expertb1expertb1

Quando montamos uma consulta SQL com parâmetros (seja na versão Hana ou SQL), ao executar, o SAP Business One nos mostra um diálogo com o parâmetro e mostra a descrição deste parâmetro conforme a tradução realizada pela própria SAP em relação ao campo.


Um exemplo clássico na versão Brasil é o número da nota fiscal. No gerente de consultas e em algumas telas, o campo foi traduzido como "Nº de série"



A query usada para o exemplo acima foi esta:

/*select * from oinv t0 where t0.serial='[%0]'*/

SELECT top 10

"CardName", "DocDate", "DocTotal"


FROM

OINV


WHERE

"Serial"='[%0]'


E como podemos alterar o nome do parâmetro desta consulta?


Para qualquer nome de parâmetro que você queira alterar tem um trabalho técnico envolvido, mas vale a pena. Vamos aos passos (faça um teste em base não produtiva).


  • Criar uma tabela de usuário específica para isto. Vamos chamá-la de CUSTOM_QUERY


  • Depois de criada a tabela, siga até o local onde criamos campos de usuário. Escolha a tabela que acabamos de criar


  • Na janela de criação do campo, digite o nome físico do campo (como achar conveniente) e na descrição do campo coloque exatamente como deseja que apareça para o usuário o parâmetro da consulta


  • Agora, devemos alterar nossa query original da consulta conforme abaixo. Colocarei destacado onde foi alterado (em vermelho)

/*select * from [@custom_query] t0 where t0.U_query1='[%0]'*/

SELECT top 10

"CardName", "DocDate", "DocTotal"


FROM

OINV


WHERE

"Serial"='[%0]'


Quando executares a consulta, veja a diferença....o nome do parâmetro mudou conforme customizei na tabela de usuário. Só fiz uma referência à ela no comentário da query e usei o mesmo parâmetro. Importante...se o campo Serial do SAP é numérico, crie o campo customizado com o mesmo tipo. Se o campo é alfa, crie o campo customizado como alfa...siga esta lógica que não tem erro.



A query completa para localizar a nota fiscal independente do menu ficaria assim:

/* select from "@CUSTOM_QUERY" T0 */

Declare numeronf int;

numeronf := /* T0."U_query1" */ '[%0]';





Select

t0."Serial", t0."CardName", t0."DocDate", t0."DocTotal" ,'VENDAS>>NOTA FISCAL DE SAÍDA' as "MenuSAP"

from

oinv t0

where

t0."Serial" = :numeronf



union all



Select

t0."Serial", t0."CardName", t0."DocDate", t0."DocTotal" ,'VENDAS>>ENTREGA' as "MenuSAP"

from

ODLN t0

where

t0."Serial" = :numeronf



UNION ALL



Select

t0."Serial", t0."CardName", t0."DocDate", t0."DocTotal" ,'VENDAS>>DEVOLUCAO DE ENTREGA' as "MenuSAP"

from

oRDN t0

where

t0."Serial" = :numeronf



UNION ALL



Select

t0."Serial", t0."CardName", t0."DocDate", t0."DocTotal" ,'VENDAS>>DEVOLUCAO DE NF DE SAIDA' as "MenuSAP"

from

oRIN t0

where

t0."Serial" = :numeronf



UNION ALL



Select

t0."Serial", t0."CardName", t0."DocDate", t0."DocTotal" ,'COMPRAS>>NOTA FISCAL DE ENTRADA' as "MenuSAP"

from

oPCH t0

where

t0."Serial" = :numeronf



UNION ALL



Select

t0."Serial", t0."CardName", t0."DocDate", t0."DocTotal" ,'COMPRAS>>DEVOLUCAO NOTA FISCAL DE ENTRADA' as "MenuSAP"

from

oRPC t0

where

t0."Serial" = :numeronf



UNION ALL



Select

t0."Serial", t0."CardName", t0."DocDate", t0."DocTotal" ,'COMPRAS>>RECEBIMENTO' as "MenuSAP"

from

oPDN t0

where

t0."Serial" = :numeronf



UNION ALL



Select

t0."Serial", t0."CardName", t0."DocDate", t0."DocTotal" ,'COMPRAS>>DEVOLUCAO DE MERCADORIA' as "MenuSAP"

from

oRPD t0

where

t0."Serial" = :numeronf;

1.310 visualizações0 comentário

Posts recentes

Ver tudo

Comments


  • Instagram
  • LinkedIn ícone social
  • iconeWhats
  • Nosso Canal com Dicas Rápidas
bottom of page