Domino 12 eta DQL-rekin (modu errazean) datuak biltzea.

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.

restlotusscript Nire hitzaldia hurrengo 2021ko CollabSpherean

Comentarios

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×