Recentemente abbiamo scritto in questo blog una serie di post sull’integrazione fra Domino e node.js . (alla fine del post trovate i link agli articoli predenti)
Quello che ancora mancava per chiudere il cerchio è la parte di creazione e modifica dei documenti Notes da parte di node.js.
In realtà per entrambi i casi la teoria è abbastanza semplice e non presenta particolari difficoltà, partiamo da primo caso.
Creare i documenti in Domino partendo da node.js
Se avete già letto e sperimentato quanto riportato nei post precedenti avete visto come creare la connessione ad un database Domino partendo da node.js ed accedervi in modalità anonima o certificata.
Basandosi quindi sulla connessione già creata con questo codice
const LogdatabaseConfig = { "filePath": "node/log.nsf" };
possiamo scrivere una funzione che accetta 3 parametri in input (saranno il contenuto di 3 campi in Notes) e mi crea un documento.
function scrivi(id,ml,req) { useServer(serverConfig).then(async server => { const Ldatabase = await server.useDatabase(LogdatabaseConfig); try { const unid = await Ldatabase.createDocument({ document: { Form: 'record', campo1 : id , campo2 : ml, campo2 : req.connection.remoteAddress, }, }); } catch (e) { console.log("Function scrivi : ", e); throw e; } }); }
Come potete vedere prima uso server.useDatabase per connettermi all’ nsf che voglio usare e poi con .createDocument creo il documento vero e proprio passando i valori che ho avuto in input e scrivendoli nei campi 1 , 2 e 3 all’interno del documento Notes.
Modificare documenti Notes esistenti da node.js
Qui il discorso è ovviamente diverso in quanto devo prima reperire il documento che voglio modificare e poi scrivere le informazioni nei campi.
Quindi mi serve prima eseguire una query per reperire il documento :
function modifica(codice,req) { useServer(serverConfig).then(async server => { const hostName = await server.getHostName(); const MailerDb = await server.useDatabase(MDbConfig); var query = "Form = 'Contact' and contactCode = '" + codice +"'"; try { const response = await MDb.bulkReplaceItems({ query: query, replaceItems: { Stato: 'Modificato', } , }); } catch (e) { console.log("Function modifica : ", e); throw e; } }); }
Quindi la mia funzione accetta in entrata una stringa ‘codice’ che viene poi usata per costruire la query dove ho una parte fissa ( Form = ‘Contact’ ) e poi la ricerca del codice vero e proprio.
Di seguito utilizzando bulkReplaceItems cambio il valore del campo ‘Stato’ scrivendo la stringa ‘Modificato’ per tutti i record risultanti dalla query.
Come forse avrete notato , a differenza di quanto accade per esempio in LotusScript, per entrambi i casi non esiste il Save del documento creato o modificato: è già implicito.
Questo post (così come i precedenti) non è solo teoria: abbiamo già usato node.js per modificare una nostra applicazione, aggiungendo nuove funzionalità: potete trovarne qui i dettagli .
Se invece vi siete persi gli articoli precedenti su node.js e Domino ecco i link:
- Domino e node.js: primi passi (parte 1)
- Domino e node.js: primi passi (parte 2)
- Domino e node.js: primi passi (parte 3)
0 commenti