DISKUSE
Jak omezit vkládání textu do textového pole z kláv... 
04.04.2024 13:55

HCL Domino na NAS QNAP (1)
20.02.2024 10:34

Vložení přílohy do dokumentu MS Word (3)
14.02.2024 20:54

Problěmy s diakritikou. (4)
06.02.2024 17:34

AI pomocnici 
15.01.2024 10:16

Export do pdf souboru (1)
12.01.2024 23:11

Agent přestává fungovat (1)
18.11.2023 06:42

RTF - Computed (2)
19.10.2023 13:00


ŠKOLENÍ


REKLAMA


KOMENTÁŘE

Komentáře ke článku "Zamykání dokumentů v Lotus Notes"


lubm
20.11.2003 10:18
Pěkné, pěkné
Nemůže ale nastat problém, pokud bude zámek používat hodně uživatelů, se zápisem každé 2 minuty?

Martin
20.11.2003 12:16
Davide, ty ....
... (to slovo se tady nehodí). Spouštět agenta na serveru každých 5 minut na databázi, ve které u velkých firem může vznikat mraky dokumentů? Každé dvě minuty něco dělat? Chudák mašina. Nemožnost otevřít dokument do editace přímo z pohledu? Rušení zámku v QueryClose, které nemusí proběhnout?
Ale ta finta s universalID je velice pěkná, za tu tě chválím :-)

Mamka
20.11.2003 13:04
To "Martin"
Pochvala od taťky vždycky potěší, někdy i dojme :)

strejda
20.11.2003 13:46
ma to jeden hacek
teda spis hak, z principu to nelze aplikovat na db. distribuovane na vice serverech;
a napad replikovat db. zamku mezi servry neni z nejstastnejsich (jemne receno), jak by si mozna vzpomnel i tatka :-)))))

Vít Zachodil
20.11.2003 13:46
Více aplikačních DB, repliky DB, atd.
Protože je UniversalID jednoznačné pouze v rámci jedné DB nelze použít jednu zamykací DB pro více aplikačních DB.
Tzn. pokud je tento algoritmus používán ve více DB, pak pro každou aplikační DB musí existovat právě jedna zamykací DB.
Aby bylo možné pro více aplikačních DB používat pouze jednu zamykací DB, bylo by nutné použít jako klíč kombinaci db.ReplicaID + doc.UniversalID, se kterým by ovšem tento algoritmus nemohl fungovat.
Metody uvedené třídy by bylo vhodné používat nejen ve formulářích, ale i v agentech a při použití metody ws.dialogbox(...).
Není tam ošetřeno zamykání stejných dokumentů na různých replikách, a kdoví, jak by se to chovalo třeba na clusteru.
Jako námět k řešení dílčích problémů se zamykáním ve v5 je to ovšem skvělé.

deda
20.11.2003 13:53
to: strejda
Nevím jestli si vzpomene taťka, že byl telátkem.

strejda
20.11.2003 14:09
to deda
to neres :)
ale ma pravdu; v praxi u casto pouzivany db. by server nedelal nic jinyho nez prubezne ukladal zamky a poustel periodickyho agenta;
jako lepsi reseni se mi zda smazani nesmazaneho zamku spravcem pomoci rucne spousteneho agenta, jak uz to ostatne kdysi okopiroval "mrouskal" z literatury, tusim z "advisora"

Martin
20.11.2003 14:42
To: Vít
Vít správně připomenul jednu věc - agenty. Formuláře jsou totiž mnohdy pouze polovina úspěchu, protože agenti na pozadí či synchronizace dokumentů při ukládání tomu nadělají pěknou neplechu.
Co se týká více serverů, tak tam se ta lokovací databáze holt musí otevírat pouze na jednom z nich - ostatně tak to funguje i v R6.

Vít Zachodil
20.11.2003 15:56
Kdo to má zamčeno?
Bylo by dobré doplnit kdo a jak dlouho to má zamčeno. Může to být užitečné např. v situaci, že uživatel do dokumentu něco napíše, uloží, ale okno nezavře (nechá v editačním režimu) - a jde na kafe (poradu, ...). Mohlo by to být asi takto:
Do metody QueryModeChange doplnit před Me.doc.Save zapsání autora zámku. Pokud se Save nepodaří (Error 4000), pak najít v zamykací DB příslušný exitující doc a z něj vzít jméno uživatele, který dokument uzamkl. V Msgbox pak zobrazit něco jako "Uživatel XY edituje tento dokument od 20.11.2003 10:37 (127 minut)".
Z tohoto hlediska je trochu divné, že při případném vytváření nového zamykacího dokumentu v metodě PostSave chybí kontrola na už existující zámek, která by měla být stejná jako v metodě QueryModeChange včetně errorhandlingu.

