Onde o método `FillGetResponse` armazena o JSON gerado "Linha a Linha" do ResultSet?

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