Einen wunderschönen guten Morgen allerseits!
Ich hoffe, ihr habt Weihnachten alle einigermaßen unbeschadet überstanden. Wer gedanklich noch nicht beim Neujahrspunsch ist, mag mir evtl. sein Ohr leihen.
In einer DB läuft ein Agent, dass alle DBs des jeweiligen Servers durchkämmt und Name, Trigger und Target ausliest und wo hin schreibt.
Dim db As New NotesDatabase(scanDb.Server, scanDb.FilePath)
If Not Isempty(db.Agents) Then
Forall i In db.Agents
agnam = i.Name 'for testing purposes only!
Set agent = db.GetAgent(agnam)
trig = agent.Trigger
Nun habe ich bspw. bei der admin4 das Problem, dass es dort einen Agenten gibt, der sich schimpft "Enable/Disable User Notification...|ToggleNotifyUserOnNameChange", gestartet wird der übers Menü, Target ist "None". An der Stelle steigt mein Agent aus, weil angeblich eine Objektvariable nicht gesetzt wäre. Der Debugger bestätigt das tatsächlich: i.Name ist leer.
Nun dachte ich, der Name inkl. Alias wäre einfach zu lang (obwohl eine Variable vom Typ String erwartet wird, das sollte ja wohl reichen), es scheint aber viel mehr so, dass das Pipe-Symbol das Problem wäre. Mit dem reinen Agentennamen oder aber nur mit der Aliasbezeichnung klappts einwandfrei.
Im Übrigen tritt das Problem nicht nur mit diesem Agenten und in dieser DB auf, auch in einer beliebigen anderen DB mit einem analog getargeten und getriggerten Agenten, der nur "Test|Test" heißt.
Jetzt hab ich das so umgeschrieben, dass erst geprüft wird, ob der Name einen Alias enthält und dann alles links vom Pipe-Symbol verwendet. Damit klappts auch wieder.
Die Frage ist nun zweierlei:
--- sind Probleme mit Aliasnamen bekannt, ist schon mal jemand darüber gestolpert?
--- wie bekomme ich es hin, nur den "richtigen" Namen einzulesen, ohne auf Vorhandensein eines Aliasses zu prüfen und den dann rauszuschneiden?
THX in advance!
Gruß
RW