Ajuda com API para pedidos de venda.

Boa noite, tudo bom com vocês? Estou aprendendo um pouco de advpl mas travei em relação ao que estava fazendo. Tentei criar uma API que ela pega os itens do pedido de vendas SC6, porém apenas está retornando o primeiro da lista, e não estou conseguindo colocar pra ler o array corretamente ( No exemplo não estou tentando usar for pois não estava conseguindo), quem puder me ajudar e explicar detalhado para eu aprender também, fico agradecido.


User Function REST02PW()  
Return
WSRESTFUL VENDAS1 DESCRIPTION "Serviço REST para retorno de itens de pedido de venda."
WSDATA VENDAS As String

WSMETHOD GET DESCRIPTION "Retorna itens do pedido de venda." WSSYNTAX "/VENDAS1" // MÉTODO GET

END WSRESTFUL

WSMETHOD GET WSRECEIVE VENDAS WSSERVICE VENDASBBR
Local cUserAD := "" 
//Local cStatus := ""
Private cJson := ""
Private lContinua := .T.
cUserAD := Self:VENDAS
::SetContentType("application/json")
DbSelectArea("SC6")
If SC6->(DbSeek(xFilial("SC6") + cUserAD)) .And. !Empty(cUserAD)
  cJson := MNTJSON(AllTrim(SC6->C6_NUM),cValToChar(SC6->C6_ITEM),cValToChar(SC6->C6_PRODUTO),cValToChar(SC6->C6_DESCRI),cValToChar(SC6->C6_VALOR),cValToChar(SC6->C6_QTDVEN))

Else
  cJson := '{'
  cJson += '"error":' + '"Pedido ' + AllTrim(cUserAD) + ' Nao localizado no pedidos de venda."'
  cJson += '}'    
EndIf
::SetResponse(cJson)
Return(.T.)

Static Function MNTJSON(cNum,cItem,cProduto,cDescri,cValor,cQuant)
  cJson := '{'
    cJson += '"Item":' + '"'+cNum+'",'
  cJson += '"Item":' + '"'+cItem+'",'
    cJson += '"Produto":' + '"'+cProduto+'",'
      cJson += '"Descricao":' + '"'+cDescri+'",'
        cJson += '"Valor":' + '"'+cValor+'",'
//  cJson += '"PW":' + '"'+cPWFunc+'",'
  cJson += '"Quantidade":' + '"'+cQuant+'"'
  cJson += '}'
Return cJson
compartilhar
  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!

1 resposta

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