Domino 9 und frühere Versionen > ND6: Entwicklung
Feldinhalte aktualisieren
Glombi:
Wichtig ist wie gesagt, dass die Kopie direkt am Server über das Betriebssystem gemacht wird bzw. über eine Netzwerkverbindung.
Eine Kopie über Notes ist nicht hilfreich, da ja nur diejenigen Dokumente kopiert werden, die derjenigen in Notes lesen darf.
Damit Du wieder alle Dokumente lesen, solltest Du in der lokalen Kopie einen Agenten erstellen, der in allen Dokumenten ein neues Autorenfeld setzt. Dort schreibst Du dann die Rolle [EditAll] rein. Diese Rolle musst Du zur ACL hinzufügen und zumindest mal Dir, dem Server und der Admingruppe gegeben.
Der Agent sollte über alle Dokumente der Datenbank laufen.
Da alle Dokumente geändert wird, besteht natürlich ie Gefahr von Speicher- und Replizierkonflikten, wenn Du die Datenbank wieder zurückreplizierst. Daher würde ich für die Zeit der "Reparatur" die Datenbank sperren. Wenn Du die Datenbank repariert hast, soll der Admin diese wieder auf dem Server ersetzen.
Nachtrag: Wichtig - Autorenfeld, kein Lesenamensfeld!
Andreas
Schnulli:
@Andreas,
Vielen Dank für Deine Hilfe bezüglich meiner "unsichtbaren" Dokumente.
Mein Admin hat mir inzwischen eine Kopie mitsamt der "unsichtbaren" Dokus zur Verfügung stellen können.
Nun Schritt 2, den Du mir empfohlen hast: "Erstelle per Agent ein neues Autorenfeld und füge [EditAll] ein ......"
Ich beherrsche leider nur die Formel-Sprache, deshalb meine Frage:
Ich würde ein neues Feld mit FIELD := "[EditAll]" erstellen, aber wie sage ich Notes, daß es sich dabei um ein Autorenfeld handelt?
Geht wahrscheinlich nur mit Script, oder?
Viele Grüße
Iris
Antwort von Glombi:
Hallo Iris,
ja das geht nur mit Script. Hier ein Script, das in ALLE Dokumente der Datenbank das neue Autorfeld schreibt.
Der Code muss in einen Agenten, der über alle Dokumente der Datenbank läuft. Du kannst es auch auf alle gewählten Dokumente setzen, musst dann natürlichvorher die Dokumente wählen:
Sub Initialize
dim session as New NotesSession
dim db as NotesDatabase
dim dc as NotesDocumentCollection
dim doc as NotesDocument
dim item as NotesItem
set db = session.CurrentDatabase
set dc = db.UnprocessedDocuments
set doc = dc.GetFirstDocument
while not (doc is Nothing)
set item = New NotesItem(doc,"DefaultAuthors","[EditAll]",AUTHORS)
call doc.Save(false,true,true)
set doc = dc.GetNextDocument(doc)
wend
Axel:
--- Zitat von: Schnulli am 25.10.04 - 14:18:49 ---Antwort von Glombi:
Hallo Iris,
ja das geht nur mit Script. Hier ein Script, das in ALLE Dokumente der Datenbank das neue Autorfeld schreibt.
Der Code muss in einen Agenten, der über alle Dokumente der Datenbank läuft. Du kannst es auch auf alle gewählten Dokumente setzen, musst dann natürlichvorher die Dokumente wählen:
Sub Initialize
dim session as New NotesSession
dim db as NotesDatabase
dim dc as NotesDocumentCollection
dim doc as NotesDocument
dim item as NotesItem
set db = session.CurrentDatabase
set dc = db.UnprocessedDocuments
set doc = dc.GetFirstDocument
while not (doc is Nothing)
set item = New NotesItem(doc,"DefaultAuthors","[EditAll]",AUTHORS)
call doc.Save(false,true,true)
set doc = dc.GetNextDocument(doc)
wend
--- Ende Zitat ---
Hi,
da hast du doch schon die Antwort. Genauso geht das, fast. ;)
Hinter der Zeile
Set item = New...
musst du noch
item.IsAuthors= True
einfügen, damit es auch wirklich ein Autorenfeld wird.
Axel
koehlerbv:
Unnötig, Axel - das macht schon der Parameter specialType% von New NotesItem ;)
Bernhard
Schnulli:
Vielen Dank, habe das Script nun ausprobiert, den Agent gestartet und leider folgende Fehlermeldung erhalten:
Auch mit der Zeile von Axel kam leider die gleiche Fehlermeldung:
"Could not create field DefaultAuthors!"
Der Agent ist "gemeinsam", "Alle Dokumenten in der Datenbank",
Options -> Option Public
Initialize -> Formel wie beschrieben
Hat jemand eine Idee warum Notes nicht will?
Viele Grüße
Iris
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln