Get com parâmetro na url usando uma query sql

Pessoal, estou com um get criado retornando informações das ordens de produção (SC2) a partir da consulta do número da OP. Fiz toda a operação usando dbseek e outras funções que deixarei abaixo. Gostaria de saber se tem como trazer o mesmo conteúdo mas por uma query sql ? Ao invés de fazer validações com o dbseek relacionando as tabelas. Costumo usar begin sql em endpoints GET que não precisam usar parâmetros.

Código abaixo do get criado sem query:

WsMethod GET DETALHE WsService RELATOP1

Local oJson := JsonObject():New() Local oJsonItem := Nil Local lRet := .T.

SC2->(DbSetOrder(1))

If SC2->( DbSeek( cFilAnt + self:aUrlParms[1] ) )

oJson['Filial'] := SC2->C2_FILIAL oJson['Num.Op'] := SC2->C2_NUM oJson['Cod.Produto'] := SC2->C2_PRODUTO oJson['Quantidade'] :=SC2->C2_QUANT oJson['Uni.Medida'] := SC2->C2_UM oJson['Item'] := SC2->C2_ITEM oJson['Entrega'] := SC2->C2_DATPRF oJson['Fabril'] := {}

SB1->(DbSetOrder(1)) SB1->( DbSeek(xFilial('SB1') + SC2->C2_PRODUTO) )

While SB1->(!Eof()) .And. SB1->B1_COD == SC2->C2_PRODUTO

oJsonItem := JsonObject():New() oJsonItem['Descrição'] := SB1->B1_DESC oJsonItem['Proc.Fabril'] := SB1->B1_XDOP

Aadd(oJson['Fabril'], oJsonItem)

SB1->(DbSkip())

EndDo

self:SetResponse(oJson:ToJson())

Else

SetRestFault(400, 'Ordem não foi encontrado!') lRet := .F.

EndIF Return lRet

compartilhar
  • Erick, um DBSeek vira uma query dentro do banco de dados, então um DBSeek com toda a certeza pode virar uma query, só depende realmente de efetuar a devida implementação.

    Daniel Mendes   13 de Jun de 2024
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags advpl api rest sql ou faça a sua própria pergunta.