Domino 9 und frühere Versionen > ND8: Entwicklung
Feldart bei @DocumentUniqueID
(1/1)
oksenator:
Hallo,
um einen Link auf einem Antwort-Doc zum Haupt-Doc zu haben, habe ich ein Feld auf dem Haupt-Doc (heißt "DocID", ist "computed") mit "@DocumentUniqueID" und übernehme den Wert mit in ein Feld auf dem Antwort-Doc. mach ich schon seit 100 Jahren so, war nie ein Problem.
Jetzt ist mir heute aufgefallen, das wir in einer DB wo ich das nachträglich eingebaut habe, das Feld "DocID" leer ist. Ok, kein Problem, las ich einen Agent drüberlaufen, dann wird das Feld neu berechnet
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Set db = session.currentdatabase
Set view = db.getview("All Agent Information")
Call view.refresh
view.autoupdate = False
Set doc = view.getfirstdocument
While Not doc Is Nothing
Call doc.computewithform(True, False)
Call doc.save(True, False)
Set doc = view.getnextdocument(doc)
Wend
Auf einmal hab ich keinen Link sondern die UNID als Text im Dokument stehen. Dank EZ-scan bin ich jetzt drauf gekommen, das das Feld "DocID" jetzt ein normales Textgfeld ist und nicht vom Format "Note ref. List". Es fehlt auch das "[UNID]" vor der UNID-Nummer.
Wenn ich das Dokument aber manuell öffne, Bearbeite und speichere, dann ist wieder alles korrekt. Ich habe aber keine Lust 700 Dokumente manuell zu bearbeiten und zu speichern. Hat einer eine Idee was ich da machen könnte.
Danke
Oliver
BigWim:
ich vermute mal: Wenn das Item bereits als Text angelegt ist, wirst Du keine Chance mehr haben. Auch weil ich bisher nirgens gefunden haben, wie ich diesen Feldtyp "bewußt" anlegen kann.
Wenn überhaupt, mußt Du vor dem
--- Code: ---Call doc.computewithform(True, False)
--- Ende Code ---
das Item löschen.
Also sinngemäß so
--- Code: ---While Not doc Is Nothing
Call doc.RemoveItem ....
Call doc.Save ....
Call doc.computewithform(True, False)
Call doc.save(True, False)
Set doc = view.getnextdocument(doc)
Wend
--- Ende Code ---
Markus
Und nur mal so am Rande. Wäre ein
--- Code: ---@Command( [ToolsRefreshAllDocs] )
--- Ende Code ---
nicht einfacher?
oksenator:
Hallo BigWim,
danke für den Tipp. Zufällig habe ich heute auch bescheid von IBM bekommen. Es ist wohl so, das "Computewithform" nicht mehr auf Felder funktioniert, die sich auf sich selbst beziehen. Hier die Links:
Title: How to Use the LotusScript ComputeWithForm Method to Set Field Types
Doc #: 1096223
URL: http://www.ibm.com/support/docview.wss?rs=899&uid=swg21096223
Title: Is it possible to refresh documents using LotusScript
Doc #: 1092630
URL: http://www.ibm.com/support/docview.wss?rs=899&uid=swg21092630
Und ja, ToolsRefreshAllDocs ist tatsächlich einfacher und funktioniert sogar. Man kann sich das Leben auch künstlich schwer machen.
Danke
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln