110 likes | 311 Views
Udnyt Lotus Notes C-API fra Lotusscript Semaphor Lotusscript og Notes C-API Udnyt de features og kerne funktioner der ligger i Notes. Præsenteret af: Ronni Kahalani, Semaphor Udviklingschef / Systemarkitekt mail: ronni.kahalani@semaphor.dk web: www.semaphor.dk.
E N D
Udnyt Lotus Notes C-API fra Lotusscript Semaphor Lotusscript og Notes C-API Udnyt de features og kerne funktioner der ligger i Notes. Præsenteret af: Ronni Kahalani, Semaphor Udviklingschef / Systemarkitekt mail: ronni.kahalani@semaphor.dk web: www.semaphor.dk Trekronergade 147B, 2500 Valby, telefon: 35 300 700, fax: 35 300 701, web:www.semaphor.dk, email: info@semaphor.dk
Agenda • Hvad er Notes C-API’et? • Hvorfor bruge Notes C-API’et? • Eksempel: En simpel deklaration. • C-API- og LS datatype mapping • Fordele og ulemper • Demo af Lotusscript og brug af C-API • Hvordan kommer man i gang? • Afslutning
Hvad er Notes C-API’et • Samling af kerne funktioner og datatyper som Notes/Domino er bygget op af. • Over 937 fuktioner • Over 515 datatyper • Over 717 symbolske værdier/konstanter • Findes også som C++, men med mere begrænset funktionalitet. • API’et giver mulighed for f.eks. • Stand-alone applikationer • Lotus Domino Server add-in tasks • Notes menu add-ins • Notes import og eksport add-ins • Database hook drivers • Extension manager hooks • Drivers til eksterne (ikke-Domino) databaser • Brug af API fra Lotusscript • O.m.a.
Hvorfor bruge Notes C-API’et? • Løse performance krævende udfordringer. • Brug af kerne funktionalitet, som ikke findes i LS eller @-funktioner. • Udvikling af ny server og klient funktionalitet • Typiske eksempler på brug af API: • Lokal template design refresh. • Opdatering af NAB, ved online registrering af web brugere. • Udnyttelse at interne Notes GUI elementer (eks. Progressbar) • Server tasks • Update,Replica,Router,AMgr,AdminP,CalConn,Sched,HTTP, DIIOP… • Server og klient EM hooks ( spam/virus, extended logging og custom apps) • Dynamisk oprettelse af notes dokumenter og design (agenter, views, forms…)
Eksempel: En simpel deklaration Her er et par grundlæggende Notes C-API funktioner: STATUS LNPUBLIC NSFDbOpen(char far *PathName, DBHANDLE far *rethDB); // Åbner en database. STATUS LNPUBLIC NSFDbClose(DBHANDLE hDB);// Lukker en database. Defineres i LotusScript/Visual Basic som følgende (on a Windows platform): Declare Function MyDbOpen Lib "nnotes.dll" Alias “NSFDbOpen” (Byval PathName AsString, _rethDB As Long) As Integer Declare Function MyDbClose Lib "nnotes.dll" Alias ”NSFDbClose” (Byval hDB AsLong) AsInteger %REM Eksempel på brug af deklarerede API metoder. %END REM Sub Intialize Dim dbHandle As Long Dim status As Integer status = MyDbOpen(”c:\lotus\notes\data\names.nsf”, dbHandle) status = MyDbClose(dbHandle) End Sub
C-API- og LS datatype mapping Fra API- til LotusScript datatype • Pointer (*) variabler som ByRef. • Strenge mappes som ByVal. • Brugerdefinerede data typer som ByRef. • NULL parameter til API funktioner,deklareres som ByVal Integer (0). 1 – 4 byte value. 2 – in general, sometimes Integer.3 – in R5+, cannot convert pre-R5.4 – Integer on Mac and some UNIX.
Fordele og ulemper Fordele • Løse udfordringer, som LS og @Formula ikke kan ”out-of-the-box”. • Mulighed for performance optimering. • Udnytte eksisterende kerne funktionalitet. Ulemper • Følsomheden, forkert brug af C-API kan crashe server og klient. • Platform og versions afhængighed. (når flere replika kører på forskellige OS). Tips: • Vær sikker på at applikationen ikke skal ligge på forskellige OS. • Diskuter en alternativ løsning, da API-et principelt kan ændrer sig senere. • Etabler staging/test miljø, hvis det ikke findes pt.
Demo af Lotusscript og brug af C-API • C-API • ProgressBar • ServerConsole • Server ping • WIN-API • Registry
Hvordan kommer man i gang? Hent følgende databaser: • Lotus C API Notes/Domino User Guide v6.5 [download] [vis online] • Lotus C API Notes/Domino Reference v6.5 [download] [vis online] Læs artiklerne: • C API programming for Lotus Notes/Domino [vis online]
Afslutning Tak for jeres interesse!