Domino 9 und frühere Versionen > ND8: Administration & Userprobleme
Kalendereinträge nach umbenennen eines Users
it898ur:
Hallo,
zumindest für die Kalenderdokumente sollte ein Agent (über alle Dokumente im Kalender) mit folgendem Code helfen:
REM {Namen in Canonicalize oder im Abbreviate-Format angeben};
vAlteNamen := "Max Meier/Firma/de";
vNeuerName := "Max Müller/Firma/de";
REM {Liste aller Namensfelder in Kalenderdokumenten};
vFieldNames := "SendTo" : "CopyTo" : "BlindCopyTo" : "AltSendTo" : "AltCopyTo" : "AltBlindCopyTo" : "EnterSendTo" : "EnterCopyTo" : "EnterBlindCopyTo" : "Principal" : "From" : "Chair" : "AltPrincipal" : "OldPrincipal" : "AltFrom" : "AltChair" : "$Busyname" : "$AltPrincipal" : "$LangChair" : "Recipients" : "AltRequiredNames" : "RequiredNames" : "REQUIREDATTENDEES" : "AltDelegeeName" : "Delegee" : "EnterDelegee" : "AltFYINames" : "AltOptionalNames" : "FYIAttendees" : "OPTIONALATTENDEES" : "AltOPTIONALATTENDEES";
REM {Namenslisten aufbereiten, damit die Anzahl der Listenelemente identisch ist};
vAlt := "";
vNeu := "";
@For(n := 1; n <= @Elements(vAlteNamen); n := n + 1;
@Set("vAlt" ; @Trim(vAlt : @Name([Canonicalize]; vAlteNamen[n]) : @Name([Abbreviate]; vAlteNamen[n])));
@Set("vNeu"; @Trim(vNeu : @Name([Canonicalize]; vNeuerName) : @Name([Abbreviate]; vNeuerName)))
);
REM {Eigentliche Ersetzung vornehmen};
@For(n := 1; n <= @Elements(vFieldNames); n := n + 1;
@If(@GetField(vFieldNames[n]) != ""; @SetField(vFieldNames[n]; @ReplaceSubstring(@GetField(vFieldNames[n]); vAlt; vNeu)); "")
);
SELECT @All
In den Fällen, wo bei uns AdminP im Kalender versagt hat, konnte ich darüber die Dokumente wieder nutzbar machen.
Für die anderen eventuell vorhandenen Datenbanken sieht es aber böse aus, da die Liste potentieller Namens- und Autorenfelder endlos ist.
Viele Grüße
André
regNov:
Hallo André,
vielen Dank für das Script, ich werde jetzt mal einen Agenten für die Datenbank anlegen. Ich geb hier nochmal bescheid, ob alles geklappt hat.
Gruß
RegNov
rambrand:
Für alle anderen Datenbanken könnte das Grundgerüst so aussehen:
--- Code: ---Dim ws As New NotesUIWorkspace
Dim doc As NotesDocument
Dim strwert As String
Set doc = ws.CurrentDocument.Document
Forall felder In doc.Items
If felder.type = 1280 then
strwert = felder.text
{hier dann prüfen auf alle Schreibweisen des alten Namens & Ersetzen durch neuen Namen}
End If
End Forall
--- Ende Code ---
Da Du nicht weisst, wie alle Felder heissen, in denen der alte Name drin sein könnte, musst Du alle Felder ablaufen.
Hoffe das hilft Dir.
Bye
Markus
regNov:
Hey Markus,
danke für den Denkanstoß. Ich vermute mal, das geht dann doch über meine Kompetenzen o.0 Ich bin da ganz ehrlich noch zu
unerfahren mit Lotus Script.
Aber wer weiss, es gibt für alles ein erstes mal oder wie sagt man? ;)
Gruß
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln