Gerade bin ich wieder bei der Abarbeitung eines Kundentickets über eines dieser unsäglichen Stücke von IBM- Code in der Mailschablone gestolpert...
Das hier ist ein reiner RANT, keine Hilfeanfrage, muss mir nur gerade Luft verschaffen...
Es geht um den Agenten "Upgrade Folder Design".
Dieser wird verwendet, wenn man zu einer neuen Mailschablone wechselt, in der sich das Design der Inbox (Aktionen, Scripte / Libraries, Spalten, Farben) unterscheidet, das in den Ordnern verwendet wird.
Im Code werden alle Ordner durchlaufen und geprüft, ob sie "Systemordner" sind, bevor sie in die Liste der "Userordner" eingeordnet werden, die aktualisierbar sind.
Dabei wird der "Ordnername" wie folgt ausgelesen:
Set Item = tempnote.GetFirstItem("$TITLE")
FolderName = item.values
...
'//Getting Folder Alias or Name
If Not (Strrightback(FolderName(0), strAliasDelimiter)) = "" Then
NewFolderName = Strrightback(FolderName(0), strAliasDelimiter)
Else
NewFolderName = FolderName(0)
End If
'//Defining type of Folder
If Not(ValidateSystemFolder(NewFolderName)) Then '//Folders to be upgrade
Für den gesamten weiteren Prozess wird also der letzte Alias im Ordnernamen verwendet... und dann kommt die "ValidateSystemFolder"- Funktion zur Erkennung von Systemordnern...
Diese prüft, ob der übergebene Ordner mit "(" beginnt, dann handelt es sich um einen Systemordner... In der hälfte der "Systemordner" ist aber nur der Ordnername und eben NICHT der Alias geklammert (und so mache ich das in meinen Applikationen typischerweise auch), und dann werden diese Ordner nicht als Systemordner erkannt und werden als "UserOrdner" angeboten...
Das hat mal irgendeiner gemerkt, und hat einige der falsch erkannten Ordner in die Funktion "ValidateSystemFolder" quasi als "Ausnahmen" hinzugefügt:
If ( Left(NameFolder, 1) = "(" And Right( NameFolder, 1) = ")")_
Or ( Left( NameFolder, 1 ) = "$") Or (NameFolder = "Rules") Or (NameFolder = "JunkMail") Or (NameFolder = "SelRules") Then
Dummerweise sind seither weitere dazugekommen, und die hat niemand in dieser Funktion hinterlegt: z.B. (Drafts)|IMAPDrafts und (Sent)|IMAPSent, das heisst, diese werden jedesmal beim Folder upgrade überschrieben und beim nächsten Lauf des Design- Tasks wieder zurückgeändert...
Des Weiteren werden Ordner, deren Design nicht von der ($Inbox) vererbt wird, sondern z.B. vom eigenen "Parent- Ordner" von diesem Agenten komplett ignoriert, aber das ist eine andere Geschichte und soll ein anderes Mal erzählt werden.
Wer zur Hölle macht bei IBM (jetzt HCL) den Qualitätscheck für die millionenfach im Einsatz befindliche Mailschablone...