David Bulejcik
20.11.2003 16:34
Hmm...
No je videt ze mnohe tento prispevek zvednul ze zidle ... domnival jsem se ze to bude z jinych duvodu nez tady uvadeji( cekal jsem vice objektivity a mysleni jinym smerem.. ) ale budiz... pokusim se zareagovat taky...
1.)predevsim mne strasne nastvala jedna vec... myslel jsem si ze moje prezdivka "bubux" je nejlepsi.. ale ted si myslim ze na "mamku" a "strejdu" se proste nechyta... :)))
2.)takze ... globalne k tomu reseni... delal jsem ho i proto ze v sestkach i kdyz si udelate cluster nebudete mit zaruku korektneho fungovani... jen se zamyslete...:)
takze jak to udelat.. jednoduse.. nedavno tady byla debata o linuxech.. na linuxech je hezka jedna vec.. je to v porovnani s windows skvela sprava pameti... proto muze byt uptime na linuxech klidne 1 rok... takze reseni spociva v tom ze si vezmete server na ktery nainstalujete linux a lotus s agentmanagerem... tam nakopirujete zamky pro kazdou databazi a tim zarucite dostupnost, vykon a stabilitu...
toto reseni je pro firmu ktera ma vic nez 2000 useru na LN... proto jsem se soustredil na vykon...
3.)nenapadlo me ze bych napsal rozhrani pro backend jenom proto ze to odemne nikdo nechtel... :)
nevidim v tom problem aby si to kazdy udelal sam... myslim ze tim ze jsem to dal do tridy je zcela transparentni co se tam deje... a pro backend to bude mnohem jednodusi...:)
4.) mrzi mne ze si nikdo nevsiml ze tento prispevek resi i dalsi vec kterou pokud vim nema nikdo u nas v lotusech vyresenou - je to cislovani v realnem case... jen se zkuste zamyslet... je to hodne zajimave tema a myslim ze tento clanek by jej mohl rozcerit...
5.) Re: Martin
Cau draku ... nebuzeruj tolik stejne to budes pouzivat protoze nic lepsiho neznas..:) a hlavne si to otestuj a pak mluv o vykonu...pripadne si udelej jenoho agenta pro vsechny db... mimochodem jestli je tam Pavel tak mu rekni ze me nastval ze neodpovida na zpravy...:( dik a ciao..
6.) Re: Vit Zachodil
Je to o vykonu, proto tam neni uzivatelske jmeno - skoda kazde milisekundy... pokud mate potrebu to tam mit muzete si tu tridu zderivovat a jmeno tam pridat...

Emil Čelustka
20.11.2003 21:18
Flame
Když se tak koukám, jak pánové do Davida cupujete na kousky, napadá mě jenom jediné: Kdo z vás sebere odvahu a napíše nám článek, ve kterém nám ukáže jak se to má správně dělat? David odvahu sebral a patří mu za to nejen obdiv, ale i dík.
Davide, nedej se otrávit :-)

František Cimmer
21.11.2003 11:42
Kritika ...
To že se tady na Davida snesla kritika znamená, že to lidi zaujalo. Je tu spousta námětů, které se dají jistě rozvinout a pracovat na zámcích dále. Mohl by z toho dokonce vzniknout "Open" projekt ...
Chtěl byhc tady vyvrátit jenom některé kritiky...:
1) agent na mazání dokumentů - u velkých firem (co to je velká firma ?) kdy na jednom serveru pracuje řekněme 2000 (a to už je sakravelká firma) lidí by to znamenalo v databázi cca 2000 - 3000 dokumentů/zámků (vetšina lidí pracuje pouze na jednom dokumentu zároveň a to ještě ne všichni - na jednu db je jedna zámková db pro tento příklad). Jednoduchý formulový agent si s takovým množstvím dokumentů poradí do půl minuty maximálně, takže bych to jako problém vůbec neviděl.
2) Distribuované databáze jsou problém (nepočítám do toho clustery), ale to nelze vyřešit snad nikdy...
3) použití jedné databáze pro více aplikací by znamenalo úpravu třídy, jak naznačil Vít, ale ztratilo by to kouzlo použití universalid a jeho jedinečnosti ..
4) clustery - i v řešení kdy by se používal jeden server se zámky, by šel implementovat fallback na cluster v případě že by tento server vypadl (odchycení chyby zápisu/otevření db a následné použití OpenWithFailover aby se nemusel někde konfigurovat seznam serverů...). pár zámků by sice chybělo, ale je to lepší než aby lidi nemohli pracovat vůbec.
Tak co ? Dovedeme to k dokonalosti ? :-)

