Beiträge von CarstenH

    Dann bauen wir mal eine Fehlerbehandlung und etwas mehr Infos in deinen Agenten ein. Dann sollte die Ausgabe bei dir in etwa so aussehen:


    [09F4:01A3-0EC4] { nserver:#1329} 12.12.2019 13:09:42 Remote console command issued by Carsten: te amgr run "test.nsf" 'agenta'

    [1010:000C-17F0] { namgr:#33BC} 12.12.2019 13:09:43 AMgr: Start executing agent 'agenta' in 'test.nsf'

    [1010:000C-17F0] { namgr:#2E62} 12.12.2019 13:09:43 Agent Manager: Agent printing: Anzahl Dokumente: 2

    [1010:000C-17F0] { namgr:#2E62} 12.12.2019 13:09:43 Agent Manager: Agent printing: 1. Dokument wird aktualisiert: Test1

    [1010:000C-17F0] { namgr:#2E62} 12.12.2019 13:09:43 Agent Manager: Agent printing: 2. Dokument wird aktualisiert: Test2

    [1010:000C-17F0] { namgr:#2E62} 12.12.2019 13:09:43 Agent Manager: Agent printing: Agent beendet.

    [1010:000C-17F0] { namgr:#33BE} 12.12.2019 13:09:43 AMgr: Agent 'agent' in 'test.nsf' completed execution


    Ich lasse mir von jedem Dokument einen Zähler und zur Sicherheit noch den Inhalt eines Textfeldes FeldXYZ ausgeben.

    So wie es hier steht getestet und funktioniert, nur der Name der View und des auszugebenden Feldes sind anzupassen.


    Kleiner Hinweis: wenn es mehr als nur ein paar dutzend Dokumente sein sollten könnte die Ausgabe jedes Dokuments das Log vollschreiben, dann ggf. die View so anpassen dass zum Testen erstmal weniger als 100 Dokumente drin stehen. Alternativ legt man einen Ordner an, legt einige Docs rein und nimmt zum Test den Namen des Ordners statt der View, das sollte problemlos gehen.


    Sub Initialize

    Dim session As New NotesSession

    Dim db As NotesDatabase

    Dim view As NotesView

    Dim doc As NotesDocument

    Dim counter As long


    On Error GoTo ErrorHandler


    Counter = 0

    Set db=session.currentDatabase

    Set view = db.GetView("ViewA")

    Call View.Refresh

    Print "Anzahl Dokumente: " + CStr(view.Allentries.Count)


    Set doc = view.GetFirstDocument

    Do While Not (doc Is Nothing)

    Counter = Counter + 1

    Print CStr(Counter) + ". Dokument wird aktualisiert: " + doc.FeldXYZ(0)

    Call doc.ComputeWithForm(False,False)

    Call doc.save(False,False)

    Set doc = view.GetNextDocument(doc)

    Loop

    Print "Agent beendet."

    Exit Sub


    ErrorHandler:

    Print "Fehler " + CStr(Err) + " in Zeile " + CStr(Erl) + ": " + Error$

    Resume Next

    End Sub

    Der Agent ist völlig in Ordnung und sollte genau das tun was du möchtest.

    Als Vordergrundagent gestartet werden (Fehler-)Meldungen an deinem Client ausgegeben, je nach Fehlerart als Popup oder nur in der Statusbar.

    Als Hintergrundagent gestartet erscheinen die gleichen Meldungen auf der Live-Console des Servers (und zusätzlich in der log.nsf).


    Mögliche Fehlerursachen, wenn scheinbar nichts passiert:


    - es gibt keine Ansicht "Profildokumente"

    - die Ansicht zeigt keine Dokumente

    - der Auslöser des Agenten ist inkorrekt (Stichworte Auslöser oder Zeitplan und korrekter Server)

    - das Ziel des Agenten sollte auf "Kein(e)" stehen wenn du eine eigene Auswahl durchläufst

    - der Account in dessen Namen der Agent läuft hat nicht genügend Rechte zur Agentenausführung auf dem Server (Stichwort: Serverdokument)

    - der Agent (oder der Account in dessen Namen er läuft) hat nicht genügend Rechte auf die DB (Stichworte ACL und Agentensicherheit "Ausführen im Name von")


    Sofern du Zugriff auf die Serverkonsole hast würde ich den Agenten zum Testen auf Zeitplan: Nie und Ziel: Keine stellen und ihn über die Konsole des Servers mit dem folgenden Befehl zu starten versuchen:

    tell amgr run "meinedb.nsf" 'meinagent'


    Wenn etwas nicht stimmt bekommst du das dann dort angezeigt.


    Wenn du keinen Konsolenzugriff hast gehe oben genannte Punkte nach dem Ausschlussverfahren durch und lass dir von einem Admin aus der log.nsf des Servers ggf. die Fehlermeldungen zuschicken.


    HTH

    Carsten

    Du musst zusätzlich zum Item selbst noch die Property IsAuthors des Items setzen, das macht die Maske bei Autorenfeldern automatisch aber bei Items, die per Script angelegt werden, muss das der Programmierer machen.


    notesItem.IsAuthors=True


    Carsten

    Man benötigt keinen Domino Designer Client um sich Ansichten zu erstellen oder anzupassen. Der Standard Client hat alles dabei.


    Lediglich die Berechtigung Ordner/Ansichten zu erstellen und etwas Interesse ist nötig. Wer mit Excel und Formeln klarkommt kann das auch im Notes.

    Ob die Rechte ausreichen sieht man gleich beim ersten Schritt.


    Schritt 1: OBK öffnen und Menü Erstellen > Ansicht... auswählen

    Schritt 2: Details zum Erstellen

    - Links oben einen Namen vergeben (z.B. "Gesendet von")

    - rechts daneben kommt der spannende Teil, Ansichtstyp.

    Typ "Gemeinsam" bedeutet, dass alle Nutzer die Ansicht später sehen/verwenden können, "Privat" ist nur für einen selber sichtbar.

    Stil kopieren von

    - Stil kopieren von: "Gesendet", damit hat man eine sinnvolle Vorgabe mit fast allen Inhalten

    Schritt 3: Speichern und anpassen

    - in der Design-View kann man jetzt neue Spalten einfügen oder vorhandene anpassen.

    Da ich eure OBK nicht kenne nehme ich eine normale Mail-Anwendung als Grundlage fürs Erklären.

    Erstellen > Neue Spalte einfügen (die kann dann mit Drag&Drop an die richtige Stelle geschoben werden, am besten zwischen Empfänger und Betreff.

    Aufpassen, dass man sie nicht ganz links (könnte Sortierung ändern) oder ganz rechts (die letzte Spalte wird meist auf Fensterbreite vergrößert) hinpackt.

    Spaltenwert: hier stehen 3 Varianten zur Verfügung. einfache Funktionen, Feldnamen oder Formeln.

    Wenn es ein Feld mit dem Namen im OBK gibt nimmt man das, ansonsten könnte die Einfache Funktion "Autoren, einfacher Name" schon das Ergebnis liefern.

    Den letzten Bearbeiter (erkennbar im letzter Eintrag im Multivalue-Feld $UpdatedBy) liefert hingegen die Formel: @Name([CN];@Subset($UpdatedBy;-1))

    Man kann nach jeder Änderung mit STRG-S zwischenspeichern und sich in einem extra Tab das Ergebnis schon live ansehen, je nach Größe dauert es ein paar Sekunden.

    Schritt 4: schön machen

    Im letzten Schritt passt man die Eigenschaften der neuen Spalte noch an damit Schriftart, Größe etc das Gesamtbild nicht zerschießen.


    Ich habe das bei diversen Teammailboxen inzwischen mit der obigen Formel direkt in der Gesendet View im Einsatz, wenn es gut aussieht baut euer Admin euch das vielleicht auch in die Gesendet-View aller OBK ein.


    Viel Spaß beim Experimentieren =)

    Carsten

    Die Frage lautet korrekt "Möchtet Sie, dass Ihr Abwesenheitsagent während Ihrer Abwesenheit Ihre Nachrichten verwaltet?" und wird von der Routine AutoEnableOutOfOffice() in der Script-Bibliothek CSEventNotes_de-DE gestellt. Der deutsche Text aus der Meldung kommt per Const Deklaration aus der Common_de-DE.


    AutoEnableOutOfOffice wird durch das Verwenden der Kategorie "Urlaub" (im deutschen Template) in einem Kalendereintrag beim Speichern getriggert.


    HTH

    Carsten


    (Screenshot konnte ich auch nicht hochladen - ebenfalls unbekannter Fehler)

    Es gibt eine Möglichkeit, die man übergangsweise (!) aktivieren könnte, damit der Server nach dem ID-Wechsel auf beide Namen reagiert:

    NETWORK_SPRAYER_ADDRESS=AWServer1,Server1


    Natürlich müssen beide Namen im DNS auch zum gleichen Domino auflösen.


    Damit ist zwar der Connect gesichert aber ein anderes Problem bleibt bestehen (wäre übrigens auch bei Usern mit Alias-Namen nicht anders denn Alias-Namen sind genau genommen eine reine Mail-Geschichte): sämtliche sicherheitsrelevanten Einstellungen funktionieren so nicht: xACL, ACL, Leser-/Autorenfelder etc.


    Hier könnte man sich notfalls (!) mit folgendem Hack behelfen: Man legt eine Gruppe mit dem alten Server-Namen an und packt den neuen Namen als Member hinein. Für Leser-/Autorenfelder funktioniert das super. Bei ACLs eher weniger, wichtig ist in dem Fall dass in den ACLs der Eintrags-Typ natürlich nicht als Server stehen darf sonst greift das nicht. Es greift außerdem niemals bei bestimmten Einstellungen wie Administrations-Server der Datenbank.


    Unterm Strich ist eine Umstellung wie von Torsten empfohlen schon die einzig sinnvolle Lösung.


    Carsten

    Der Port ist laut deinem Listing durchaus aktiv - nur eben ohne sinnvolle Konfiguration (wie ja auch die Fehlermeldung besagt).

    Er findet das IMAP Internet-Site Dokument schlicht nicht, was (ohne das System vor der Nase zu haben) drei mögliche Ursachen am wahrscheinlichsten macht:


    a) Zwischen Anlegen des IMAP Dokuments und aktivieren des IMAP-Ports wurden die Ansichts-Indexe noch nicht aktualisiert, oder es sind mehrere Server in der Domäne und das IMAP Dokument wurde noch nicht zwischen den Servern repliziert - passiert gerne wenn man einen anderen Server am Adminclient benutzt als der, der die Konfiguration erhalten soll.


    b) Die Organisation des IMAP Dokuments stimmt immer noch nicht mit der Organisation des Servers überein.

    Bitte hier auch wirklich exakt den Namen aus dem Certifier benutzen!

    Beispiel: Wenn der Domino den Namen hat "CN=ServerXYZ/OU=Servers/O=MyCompany/C=DE" dann wäre "MyCompany" der richtige Wert.

    Wenn die Organisation Leerzeichen und/oder Sonderzeichen enthält müsste man nochmal gucken, einige sind unzulässig und verursachen möglicherweise Probleme.


    c) Es ist ein deutsches Domino-Directory-Template und es ist ein Übersetzungsfehler in der IMAP-Maske vorhanden, der für falsche Namen/Inhalte bei den Steuerfeldern sorgt.


    Für c) müsste man sich die Feldinhalte in den Dokumenteigenschaften genauer anschauen.


    Carsten

    Welche Domino-Version mit welchem Domino-Directory Template in welcher Sprache ist im Einsatz?

    Der Typ der angelegten Internet-Site ist IMAP-Site?

    Im Feld Organisation steht der gleiche Name, der auch im Zertifikat des Servers (O=.......) steht?

    Stehen die korrekten (Host- und IP-)Adressen im IMAP-Site-Dokument?

    Gibt es weitere Server/IMAP-Site-Dokumente?

    Hat der Server mehrere Ports/IP-Adressen? Wenn ja, wurden die entsprechenden Parameter für den IMAP-Port in der notes.ini gesetzt?

    Bevor ich IF4 installieren kann, muss ich FP10 installieren. Und diese Installation schon bricht ab.

    Nein.


    Das war früher mal so aber die Installation des FP vor der Installation der Hotfixes ist schon seit langer Zeit nicht mehr notwendig. Das sieht man auch an der Größe, es sind längst keine inkrementellen Installer mehr.


    Zitat aus der IBM Technote "Interim Fixes & JVM patches for 9.0.1.x versions of IBM Notes/Domino & add-ons":


    You can install a Notes Client interim fix (or hotfix) without installing a Feature Pack (FP). Namely, if you have a Notes 9.0.1 client, you can install any 9.0.1.x hotfix (where the hotfix is based off a FP) without installing that FP.

    Hallo Thorsten,


    die Startzeiten sind zwar keine "Vorschläge" aber Domino bzw. der Agentmanager sind auch kein Echtzeitsystem. Vielmehr arbeitet der AMgr, wie viele andere Prozesse bei Domino, mit Queues (Warteschlangen), die periodisch (meist 1x je Minute) gepollt werden.


    Eine angegebene Startzeit für einen Agenten sorgt lediglich dafür, dass der Agent von einer Queue in die nächste verschoben und vom nächsten freien Prozess weiter verarbeitet wird. Einige Ereignisse (z.B. "wenn Dokumente erstellt oder geändert wurden") haben standardmäßig sogar konfigurierbare "Sperrfristen" um ein ständiges Dauerauslösen zu unterbinden.


    Es gibt 2 "Bereitschafts"-Queues (Verbose - für Ereignis-gesteuerte Agenten und Scheduled für zeitgesteuerte Agenten) und eine Ausführungs-Queue (Eligible Queue). Jeder Agent, der auf einem Server ausgeführt wird, liegt erst einmal in der V oder S Queue (je nach Typ). Sobald das Ereignis oder die Zeit eintritt wird der Agent in die nächste Queue verschoben bis er in der Eligible-Queue angekommen ist (V => S => E). Dort kümmert sich dann der nächste freie AMgr-Thread um die Abarbeitung in der Reihenfolge des Eingangs. Da die S- und E-Queue periodisch gepollt werden kann es also Minuten dauern, bis die eigentliche Ausführung überhaupt möglich ist - sofern dann auch noch ein Thread zur Bearbeitung frei ist.


    Um zu sehen, welcher Agent sich gerade in welcher Queue befindet kann man an der Konsole folgendes eingeben: tell amgr schedule


    Um also deine Ausgangsfrage kurz und knapp zu beantworten: die einzige Möglichkeit, einen Agenten zu einer bestimmten Zeit auch wirklich zu starten, ist ihn direkt auszuführen (sofern freie Threads vorhanden sind).


    Carsten

    Funktioniert tadellos, gerade mit drei frisch angelegten Gruppen (alle vom Typ: Mehrere Zwecke) getestet.


    Mitglieder Gruppe1:

    - Nutzer ABC

    - Gruppe2


    Mitglieder Gruppe2:

    - Nutzer DEF

    - Gruppe3


    Mitglieder Gruppe3:

    - Nutzer GHI


    Anschließend neue Mail, Gruppe1 als Empfänger ausgewählt und Aktionen Mehr > Öffentliche Gruppen erweitern:

    Jetzt stehen statt Gruppe1 die Adressen Nutzer ABC, Nutzer DEF, Nutzer GHI im Empfängerfeld. Wie erwartet.


    Mögliche Fallstricke (was mir so auf die Schnelle einfällt):

    a) View-Index für die Gruppenauflösung im Domino Verzeichnis auf dem Server, der für den Client in der AU als Verzeichnisserver angegeben ist, noch nicht aktuell

    b) mehrere Server vorhanden und Gruppen noch nicht überall aktuell repliziert

    c) Gruppen-Typ benutzt, der für Mail unzulässig ist (z.B. Server only, Zugriffskontrolle, Negativliste)


    Ich musste beim Testen (mit Cluster) erst ein paar Sekunden warten bis (b) abgeschlossen war und noch den Index (a) manuell aktualisieren, ansonsten hätte es aber dennoch funktioniert nur eben erst mit einiger Verzögerung.


    Carsten

    Ihr habt einen ID Vault, da hantiert man nicht mehr mit ID Dateien am Client. Rezertifiziert wird mit CA.


    Die Meldung "Your certificate has not jet been signed by the Certificate Authority. Try again later." besagt, dass der CA Prozeß die ID noch nicht bearbeitet hat. Dazu muss natürlich der Prozeß auch laufen (load ca) und für die Certifier aktiv sein (tell ca status). Inaktive Certifier müssen aktiviert werden, manchmal wird dazu ein Passwort benötigt (tell ca activate nr passwort). Das PW ist in der CA Konfiguration hinterlegt und sollte irgendwo dokumentiert sein.


    Wenn die Voraussetzungen stimmen kann man mit 'tell adminp proc all' etwas nachhelfen, die Anforderungen schneller abzuarbeiten.


    Wenn mehrere Server beteiligt sind muss man zwischen den Servern die admin4.nsf und names.nsf replizieren um Anforderungen und Ergebnisse zu übertragen und den AdminP möglicherweise sowohl auf dem Homeserver des Nutzers als auch dem/n ID Vault Server(n) etwas triggern (siehe oben).

    Hallo Bernd (ohne har) ^^


    es hängt von zu vielen Faktoren ab, ob eine Umsetzung "performt". Daher ist eine diesbezügliche Aussage m.E. nicht viel wert wenn man die beteiligten Faktoren nicht genauer kennt.


    Prinzipiell habe ich das vor einiger Zeit mal in einer Pilotlösung mit testweise 1 Mio Dokumenten im Backend realisiert.


    Zum Einsatz habe ich nach einigen Tests und (da auch Zurückschreiben gefordert war) die Lösung als Kombination von LEI und DECS umgesetzt. Das würde ich auch jederzeit wieder so machen.


    Als Knackpunkte sind hier nicht so die Views (die gehen mit virtuellen Dokumenten ziemlich flott) sondern eher die Menge der Abfragen und die Belastbarkeit der einzelnen Systeme in Relation zur Nutzer/Abfragenanzahl.


    HTH Carsten

    Er könnte aber auch von Shared Mail reden ...


    Mit einem Backup-Programm mit Domino-Agent (der die Domino Backup API nutzt) sollte aber weder DB2 noch Shared Mail problematisch sein.


    Simpel diese Mail-DB des Users angeben, als Restore Point-In-Time ca. 5-30min vor dem "Unfall" angeben und los gehts.


    Wer lediglich die "Sparversion" (sprich: Backup via Open-File-Agent) einsetzt - klappt dann natürlich nicht.


    Carsten

    Wir können gern mal telen, was ihr wirklich davon braucht und wo sich vielleicht ein Austausch von Komponenten lohnen könnte (ich bin selbst Group Partner und Supporter ^^)


    Auch gern noch mal zur Untermauerung oder Demonstration (via Internet in 5 Minuten möglich) kann ich an einer Live Suite zeigen, wie das mit der Vertreter-Wahl aussieht.


    Falls Interesse besteht schick mir eine PM.


    Carsten