14. november 2002 - 17:17Der er
5 kommentarer og 2 løsninger
Dokument ID i script
Hej,
jeg har brug for at sætte en variabel (string) lig med dokument id'en, således at jeg senere i scriptet kan lave en streng der skal bruges til at URL'e mig fred til det rigtige dukument. I psedokode:
ID = doc.docID henvisning = [<a href:server/base.nsf/ID?OpenDocument></a>]
Jeg er ikke nogen script-haj, men jeg tror bare at du skal ændre din url streng: url = |<a href="/viewAllDocs/|+id+|!OpenDocument">klik</a>| Prøv med: url = |<a href="//viewAllDocs//|+id+|!OpenDocument">klik<//a>| MvH
Hej René, Prøv at sætte ID til Variant, så kan du se i debuggeren hvad type der gives til dig. doc.DocumentUniqueID skal ellers give en String.
Brug evt. tegnet & istedenfor + til at sætte strenge sammen, da & kan udføre automatiske konverteringer til Text.
Undgå at angive et "AllDocs" view, medmindre det er sikret for direkte browsing. Brug evt. et dummy view . f.eks. "...base.nsf/<b>0</b>/"+id+"?OpenDocument" //Jörg
Jeg fik vist svaret lige lovligt hurtigt. ID skal være en String, men doc.DocumentUniqueID er forkert, sorry. Det skulle have været doc.UniversalID som er en property på klassen NotesDocument. Dvs. du laver et objekt af typen NotesDocument, fx.
set session = New NotesSession ' vi opretter en Notes session set db = session.CurrentDatabase ' vi opretter et db objekt som svarer til den db vi arbejder med set view = db.GetView("MitHeltEgetView") ' vi opretter et view objekt set doc = db.GetFirstDocument ' vi opretter et document objekt, der svarer til det første doc i view'et ID = doc.UniversalID ' endelig kan vi aflæse unid'et.
Alternativt kan også fange unid'et vha. en @-function, nemlig @DocumentUniqueID, som returnerer ikke String, men 'special-string'. Derfor bruges den altid sådan @Text(@DocumentUniqueID). Med denne metode vil man lave et felt på den form der bruges, fx. kunne det hedde 'DocumentUniqueID'. Så ville du kunne snuppe unid'et ved et simpelt felt-aflæsning. ID = doc.DocumentUniqueID(0) Men være opmærksom på at feltet med unid'en ikke vil blive opdateret, hvis dokumentet bliver copy-pastet, men det gør det nye dokuments unid. Dvs. at 'DocumentUniqueID' feltet og det nye dokumentets rigtige unid vil være forskellige !! En MEGET alm. fejl.
Nu til url'en. Det smarte ved | tegnet er, at man kan bruge " og \ uden at sætte en ekstra \ foran, altså slipper du for at skrive \" og \\. Du skal have et view, der har @Text(@DocumentUniqueID) som formel i 1. kolonne, som også er sorteret. Fx. kunne det hedde 'viewAllDocs'. Så laves url'en sådan her i lotusscript: url = |<a href="/viewAllDocs/|+id+|!OpenDocument">klik</a>|
Tilsidst. Du SKAL bruge ? hvis du kører Domino 4.6 eller tidligere. Du KAN bruge enten ? eller ! hvis du kører Domino 5.0.
Håber jeg har redet trådene ud ;-P Lars/RESULTURE
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.