NOTESSIDAN

Allt om Lotus Notes & Domino




db.GetDocumentByUnid och fel 4091
GetDocumentByUnid är en metod man kan använda för att hitta ett dokument i en databas om man vet dokumentid't. Problemet med denna funktion är att om dokumentet inte finns i databasen så returnerar den inte "Nothing" som alla andra funktioner gör i Lotusscript utan den genererar felet 4091.

Jag blev lite trött på detta så jag gjorde en funktion som ser till så att jag får tillbaka Nothing om dokumentet inte hittas.

Oftast när man använder denna funktionen så är det för att hitta ett svarsdokuments förälder. så i denna funktion behöver man bara skicka in svarsdokumentet, funktionen returnerar då föräldradokumentet eller Nothing och man kan på detta sätt hantera detta fel på ett bättre sätt i den kallande rutinen.

Function GetDoc(responsedoc As notesdocument) As NotesDocument On Error Goto e Dim parentdoc As NotesDocument,db As notesdatabase Set db = responsedoc.ParentDatabase Set parentdoc = db.GetDocumentByUNID(responsedoc.ParentDocumentUNID) If parentdoc Is Nothing Then ' Detta kommer aldrig hända Else If parentdoc.IsValid = False Then Set GetDoc = Nothing Else Set GetDoc = parentdoc End If End If Exit Function e: If Err = 4091 Then Set GetDoc = Nothing Exit Function End If End Function



Relevanta Poster på Notessidan:



Publicerad 2006-10-09 | Kommentarer: 8 | Läsningar: 1505
Kommentarer

Andrei Kouvchinnikov ( 2006-10-11 02:09:42 ) Websida
Vad händer om parentdoc är Reader-skyddad? :)

Sökteknik som förlitar sig helt på Document UNID för att göra dokumentsökningar med unika keyword: http://www-128.ibm.com/developerworks/lotus/library/digestsearch/

Thomas Adrian ( 2006-10-11 13:14:04 ) Websida
Hm..det var en bra fråga.
Jag vet faktiskt inte , förhoppningsvis returnerar min funktion Nothing.

Förövrigt, jag har flummat igenom din artikel om digest search och det verkar vara väldigt kraftfullt.

Funktionen FastSearchByKey saknades i artikeln. men när jag laddade ner databaserna funkade det fint.

Hälsningar
Thomas

Andrei Kouvchinnikov ( 2006-10-11 15:39:39 ) Websida
Den heter FindDocByDigestKey i artikeln. Det var en liten funktionsnamnändring i mitten av artikelskrivandet som orsakade att det står kvar FastSearchByKey (det gamla namnet) på vissa ställe.
Mats Järkmyr ( 2006-10-13 00:29:09 )
En enkel lösning på problemet med felmeddelandet är att göra "on error resume next" innan GetDocumentByUNID och sedan återgå till felhanteringen efteråt. Då blir doc Nothing om det inte hittas:

On Error Goto e
Dim doc As NotesDocument,db As notesdatabase
Set db = responsedoc.ParentDatabase
On Error Resume Next
Set doc = db.GetDocumentByUNID(responsedoc.ParentDocumentUNID)
On Error Goto e
If doc Is Nothing Then
...
Thomas Adrian ( 2006-10-13 11:09:23 ) Websida
ja, så kan man göra fast det blir så ful kod ;-)

Dessutom kommer din lösning antaligen returnera ett dokument om det är borttaget och det finns en stubbe kvar i databasen.

/T
Daniel Bjarsch ( 2006-10-16 20:15:33 )
Intressant! Själv skulle jag använda "vanlig" felhantering (on error goto errorHandler, tex). I errorHandlern fångar jag felet mha en selectsats, Case Err 4091. Där kan jag sedan sätta doc till nothing, kolla om dokumentet är deletat osv...



Thomas Adrian ( 2006-10-17 00:03:27 ) Websida
Daniel,

Jo, så kan man göra, fast syftat med funktionen var att slippa just den felhanteringen.


/Thomas
Jocke ( 2006-10-18 14:47:04 )
Många kockar..

Själv skulle jag istället endast fånga error 4091, så slipper man en massa kod.


On error 4091 goto e
eller
On error 4091 resume next

.....



Sök på Notessidan
Thomas Adrian
ThomasCertifierad utvecklare och administratör inom Notes & Domino

Kontakta mig







Senaste Sökningarna på Notessidan
Sön - sharepoint (R:1)
Sön - räkna and antal and besökare (R:0)
Sön - browser (R:17)
Sön - stoppar and mail (R:1)
Sön - korrupt (R:3)
Sön - böcker (R:0)
Sön - kalendern (R:12)
Sön - feature (R:15)
Sön - print and mime (R:2)
Sön - länka (R:0)
Sön - databasen (R:94)
Sön - access (R:47)
Sön - outlook (R:15)
Sön - webanvändare (R:0)
Sön - google and maps (R:6)
Sön - juffe (R:2)
Sön - uidoc.print (R:1)
Sön - java and lotusscript (R:26)
Sön - besök (R:0)




Databasstatistik Blogg
Uppdateras var 15:e Minut

Antal Poster:562
Antal Kommentarer: 1381
Alla sidvisningar idag:
Unika Besökare idag:
Databasstorlek: 180,75Mb
Fixup: 2019-07-17 00:31:15
FT:2019-07-18 00:11:29
DB Procent använd: 98,9
Antal Agenter: 42
Antal Formulär: 65
Antal Vyer: 60
Antal Dokument: 7933
Antal Image Resources: 108
Antal Subformulär: 18
Antal Scriptbibliotek: 11
Totalt Antal Designelement: 576
Antal Attachments: 159
Antal Konflikter: 0
Server version 1: 405
Server version 2: Release 9.0.1FP9|August 14, 2017
Server Plattform: Windows/64
Ändrad: 2019-07-18 00:45:26
Server Tidszon: Z=-1$DO=1$DL=3 -1 1 10 -1 1$ZX=131$ZN=W. Europe
Region:
Kommentarsspam Idag: 1
Kommentarsspam Totalt: 17914


BlogRankers.com

Top Sites at iWEBTOOL.com

Fight Spam! Click Here!

Bloggtoppen.se

Listed on BlogShares

Increase website traffic

Top Internet Blogs

Site Checker