Martin
21.11.2003 12:33
Šití :-) (ale dloouhé)
My do Davida šijeme, ale myslím, že víme proč. Důvod je jednoduchý, neboť asi dost čtenářů tohoto článku toto řešení použije. Ať už proto, že lepší nemají, nebo protože nemají žádné. Tak proč krátkou (v tomto případě už pěkně dlouhou) diskuzí to nevyladit skoro k dokonalosti? Takže Davide, určitě se nenech odradit, telátkama jsme mnozí dodnes, ale každá kritika tě trochu napruží a pomůže být příště lepší.
Zkus se nad celým problémem zamyslet nejen očima svýma, ale i managera (kvůli nějakým zámkům pořizovat další server, licenci, na linuxu - kdo to má platit (3000$ za licenci, HW, člověka který to bude znát a starat se o to)), administrátora (ten server nebude dělat nic jiného než mazat, pokud navíc pro každou zamykanou databázi musím mít vlastní databázi zámků tak to znamená, že mi ten agent poběží klidně v 10 databázích, možná více; navíc u tvé organizace s 2000 lidma se mi tam každé 2 minuty bude něco ukládat - ano drobek, ale od dvou tisíc lidí. Nejenom že se server nezastaví, ale pořád bude lítat něco po síti), uživatele (který ať už z toho že jsi na to zapomněl, nevěděl, neudělal nebude mít možnost otevřít dokument pro editaci přímo z pohledu) a i z pohledu vývojáře (kde by bylo vhodnější zámek rušit až v Terminate proceduře).
To všechno nahoře jsou malé hlouposti, které velice snadno opravíš a potom se ten tvůj kód bude dát použít v klidu, navíc když se doplní jméno uživatele. To jsou ty drobnosti, které pro tebe nejsou problém, ale pro velkou část lidí, kteří si to tady přečtou ano. Takže když to bude podformulář, který se vloží kamkoliv tak budou úplně happy a nebude jim vadit když se do stavové řádky bude psát tvůj copyright. A to je důvod proč šiju, protože myšlenka je dobrá a pokud bych napsal článek tak bych tu cestu i třeba použil, nebo by se ta moje příliš nelišila - proto je zbytečné ho psát, protože by to mohlo vypadat jako vykrádání Davidova nápadu.
A máš ještě jednu výhodu Davide - začal jsi později, s novějšími verzemi, a to je výhoda, která se nezdá. Postupně se totiž vlastnosti uvolňují, ty které dřív byly pouze pro čtení jsou i pro zápis a pokud po tom vysloveně nejdeš tak tě to nenapadne, že by to mohli tak šikovně změnit.

Martin
21.11.2003 12:35
To: Franta
Koukám že to vidíme stejně :-) Ale půl minuta každých pět minut a dejme tomu v 10 databázích je dost :-)

David Bulejcik
21.11.2003 15:47
Re: Martin
Bohuzel musim trvat na tom ze ten server v organizacich ktere maji 2000 useru na notesy neni zaaaaadny problem... je to mrknuti okem... a ten vykon je tam taky v pohode... tady plne souhlasim s p. Cimmerem ... ale klidne se zeptej u vasich klientu... Tvuj nazor s verzemi nesdilim... nema to s verzemi nic spolecneho ... staci cist help ale je to hlavne o mysleni...
mas sice pravdu ze to neni universalni ale neslysel jsem od tebe konstruktivni napad... ten pohled a zabraneni otevreni na ctrl+e je tam schvalne... tady nemame o cem diskutovat vsichni dnes maji mys... nicmene po konzultaci s jednim clenem "rodiny" jsem se rozhodl, ze to tedy tak receno dodelam do finalni faze... tzn. ze jedine co se zmeni( protoze na ostatnim ackoliv se to nezda jsem pracoval asi dva dny precetl jsem hodne publikaci, tabulek performance metod skriptu i notestimeru atd... ) bude odstraneni toho agenta z databazi zamku( udelam serverovej task ktery bude simulovat praci tohoto agenta... pro konfiguraci tasku bude jedna databaze nastaveni se seznamem db zamku... ktere bude prolezat ) a vytvoreni univerzalniho rozhrani i pro pouziti na agentech a jinych beckendovych tridach...
timto to pro mne vicemene konci...
vic pro to asi udalat nepujde a ani nemam o to zajem ...
podle mne je to reseni dostatecne a bude ho pouzivat vetsina koderu a firem... … je predce nativni lotusovske.. :)
nevylucuji vsak drobne upravy... pokud te napadne neco kloudneho...
tato uprava bude v dohledne dobe publikovana na svetnotes...
mimochodem pripravuju mnohem slozitejsi vec a tou je cislovani v realnem case tak doufam ze to uz budes konstruktivnejsi .. :)
zatim ahoj a dik za prispevek... i kdyz na muj vkus trochu moc napruzenej ale mozna ze jsem egocentrik... :)

