Notes Lotusscript

Alla sua base, Lotus Notes è un sistema di gestione dei database.

In molti ambienti, infatti, Notes è costituito da un insieme di database che possono interagire tra di loro a diversi livelli.

Tuttavia, Lotus Notes non funziona come un tradizionale sistema di database relazionale.

In realtà, un database in Notes è una raccolta di dati non strutturati, arricchita da elementi di progettazione che ne facilitano l’accesso e la gestione.

Questo approccio è paragonabile a ciò che oggi si definisce un database NoSQL.

Ma prima un po’ di storia…

Era il 1984 quando Ray Ozzie stipulò un accordo con Mitch Kapor (fondatore della Lotus Development Corporation), che diede vita alla Iris Associates per sviluppare la prima versione di Lotus Notes.

A quel tempo, Ozzie e Iris Associates controllavano lo sviluppo del prodotto mentre Lotus Development Corporation dirigeva le vendite e il marketing. Iris fu poi acquisita alla fine del 1994 da Lotus Corporation.
Lotus Notes è stato originariamente sviluppato da Lotus Development Corporation nel 1989. IBM ha poi acquisito Lotus Notes nel 1995 e ha creato una nuova divisione di IBM chiamata Lotus Notes Development.

All’inizio di dicembre 2018, IBM ha annunciato di voler vendere la sua acquisizione di Lotus Notes a un’azienda indiana, HCL, in un affare da 1,8 miliardi di dollari. HCL ha formalmente acquisito IBM Lotus Notes a luglio 2019.

 

 

La struttura di base di un database in Lotus Notes

Esaminando la struttura di base di un database in Lotus Notes, possiamo comprendere meglio come i dati vengono organizzati e gestiti. Supponiamo di voler creare un database per memorizzare informazioni di un concessionario automobilistico.
Iniziamo creando un nuovo database vuoto in Lotus Notes. All’interno di questo database, progettiamo un modulo che visualizzi alcuni campi informativi sulle automobili. Ad esempio, il modulo potrebbe includere campi denominati “MarcaAuto” e “ModelloAuto”.

Un modulo in Lotus Notes permette all’utente di visualizzare o modificare i dati relativi a un determinato record.

Questo strumento è estremamente flessibile, poiché consente di personalizzare l’aspetto visivo attraverso la scelta di colori, caratteri e layout. Va notato, però, che il modulo non memorizza effettivamente i dati; serve solo a rappresentarli in modo visivo.

Oltre ai dati che possiamo modificare, ogni documento in Lotus Notes contiene anche campi interni, come la data di creazione e l’utente che ha generato il record.

Tuttavia, la tabella che abbiamo esaminato rappresenta i dati principali con cui possiamo effettivamente interagire. Man mano che aggiungiamo nuovi documenti, questi vengono inseriti nella tabella interna, e possiamo anche modificare o eliminare i documenti, a condizione di avere i diritti di accesso necessari.

Supponiamo ora di voler aggiungere un nuovo campo per registrare il colore delle auto. Per farlo, non è necessario alterare direttamente il database; basta semplicemente aggiungere un nuovo campo nel modulo esistente. Quindi, apriamo il modulo “Informazioni sull’auto”, inseriamo un campo chiamato “ColoreAuto” e salviamo le modifiche.

Mentre pensiamo di più al database, forse vorremo anche tenere traccia delle informazioni sui proprietari. Creeremo un nuovo modulo chiamato “Informazioni sul proprietario” e aggiungeremo due nuovi campi al modulo, “Nomeproprietario” e “Telefonoproprietario”.

Inoltre, è possibile che campi simili esistano in moduli diversi, e nulla impedisce di aggiungere, ad esempio, un campo “Nome proprietario” anche nel modulo “Informazioni sull’auto”.

Anzi, potrebbe essere una buona idea per collegare insieme i dati delle auto e quelli relativi ai proprietari. I campi di un modulo in Lotus Notes non servono solo come contenitori di dati, ma possono anche essere programmati.

Ad esempio, il campo “NomeProprietario” nel modulo “Informazioni sull’auto” potrebbe contenere una formula che cerca i nomi dei proprietari esistenti e consente all’utente di selezionarne uno. In termini di SQL, questa formula eseguirebbe una query simile a questa:

SELECT DISTINCT NomeProprietario FROM InternalTable WHERE Form = 'Informazioni sul proprietario';

Un altro aspetto interessante del sistema di archiviazione dati di Lotus Notes è che i campi non sono strettamente tipizzati.

Questo significa che, anche se inizialmente un campo è impostato come numerico, è possibile successivamente aggiungere dati di testo allo stesso campo (modificando il modulo o inserendo dati a livello di codice).

In questo senso, i campi in Lotus Notes assomigliano più a colonne di un foglio di calcolo che a colonne di una tabella tradizionale. In un foglio di calcolo, puoi memorizzare numeri, testo, date e persino oggetti all’interno della stessa colonna. Lotus Notes funziona in modo simile: un singolo campo può contenere anche elementi come file allegati.

Anche se questo approccio potrebbe sembrare un metodo piuttosto “libero” di gestire i dati, in realtà semplifica notevolmente lo sviluppo e l’aggiornamento delle applicazioni.

Se hai bisogno di aggiungere nuovi campi a un modulo, basta semplicemente crearli. Se hai necessità di un modulo completamente nuovo con un set di campi diverso, lo puoi aggiungere con facilità. E se mesi dopo hai bisogno di modificare un campo da numerico a testuale, lo puoi fare senza preoccuparti troppo dei dati già presenti.

Non è necessario conoscere concetti come tabelle, normalizzazione dei dati o teoria dei database relazionali, perché Lotus Notes si occupa di tutto questo internamente.
Ora che abbiamo iniziato a memorizzare i dati nella tabella interna, il passo successivo è visualizzarli.

Nei database relazionali, utilizzeresti una query per filtrare e ordinare i dati; in Lotus Notes, invece, crei una vista.

Una vista è una rappresentazione tabellare di un sottoinsieme filtrato di dati dal database interno.

Oltre a definire il filtro (ad esempio, “mostra tutti i record creati con il modulo ‘Informazioni sull’auto'”), puoi specificare quali campi visualizzare nelle colonne e come ordinare e classificare i dati. Puoi anche aggiungere colonne programmate per visualizzare informazioni condizionali, totali, somme o altre manipolazioni dei dati.

HCL Notes Domino