Domino 9 und frühere Versionen > ND8: Administration & Userprobleme

Kalendereinträge nach umbenennen eines Users

<< < (2/2)

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