Projektowanie baz danych w Lotus Notes

Na pewno nie raz zetknąłeś się z takim problemem, że program komputerowy, który wykorzystujesz przydałoby się trochę udoskonalić lub chociażby lepiej dopasować do swoich potrzeb. Jest kilka sposobów rozwiązania tego problemu.

Na pewno nie raz zetknąłeś się z takim problemem, że program komputerowy, który wykorzystujesz przydałoby się trochę udoskonalić lub chociażby lepiej dopasować do swoich potrzeb. Jest kilka sposobów rozwiązania tego problemu.

Po pierwsze można próbować zmienić program samemu. Drugie rozwiązanie to zwrócić się, jeżeli jest to możliwe, do autorów programów z prośbą wprowadzenia niezbędnych poprawek. Trzecia możliwość to kupienie innego programu. Przeanalizujmy te warianty po kolei. Większość programów (spokojnie można stwierdzić, że ok. 90%) stanowi produkt zamknięty, to znaczy nie dający się zmienić bez ponownego kompilowania.

Aby wykonać jakiekolwiek poprawki należy mieć zatem dostęp do algorytmów źródłowych. Te zaś nie są dostarczane razem z produktem handlowym. A jeżeli nawet, to nie zazdroszczę nikomu, kto chciałby rozpracować procedury zapisane w języku komputerowym innych twórców bez dokumentacji. Można jak wspomniano wcześniej zwrócić się z tym do autorów. Ale rzadko mamy z nimi bezpośredni kontakt. A poza tym trzeba by użyć przekonywujących argumentów, aby skłonić ich do dopasowania programu do naszych potrzeb - chyba że koszt nie odgrywa większej roli.

Pozostaje więc kupno innego produktu. Ale dalej nie mamy gwarancji, że po jakimś czasie eksploatacji znowu nie będziemy mieli potrzeby ulepszenia aplikacji. Lek na bolączki

Opisane problemy nie istnieją gdy wykorzystujemy Lotus Notes. Konstrukcja tego systemu umożliwia wprowadzanie zmian bezpośrednio podczas jego działania. Wprowadzona przez nas poprawka od razu jest aktywna, bez dokonywania dodatkowych operacji. A więc, po zakupieniu aplikacji obsługującej bazy danych w systemie Lotus Notes, dalsze zmiany i adaptacje mogą być dokonywane już przez samych użytkowników, tworzących środowisko zaspokajające ich potrzeby w optymalny sposób. Wynika to z faktu, iż warstwa projektowa tego systemu ma charakter segmentowy i aplikację można budować jak z klocków.

Podstawowym elementem bazy jest dokument. Struktura dokumentu jest w znacznym stopniu swobodna. Występuje w nim tekst statyczny, pola o określonym typie i formacie, nadające się do indeksowania oraz pola o wzbogaconym znaczeniu, w których można dołączać obiekty innego typu, np. arkusze kalkulacyjne, dokumenty z innych edytorów tekstowych, zdjęcia, rysunki czy nawet nagrania audiowizualne. Do zapewnienia przenoszalności tych elementów między różnymi platformami sprzętowymi i systemowymi Notes wykorzystuje mechanizmy DDE/OLE (Dynamic Data Exchange /Object Linking and Embeding) oraz nowy LEL (Link, Embeed, Launchýtoýedit).

Poprawianie programu

Do wprowadzania danych służą przygotowane przez projektanta formularze (Forms). Formularze mogą zawierać proste przyporządkowania do pól lub bardzej złożone procedury, transformujące dane na właściwą postać. Do szybkiego przeglądania istniejących dokumentów służą listy dokumentów (Views). Mogą być one zdefiniowane tak, aby dokumenty pojawiały się w sposób posortowany, a nawet wyselekcjonowany według podanej procedury. Tworzenie procedur jest banalnie proste - zestaw okienek dialogowych i specjalnych przycisków ułatwia pracę. Ich czytelność sprawia, iż nie ma potrzeby wnikliwego studiowania podręcznika aby zrealizować zamierzone zadanie. Wykonuje się to w sposób intuicyjny.

Programista ma do dyspozycji zestaw ponad stu funkcji lub komend. Formuły buduje się sklejając funkcje lub komendy z listy. Jeżeli nie mamy pewności czy wybrana funkcja jest właściwa, to po naciśnięciu klawisza F1 można uzyskać podpowiedź na temat jej składni, zastosowania i dziedziny. W komentarzu znajdują się także przykłady.

Projektując bazę można wielokrotnie stosować różne formuły i nie sposób wymienić je wszystkie. Do najczęściej występujących zaliczyć można definicje pól, kolumn i tytułów okien; procedury selektywne; klawisze pomocnicze; makroinstrukcje oraz algorytmy określające dostęp do wskazanych informacji. Są one realizowane ręcznie lub automatycznie w wyznaczonym czasie.

To działa!

Może sceptyków zdziwi, ale to naprawdę działa. System Notes z racji swojej uniwersalności zawiera wiele mechanizmów i nie sposób od razu ze wszystkich skorzystać. Jednak w miarę rozwoju naszych potrzeb sięgamy do coraz bardziej zaawansowanych rozwiązań. I wtedy okazuje się, że w znacznej większości, czyli w 95% nowe opcje działają tak jak byśmy sobie tego życzyli. Te pozostałe 5% częściej dotyczą naszego niewłaściwego postępowania niż wadliwego działania systemu.

Jedyne co mogłoby nas niezadowolić to fakt, iż do zaprojektowania jakiegoś zadania brakuje określonej funkcji lub procedury. Takim przykładem może być brak funkcji okresowych pozwalających na wykonanie działania w ustalonym cyklu.

Ponadto występuje duża trudność przy wskazywaniu wybranych dokumentów w sposób dynamiczny. Funkcje, które umożliwiają realizację tego zadania w wielu wariantach są niewystarczające. Dziedziczenie wartości z innych pól, chociaż jest możliwe i wykorzystywane w szerokim pasmie zastosowań, może jednak stwarzać problemy w pewnych wyrafinowanych sytuacjach. Odczuwa się w tym wypadku brak szerszej gamy algorytmów, ale samo zadanie nie jest niewykonalne. Wymaga tylko wykonania większej pracy aby osiągnąć zamierzony cel.

Ale pamiętajmy, że mówimy o przypadkach ekstremalnych. Dla bardzo wymagających klientów firma Lotus udostępnia za dodatkową opłatą pakiet API Tools Kit. Za jego pomocą zaawansowani programiści mogą dopisać nowe funkcje w języku C. Zresztą cały system Lotus Notes został zaprojektowany właśnie w tym języku.

Jak widać zakres możliwości programowych systemu Notes jest prawie nieograniczony. Ponadto można sądzić, iż niektóre z opisanych problemów znikną w kolejnej wersji tego systemu, która zapowiedziana jest na początek przyszłego roku.