cifra
21.11.2003 15:49
To: Martin
S tím agentem to pořád není tak horké. Všichni tady zapomínají na jednu věc. On bude mazat pouze "zapomenuté" zámky. čili celkem nula nula nic. a navíc pět minut není dogma. takovýto agent může běžet třeba jenom jednou za dvě hodiny. U většiny "zapomenutých" zámků si toho lidi ani nevšimnou a ti co si všimnou se prostě spojí s adminem a tento vyřeší anebo to zkusí později, když admin není. Koneckonců v takto velkých firmách si ten člověk zajde na kafíčko, cigaretku (má k tomu důvod....) :-))

Martin
21.11.2003 16:08
To David
Jsi egocentrik :-) A konstruktivní řešení tam jsou - mít to v podformuláři a místo v QueryClose v Terminate proceduře.
Co se týká myši tak máš pravdu, ale zároveň máme všichni v tlačítkové liště ikonku pro editaci a mnohdy tohle tlačítko bývá i v pohledech.
Server - mrknutí okem ano, ale pořád se o to musíš starat, musíš pro to mít místo.
Agent - víc než ten agent (jak píše Franta nebude nic mazat) mě třeba trápí to pravidelné updatování.
Takže mě napadají dvě kloudné věci - podformulář a Terminate procedura. Naproti tomu server task považuji za pěknou hru, ale na server si ho nepustím - už proto že se do něj nemohu kouknout a zjistit co dělá.
Užij víkend

cifra
21.11.2003 16:09
Bezpečnost
Napadla mě ještě jedna věc, a to bezpečnostní hledisko.
Hypotetická situace (nemám experimentálně ověřeno):
v klientovi mám nastaveno automatické odhlašování po cca 5 minutách neaktivity. Edituji dokument, který má implementovány zámky. Někdo mě odvolá, jdu na kafe nebo na oběd či něco jiného a dokument nezavřu, nechám ho v edit módu (u běžných uživatelů obvyklá situace). Notes timer bude každé dvě minuty něco ukládat na server, čímž simuluje mou práci a stanice se mi nikdy neodhlásí a kdokoli tam příjde může s mými admin právy všechno.
Jak 100hoven ?
A teď diskutujte a někdo to třeba i vyzkoušejte jestli to takhle opravdu je ... :-))

cifra
21.11.2003 16:17
Server task (to: martin)
Ale no tak člověče...
Antivirus na dominu máš ? A taky nevíš co dělá a co by mohl dělat.
Chápu že je rozdíl mezi Symantecem, MicroTrendem či Grisoftem a nějakým bubuxem, ale je to řešitelné.
Myslím, že david je ochoten poskytnout zdroják k nahlédnutí anebo tady může jako garant vystupovat SvětNotes, který u takových věcí může udělat audit...

bubux
22.11.2003 15:39
hehe...
Re: Marin..
1.queryclose vzhledem k tomu ze se jedna o vizualni komponentu je podle me dostatecne... kazdopadne chapu ze to co rikas je programatorsky cistejsi... ale kdyby to tak melo bejt tak by to bylo v destruktoru objektu tridy locker.. myslim ze vis proc...
2.do subformu to nedam protoze jak jsem psal udelam pro to univerzalni rozhrani i pro backend a bude pak na kazdem jednotlivci kde to pouzije... ale urcite velkym prinosem by bylo kdyby nekdo ( napr. ty ) udelal k tomu dokumentaci a priklady implementace... budu za to moc vdecny..
3.myslim ze je jasne ze o zadne autorske prava na svoje kody nestojim a ze je delam "open"... proto zverejnim i zdorojak na server task a muzes si ho zkompilovat sam...
Re:Cifra
1.)S tim timeoutem na zamykani lotusu to je dobra pripominka... kouknu se na to... ale budu rad kdyz se kouknou i ostatni... :) ( i rodina :)) )
2.)Bude to jako open source... delal jsem to i proto ze pripravuju opensource projekty na domino... bude to vse nekdy zacatkem pristiho roku na "www.b-elt.com" zatim je tam jenom obrazek meho idolu... a budu moc rad kdyz se na tom bude svetnotes spolupodilet... fondy - myslim ty vedomostni na to mate...:) zatim jsem ziskal prislib Mira Uhlara ... ostatni ktery budou mit zajem o spolupraci na tomto projektu me muzou kontaktovat na adrese "bubux@centrum.cz" a seznamim je s podminkami pristupu do party...:)
P.S. Omlouvam se vsem ze mam skluz se tretim dilem oop ale jak jsem uz deklaroval bude to o organizacni strukture... protoze ji chci udelat taky jako kvalitni a univerzalni "open" reseni potrebuju jeste konzultovat svuj navrh s auditorem na iso... schuzka probehne tento tyden takze v prubehu pristiho tydne by to melo viset na svetnotes... :) za pochopeni dekuju...

