TCL Labs: IBM Domino jako databáze pro webovou aplikaci psanou v jiném webovém prostředí - 2. část - data z LN zobrazujeme pro čtení a editaci

David Marko  18 January 2010 09:50:02
Vítejte u pokračování série o možnostech používání Domina jako databáze pro webové aplikace napsané v jiných systémech. V prvním díle http://blog.tcl-digitrade.com/blogs/tcl-digitrade-blog.nsf/dx/06.01.2010090214DMABFG.htm jsme si ukázali, jakým způsobem je možno používat Domino server jako externí databázi pro naši aplikaci napsanou v jiném systému. Jak jsem viděli, Domino server je schopen velmi elegantně poskytovat data ve formátu JSON, který je velmi dobře zpracovatelný ve většině programovacích jazyků. Použitím autentizace taktéž dostávame data, která jsou dostupná pouze pro přihlášeného uživatele a je tak zachována primární bezpečnost Lotus Notes databáze.

Základní funkce Domino serveru umějí poskytovat data v JSON formátu pouze ve formě LN pohledu. Pro konverzi Lotus Notes dokumentu do JSON formátu můžeme využít knihovnu Lotus Scriptu (http://json.org ). Pomocí této knihovny získáme přesnou reprezentaci LN dokumentu se všemi políčky v JSON formátu (pomocí zmiňované knihovny je možno provádět serializaci do JSON formátu i pro kolekci LN dokumentů tzv. NotesDocumentCollection) .

Image:TCL Labs:  IBM Domino jako databáze pro webovou aplikaci psanou v jiném webovém prostředí - 2. část - data z LN zobrazujeme pro čtení a editaci

JSON formát LotusNotes dokumentu pak pro naši situaci vypadá takto:
{"C327639F3233F9D5C12576940037ABE8":
    {"Authors":["CN=David Marko\/OU=IFT-DIGI-TRADE\/O=DT-NET\/C=CZ"],
      "Attachments":0,"AttachmentNames":[""],
               "AttachmentLengths":[""],"AttachmentModifiedTimes":[""],"Created":"2009.12.22 11:08:04 UTC+0100",
               "HttpURL":"http:\/\/merkur.tcl-digitrade.com\/__C125769000318630.nsf\/0\/C327639F3233F9D5C12576940037ABE8?OpenDocument",
               "IsResponse":false,"LastAccessed":"2010.01.10 11:56:49 UTC+0100","LastModified":"2010.01.10 11:56:49 UTC+0100",
               "NoteID":"902",
               "NotesURL":"notes:\/\/Merkur@TCL-DigiTrade\/__C125769000318630.nsf\/0\/C327639F3233F9D5C12576940037ABE8?OpenDocument",
               "ParentDocumentUNID":"","UniversalID":"C327639F3233F9D5C12576940037ABE8",
               
               "Items":
                {"originalmodtime":{"Values":["2010.01.10 11:56:54 UTC+0100"],"Type":"DATETIMES"},
                 "form":{"Values":["company"],"Type":"TEXT"},
                 "index":{"Values":["C327639F3233F9D5C12576940037ABE8"],"Type":"TEXT"},
                 "company_name":{"Values":["Borneo s.r.o."],"Type":"TEXT"},
                 "city":{"Values":["Ostrava-Svinov"],"Type":"TEXT"},"zip":{"Values":["72100"],"Type":"TEXT"},
                 "$updatedby":{"Values":["CN=David Marko\/OU=IFT-DIGI-TRADE\/O=DT-NET\/C=CZ"],"Type":"NAMES"},
                 "$revisions":{"Values":["2009.12.22 11:08:04 UTC+0100","2009.12.22 11:09:02 UTC+0100"],"Type":"DATETIMES"}
             }
       }
}

Pro naše potřeby si tak vytvoříme Lotus Notes agenta, kterého budeme z naší webové aplikace volat, a kterému jako parametr poskytneme UNID Lotus Notes dokumentu, který budeme chtít vytáhnout. Agent pak dle zadaného UNID daný dokument v databázi nalezne, provede jeho serializaci do JSON formátu a pošle nám jej do naší aplikace. Jelikož aplikaci píšeme v JAVA frameworku, pro práci s Domino serverem jsme si připravili několik objektů, které nám vše usnadní a do jisté míry budou kopírovat API, které jsme zvyklí používat v Lotus Scriptu.

Image:TCL Labs:  IBM Domino jako databáze pro webovou aplikaci psanou v jiném webovém prostředí - 2. část - data z LN zobrazujeme pro čtení a editaci

Pomocí celého mechanismu pak můžeme položky zobrazovat ve formě pohledu a jednotlivě je následně rozkliknout v zobrazení pro čtení. Na příkladové obrazovce vidíme zobrazeny všechny položky dokumentu v editační formě tak, abychom mohli dokument upravit a uložit jej zpět do Lotus Notes databáze. Jednoduché uživatelské rozhraní se všemi imlementovanými vlastnostmi vypadá takto:

Seznam položek ...

Image:TCL Labs:  IBM Domino jako databáze pro webovou aplikaci psanou v jiném webovém prostředí - 2. část - data z LN zobrazujeme pro čtení a editaci

Zobrazení jedné vybrané položky pro čtení ...

Image:TCL Labs:  IBM Domino jako databáze pro webovou aplikaci psanou v jiném webovém prostředí - 2. část - data z LN zobrazujeme pro čtení a editaci

Zobrazení jedné položky s vybranými poli pro editaci ...

Image:TCL Labs:  IBM Domino jako databáze pro webovou aplikaci psanou v jiném webovém prostředí - 2. část - data z LN zobrazujeme pro čtení a editaci
Comments
no comments availabe. Be the first!

Diskuse byla uzavřena.
TOPlist