Dominoren 12. bertsioarekin, “(Notes)QueryResultsProcess“ klase berri bat erabilgarri dugu blog honetan berari buruz hitz egin genuena bilaketa mota ezberdinetatik eratorri daitezkeen emaitzak nahasten laguntzen diguna (ez DQL bakarrik, baita NSFak ere!) erabiltzaileari JSON gisa aurkeztuz (Edo Ikuspuntu “berezi” bezala 12.0.1 azken bertsioan bagaude).
Web agente batean, klase honen erabilerak bizitza osoan erabili izan diren horietakoak modu argi, erraz eta hirugarren liburutegien dependentziarik gabe, JSON formatuan, Domino zerbitzarian biltegiratuta ditugun datuak eskuratzen baimentzen digu.
'Seguru aldagai hauek zertarako diren badakizuela
Dim s As New NotesSession
Dim db As NotesDatabase
Set db = s.Currentdatabase
'Query-ak bilduko duen aldagaia definitzea nahitaezkoa da.
Dim domQuery As NotesDominoQuery
Set domQuery = db.Createdominoquery()
'Orain NotesQueryResultsProcessor-a definituko dugu.
Dim nqr As NotesQueryResultsProcessor
Set nqr = db.Createqueryresultsprocessor()
'Bilatze irizpideak definituko ditugu.
Call nqr.Adddominoquery(domQuery, "Precio > 1000", "PrecioMasDeMil")
'Txandaka, Search, FTSearch, eta abarretik etorri daitekeen aurredefinitutako NotesDocumentCollection-a erabili daiteke...
'Call nqr.Addcollection(col, "PrecioMasDeMil")
'NotesQueryResultsProcessor klaseko gehigarri handienetako bat bilaketa emaitzak ordenatzeko aukera da. Horretarako bilduma antolatzeko 'zutabeak definitzea beharrezkoa da, baita JSON-ean itzultzea nahi ditugun datuak ere.
Call nqr.Addcolumn("Numero", "Numero", |@TextToNumber("Numero")|, SORT_DESCENDING, False, False)
Call nqr.Addcolumn("Precio, "Precio", |@TextToNumber("Precio")|, SORT_UNORDERED, False, False)
'Datuak JSON formatuan itzultzeko, "Stringify" funtzioa erabiliko dugu, NotesJSONNavigator klasean eskuragai dagoena.
Dim jsonNavigator As NotesJSONNavigator
Set jsonNavigator = nqr.Executetojson()
'Nabigatzaileari formateatzen eta erantzuna ez katxeatzen laguntzen dion goiburuak izanik.
Print |Content-Type: text/json|
Print |Cache-Control: no-cache|
Print jsonNavigator.Stringify()
Haratago joan gintezke, Xpages-ek aurredefinitutako logika integratzeko edota hedatzeko QueryString bitartez parametrizatuz edota XAgent bat erabiliz.
Garbi dagoena da, JSON-ek itzultzen duen deia izan arren, ez dituela REST estandarrak betetzen. Horretarako REST zerbitzuak definitzeko era hobeak badaude edo zuzenean, Domino REST API teknologia berria erabil daiteke, Domino zerbitzariko 12.0.1 bertsioan eskuragarri egongo dena.
Comentarios