Junior
23.11.2003 18:25
Re:he he..
On to Martin myslí dobře. Protože ne vždy děláš s dokumenten na frontendu. A když zpracováváš třeba agentem víc dokumentů a nechceš aby je někdo měnil v průběhu činnosti tak si ho na backendu zamkneš a potom zase odemkneš a to myslím si MArtin navrhoval aby jsi udělal, protože né každý pracuje s LS a takovéto funkce by radši použil už rovnou od autora.
Jinak si myslím, že je to dobrý nápad s tím open source vývojem. Ještě sehnat nějaké sponzory, aby se třeba z tohoto projektu mohly třeba vydávat knihy o LS. Pokud vím tak jeden člověk má něco připravené o Programování a Správě LN , ale problém je, že na to aby to vydal nemá finance.

To: Junior
29.11.2003 21:01
beckend
no martin mluvil hlavne o terminate a subformu... to nema s backendem nic spolecneho ... respektive na backend jsem zareagoval uz predtim kdyz jsem se vyjadril ze napisu univerzalni tridu pro zamykani... tady jsem to jeste dotahl tim zpusobem ze trida bude zamykat n dokumentu... tzn., ze kdyz budete pracovat s collection na backendu, zamknete vsechny dokumenty se kterymi budete pracovat... dalsi rozsireni bude v tom ze budou dve tridy... ta druha bude ukladat do zamku jmeno uzivatele ktery ji vytvoril a bude pocitat dobu od zamknuti dokumentu(tridy budou mit stejny nazev, meni se jen include)... dalsi a vypada to tak ze zatim posledni veci je to ze jsem napsal ten task... zatim jsem ho zkompiloval jen pro win32... testujeme ho s p.Cimmerem a s Martinem... v kratke dobe se tedy muzete dockat uvolneni dalsi verze tady na svetnotes... pokud nekoho napadlo jeste neco zajimaveho sem s tim... protoze dalsi verze bude az po novem roce... :)

pmtv
15.12.2003 19:02
zajímavý článek
Velice zajímavý článek (který jistě bude dobrou inspirací vývojářům) a jemu odpovídající důkladná kritika (která asi také). Je patrno z příspěvků diskuze účastnících se, že jim je tématika velice známá:-) Davide, hezky OOP zpracovaná a okomentovaná knihovna.

Dmitri
26.01.2004 10:55
V R6 NotesTimer neni stabilni
RE na: "Stává se to výjimečně, ale tento stav musíme ošetřit. K tomu nám poslouží třída notestimer. Po přepnutí dokumentu do režimu editace budeme v určeném intervalu (já jsem si dal dvě minuty) ukládat dokumenty zámků. "

V R6 NotesTimer neni stabilni kdyz ve spoustecim Timer -eventu pouzivame nekterou z metod jako napr.: db.GetDocumentByUNID, doc.Save . (Mluvim o db. umistenou na serveru). Casto se stava ze timer se sekne o 1-3 minuty a Notesy cekai az ho to otpusti :)

bubux
06.02.2004 19:16
ee..
Na sestkach nedelam takze jsem to ani netestoval....
Brzo bude locker pristupny na webu open source svetnotes, potom se budou resit nove verze aby nedoslo k rozptilu... Ja osobne pouzivam locker ve verzi ktera bude zverejnena na R5 a musim rict ze se to jevi jako velmi spolehlive a vykonne reseni... kazdopadne jsem moc rad za tuto pripominku a budu ji brat na vedomi v nove verzi... dekuji...