No vídeo de hoje, vamos demonstrar em como usar a API nativa GenericQuery para consulta de informações nas tabelas do sistema.
A dúvida de hoje, nos perguntaram, se teríamos como exemplificar a utilização da API GenericQuery.
Pensando nisso, montamos esse exemplo, onde vamos demonstrar a utilização em alguns exemplos envolvendo a SB1 e a SBM (Produto e Grupo respectivamente).
Segue abaixo o vídeo exemplificando:
E abaixo as URLs que foram consumidas (observação, altere o IP e porta conforme a sua configuração):
/* Link com documentação: */ https://tdn.totvs.com/display/public/framework/GenericQuery /* Autenticação oAuth2 - https://terminaldeinformacao.com/2021/10/05/como-usar-a-autenticacao-com-oauth2-em-rest/ */ http://127.0.0.1:8400/rest/api/oauth2/v1/token?grant_type=password&password=tst123&username=daniel.atilio /* Busca simples por tabela (SB1) */ http://127.0.0.1:8400/rest/api/framework/v1/genericQuery?tables=SB1&fields=B1_COD,B1_DESC,B1_TIPO&where=SB1.D_E_L_E_T_=' ' AND SB1.B1_FILIAL = '' /* Busca com LEFT JOIN (entre SB1 e SBM) */ http://127.0.0.1:8400/rest/api/framework/v1/genericQuery?FromQry=SB1990 SB1 LEFT JOIN SBM990 SBM ON BM_FILIAL = '01' AND SB1.B1_GRUPO = SBM.BM_GRUPO AND SBM.D_E_L_E_T_ = ''&tables=SB1,SBM&fields=B1_COD,B1_DESC,B1_TIPO,B1_GRUPO,BM_DESC&where=SB1.D_E_L_E_T_=' ' AND SB1.B1_FILIAL = '' /* Busca de dados mudando a página */ http://127.0.0.1:8400/rest/api/framework/v1/genericQuery?FromQry=SB1990 SB1 LEFT JOIN SBM990 SBM ON BM_FILIAL = '01' AND SB1.B1_GRUPO = SBM.BM_GRUPO AND SBM.D_E_L_E_T_ = ''&tables=SB1,SBM&fields=B1_COD,B1_DESC,B1_TIPO,B1_GRUPO,BM_DESC&where=SB1.D_E_L_E_T_=' ' AND SB1.B1_FILIAL = '' &page=2
Bom pessoal, por hoje é só.
Abraços e até a próxima.
é possivel passar um valor dinamico no parametro “Where”? exemplo eu quero que o B1_FILIAL seja igual a filial escolhida pelo usuario em um outro parametro
Bom dia Miqueias, tudo joia?
Você pode controlar isso na sua outra aplicação.
Por exemplo, supondo que você tenha um sistema em PHP, nele você criaria uma variável com a filial, e depois passaria na URL antes de acionar o consumo do REST do Protheus, por exemplo:
No exemplo acima, ai basta alterar o conteúdo da variável $codigoFilial dinamicamente.
Tenha uma ótima e abençoada quarta feira.
Um forte abraço.