Olá, boa tarde.
Na documentação do FWAdapterBaseV2, do link https://tdn.totvs.com/display/public/framework/09.+FWAdapterBaseV2, é dito que o método ::FillGetResponse() gera um JSON linha a linha do ResultSet com base na query executada.
Onde que esse JSON é armazenado e como eu recupero ele?
Tem duas coisas ao usar o FillGetResponse que não está documentado no https://tdn.totvs.com/display/public/framework/09.+FWAdapterBaseV2:
- O
::FillGetResponse retorna .F. quando não existem registros retornados pelo ::Execute - O método, caso tenha registros (Ou seja, se o SELECT trazer mais de 0 registros), guarda em formato JSON esses registros dentro do objeto de dados, e os mesmos são acessíveis através do método
GetJSONResponse.
Exemplo
Camada de Dados
Method gerarListaSolicitacoesArmazem() Class SolicitacaoArmazemData
Local cWhere as Character
Local cQuery as Character
Local aArea as Array
Local bRetornoExecute as Logical
Local bRetornoFillGetResponse as Logical
aArea := FwGetArea()
AddMapFields(Self)
ConOut("SolicitacaoArmazemData:listarSolicitacoesArmazem - Listando as Solicitações do Armazém...")
cWhere := "CP_OP LIKE '014243OS%' AND CP_FILIAL = '020101' AND D_E_L_E_T_ = ''"
cQuery := ManutencaoUtils.u_getQuery("SCP")
::SetPage(1)
::SetPageSize(100)
::SetQuery(cQuery)
::SetWhere(cWhere)
::SetOrder("CP_NUM")
ConOut("SolicitacaoArmazemData:listarSolicitacoesArmazem - Query para Listar as S.A.s: " + cQuery)
bRetornoExecute := ::Execute()
ConOut("SolicitacaoArmazemData:listarSolicitacoesArmazem - Query Executada: " + cValToChar(bRetornoExecute))
If bRetornoExecute
bRetornoFillGetResponse := ::FillGetResponse()
ConOut("SolicitacaoArmazemData:listarSolicitacoesArmazem - FillGetResponse: " + cValToChar(bRetornoFillGetResponse))
ConOut("SolicitacaoArmazemData:listarSolicitacoesArmazem - JSON Salvo no Objeto: " + cValToChar(::GetJSONResponse()))
EndIf
FwrestArea(aArea)
Return Nil
Camada da Service
Method listarSolicitacoesArmazem() as Json Class SolicitacaoArmazemService
Local jSolicitacoesArmazem as Json
ConOut("SolicitacaoArmazemService:listarSolicitacoesArmazem - Executando as Regras de Negócio...")
::jResponse:fromJson('[{"Mensagem":"Hello World!"}]')
oData := SolicitacaoArmazem.SolicitacaoArmazemData():new("GET")
oData:gerarListaSolicitacoesArmazem()
jSolicitacoesArmazem := oData:GetJSONResponse()
Return ::jResponse